Java语⾔中的基本数据类型
Java语⾔中的数据类型
Java中的数据类型分为:基本数据类型和引⽤数据类型(学习见解不到位,暂时不做介绍)
基本类型(原⽣类型)
基本类型是指不能再分解的数据类型,其数据在函数的调⽤中是以传值⽅式⼯作的。
简单数据类型代表单值,⽽不是复杂的对象
Java是完全⾯向对象的,但简单数据类型却不是,它们类似于其他⼤多数⾮⾯向对象语⾔中的简单数据类型。这样做的原因是出于效率⽅⾯的考虑。在⾯向对象中引⼊简单数据类型不会对执⾏效率产⽣太多的影响。
Java编程语⾔有⼋个原始数据类型,可分为4种整型、浮点数、字符型数据和布尔型数据,不会随着计算机类型⽽变化的,注意Java具有平台⽆关性,所以不论硬件平台是什么,1B都是8位 【B表⽰字节,b表⽰位】
整型
有4种:byte字节整、short短整、int整、long长整
java中的数据采⽤的是补码的存储⽅式
原码、反码、补码:正数没有区别,最⾼位为符号位,java中没有⽆符号整数的概念
16机制15=1*16+5*16^0=21
10进制的21=00010101=15
byte:1B(8b): -128到127
byte k=(byte)3000;//如果不进⾏数据类型转换,则IDE⼯具会报错。但是将⼤范围数据强转[窄化操作]为⼩类型变量会有精度损失
short:2B:-32768到32767
int:4B:-2147483648到2147483647
//具体数据取值范围的查询⽅法
public class Zuo2 {
public static void main(String[] args){
System.out.println(Long.MAX_VALUE);//上限
System.out.println(Integer.MIN_VALUE);//下限
}
}
long:8B:-9223372036854775808到9223372036854775807
⼗进制整数。如123,-456,0。
⼋进制整数。以0开头,如0123表⽰⼗进制数83,-011表⽰⼗进制数-9。
⼗六进制整数。以0x或0X开头,如0x123表⽰⼗进制数291,-0X12表⽰⼗进制数-18。
⼆进制整数,以0b或0B开头,例如0b10110010。
整数类缺省为int类型,如在其后有⼀个字母“l或者L”表⽰⼀个long值
short k1=123;
k1=k1+1;//报错的原因是1默认是int类型,所以计算结果为int类型,需要进⾏窄化操作
short k=Short.MAX_VALUE;
k+=1;//+=这个运算符会⾃动进⾏数据类型转换
浮点数类型
float单精度、double双精度
在Java中浮点数⽆法精确存放,除⾮使⽤BigDecimal
在⾦融系统中针对浮点数⼀般都会转换为整数进⾏处理
float:4B:1.4E-45到3.4028235E38 保存7-8位有效数据
double:8B:4.9E-324到1.7976931348623157E308 保存15-16位有效数据
默认浮点数类型为double,如果需要使⽤float,则默认添加f或者F
注意:浮点数⽆法精确存放
float f1=1.23;
float f2=2-0.77f;
//判断f1和⾮相等,使⽤f1==f2是错误的
public class Zuo2 {
public static void main(String[] args){
float k=0;//这⾥不报错的原因是0为int类型,计算中会⾃动转换为float
for(int i=0;i<10;i++){
k=k+0.1f;//如果不写0.1f则报错,因为系统识别0.1为double类型,则计算结果为double。
}
System.out.println(k);//1.0000001
}
}
表⽰⽅法:
⼗进制数形式。由数字和⼩数点组成,且必须有⼩数点,如0.123, 1.23, 123.0
科学计数法形式。如:123e3或123E3,其中e或E之前必须有数字,且e或E后⾯的指数必须为整数字符类型 char
Java中存放字符采⽤的是Unicode编码字符集,2B,0-65535
可以充当整形数进⾏计算
其中允许的字符包括中英⽂等,实际可以包含全世界范围的所有⽂字
windows默认编码字符集为GB18030(GBK)
//字符类型的变量可以当作整数使⽤
char c='a';//注意:这⾥使⽤的是单引号,不是双引号,单引号中只能包含⼀个字符
查询对应字符的整形值
char c='中';
System.out.println((int)c);
Java也提供转义字符,以反斜杠(\)开头,将其后的字符转变为另外的含义
\ddd 1到3位8进制数所表⽰的字符(ddd)例如'\110'实际就是字符H
char c='\129';// 注意这⾥是8进制数,报错原因是9超出范围
\uxxxx 1到4位16进制数所表⽰的字符(xxxx),例如'\u9110'表⽰字符'鄐'
\’ 单引号字符,例如'\''
\" 双引号字符,例如'"'实际上是可以的,但是这样写可读性⾮常差,所以建议使⽤'\"'
\\ 反斜杠字符
布尔类型
boolean数据类型有两种⽂字值:true真和false假
在Java编程语⾔中boolean类型只允许使⽤boolean值,在整数类型和boolean类型之间⽆转换计算
boolean bb=0;//语法错误
基本数据类型转换
⼩转⼤⾃动转换
byte b1=123;
long k1=b1;
double kk=k1;
System.out.println(kk);
⼤转⼩需要强制转换–窄化操作,可能会有数据精度丢失
double dd=123.567;
long kk=(int)dd;
System.out.println(kk);
java语言使用的字符码集是类型转换的语法:
int k=100;
char cc=(char)k;//强制类型转换:窄化操作
char k='d';
System.out.println((int)k);
boolean bb=true;
System.out.println((int)bb);//语法错误,因为boolean类型和数值类型之间没有任何对应关系,所以这⾥的强转会报语法错误
float f1=123.456;//语法报错,因为系统默认带⼩数点的数据为double类型,所以123.456是double类型的数据,⽽声明f1为float,所以这⾥需要进⾏数据类型转换或者进⾏特殊声明。如果浮点数转换为整
数是直接截断⼩数部分。
float f1=(float)123.456;
float f1=123.456f;//数字末尾的f类似于数字末尾的L,⽤于进⾏数据类型的说明,f/F表⽰这是⼀个float类型的数据 d/D表⽰是⼀个double类型的数据
复合数据类型
复合数据类型包括:class类、interface接⼝、数组。
null 索引在运⾏时并没有对应的类型,但它可以被转换为任何类型(不能是简单类型)。在虚拟机中null是⼀个固定位置上数据
Object b=null;
System.out.println(null==b);//返回为true
//在数据库中bb=null是永不为真,bb!=null是永不为真。只能使⽤is null或者is not null进⾏判断
索引类型的默认值就是null
常量
常量就是指在程序执⾏期间其值不能发⽣变化的数据,常量是固定的。如整型常量123【字⾯量】,实型常量1.23,字符常量’A’,布尔常量true等
总结
数据类型是Java语⾔中较为基础的,需要深刻记忆,灵活运⽤。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论