Java基础语法03(狂神说Java)
一、常量
- 常量(Constant):初始化(initialize)后不能再改变值!不会变动的值。
- 所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。
final 常量名 = 值;
例:final double PI = 3.14;
- 常量名一般使用大写字符。
public class Demo09{
//static和final都是修饰符,不存在先后顺序 类变量关键字:static 常量关键字:final
static final double PI = 3.14;
public static void main(String[] args) { System.outprintln(PI); }
}
二、变量名的命名规范
- 所有变量、方法、类名:见名知意
- 类成员变量:首字母小写和驼峰原则:monthSalary 除第一个单词外,后面单词首字母大写
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线:MAX_VALUE
- 类名首字母大写和驼峰原则:Man,GoodMan
- 方法名:首字母小写和驼峰原则:run(),runRun()
三、运算符
Java语言支持如下运算符:
- 算术运算符:+,-,*,/,%,++,--
- 赋值运算符=
- 关系运算符:>,<,>=,<=,==,!= instanceof
- 逻辑运算符:&&,||,!
- 位运算符:&,|,^,~,>>,<<,>>>(了解!!!)
- 条件运算符?:
- 扩展赋值运算符:+=,-=,*=,/=
public class Demo01 {
public static void main(String[] args) {
//二元运算符
//CTRL+D : 复制当前行到下一行
int a = 10;
int b = 20;
int c = 25;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/b); //结果为小数自动取整舍弃小数点后面的
System.out.println(a/(double)b); //转为double类型
//取余,又称模运算
System.out.println(c%a); // c/a 22/10 = 2 余 1
System.out.println(a>b);
System.out.println(a<b);
System.out.println(a==b);
System.out.println(a!=b);
long a1 = 123123123123l;
int b1 = 123;
short c1 = 10;
byte d1 = 8;
//有long类型结果为long类型,没有long类型结果为int类型 cast是转换的意思
System.out.println(a1+b1+c1+d1); //long类型
System.out.println(b1+c1+d1);//int类型
System.out.println(c1+d1);//int类型
System.out.println((double)(c1+d1));
}
}
自增运算符
public class Demo04 {
public static void main(String[] args) {
// ++ -- 自增,自减 一元运算符
int a = 3;
int b = a++; //先赋值再自增 b=a ,a++ 为 a = a+1
System.out.println(a);
int c = ++a; //先自增再赋值
System.out.println(a);
System.out.println(b);
System.out.println(c);
// for (int i = 0; i < ; i++) {
// 自增 自减用于循环
// }
//幂运算 2^3 2*2*2 = 8 java中用math类方法 很多运算我们使用工具类来做
int pow = (int) Math.pow(3,3);
System.out.println(pow);
}
}
逻辑运算符
public class Demo05 {
public static void main(String[] args) {
//与(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));//逻辑非运算:如果是真则为假,如果是假则为真
//短路运算 当第一个变量为假时,后面的不计算
int c = 5;
boolean d = (c<4)&&(c++<10);
System.out.println(d);
System.out.println(c); //若计算了则c应该为6
}
}
位运算
public class Demo06 {
public static void main(String[] args) {
/*
位运算 与二进制有关的平时不用
A = 0011 1100
B = 0000 1101
------------------------------------------------
A&B = 0000 1100 两个都为1则结果为1,其余为0(与)
A|B = 0011 1101 两个都为0则结果为0,其余为1(或)
A^B = 0011 0001 两个相同则为0不同则为1
~B = 1111 0010 取反
面试题 2*8 怎么计算最快 2*2*2*2
效率极高!!!
<< 左移 相当于把数字*2
>> 右移 相当于把数字/2
0000 0000 0
0000 0001 1
0000 0010 2
0000 0011 3
0000 0100 4
0000 1000 8
0001 0000 16
*/
System.out.println(2<<3);
}
}
赋值运算
public class Demo07 {
public static void main(String[] args) {
//赋值运算符
int a = 10;
int b = 20;
a+=b; // a= a+b
System.out.println(a);
a-=b; // a= a-b
System.out.println(a);
//字符串连接符 + ,当“+” 旁边有String则拼接展示
System.out.println(""+a+b); //拼接展示结果为 1020
System.out.println(a+b+""); // 先计算再拼接结果为30
}
}
三元运算符
public class Demo08 {
public static void main(String[] args) {
// x ? y : z
//如果x == true 则结果为y 否则结果为 z
int score = 80;
String type = score < 60 ? "不及格" : "及格"; //必须掌握
//通常用if判断
System.out.println(type);
}
}