【学习笔记】变量、常量、运算符
变量是可以变化的量
Java是一种强类型语言,每个变量都必须声明其类型。
Java变量是程序中最基本的存储单元,其要素包括变量名、变量类型、作用域。
每个变量都有类型,类型可以是基本类型,也可以是引用类型。
变量名必须是合法的标识符
变量声明是一条完整的语句,因此每一个声明都必须以分号结束。
变量作用域
类变量:从属于该类,随着这个类一起出现一起消失,可以在这个类中任意位置使用。
用关键词static 修饰
public class Demo02 {
//类变量
static int age = 23;
public static void main(String[] args) {
System.out.println(age);
}
}
实例变量:在类里面,在方法外面。从属于对象。
实例变量无需初始化,如果没有初始化,那么它的值是默认值:
整型默认值是0,浮点型是0.0 ,布尔值默认值是false,除了基本类型默认值其余都是null
char默认值是空值
public class Demo02 {
//实例变量
String name;
int age;
double money;
char a;
boolean flag;
public static void main(String[] args) {
Demo02 demo02 = new Demo02(); //实例化对象
System.out.println(demo02.name);
System.out.println(demo02.age);
System.out.println(demo02.money);
System.out.println(demo02.a);
System.out.println(demo02.flag);
}
}
局部变量:在方法中定义,并且只能在该方法中调用,并且必须声明和初始化。
public class Demo02 {
public static void main(String[] args) {
//局部变量
int i = 10;
System.out.println(i);
}
}
变量命名规范
1.所有变量、方法、类名要见名知意
2.类成员变量:首字母小写和驼峰原则:monthSalary
3.局部变量:首字母小写和驼峰原则
4.常量:大写字母和下划线 : MAX_VALUE
5.类名:首字母大写和驼峰原则 :Man 、 HelloWorld
6.方法名:首字母小写和驼峰原则 : getMonry()
常量:初始化后不能再改变值,不会变动的值。
final 变量名 = 值;
如: final double PI = 3.14;
常量名一般使用大写字符
运算符
注意:如果整数运算中有long类型,那么结果为long类型
如果没有那么结果都为int类型
public class Demo03 {
public static void main(String[] args) {
long a = 12356123L;
int b = 100;
short c = 200;
byte d = 5;
System.out.println(a+b+c+d);
System.out.println(b+c+d);
System.out.println(c+d);
}
}
自增、自减运算符:
a++ :先赋值,在自增
++a:先自增,在赋值
public class Demo04 {
public static void main(String[] args) {
int a = 3;
int b = a++; //执行完这行代码后,先给b赋值,在自增
//a++ a=a+1
System.out.println(a);
//++a a=a+1
int c = ++a; //执行完这行代码前,先自增,在给c赋值
System.out.println(a);
System.out.println(b);
System.out.println(c);
}
}
逻辑运算符
短路运算:在进行 与(&&) 运算时,如果前面的语句为false,那么就不会去执行后面的语句
public class Demo05 {
public static void main(String[] args) {
int a = 4;
boolean b = (a>4) && (a++>4);
System.out.println(b);
System.out.println(a);
}
}
位运算符
A = 0011 1010
B = 1001 1100
A&B = 0001 1000
A|B = 1011 1110
A^B = 1010 0110 (异或,相同为0,不同为1)
~A = 1100 0101 (按位取反)
面试题:2*8怎样算是最快的?
使用位运算中的左移 <<
0000 0000 0
0000 0001 1
0000 0010 2
0000 0011 3
0000 0100 4
0000 1000 8
0001 0000 16
由此可以看出 2 左移 3 位变成 16
2<<3 = 16
字符串连接符 “+ ”
面试题
int c = 10;
int d = 20;
System.out.println(""+c+d);
System.out.println(c+d+"");
当连接符的前面是String 类型的时候,后面的运算也都变成String类型