目录
数据类型
-
强类型语言
-
要求变量的使用严格符合规定,所有变量都先定义后使用
-
-
弱类型语言
-
Java的数据类型分为两大类
-
基本类型 (primitive type)
-
引用类型 (reference type)
-
八大基本数据类型
-
基本类型
public class Demo01 {
public static void main(String[] args) {
//整数
byte num2 =20;
short num3 =30;
int num1 =10; //最常用
long num4 =30L; //Long类型要在数字后面加L
//小数:浮点数
float num5 =50.1F; //float类型要在数字后面加F
double num6 =3.1415926535;
//字符
char name ='A';
//字符串,String不是关键字,类
String namea ="Demon";
//布尔值:是非
boolean fuck = true;
boolean fucky = false;
}
}
-
整数扩展
//整数拓展: 进制 二进制0b 十进制 八进制0 十六进制0x
int a = 10;
int b = 010; //八进制0
int c = 0x10; //十六进制0x 0-9 A-F
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println("===================================================");
//======================================================================
//浮点数拓展 银行业务如何表示?
//BigDecimal 数学工具类
//======================================================================
//float 有限 离散 摄入误差 大约 接近但不等于
//double
//最好完全避免使用浮点数进行比较
//最好完全避免使用浮点数进行比较
//最好完全避免使用浮点数进行比较
float f =0.1f; //0.1
double d =1.0/10; //0.1
System.out.println(f==d); //false
float d1 =23132313113123f;
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字节 65536
char c3 ='\u0061';
System.out.println(c3);
System.out.println("===================================================");
//转义字符 \t(制表符) ( ) (\n) 换行 ....
System.out.println("hello\tWorld"); //hello World
System.out.println("===================================================");
//对象 从内存分析
String sa = new String("hello world");
String sb = new String("hello world");
System.out.println(sa==sb); //false
String sc ="hello world";
String sd ="hello world";
System.out.println(sc==sd); //true
-
布尔值扩展
//布尔值扩展
boolean flag = true;
if(flag==true){} //新手
if(flag){} //老手
//less is Morel 代码要精简易读
类型转换
-
由于Java是强类型语言,所以要进行有些运算时,需要用到类型转换。
低------------------------------------------------------高
byte,short,char->int->long->float->double
//强制转换 (类型)变量名 高--低
//自动转换 低--高
int i = 128; //128
byte b = (byte) i; //-128 内存溢出
/*
注意:
1.不能对布尔值进行转换
2.不能把对象类型转换为不相干的类型
3.把高容量转换到低容量时,强制转换
4.转换的时候可能存在内存溢出,或者精度问题!
*/
System.out.println("=============================");
System.out.println((int)23.7); //23
System.out.println((int)-45.9f); //-45
System.out.println("=============================");
char c = 'a';
float d = c+1; //自动转换
System.out.println((int)c); //97
System.out.println(d); //98
System.out.println((char)d); //b
System.out.println("=============================");
//操作较大时,注意溢出问题
int money = 10_0000_0000;
int years =20;
int total =money*years; //-1474836480
long total2 =money*years; //-1474836480 ,转换时默认int,已经出现问题
long total3 =money*((long)years); //把一个数据转换成Long
System.out.println(total3); //20000000000
System.out.println("=============================");