今天所学内容
数据类型转换
数据类型容量
byte,short,char < int < long < float < double
每种类都能用数字表示
运算中,不同类型数据先转换为同一类型在进行运算
强制类型转换
int i = 128;
byte b = (byte)i;
//-128 由高到低使用强制转换 数据大小超出byte容量,发生内存溢出
System.out.println((int)23.7);
//double转换为int,高转低 //23 舍弃了小数
System.out.println((int)-46.98F);
//float转换为int,高转低 //-46 舍弃了小数
自动类型转换
int i = 128
double c = i; //128.0 double是浮点数类型
//自动类型转换,无需任何操作,由低到高
数据类型转换计算
int money = 10_0000_0000; //jdk7的新特性,数字可以用下划线分割
int years = 20
int total = money*years; //-1474836480,内存溢出
long total2 = money*years; //-1474836480,内存溢出
//因为两个数据都是int,结果也是int,先计算出结果在转换成long,转换之前就已经溢出了
long total3 = money*(long)years;
//将years强制转换成long,因为数据类型相同才能运算,money自动转换成long(由低到高)
//注意:
long money1 = 10_0000_0000l
long money1 = 10_0000_0000L; //long类型数字后要用大写的L,小写的很容易混淆
数据类型拓展
整数拓展
//整数拓展 进制:二进制0b 八进制0 十进制 十六进制0x
int i = 10; //十进制:10
int i = 010; //八进制:8
int i = 0x10; //十六进制:16
浮点数扩展 银行业务怎么表示钱
float f1 = 0.1F; //0.1
double f2 = 1.0/10; //0.1
System.out.println(f1==f2); //false
//浮点数是离散的、有限的、接近但不等于
//最好完全避免用浮点数进行比较
float f4 = 23232311231231232131F;
float f5 = f4 + 1;
System.out.println(f4==f5); //true
银行业务计算可以运用 Bigdecimal 数学工具类
字符拓展
char c = 'a';
char b = '中';
System.out.println((int)c); //97 强制转换
System.out.println((int)c2); //20013 强制转换
/*
所有的字符本质还是数字,强制转换可以把字符变成数字
char类会涉及 编码 Unicode表:对应的字符对应数字 占2个字节 U0000 UFFFF
*/
char c3 = '\u0061'; //a
转义字符
System.out.println("Hello\tworld"); //Hello world
// \t制表符,转译为Tab
System.out.println("Hello\nworld");
/*
Hello
world \n换行
*/
布尔值拓展
//布尔值拓展
boolean flag1 = true;
if (flag1==true){
System.out.println("true");
}
if (flag1){ //跟flag1==true表达意思相同
System.out.println("true");
}
变量、常量、作用域
各种变量的作用域在整个写代码的流程中体现的十分清晰,类变量从属于类,在引用的类中都可用;局部变量从属于某个方法,只在方法中可用等等。
public class Fundamental_3 {
//main方法
//方法不仅能定义变量,还能定义属性(可以简单看作变量)
//实例变量:从属于对象(简单理解为从属于类) 不需要初始化值
//实例变量如果不初始化值,就会返回默认值 数字值返回0/0.0
//布尔值默认值为 false
//除了基本类型,其他类型默认值都是 null
String name;
int age;
//类变量 static 从属于类
static double salary = 2500; //2500是int类型,自动转换成double类型
//常量,定义以后不可再改变
static final double PI = 3.14; //常量名一般使用大写字母
//修饰符不存在先后顺序,double PI=3.14是固定套路,前面的是static、final修饰符,可以随意排序
public static void main(String[] args) {
//局部变量,从属于 main方法
int a = 1,b = 2, c = 3;
//尽量不这么写,该写法降低代码可读性,尽量分行写
int money = 2500; //局部变量:必须声明和初始化值
System.out.println(a);
//变量类型 变量名 = new Fundamenta_3();
Fundamental_3 fundamental_3 = new Fundamental_3();
System.out.println(fundamental_3.age);
System.out.println(fundamental_3.name);
System.out.println(salary); //类变量可以直接输出
System.out.println(PI);
}
//其他方法
public void add(){
// System.out.println(a); 局部变量只从属于方法,在其它方法中无法使用
}
}
/*
所有的变量、方法、类名遵循一个原则:见名知意
类变量(除了常量):首字母小写、驼峰原则 monthSalary
常量:大写字母和下划线 MAX_VALUE
类名:首字母大写、驼峰原则 GoodMan
方法名:首字母小写、驼峰原则 runRun()
*/