Java基础--数据类型

举报
游离 发表于 2023/02/02 20:09:00 2023/02/02
【摘要】 Java数据类型总览图:整型变量(int)4 个字节表示的数据范围是 [-2^31,2 ^31-1]java的变量的不初始化就不能使用,就会报错( 安全性!)int重点:5、标示符的命名规则标示符:字母 数字 下划线 $Ineger->包装类-》还是整型长整型变量(long)long是8个字节public class HelloWorld { public static void main(...

Java数据类型总览图:

整型变量(int)


4 个字节表示的数据范围是 [-2^31,2 ^31-1]





java的变量的不初始化就不能使用,就会报错( 安全性!)

int重点:


5、标示符的命名规则

标示符:字母 数字 下划线 $


Ineger->包装类-》还是整型

长整型变量(long)

long是8个字节

public class HelloWorld {
	public static void main(String[] args) {
	    long a=10L;//建议使用大写L
		System.out.println(a);
	}
}
复制代码

运行过程及结果

C:\Users\chuanfei>d:

D:\>cd D:\javacode\20220327

D:\javacode\20220327>javac HelloWorld.java  -encoding utf-8

D:\javacode\20220327>java HelloWorld
10
复制代码


         public class HelloWorld {
	public static void main(String[] args) {
         long a=10L;
		System.out.println("最大值是:" + Long. MAX_VALUE);//+的作用是拼接
		System.out.println("最小值是:" + Long. MIN_VALUE);
		System.out.println("a的值是" + a);
		}
}              
//运行结果是:	
//D:\javacode\20220327>java HelloWorld
//最大值是:9223372036854775807
//最小值是:-9223372036854775808
//a的值是10
复制代码

long的包装类是Long



双精度浮点数类型变量(double)

double是8个字节

int a = 1;
int b = 2;
System.out.println(a / b);
// 执行结果是0(与C语言一样)
//如果想得到 0.5, 需要定义 double 类型计算.
复制代码

image-20220328175130326

double num = 1.1;
System.out.println(num * num)
// 执行结果
1.2100000000000002
//double存在一定的精确值      
复制代码

小数建议使用double

单精度浮点数类型变量(float)

public class TestDemo{
public static void main(String[] args){
    float d=12.5;
		System.out.println(d);
  }
}
//java规定小数默认是double类型,而double是8个字节,float是4个字节,所以会报错
//应在小数后面加上f
复制代码

float的包装类是Float

字符类型变量(char)

public class TestDemo{
public static void main(String[] args){
    	char ch='a';
		System.out.println(ch);
		char ch2='邓';
		System.out.println(ch2);
		char ch3=97;
		System.out.println(ch3);
}
}
复制代码

char类型的编码表是Unicode,拥有更加多的字符,包括中文,所以char是2个字节

char的取值范围是0-65535,不存在负数

char的包装类是Character

字节类型变量(byte)

byte的取值范围是-128~127

public class TestDemo{
public static void main(String[] args){
    byte a=12;
		byte b=98;
		System.out.println(a+b);
		System.out.println(a +" "+  b);
		System.out.println(Byte.MAX_VALUE);
		System.out.println(Byte.MIN_VALUE);
 }
}
//打印结果为
//110
//12 98
//127  最大值
//-128 最小值
复制代码


但是,byte与int的最大值+1却不一样

System.out.println(Byte.MAX_VALUE+1);打印出来的是128,因为println是以整型进行打印的,此时就把右边当做是整型了,所以会打印128

image-20220328183033148


1是整型,所以==Byte.MAX_VALUE+1就会发生整型提升==,所以右边就会变成整型,而左边是byte类型的,整型是8个字节,byte是4个字节,放不下,所以会报错。

无论是什么类型的数据,都不能放超过其最大取值的数字,否则就会报错。

整型提升

小于4个字节的数据类型(byte char short )运算的时候,会发生整型提升

public class TestDemo{
public static void main(String[] args){
    	byte a=10;
		byte b=30;
		byte c=a+b;//10和30是整型,而c是byte类型的,所以发生类型冲突,进而报错
    	byte c=(byte)a+b;//改进:类型强转
         int c=a+b;//transform c to int 
		System.out.println(c);  
}       
}
复制代码

int 与char 的最大值加一比较:


短整型变量(short)

short是两个字节,取值范围是-32767~32768

public class TestDemo{
public static void main(String[] args){
   		System.out.println(Short.MAX_VALUE+1);//最大值是32768
		System.out.println(Short.MIN_VALUE+1);//最小值是-32767
}
}
复制代码

布尔类型(boolean)

在Java中,布尔类型没有明确的大小

==在Java中,布尔类型只有两个取值:true 和 false==

在Java中真就是true 假就是false,不存在 0为假,非0为真

布尔类型的包装类是Boolean

总结

 欢迎点赞收藏关注,感谢大家的支持!

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。