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	138进制数所表示的字符(ddd)  例如'\110'实际就是字符H
	char c='\129'; // 注意这里是8进制数,报错原因是9超出范围
\uxxxx	1416进制数所表示的字符(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);

类型转换的语法:

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语言中较为基础的,需要深刻记忆,灵活运用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值