Java定义了8大基本数据类型

Java定义了8大基本数据类型

数值型:byte、short、int、long、float、double

字符型:char

布尔型:boolean

目录

在这里插入图片描述

1、 图示

2、整型

3、浮点型

4、字符型

5、布尔型

1、 图示

数据类型
序号 数据类型 名称 封装类 占用存储空间(字节) 位 取值范围 默认值 备注
1 byte 位 Byte 1 8 -272^7^-1(-128127) (byte)0 一个字节8位,用一位来表示符号,中间还有一个0
2 short 短整数 Short 2 16 -2152^15^-1(-3276832767) (short)0
3 int 整数 Integer 4 32 -2312^31^-1(-21474836482147483647)约21亿 0
4 long 长整数 Long 8 64 -263~263-1 0L
5 float 单精度 Float 4 32 -3.403E38~3.403E38 0F E38表示10的38次方
6 double 双精度 Double 8 64 -1.798E308~1.798E308 0D
7 char 字符 Character 2 16 0~65535 ‘/uoooo’(null) 2的16次方为65536
8 boolean 布尔 Boolean false
public class TestDataTypeRange {

static byte a;  
static short b;  
static int c;  
static long d;  
static float e;  
static double f;  
static char g;  
static boolean h;  
//String不是基本类型    
static String str1 = "";//生成一个String类型的引用,而且分配内存空间来存放"";  
static String str2; //只生成一个string类型的引用;不分配内存空间,默认为null  
/**
 * @param args
 */
public static void main(String[] args) {
	System.out.println("byte的大小【"+Byte.SIZE+"】byte的默认值【"+a+" 】byte的数据范围【"+Byte.MIN_VALUE+"~"+Byte.MAX_VALUE+"】");     
	System.out.println("short的大小【"+Short.SIZE+"】 short的默认值【"+b+"】short的数据范围【"+Short.MIN_VALUE+"~"+Short.MAX_VALUE+"】");     
	System.out.println("int的大小【"+Integer.SIZE+"】int的默认值【"+c+"】int的数据范围【"+Integer.MIN_VALUE+"~"+Integer.MAX_VALUE+"】");     
	System.out.println("long的大小【"+Long.SIZE+"】long的默认值【"+d+"】long的数据范围【"+Long.MIN_VALUE+"~"+Long.MAX_VALUE+"】");     
	System.out.println("float的大小【"+Float.SIZE+"】float的默认值【"+e+"】float的数据范围【"+Float.MIN_VALUE+"~"+Float.MAX_VALUE+"】");     
	System.out.println("double的大小【"+Double.SIZE+"】double的默认值【"+f+"】double的数据范围【"+Double.MIN_VALUE+"~"+Double.MAX_VALUE+"】");     
	System.out.println("char的大小【"+Character.SIZE+"】char的默认值【"+g+"】char的数据范围【"+Character.MIN_VALUE+"~"+Character.MAX_VALUE+"】");     
	System.out.println("前"+'\u0000'+"后");
	System.out.println(g=='\u0000');
	System.out.println("char的大小【"+Character.SIZE+"】char的默认值【"+(int)g+"】char的数据范围【"+(int)Character.MIN_VALUE+"~"+(int)Character.MAX_VALUE+"】");     
	System.out.println("boolean的大小【"+Byte.SIZE+"】boolean的默认值【"+h+"】boolean的数据范围【"+Byte.MIN_VALUE+"~"+Byte.MAX_VALUE+"】");     
    
	System.out.println("String字符串的默认值【"+str1+"】的默认长度【"+str1.length()+"】");     
	System.out.println("String字符串的默认值【"+str2+"】");     
}

}

结果

byte的大小【8】byte的默认值【0 】byte的数据范围【-128~127】
short的大小【16】 short的默认值【0】short的数据范围【-32768~32767】
int的大小【32】int的默认值【0】int的数据范围【-2147483648~2147483647】
long的大小【64】long的默认值【0】long的数据范围【-9223372036854775808~9223372036854775807】
float的大小【32】float的默认值【0.0】float的数据范围【1.4E-45~3.4028235E38】
double的大小【64】double的默认值【0.0】double的数据范围【4.9E-324~1.7976931348623157E308】
char的大小【16】char的默认值【 】char的数据范围【 ~】
前 后
true
char的大小【16】char的默认值【0】char的数据范围【0~65535】
boolean的大小【8】boolean的默认值【false】boolean的数据范围【-128~127】
String字符串的默认值【】的默认长度【0】
String字符串的默认值【null】
看到控制台的输出的true,就会发现,其实char类型的默认值就是’/uoooo’(null),这是unicode编码,只是控制太输出不出来,把他转为int类型后,发现其实就是0;

