数据类型 变量名 = 值;//可以用“,”隔开来声明多个同类型变量
注:
每个变量名必须有类型,类型可以是基本类型,也可以是引用类型(string)。
变量名必须是合法的标识符。
变量声明是一条完整的语句,每一个声明都必须以分号:“;”结束。
public static void main(String[] args){ static int allClicks = 0; // 类变量 String str = "hello world"; //实例变量 public void method(){ int i = 0; //局部变量 } }
public class Demo{ //类变量 static static double salary = 2500; //实例变量:从属于对象 String name; int age; public static void main(String[] args){ //局部变量:必须声明和初始化 int i = 10; System.out.rintln(i);//10 //变量类型 变量名字 = new Demo(); Demo demo = new Demo() ; System.out.println(demo.age); //0(实例变量没有初始化,则输出默认类型) //布尔值:默认值 false //除了基本类型。其余的默认值都是null; //类变量 static System.out.println(salary); //2500 } }
final 常量名 = 值; final double PI = 3.14;
public class Demo{ static final double PI = 3.14; //final static double PI = 3.14; //final是修饰符,不存在先后顺序 public static void maina(String[] args){ System.out.println(PI); } }
算术运算符:+ 、- 、 * 、 / 、 % 、++ 、 --
赋值运算符: =
关系运算符:> 、< 、>= 、 <= 、== 、!= instanceof
逻辑运算符:&& 、|| 、!
位运算符:& 、 | 、^ 、~ 、>> 、<< 、>>>
条件运算符(三目运算符): ?:
扩展赋值运算符:+= 、 -= 、*=、/=
自上而下优先级递减
上图复制于https://blog.csdn.net/weixin_41797098/article/details/102899085?ops_request_misc=%7B%22request%5Fid%22%3A%22162610068416780269889951%22%2C%22scm%22%3A%2220140713.130102334..%22%7D&request_id=162610068416780269889951&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-102899085.first_rank_v2_pc_rank_v29&utm_term=java运算符优先级&spm=1018.2226.3001.4187
public static void main(String[] args){ int a = 30; int b = 2; System.out.println(a + b);//32 System.out.println(a -b);//28 System.out.println(a * b);//60 System.out.println(a / b);//15 System.out.println(a % b);//0 即求余运算 String name = "Java"; //为变量name赋值Java }
public static void main(String[] args){ int a = 3; int b = a++;//先给b赋值,a在自增 //a++ a = a + 1 //++a a = a + 1 int c = ++a;//a先自增,再给b赋值 System.out.println(a);//5 System.out.println(b);//3 System.out.println(c);//5 }
//Math类 //幂运算 double pow = Math.pow(3,2); System.out.println(pow); //9
public static void main(String[] args){ /* A = 0011 1100 B = 0000 1101 A & B = 0000 1100 (两位置上的数都是1结果才是1,否则是0) A | B = 0011 1101 (两个位置上的数只要有一个是1,结果就是1,否则为0) A ^ B = 0011 0001(两个位置上的数相同结果是0,不相同结果是1) ~B = 1111 0010 (取反) */ //左移:<<、右移:>> System.out.println(2<<3); //16 /* 二进制 十进制 0000 0010 2 2 << 3 0001 0000 16 */ //计算 2*8 变成计算 2*2*2*2(效率极高) }
int a = 10; int b = 20; System.out.println(a + b); //30 System.out.println(" " + a + b); //1020 //在 + 运算符两侧,只要有一方出现了String类型,它就会把其他操作数都转换为String,再连接 System.out.println(a + b + “ ”); //30(先算 a+b,在连接 a+b 后面的数)
public static void main(String[] args){ int a = 30; int b = 2; int c = 2; //&& : 两个操作数都为true才返回true,否则返回false System.out.println(a && b);//false System.out.println(c && b);//ture //|| : 两个操作数只要有一个为true,就返回true,两个操作数都为false才返回false //! : 非,或取反,如果操作数是true,则返回false。如果是false,则返回true }
public static void main(String[] args){ int a = 30; int b = 2; System.out.println((a == b) ? a : b); //2 三目运算符的语法规则: 先对逻辑表达式(a==b)求值,如果(a==b)返回true,则返回第二个操作数的值,否则返回第三个操作数的值 }