java 数字1类型_java基础1之基本数据类型

java的数据类型

7542a12083cd748d3ce827854bfeb009.png

整数型(byte、short、int、long)

27dc8c4c384f78dc1b382a7177a2d24a.png

编程过程中,默认是int类型。long类型的字面值后面需要加上L或l

008f85985f7d5b21a27b1c67b17dcf3c.png

PS:java底层,byte、short是按照32位计算的。有些运算会自动把short类型转换为int

41ce0f6bc11f6aa7add811daf8b04847.png

另外:

815855d84898c9e5f477c4db99176266.png

浮点数类型

用于表示小数的整数类型。

字面量默认是double。

2f149a24faffb4106e7d2aa7ffa80085.png

原理是二进制科学计数法:

由符号位(sign,正负),指数(exponent,2的N次幂),尾数(mantissa,二进制的小数点后的部分)组成,二进制表示形式是:sign* mantissa* 2exponent。

397cbe4846f3ac3ca05a55c21f4bc628.png

小数十进制与二进制的转换

二进制转换成十进制:跟整数转换一个原理,例如二进制11.11转换为十进制 121+120+12-1+12-2=3.75。

十进制转换成二进制:整数部分不用说了。小数部分采用乘2取整的方式,比如3.75整数部分对应的二进制是11。小数部分0.75,先乘以2等于1.5,取1.5的整数部分1。再用0.5(上次乘2的结果的小数部分)乘以2等于1.0,取1.0的整数部分1,现在已经没有小数部分了,终止。0.75对应的二进制就是.11。

比较浮点数时a0.1是不合适的,应该a-0.10。

字符类型char

是一个16位(2个字节)无符号整数,这个数值是一个字符的unicode编码值。

char的范围(0-2^16-1=65535)不能表示全部unicode。

b5dec4652f0f037bdce52c285eec73ed.png

当控制台显示"?"时,代表在本操作系统中找不到该数字对应的字库(操作系统中最多存2万多的汉字)。

控制台显示的小方框代表字符不可见。

'a'-'A'='b'-'B' 而且小写的比大写的统一码大。

\t制表符

\n转行(linux里)

\r\n回车换行(window系统里)

boolean类型

两个值,不初始化时,默认是false。

补充

对于数值类型的基本类型的取值范围,等都已经以常量的形式定义在对应的包装类中了。如:

基本类型byte 二进制位数:Byte.SIZE最小值:Byte.MIN_VALUE最大值:Byte.MAX_VALUE

基本类型short二进制位数:Short.SIZE最小值:Short.MIN_VALUE最大值:Short.MAX_VALUE

基本类型char二进制位数:Character.SIZE最小值:Character.MIN_VALUE最大值:Character.MAX_VALUE

基本类型double 二进制位数:Double.SIZE最小值:Double.MIN_VALUE最大值:Double.MAX_VALUE

注意:float、double两种类型的最小值与Float.MIN_VALUE、 Double.MIN_VALUE的值并不相同,实际上Float.MIN_VALUE和Double.MIN_VALUE分别指的是 float和double类型所能表示的最小正数。也就是说存在这样一种情况,0到±Float.MIN_VALUE之间的值float类型无法表示,0 到±Double.MIN_VALUE之间的值double类型无法表示。这并没有什么好奇怪的,因为这些范围内的数值超出了它们的精度范围。

Float和Double的最小值和最大值都是以科学记数法的形式输出的,结尾的"E+数字"表示E之前的数字要乘以10的多少倍。比如3.14E3就是3.14×1000=3140,3.14E-3就是3.14/1000=0.00314。

PS:Java基本类型存储在栈中,因此它们的存取速度要快于存储在堆中的对应包装类的实例对象。从Java5.0(1.5)开始,JAVA虚拟机(Java Virtual Machine)可以完成基本类型和它们对应包装类之间的自动转换。所有基本类型(包括void)的包装类都使用了final修饰,因此我们无法继承它们扩展新的类,也无法重写它们的任何方法。

基本类型的优势:数据存储相对简单,运算效率比较高。

实际上,JAVA中还存在另外一种基本类型void,它也有对应的包装类java.lang.Void,不过我们无法直接对它们进行操作。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值