java 参数类型_Java的数据类型

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

eee4e057acfa5ef71bc8a6203ec11bfd.png

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

5881420224b0acac6ac43d2db7c4aa21.png

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

78867a2eb59972e2fda03e76f49ff9e1.png

一、整数类型

int 的范围大概在 -21亿~21亿, java目前支持二进制、八进制、十进制、十六进制的表示

二进制的表示,在数字前加0b

八进制的表示,在数字前加0

十六进制的表示,在数字前0x

例如:

public classDemo05 {public static voidmain(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);

}

}

运行结果:

b978ff12a96b5a0c38dcf0d4542b5f61.png

二进制计算规则:逢二进一,如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 classDemo05 {public static voidmain(String[] args) {float num1 = 0.1f;//浮点型的数字复制后面要加f

double num2 = 0.1;

System.out.println(num1==num2);

}

}

按照正常理解,num1 和 num2都是0.1,应该是相等,但是我们看下程序运行结果,是否为true呢?

6a830c9b3e59ab45e845a48c387fe3d3.png

是个false,说明num1 和num2不相等,原因就是 我们刚才提到的浮点数不是一个精确数,而是一个接近数,因此

不用要浮点数去做比较判断!!

思考:

public classDemo05 {public static voidmain(String[] args) {float num3 =66782382738273283728f;float num4 = num3 + 1;

System.out.println(num3==num4);

}

}

运行结果:

b634188a7bd57c282496b49d93632b8f.png

三、字符型

字符型用char表示

字符串用String表示,String不是数据类型,是一个类,可以引用这个类来操作字符串。

public classDemo05 {public static voidmain(String[] args) {char s1 = 'a';char s2 = '中';

String s3= "我爱学Java!";

System.out.println(s1);

System.out.println(s2);

System.out.println(s3);

}

}

运行结果:

c4af1a9adb031b696166394e53035da3.png

每个字符占用2个字节,背后对应一个uicode编码数字,我们可以对字符进行数值转换,如

public classDemo05 {public static voidmain(String[] args) {char s1 = 'a';char s2 = '中';

String s3= "我爱学Java!";

System.out.println((int)s1);

System.out.println(s2);

System.out.println(s3);

}

}

运行结果:

f5c9bc6a58c5ceb00093fea01140e2f8.png

我们看到在输出的s1前 增加int类型转换,那么就把字符a对应的uicode编码值97打印出来。

在字符输出的时候,也会碰到需要对字符进行格式输出,如空格,回车等,这个时候需要用到转义字符,

在字母前面加上捺斜线"\"来表示常见的那些不能显示的ASCII字符.常见的转义字符有\t,\n等

cc53be30cc976199d18c23c11d751819.png

四、布尔类型

布尔类型用boolean来定义,赋值是true或false,一般用于比较判断,if语句、while语句中

public classDemo05 {public static voidmain(String[] args) {boolean flag = true;if(flag){

System.out.println("真");

}

}

}

Java语言讲究代码精简,即less is more,像以上的if语句,初学者一般这样写

if(flag == true){}  这个一般是新手这样写的

if(flag){} ,这个是Java推荐,也是一般老手的程序员推荐的。

当然,以上两种都可以编译通过。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值