基本数据类型

//Main.java
/*Java基本数据类型分为三类:
 *1.数值型:包括整数类型byte(8),short(16),int(32),long(64)和浮点类型float(32),double(64)
 *2.字符型:char(16)和转义字符,注意:不同于c,java里char占两个字节
 *3.布尔型:boolean
 */
public class Main{

	public static void main(String[] args){
		
		/*数值型:整数类型
		byte:一个字节		[-128,127],为什么是-128,去看原码,补码吧
		short:两个字节		[-32768,32767]
		int:四个字节		[-2^31,2^31-1]
		long:八个字节		[-2^63,2^63-1]
		在赋值时,比如97,可以写成:97(十进制),0141(八进制,以0开头),0X61(十六进制,以0X开头,X可小写)
		再比如0,可以写成0,00,0x0
		此外,数值常量默认为int,所以8888888888888888888得写成8888888888888888888L(L可小写)
		*/
		byte x1;
		short x2,x3;
		int x4=0141,x5,x6=0X61;//这里x5仍然是只是声明
		long x7=97,x8=8888888888888888888L;//不加L会报错
		long result=x4+x6+x7+x8;
		System.out.println(result);
		
		/*数值型:浮点类型
		float:四个字节		[1.4E-45,3.4028235E38]
		double:八个字节		[4.9E-324,1.7976931348623157E308]
		此外,浮点类型默认为double,所以给float型赋值时得加上F(F可小写),而double的D(D可小写)可不加
		*/
		float f1=0.1F;//这么记,整型里最长的加L,浮点型里最短的加F
		double d1=4.2D;
		double d2=4.3;
		System.out.println(d1+d2+f1);//输出8.600000001490116
		//这么写不行,float转换为double会有问题,4个字节强制扩为8个字节会有乱七八糟的东西进来
		//所以这里的输出结果并不是8.6.不光混合运算不行,直接(double)f1也不行
		System.out.println(f1+(float)d1+(float)d2);
		//反之则不会有问题,这里可以输出8.6.前提d1,d2在float取值范围内
		
		/*字符型:char,占两个字节,字符常量需用单引号括起来,区别'a'和"a"
		字符采用unicode编码,两个字节,取值范围[0,65535],共65536种字符,字符和数字一一对应
		*/
		char c1='a';
		char c2=97;//'a'对应的unicode编码为97,这里实际上右边被强制转换了:(char)97
		System.out.println(c1+c2);//两个char相加可是会转换为int的,区别于字符串相加,这里输出194
		
		/*字符型:转义字符
		字符常量有两种表示方式,一是直接用单引号括起来,另一种是将其对应的unicode编码强制转换为char
		前者与转义相关的是字符无法打出来或比较特殊.\b:退格 \t:制表符 \n:换行 \f:换页 \r:回车 \' \" \\
		后者不知道意义何在,直接强转不行吗,\*:一位八进制,\**:两位八进制,\***:三位八进制,
		\\u****四位十六进制,即直接加数字就是八进制,可以一位两位三位,加u再加数字就是十六进制,必须四位
		以!为例,对应unicode编码33,八进制041,十六进制0X21
		*/
		System.out.println('\\');
		System.out.println((char)33);//输出!
		System.out.println((char)041);//输出!
		System.out.println((char)0X21);//输出!
		System.out.println('\41');//输出!
		System.out.println('\041');//输出!,注意,八进制最多三位,041可以0041就不行了
		System.out.println('\u0021');//输出!,注意,十六进制强制四位,必须\u0021,而不能是\\u21
		
		//布尔类型,只有true和false两个值,注意,java中布尔类型不能与整数类型相互转换的		
		boolean bb1;
		boolean bb2,bb3;
		boolean bb4=true;
		System.out.println(bb4);
		System.out.println(!bb4);
		//取反倒可以,输出false
	}
}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值