八大基础类型都有哪些呢?

八大基本类型介绍

数据类型

类型名称

字节空间

范围

整数型

byte

1

-27到27-1 或者 -128到127

整数型

short

2

-215到215-1

整数型

int

4

–231到231-1

整数型

long

8

-215到215-1

浮点型

float

4

单精度,对小数部分的精度要求不高

浮点型

double

8

双精度,精确的小数部分并操作值很大时

字符

char

2

0到65535

布尔

boolean

1

真true 假false

整数型

通过代码进行验证四种整数型的取值范围,牢记知识点

//整型测试 byte short int long 
		//定义变量记录最大值 最小值
		//数据类型 数据名 数据值
		byte max=Byte.MAX_VALUE;
		System.out.println(max);//127
		byte min=Byte.MIN_VALUE;
		System.out.println(min);//-128
		short smax=Short.MAX_VALUE;
		System.out.println(smax);//32767
		short smin=Short.MIN_VALUE;
		System.out.println(smin);//-32768
		int imax=Integer.MAX_VALUE;
		System.out.println(imax);//2147483647
		int imin=Integer.MIN_VALUE;
		System.out.println(imin);//-2147483648
		long lmax=Long.MAX_VALUE;
		System.out.println(lmax);//9223372036854775807
		long lmin=Long.MIN_VALUE;
		System.out.println(lmin);//-9223372036854775808

代码中含有一些还没有学到的知识点,在这先简单的说一下
Byte\Short\Integer\Long 这四个分别是byte\short\int\long的包装类型(引用类型),在这里尤其注意int类型的包装类型。

  包装可以这样理解:比如,对于每个人(people)来说,都有自己的名字(name),性别(gender)和年龄(age)等属性(或者功能–吃喝拉撒),而包装类能就是把这些属性和行为功能全部打包装到一起,打包后我们用它的首字母大写来表示它的包装类。然后,我们通过People.name的方式调出它的方法(通过英文点的方式调用)。

** 这方面的内容后期会专门讲解,一步一步来,不要急 **

浮点类型、字符类型和布尔类型

//浮点型 float double
		float fmax=Float.MAX_VALUE;
		System.out.println(fmax);//3.4028235E38
		float fmin=Float.MIN_VALUE;
		System.out.println(fmin);//1.4E-45

		double dmax=Double.MAX_VALUE;
		System.out.println(dmax);//1.7976931348623157E308
		double dmin=Double.MIN_VALUE;
		System.out.println(dmin);//4.9E-324
		
		//布尔类型
		boolean b=false;
		boolean b1=true;
		
		//字符型
		char c='a';//可以存一个字符
		char c2=97;//可以打印一个数字
		char c3='中';//可以存一个汉字
		//char 类型可以存数字,但是在打印的时候,会查ascii码表确定相应数字对应的字符
		System.out.println(c);
		System.out.println(c2);
		System.out.println(c3);

这里需要注意char的包装类型是character,这里没有用到。 char类型可以是一个字符和数字,甚至是一个汉字。char 类型可以存数字,但是在打印的时候,会查ascii码表确定相应数字对应的字符。

整数类型的字面值–这里就用到了每个整数类型的取值范围了

整数型的字面值都是int类型,浮点类型的字面值是double类型,强行记住就行,基本知识点

int a=9999;//没有超过int 类型的取值范围
float f = 3.0;//错误,右面的字面值是double类型,左面是float类型,放不下的。

  byte,short,char三种比int小的整数可以用范围内的值直接赋值

byte b = 127;
byte b2 = 128;//右面128字面值是int类型,已经超出byte取值范围

  字面值后缀LFD

long a = 999999999999L;// 999999999999字面值是int类型,但是超出了int取值范围,会报错,解决方案就是加后缀L,从int转成long
float b = 3.0F;//3.0字面值是double类型,加后缀F会变成floa类型
double d = 3D;//3字面值是int类型,加后缀D,会变成double类型

==另一个知识点,基本类型的转换

java 满减 java small_java 满减

数据间的转换,根据上面的图片就可进行小转大或者大转小,多加练习即可,不难

//小转大/隐形
		byte a=10;
		long b=a;
		System.out.println(b);
//大转小,强制转换
		double c=3.415545256;
		int d=(int)c;

理解运算规则

//计算结果的数据类型,与最大类型一致
     System.out.println(3/2);//1,int/int,得到的结果类型还是int
     System.out.println(3/2d);//1.5,int/double。得到的结果是double

//byte,short,char三种比int小的整数,运算时会先自动转换成int
      byte a = 1;
      byte b = 2;
      byte c = (byte)(a+b);//a+b会自动提升成int类型,右面得运算结果就是int大类型,给左面的byte小类型赋值,不可以,需要强转。

//整数运算,类似于一个钟表,转到最大时,再转会回到最小。
//计算:光速运行一年的长度是多少米?3亿m/s
//溢出的现象:因为做了大的整型数据的运算,会超出int取值范围。解决方法:把整数提升成long类型。
       System.out.println(300000000L*60*60*24*365);

//浮点数的特殊值
        Infinity 无穷大  3.14/0
        NaN  not a number   0/0.0