常量,变量和数据类型

1.常量(Constant)

关于final:

将变量声明为final,final int AGE = 18;  AGE将不能修改 

常量命名规范:字母大小写+ _     如 MAX_VALUE

2. 变量(Variable)

变量的定义是: 用来命名一个数据的标识符
1949 这是一个数字,代表某年

如果要命名这个数字,在java里就会写成:

int year = 1949;


int 是数据类型,表示是整数
year 是一个标识符
= 是赋值操作符
1949 是一个数字类型的值
; 表示该行结束

year 这个标识符就是一个变量,它代表1949这个值

变量的本质就是一小块内存区域。就变量来说,该在内存里面分配多大的存储空间呢?不同的变量类型分配不同大小的存储空间,每一个变量都是属于特定的数据类型的,声明成不同的数据类型,它就在内存里面分配不同的存储空间。

局部变量必须初始化才能使用

成员变量是对象的成员变量,不被static修饰的,不初始化一般自动初始化为该类型的默认值

 静态变量,用static 修饰,也叫类变量,生命周期从类的加载到卸载。

另:引用数据类型用于引用对象,都是4个字节

每个对象必须声明一个类型,一共8种类型

4个整型    byte 1字节 short 2字节 int 4字节 long 8字节

C语言定义的变量在不同的操作系统上所占的大小是不一样的,声明一个int类型的变量,在Windows下面占32位,但放到Linux下面就有可能只占16位,那么这时候很可能表示的大小就不一样了,在Windows下声明一个很大的数,在Linux下面很可能就会溢出。因此这就是C语言为什么在编译完成之后不能移植的原因

八进制:0开头  

十六进制:0x开头

二进制:0b开头

byte类型的表示范围是-128~127(0X80~0X7F)

变量a是一个64位有符号的整数,初始值用16进制表示为:0x7FFFFFFFFFFFFFFF;变量b是一个64位有符号的整数,初始值用16进制表示为:0x8000000000000000。则a+b的结果用10进制表示为多少?

1)a+b的16进制表示为:OxFFFFFFFFFFFFFFF(16位F),转为2进制为111……111(64位1,每个F->4位2)。

(2)有符号数:是针对二进制来讲的。用最高位作为符号位,“0”代表“+”,“1”代表“-”。所以a+b的结果是一个负数。

(3)计算机中负数是以补码的形式保存的,将补码转换成原码的计算方式如下:

        ①. 对于正数,原码与补码相同。

        ②.对于负数,将补码除符号位之外,按位取反,末位加1,即得到原码。

(4)a + b = 111……111(64位1)

          取反:100……000(1位1,后面63位0)

          加一:100……00(中间62位0)

      10进制:-1。

2个浮点类型 

 

double精度是float(7位)的两倍,称为双精度。浮点数计算的三个溢出:正无穷,负无穷,NaN(不是一个数字)。0/0为NaN,正整数除以0为正无穷。由于所有非数值都不同,使用if (Double.isNaN(x)) 

检查一个数是否是非数值,因为容易舍去误差,所以金融方面使用java.math下BigDecimal类(任意精度浮点数运算)进行比较

BigInteger(任意精度整数运算)

3.char

字符串常量,最好用抽象数据类型String 代替

用单引号'表示 (双引号表示字符串)

其长度和short一样,也是2字节的
只能存放一个字符,超过一个字符就会产生编译错误

  • 转义字符
  • \n  换行符
  • \b  退格符
  • \r  回车
  • \t  制表符
  • \\  反斜杠
  • \"  双引号
  • \'  单引号

4.boolean(1位 bit)

整数型和布尔型不能转换

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值