一、数据类型
从下图中,我们可以很清晰的看出Java中的类型,其中红色方框中的是Java的4种基本数据类型:
下面我们来详细讲解上图中的基本类型:
1.整数类型
1) 在Java中,整数类型共有4种,它们有固定的表述范围和字段长度,且不受具体的操作系统的影响,保证了Java的跨平台性
2) Java语言中,整数有三种表现形式,分别是:
a. 十进制整数,如 120, -31, 0
b. 八进制整数,要求以0开头(注意这是数字0,不是字母o),如:012,
c. 十六进制整数,要求以0x开头(注意这是数字0,不是字母o),如: 0x12
3) Java语言中,默认的整数类型是int类型,声明long类型的时候,后面必须要加个l(字母L的小写,不是大写字母I,也不是数字1)或者L,建议使用大写L,防止和数字1,大写字母I混淆,如:30L, 30l
4) Java中四种整数类型的表述范围:
2.浮点类型
1) 与整数类型一样,同样有固定的表述范围和字段长度,且不受具体的操作系统的影响,保证了Java的跨平台性
2) Java语言中,浮点类型有两种表现形式,分别是:
a. 十进制数形式, 如3.14
b. 科学计数法,如,3.14e2, 3.14e-2, -3.14E2
3) Java语言中,默认的浮点数类型是double,声明float类型的时候,后面必须添加字母f或者F,如3.14F,3.14f
4) Java中两种浮点类型的表述范围:
3. 字符类型
1) 字符类型是用''单引号括起来的单个字符,例如char c = 'w'; char a = '中';
2) Java字符采用Unicode(全球语言统一编码)编码,每个字符占两个字节,因而可用16进制编码形式表示,如:char c = '\u0061'
3) Java中允许使用转义字符'\'将其后面的字符转换成其他含义, 如: char c = '\n'; //表示换行
4.布尔类型
1) boolean类型的值只有两种:true, false
2) boolean类型不可以转换为其他的数据类型
5.基本数据类型的转换
1) boolean不可以转换为其他的数据类型
2) 整数型,浮点类型,字符型是可以相互转换的,转换时遵守下面的原则:
a. 容量小的类型自动转换为大的类型,数据类型按容量大小排序为:
byte, short, char < int < long <float < double
b. byte, short, char 三种类型间不会相互转换,他们三者在计算时,首先会转换为int类型
c. 容量大的类型在转换为小的类型的时候,必须加上强制转换符,此时可能造成精度降低或者溢出问题
d. 有多种数据类型混合计算的时候,系统首先自动转换为容量最大的那个类型再来继续计算
e. 实数类型默认为double类型,如, 1.2; 整数类型默认为int类型,如 1
二、JVM对基本类型的处理
1.常量池技术
1) java中基本类型的包装类的大部分都实现了常量池技术,这些类是Byte,Short,Integer,Long,Character,Boolean,另外两种浮点数类型的包装类则没有实现。
2) Byte,Short,Integer,Long,Character这5种整型的包装类也只是在对应值小于等于127时才可使用对象池
下面我们主要使用Long类型来进行讲解吧。
首先我们先写一个测试类:
LongTypeTest.java

1package com.kevin.basetype;23publicclass LongTypeTest {45publicstaticvoid main(String[] args) {6long longParam = 30L;7 Long longParam2 = 30L;8 }9 }