Java
类型转换
int money = 10_0000_0000;
int years = 20;
int total = money * years; //-1474836480 计算的时候溢出了
long total2 = money * years; //默认是int,转换之前已经存在问题了
long total3 = money*((long)years); //先把一个数转换成long
System.out.println(total3);
变量
- 所有变量、方法、类名:见名知意
- 类成员变量:首字母小写和驼峰原则:monthSalary 除了第一个单词以外,后面的单词首字母大写 lastName
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线MAX_VALUE
- 类名:首字母大写和驼峰原则:Man,GoodMan
- 方法名:首字母小写和驼峰原则:run(),runRun()
//类变量 static
static double salary = 2500;
//属性:变量
//实例变量:从属于对象;如果不自行初始化,会变成这个类型的默认值 0 0.0
//布尔值:默认是false
//除了基本类型,其余默认值都是null;
String name;
int age;
//main方法
public static void main(String[] args) {
//局部变量:必须声明和初始化值
int i = 10;
System.out.println(i);
//变量类型 变量名字 = new Demo88;
Demo03 demo88 = new Demo03();
System.out.println(demo88.age);
System.out.println(demo88.name);
//类变量 static
常量
//修饰符,不存在先后顺序
static final double PI = 3.14;
public static void main(String[] args) {
System.out.println(PI);
}
Java运算符 (operator)
- 算术运算符:+,-,++,,–,*,/,%
- 赋值运算符:=
- 关系运算符:>,<,>=,<=,==,!=instanceof
- 逻辑运算符:&&,||,!
- 位运算符:&,|,^,>>,<<,>>>(了解!!!)
- 条件运算符:?:
- 扩展赋值运算符:+=,-=,*=,/=
cast:转化
a++ 先赋值再自增
++a 先自增再赋值
逻辑运算符
//与(and) 或(or) 非(取反)
boolean a = true;
boolean b = false;
System.out.println("a&&b:" + (a && b));//逻辑非运算:两个变量都为真,结果才为true
System.out.println("a||b:" + (a || b));//逻辑或运算:两个变量有一个为真,则结果才为true
System.out.println("!(a&&b):" + !(a && b));//如果是真,则变假为真,如果是假,则变为真
System.out.println("============================");
//短路运算
int c = 5;
boolean d = (c < 4) && (c++ < 4);
System.out.println(d); //false
System.out.println(c); //5 没有执行后半部分
位运算符
/*
A = 0011 1100
B = 0000 1101
----------------------
A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001 //异或 不相同为1
~B = 1111 0010
2*8 = 16 2*2*2*2
//位运算 效率高
>> 左移
<< 右移
0000 0000 0
0000 0001 1
0000 0010 2
0000 0100 4
0000 1000 8
0001 0000 16
*/
如果分不清优先级 可以多用()
包机制
- 一般使用公司域名倒置作为包名com.kkxuexi.www