基本数据类型
数据类型
数据类型介绍
Java是一种强类型的语言,变量先定义再使用,且类型要求严格。
数据类型分为:
-
`基本数据类型
-
引用数据类型
代码如下:
public class Demo1 { public static void main(String[] args) { //八大基本数据类型 //整数 int num = 10; byte num1 = 12; short num2 = 133; long num3 = 3000L;//long类型要在数字的后面加L //小数,浮点数 float num4 = 50.1F; double num5 = 3.14154526; //字符 char name = '中'; //String是类不是关键字;String namea = "jackey" //boolean,布尔值,是非 boolean flag = true;//or false System.out.println(num); //引用数据类型,类 String a = "hello"; } }
基本数据类型扩展知识
public class Demo2 {
public static void main(String[] args) {
//整型拓展: 进制 二进制0b 十进制 八进制0 十六进制0x
int i = 10;
int i2 = 010;
int i3 = 0x10;
System.out.println(i);
System.out.println(i2);
System.out.println(i3);
//============================
//浮点数拓展 银行业务怎么表示,钱
//BigDecimal 数学工具类
//float 有限的,离散的,有舍入误差,接近但不等于
//double
//最好完全不要使用浮点数进行比较
float f = 0.1f; //0.1
double d = 1.0/10; //0.1
System.out.println(f==d);//false
float d1 = 215252525225f;
float d2 = d1 + 1;
System.out.println(d1==d2);//true
// ====================================
//字符拓展
// ====================================
char c1 = 'a';
char c2 = '中';
System.out.println(c1);
System.out.println((int)c1);
System.out.println(c2);
System.out.println((int)c2);
//所有字符本质还是数字
//Unicode编码 2字节 0-65536 (97=a,65=A)
char c3 = '\u0061';//0061是十六进制的表示,十进制为97,即a
System.out.println(c3);
//转义字符
System.out.println("hello\tworld");
System.out.println("hello\nworld");
//boolean扩展
boolean flag = true;
}
}
类型转换
由于Java是强类型语言,所以有时候要用到,类型转换
低-------------------------》高
byte,short,char-> int -> long-> float -> double
运算中不同数据转化为同一类型再进行运算。
有强制类型转换和自动类型转换两种。
public class Demo3 {
public static void main(String[] args) {
//高-》低 强制类型转换 (类型)变量名
int i = 128;
byte b = (byte) i;//byte最大127,发生内存溢出
System.out.println(i);
System.out.println(b);
//低-》高 自动转换
int j = 129;
long l = j;
System.out.println(j);
System.out.println(l);
/*注意
1.不能对布尔值进行转换
2.不能吧对象类型转换为不相关的类型
3.把高容量转换为低容量的时候强制转换
4.转换时候可能出现内存溢出或者精度问题
*/
//操作较大的数时注意溢出问题
//JDK7新特性,数字可以用下划线分割
int money = 1000_000_000;
System.out.println(money);
int years = 20;
int total = years*money;//发生溢出,-1474836480
System.out.println(total);
long toltal2 = years*money;//默认是int,发生溢出,转换前就出现问题
long toltal3 = years*((long)money);
System.out.println(toltal2);
System.out.println(toltal3);
}
}