Java的数据类型
Java的数据类型分为两大块,一个是基本数据类型,一个是引用类型,如下:

实际编程中,应当要注意下变量的范围,如byte的范围是-128~127,如果初始赋值超过范围,那么就会报错,如下aa=128赋值,超过127,就出现报错

改成在范围之内,就可以了,如下:

一、整数类型
int 的范围大概在 -21亿~21亿, java目前支持二进制、八进制、十进制、十六进制的表示
二进制的表示,在数字前加0b
八进制的表示,在数字前加0
十六进制的表示,在数字前0x
例如:
public class Demo05 { public static void main(String[] args) { //基本类型 byte num1 = 10; short num2 = 20; int num3 = 23; long num4 = 988L; //整型扩展表示 int num5 = 0b0011;//二进制表示,0~1 int num6 = 010;//八进制表示,0~7 int num7 = 0x9A;//十六进制表示,0~9,A~F System.out.println(num5); System.out.println(num6); System.out.println(num7); } }
运行结果:

二进制计算规则:逢二进一,如num5=0011,计算1*2^0+1*2^1=3
八进制计算规则:逢八进一,如num6=10,计算0*8^0+1*8^1=8
十六进制计算规则:逢16进一,如num7=9A,A表示10,计算 10*16^0+9*16^1=154
二、浮点数
浮点数为float和double表示,用float表示的时候,需要在数字最后增加一个f,如下:
float num1 = 0.1f;//浮点型的数字复制后面要加f double num2 = 0.1;
浮点数在计算里的表示是个接近值,而不是一个精确值,比如我看一个神奇的例子:
public class Demo05 { public static void main(String[] args) { float num1 = 0.1f;//浮点型的数字复制后面要加f double num2 = 0.1; System.out.println(num1==num2); } }
按照正常理解,num1 和 num2都是0.1,应该是相等,但是我们看下程序运行结果,是否为true呢?
是个false,说明num1 和num2不相等,原因就是 我们刚才提到的浮点数不是一个精确数,而是一个接近数,因此
不用要浮点数去做比较判断!!
思考:
public class Demo05 { public static void main(String[] args) { float num3 = 66782382738273283728f; float num4 = num3 + 1; System.out.println(num3==num4); } }
运行结果:

三、字符型
字符型用char表示
字符串用String表示,String不是数据类型,是一个类,可以引用这个类来操作字符串。
public class Demo05 { public static void main(String[] args) { char s1 = 'a'; char s2 = '中'; String s3 = "我爱学Java!"; System.out.println(s1); System.out.println(s2); System.out.println(s3); } }
运行结果:

每个字符占用2个字节,背后对应一个uicode编码数字,我们可以对字符进行数值转换,如
public class Demo05 { public static void main(String[] args) { char s1 = 'a'; char s2 = '中'; String s3 = "我爱学Java!"; System.out.println((int)s1); System.out.println(s2); System.out.println(s3); } }
运行结果:

我们看到在输出的s1前 增加int类型转换,那么就把字符a对应的uicode编码值97打印出来。
在字符输出的时候,也会碰到需要对字符进行格式输出,如空格,回车等,这个时候需要用到转义字符,
在字母前面加上捺斜线"\"来表示常见的那些不能显示的ASCII字符.常见的转义字符有\t,\n等

四、布尔类型
布尔类型用boolean来定义,赋值是true或false,一般用于比较判断,if语句、while语句中
public class Demo05 { public static void main(String[] args) { boolean flag = true; if(flag){ System.out.println("真"); } } }
Java语言讲究代码精简,即less is more,像以上的if语句,初学者一般这样写
if(flag == true){} 这个一般是新手这样写的
if(flag){} ,这个是Java推荐,也是一般老手的程序员推荐的。
当然,以上两种都可以编译通过。

浙公网安备 33010602011771号