Java数据类型

Java的数据类型

在这里插入图片描述

  • 基本数据类型

整形byte,short,int,long

二进制数的第一位是符号位 0是正数1是负数

十进制转二进制,除2取余 结果逆向
在这里插入图片描述

二进制转十进制 权相加法

eg:0111 1111
1×26+1×25+1×24+1×23+1×22+1×21+1×20=+127

216=65536

byte:1个byte字节,8位bit二进制数,-128~127
short:2个字节,16位二进制数,-2^15^~2^15^-1(最大值32767)
int:4个字节,32位二进制数,-2^31^~2^31^-1(最大值2147483647,约21亿)
long:8个字节,64位二进制数,-2^63^~2^63^-1(最大值9223372036854775807)
public class TestInt{
	public static void main(String[] args){
		int a = 100; //十进制
		int b = 015; //八进制  0开头
		int c = 0xff;  //十六进制   0x或者0X开头
		int d = 0b1001010010;//二进制   0b或者0B开头
		
		byte x = 50;
		short y = 1000;
		System.out.println(a);
		System.out.println(b);
		System.out.println(c);
		System.out.println(d);
		
		long salary = 3000000000L;//整数默认为int,如果超过了int的范围,需要末尾用l或者L来表示
		System.out.println("你的薪水是:"+salary);
		
	}
}
注意:默认使用的是int类型,如果用long类型,(当数值超过了int最大值)则需要以L或l结尾
当超过long的时候使用引用数据类型BigInteger

浮点型 float和double(不精确,不用做比较)

float:单精度浮点数,4个字节,范围-3.403E38~3.403E38,尾数精确到7位有效数字,需要使用的话,数字后面要加f或者F
double:双精度浮点数,8个字节,范围-1.798E308~1.798E308,精度大约是float的两倍,默认的浮点数都是double
注意:特别高精度要求的商业需求可以使用BigDecimal进行运算和比较
这里是引用

public class TestFloatNumber{
	public static void main(String[] args){
		float f1 = 3.14f;//浮点数默认是double,要想使用数据类型float就需要加上f或者F
		double d1 = 3.14;
		double d2 = 3.14E2;//科学计数法  3.14*10^2=314.0
		System.out.println(d1==f1);//不用做比较,不准确
		System.out.println(d1);
		System.out.println(d2);
		float f3 = 234423232323224L;
		float f4 = f3 + 1;
		System.out.println(f3==f4);//输出true 相等了,所以用作比较不准确
	}
}

字符型char 2个字节

发展史:
在这里插入图片描述
ASCII码—最多表示在28个(256个),实际上只用了128个状态
在这里插入图片描述
GB2312----2个字节表示一个汉字,一共可表示216也就是65536个
Unicode-----2个字节,65536个,主流的UTF-8编码采用一个字节一个英文,两个字节其他文字,三个字节汉字。Java使用的就是Unicode字符集

转义字符
在这里插入图片描述

/**
*测试字符型char
*/
public class TestChar{
	public static void main(String[] args){
		char c1 = 'a';
		char c2 = '中';
		char c3 = '\u0062';
		System.out.println(c1);
		System.out.println(c2);
		System.out.println(c3);
		//String不是基本数据类型,他是java提供的字符串的类
		String str = "你好中国!";
		System.out.println(str);
		//转义字符
		System.out.println("\'a\'\n\"b\"\nc\n\\d\ne\nf\ng");
		System.out.println("o\tp\tq\tr\ts\tt");
	}
}

布尔型

两种常量值:true或false
Java更新之后,在内存中占一个字节或者4个字节(一般情况是4个字节,定义布尔数组的话是1个字节),不能使用0或者1来代替,独立的类型

/*
*
*测试布尔数据类型
*/
public class TestBoolean{
	public static void main(String[] args){
		boolean b1 = true;
		boolean b2 = false;
			if(b1){   //不要写成if(b1 == true)  显得冗余  而且如果写成b1=true还会出现错误
				System.out.println("b1是true");
			}else{
				System.out.println("b1是false");
			}
	}
}
  • 引用数据类型
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值