2-Java数据类型(基本数据类型)

Java数据类型分为两大类:基本数据类型、引用类型

本文为基本数据类型知识点 

1. 基本数据类型有8种:数值型 [byte , short , int , long , float ,double]和字符型char, 布尔型boolean

2. 引用类型有3种:类,接口, 数组

一、整型(byte , short , int , long

1. 默认为int型,若不够表示大数,才使用long(末尾l或L)

2. 每个整型有固定的范围和字节长度,不受具体操作系统的影响,以保证Java程序的可移植性

二、浮点型(float ,double

1. 默认为double型,声明float需加f或F,通常使用double,更精确

2. 浮点型常量有两种表示形式:十进制和科学计数法

十进制:5.12     51.2f   必须有小数点

科学计数法:5.12e2 (5.12×10^2)      5.12e-2 (5.12/10^2)

3. 关于浮点数在机器中存放形式的简单说明,浮点数=符号位+指数位+尾数位 

4. 尾数部分可能丢失,造成精度损失(小数都是近似值)

浮点数陷阱:比较2.7和8.1/3
double num1 = 2.7;
double num2 = 8.1 / 3;  //接近 2.7 的一个小数,而不是 2.7
if(Math.abs(num1 - num2) < 0.00001){
    System.out.println("两数相等");
    // 如果是直接查询得的小数或是直接赋值,可以判断相等
}

三、字符型(char)

1. 表示单个字符,用单引号,两个字节(可以存放汉字),多个字符用字符串 String

2. 本质是一个整数,输出的是Unicode码对应的字符,可以赋给char一个整数,输出时会输出对应的字符(97—‘a’),char可以进行运算,相当于一个整数。

3. 各种字符编码表 

(1). ASCII码:英语字符与二进制,缺点是不能表示所有字符
(2). Unicode:包括世界上所有的符号,每个符号赋予一个独一无二的编码,没有乱码问题;缺点是汉字和英文字母都占用2字节,浪费存储空间;最多编码2^16=65536个字符,与ASCII码兼容(0~127一致)
(3). UTF-8:改进的Unicode,目前使用最广,是一种变长的编码方式,使用1~6个字节表示符号,字母1字节,汉字3字节

四、布尔型(boolean)

1. 只取值true和false(没有null) ,一个字节

2. 逻辑运算,流程控制(if、while、do-while、for)

五、基本数据类型转换(自动类型转换、强制类型转换) 

1. 自动类型转换:精度(即容量)小的类型自动转换为精度大的类型

int a = 'c'; // 正确
double b = 80;  // 正确
int c = 512.8;  // 错误,因为double型的精度大于int型
(1). 多种类型的数据混合运算时,系统自动将所有数据转换为精度最大的数据类型,再进行计算
(2). 将精度大赋给精度小的数据类型会报错
(3). byte和short不会和char相互进行自动转换,但仍可以计算,首先将其转换为int
(4). boolean不参与自动类型转换
(5). 自动提升原则:表达式结果的类型自动提升为操作数中精度最大的类型

2. 强制类型转换:自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型

注意:使用时要加上强制转换符 ( ),但可能造成精度降低或溢出。
(1). 强制转换符只针对最近的操作数,通常使用小括号提升优先级
// int x = (int)10*3.5+6*1.5;  //编译错误: double -> int
int y = (int)(10*3.5+6*1.5);   // (int)44.0 -> 44
(2). char可以保存int常量,但不能保存变量,需进行强制类型转换
char c1 = 100; //ok
int m = 100; //ok
// char c2 = m; //错误
char c3 = (char)m; //ok,100 对应的字符-d

六、String类型

在使用中,经常需要将基本数据类型与String类型相互转换。

1. 基本数据类型——>String:使用‘   + ""    ’即可

int i1 = 100;
float f1 = 1.1F;
double d1 = 4.5;
boolean b1 = true;
String s1 = i1 + "";  // 转换为字符串
String s2 = f1 + "";
String s3 = d1 + "";
String s4 = b1 + "";

2. String——>基本数据类型:调用基本类型的Parse××方法

String s5 = "123";
int num1 = Integer.parseInt(s5);  //123
double num2 = Double.parseDouble(s5);  //123.0
float num3 = Float.parseFloat(s5);  //123.0
long num4 = Long.parseLong(s5);  //123
byte num5 = Byte.parseByte(s5);   //123
boolean b = Boolean.parseBoolean("true");  // true
short num6 = Short.parseShort(s5);  //123

3. String——>char:即得到字符串的第一个字符,charAt()函数

char c1 = s5.charAt(0); // 1
(1). 将 String 类型转成基本数据类型时,要确保能够转换为有效的数据,比如:可以把 "123" 转成一个整数,但是不能把 "hello" 转成一个整数
(2). 如果格式不正确,就会抛出异常,程序就会终止

参考:韩顺平java教程

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值