当前位置: 首页 > news >正文

java变量学习

一、变量概述

变量是内存中装载数据的小盒子,你只能用它来存数据和取数据。

二、计算机存储单元

无论是内存还是硬盘,计算机存储设备的最小信息单元叫“位(bit),我们又称之为“比特位”,通常用小写的字母b表示。而计算机最小的存储单元叫“字节(byte)”,通常用大写字母B表示,字节是由连续的8个位组成。

当程序需要使用存储空间时,操作系统最小会分派给程序1个字节,而不是1个位。

三、基本类型(4类8种)

 

变量必须要有明确的类型,什么类型的变量装载什么类型的数据。

Java中基本类型一共4类,把这4类展开后共8种基本类型。我们今后编写程序时使用的是这8种基本类型而不是4类,这8种基本类型指定了范围。

四类

八种

字节数

数据表示范围

byte

1

-128~127

short

2

-32768~32767

int

4

-2147483648~2147483648

long

8

-263~263-1

浮点型

float

4

-3.403E38~3.403E38

double

8

-1.798E308~1.798E308

字符型

char

2

表示一个字符,如('a','A','0','家')

布尔型

boolean

1

只有两个值true与false

四、常量与类型

整数常量可以根据所在范围来确定类型,例如100在-128~127之间,所以他是byte类型;500在-32768~32767之间,所以它是short类型;100000在-2147483648~2147483648之间,所以它是int类型。java中默认的整数类型是int类型

 

在Java中整数常量如果不在-2147483648~2147483648之间就必须添加“L”后缀(小写的也可以,但建议使用大写),在-2147483648~2147483648之间的也可以添加“L”后缀。也就是说12345678901不在-2147483648~2147483648之间,所以它在Java中是错误的常量,你必须这样写:12345678901L,这才是正确的常量。所以添加了“L”后缀的整数常量都是long类型的,例如:100L、12345678901L都是long类型的常量。

 

浮点类型的常量也可使用后缀,在Java中所有没有后缀以及使用“D”后缀(小写也可以,但建议使用大写)的小数都是double类型;float类型常量必须添加“F”后缀(小写也可以,但建议使用大写)java中默认的浮点类型是double类型

 

3.14没有后缀,所以它是double类型;

 

5.28D为double类型;

 

1.26F为float类型。

 

五、 定义变量(创建变量)

 

定义变量的语法格式:

 

数据类型  变量名  =  数据值;

 

int  a = 100;

 

其中int是数据类型,指定了变量只能存储整数,而且指定了存储范围为-2147483648~2147483648。

 

其中a表示变量名,变量名是标识符,这说明只要是合法的标识符都可以用来做变量名。在程序中可以通过变量名来操作变量(内存中的小盒子)。

 

其中“=100”是给变量赋值,即向a变量中写入100(变量是个小盒子,现在小盒子中保存的是100)。注意,给变量赋的值一定要与类型符合,也就是说int类型只能存储整数,而且必须是在-2147483648~2147483648范围内的整数。100满足了这两个条件,所以是正确的。

 

 

 

/*
变量定义格式:
数据类型  变量名  =  变量值;
*/
public class Variable {
    public static void main(String[] args) {
        int a = 10;
        double b = 3.14;
        char c = 'z';
        String s = "i love java";
    
        a = 20;
        System.out.println(a);
    }
}

六、变量使用的注意事项

我们使用变量的时候需要注意,要满足变量的使用规则才可以使用的,我们来看看都有哪些注意事项。

变量使用的注意事项

1.变量定义后可以不赋值,使用时再赋值。不赋值不能使用。

public static void main(String[] args) {
    int x;
    x = 20; //为x赋值20
    System.out.println(x);//读取x变量中的值,再打印
}

2.变量使用时有作用域的限制。

public static void main(String[] args) {
    int x = 20;
    {
    int y = 20;
    }
    System.out.println(x);//读取x变量中的值,再打印
    System.out.println(y);//读取y变量中的值失败,失败原因,找不到y变量,因为超出了y变量作用范围,所以不能使用y变量
}

3.变量不可以重复定义。

public static void main(String[] args){
      int x = 10;
      double x = 5.5;//编译失败,变量重复定义
}

七、数据类型转换

不同类型的变量要先进行类型转换再运算。

比如把小数转换成整数的操作转换的过程中,数据遵循一个原则:

范围小的数据类型值(如byte),可以直接转换为范围大的数据类型值(如int);

范围大的数据类型值(如int),不可以直接转换为范围小的数据类型值(如byte)

 数据范围从小到大依次:byte -> short -> int -> long -> float -> double

1.自动类型转换

表示范围小的数据类型转换成范围大的数据类型,这种方式称为自动类型转换

自动类型转换格式:

范围大的数据类型 变量 = 范围小的数据类型值;

如:

    double d = 1000;

  int i = 100;
 double d2 = i;

2.强制类型转换

表示范围大的数据类型转换成范围小的数据类型,这种方式称为强制类型转换

强制类型转换格式:

范围小的数据类型  变量 = (范围小的数据类型) 范围大的数据类型值;

如:

int  i = (int)6.718;   //i的值为6

double  d = 3.14;
int  i2 = (int)d;     //i2的值为3

 

 

 

 

 

转载于:https://www.cnblogs.com/akiyama/p/10026889.html

相关文章:

  • 增加索引
  • 关于梯度下降 - 线性回归的
  • ethereum Pet Shop
  • 事件机制
  • Hibernate 注解映射
  • Python基础4
  • httprunner 使用总结
  • log日志模块得作用
  • 爬虫作业
  • 12.4今日博客
  • 线性回归于逻辑回归的区别
  • Confluence 6 给一个从 Jira Service Desk 的非许可证用户访问权限
  • 微信小程序实现按首字母检索城市列表
  • Linux学习笔记
  • IPFS私链搭建及常用操作命令
  • Google 是如何开发 Web 框架的
  • #Java异常处理
  • 《Java8实战》-第四章读书笔记(引入流Stream)
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • Bootstrap JS插件Alert源码分析
  • CentOS 7 防火墙操作
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • GraphQL学习过程应该是这样的
  • java第三方包学习之lombok
  • Java读取Properties文件的六种方法
  • mysql_config not found
  • nginx 配置多 域名 + 多 https
  • python 学习笔记 - Queue Pipes,进程间通讯
  • Python学习笔记 字符串拼接
  • ViewService——一种保证客户端与服务端同步的方法
  • Vue源码解析(二)Vue的双向绑定讲解及实现
  • 百度贴吧爬虫node+vue baidu_tieba_crawler
  • 七牛云 DV OV EV SSL 证书上线,限时折扣低至 6.75 折!
  • 三栏布局总结
  • 微信小程序填坑清单
  • 延迟脚本的方式
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • #图像处理
  • #预处理和函数的对比以及条件编译
  • (0)Nginx 功能特性
  • (1)(1.9) MSP (version 4.2)
  • (3)选择元素——(17)练习(Exercises)
  • (a /b)*c的值
  • (AngularJS)Angular 控制器之间通信初探
  • (C++17) optional的使用
  • (java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序】超详细~~
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (rabbitmq的高级特性)消息可靠性
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (简单有案例)前端实现主题切换、动态换肤的两种简单方式
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • (三)docker:Dockerfile构建容器运行jar包
  • (三)mysql_MYSQL(三)