1. Java基本类型
Java基本类型共有八种,基本类型可以分为三类,字符类型char,布尔类型boolean以及数值类型byte、short、int、long、float、double。数值类型又可以分为整数类型byte、short、int、long和浮点数类型float、double。JAVA中的数值类型不存在无符号的,它们的取值范围是固定的,不会随着机器硬件环境或者操作系统的改变而改变。实际上,JAVA中还存在另外一种基本类型void,它也有对应的包装类 java.lang.Void,不过我们无法直接对它们进行操作。8 种类型表示范围如下:
byte:8位,最大存储数据量是255,存放的数据范围是-128~127之间。
byte num1 = 10;
short:16位,最大数据存储量是65536,数据范围是-32768~32767之间。
short num2 = 20;
int:32位,最大数据存储容量是2的32次方减1,数据范围是负的2的31次方到正的2的31次方减1。
long num3 = 30;
long:64位,最大数据存储容量是2的64次方减1,数据范围为负的2的63次方到正的2的63次方减1。
long num4 = 30L; //后面加L表明类型
float:32位,数据范围在3.4e-45~1.4e38,直接赋值时必须在数字后加上f或F。
float num5 = 10.1F; //后面加F表明类型
double:64位,数据范围在4.9e-324~1.8e308,赋值时可以加d或D也可以不加。
double num6 = 3.1415926;
boolean:只有true(真/是)和false(假/否)两个取值。
boolean num7 = true;
boolean num8 = false;
char:16位,存储Unicode码,用单引号赋值。
char num9 = 'A'; //用单引号括起来,只能是一个字符。
Java决定了每种简单类型的大小。这些大小并不随着机器结构的变化而变化。这种大小的不可更改正是Java程序具有很强移植能力的原因之一。下表列出了Java中定义的简单类型、占用二进制位数及对应的封装器类。
简单类型 | boolean | byte | char | short | Int | long | float | double |
---|---|---|---|---|---|---|---|---|
二进制位数 | 1 | 8 | 16 | 16 | 32 | 64 | 32 | 64 |
封装器类 | Boolean | Byte | Character | Short | Integer | Long | Float | Double |
2. Java引用类型
Java有 5种引用类型(对象类型):类 接口 数组 枚举 标注
3. 拓展知识:Java中的常量
十六进制整型常量:以十六进制表示时,需以0x或0X开头,如0xff,0X9A。
八进制整型常量:八进制必须以0(零)开头,如0123,034。
二进制整形常量:二进制必须以0b或0B开头,如0b1011,0B1001。
长整型(long):长整型必须以L作结尾,如9L,342L。
浮点数常量:由于小数常量的默认类型是double型,所以float类型的后面一定要加f(F)。同样带小数的变量默认为double类型。
如:
float num5 = 10.1F; //后面加F表明类型
字符常量:字符型常量需用两个单引号括起来(注意字符串常量是用两个双引号括起来)。Java中的字符占两个字节。
一些常用的转义字符:
①\r表示接受键盘输入,相当于按下了回车键;
②\n表示换行;
③\t表示制表符,相当于Table键;
④\b表示退格键,相当于Back Space键;
⑤’表示单引号;
⑥’'表示双引号;
⑦\表示一个斜杠\。
浮点型拓展
public class Demo006 {
public static void main(String[] args) {
//浮点型拓展
float a = 0.1f; //0.1
double b = 1.0/10; //0.1
System.out.println(a);
System.out.println(b);
System.out.println(a==b);
//原因:字长有限 舍入误差(大约接近但不等于)
//最好完全不使用浮点型进行比较
//BigDecimal 数学工具类
}
}
字符型拓展
public class Demo006 {
public static void main(String[] args) {
//字符型拓展
char a = 'A';
char b = '刘';
System.out.println(a);
System.out.println((int)a); //强制转换 字符本质是数字,编码 Unicode
System.out.println(b);
System.out.println((int)b); //强制转换
}
}
布尔型拓展
public class Demo006 {
public static void main(String[] args) {
//布尔型拓展
boolean flag = true;
if (flag==true){
System.out.println("是");
}
//两种表示方法一样,代码要精简易读。
if (flag){ //默认判断为真
System.out.println("是");
}
}
}
4. 数据类型转换
由于Java是强类型语言,所以进行某些运算时,需要进行类型转换。
类型转换应该遵循由小转大原则。
运算中,不同类型的数据应该先转换为同一类型再进行运算。
需要注意的是:
① 不能对布尔型进行转换
② 不能把对象类型转换为不相干的类型
③ 高转低时采用强制转换
④ 转换时存在内存溢出或者精度问题(浮点型–>整形)
⑤ 操作较大的数时,注意溢出问题
⑥ 数字之间可以用下划线分割,不改变大小
强制类型转换(高–>低)
转换方法:(类型)变量名
如:
public class Demo006 {
public static void main(String[] args) {
int a = 100;
short b = (short) a; //强制转换
System.out.println(a);
System.out.println(b);
int c = 128;
byte d = (byte) c; //内存溢出,byte范围-128~127
System.out.println(c);
System.out.println(d);
}
}
自动类型转换 (低–>高)
数据类型由低转高时,自动转换。
如:
public class Demo006 {
public static void main(String[] args) {
int a = 100;
double b = a;
System.out.println(a);
System.out.println(b);
}
}
本文部分内容来自参考文章:点击跳转