2、整型
整型用于表示没有小数部分数值,它允许是负数。整型的范围与运行Java代码的机器无关,这正是Java程序具有很强一直能力的原因之一。与此相反,C和C++程序需要针对不同的处理器选择最有效的整型。

Java语言整型常量的四种表示形式

二进制整数(以0b或者0B开头),如:0b00001011

八进制整数(以0开头),如:016

十进制整数(默认),如:100,-350,0

十六进制整数(以0x或0X开头),如:0x16

public class TestInteger {
public static void main(String[] s){
int a = 0b00001011; //二进制
short b = 016; //八进制
int c = 16; //十进制,默认
long d = 0x16; //十六进制
System.out.println(“a=”+a);
System.out.println(“b=”+b);
System.out.println(“c=”+c);
System.out.println(“d=”+d);
}
}
结果

a=11
b=14
c=16
d=22
3、浮点型
带小数的数据在Java中称为浮点型。浮点型可分为float类型和double类型。

float类型又被称作单精度类型,尾数可以精确到7位有效数字,在很多情况下,float类型的精度很难满足要求。而double表述这种类型的数值精度约是float类型的两倍,又被称作双精度类型,绝大部分应用程序都采用double类型。浮点类型常用默认类型也是double.

Java浮点类型常量有两种表示形式

十进制数形式,如:3.33、333.0、0.333

科学计数法形式,如:314e2、314E2、314E-2

public class TestFloat {
public static void main(String[] s){
float a = 3.33f;
float b = 016; //八进制
float c = 333e-2F;
double d = 333E2;
System.out.println(“a=”+a);
System.out.println(“b=”+b);
System.out.println(“c=”+c);
System.out.println(“d=”+d);
}
}
结果

a=3.33
b=14.0
c=3.33
d=33300.0
浮点型不精确,一定不要用于比较

public class TestFloat2 {
public static void main(String[] s){
float a = 123123123f;
float b = a+1;
float c = 0.03f;
float d = 0.3f/10;
double e = 0.03;
System.out.println(“a=”+a);
System.out.println(“b=”+b);
System.out.println(ab);
System.out.println(“c=”+c);
System.out.println(“d=”+d);
System.out.println(“e=”+e);
System.out.println(c
e);
}
}

结果

a=1.2312312E8
b=1.2312312E8
true
c=0.03
d=0.030000001
e=0.03
false
发现,b在a的基础上+1;结果还是和a一样。c和d的输出结果不一致。c和e的输出结果一致,但是比较的时候,却为flase.

Java.math包下面的两个有用的类:BigInteger和BigDecimal,这两个类可以处理任意长度的数值。BigInteger实现了任意精度的整数运算。BigDecimal实现了任意精度的浮点数运算。

4、字符型
字符型在内存中占2个字节,在Java中使用单引号来表示字符常量。例如‘禄’是一个字符,而“A表示一个字符串。

char类型用来表示在Unicode编码表中的字符。Unicode编码被设计用来处理各种语言的文字,它占用2个字节,可允许有65536个字符,所以char类型的取值范围是0~65535,通常是从’\u0000’到’\uFFFF’之间的十六进制的值来表示(u为前缀表示Unicode)

转义字符
转移符 含义 Unicode值
\b 退格(backspace) \u0008
\n 换行 \u000a
\r 回车 \u000d
\t 制表符 \u0009
" 双引号 \u0022
’ 单引号 \u0027
\ 反斜杠 \u005c
public class TestChar {

/**
 * @param args
 */
public static void main(String[] args) {
    char a = '\u7984';              //字符'禄'的Unicode编码
    char b = '禄';
    System.out.println(a);
    System.out.println(a==b);
    System.out.println(a+b);		//当做数学运算
    System.out.println(a+b+"");		//先运算,在当做字符串相加
}

}

结果


true
62216
禄禄
62216
5、布尔型
boolean类型有2个常量值,true和false,在内存中占一位(不是一个字节),不可以使用0或者非0的整数代替true和false,因为前者占几个字节,二后者值占一位,这点和C语言不同。boolean类型用来判断逻辑条件,一般用于程序流程控制。

public abstract class TestBoolean {

/**
 * @param args
 */
public static void main(String[] args) {
	boolean a = false;
	if(a){
		System.out.println("第一个"+a);
	}
	if(a == false){
		System.out.println("第二个"+a);
	}
	if(a = true){
		System.out.println("第三个"+a);
	}
}

}

结果

第二个false
第三个true
第一个条件不满足;第二个条件false,满足;第三个条件先赋值true,然后再判断,满足。所以不建议第二和第三种写法,因为有可能把“”写成“=”,导致程序出错。
————————————————
版权声明:本文为CSDN博主「深知她是一场梦」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lgl782519197/article/details/89497877

写的很好,收藏起来

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值