Java基础(变量、常量、基本运算符)
一、变量、常量、作用域
1.变量:可以变化的量
数据类型 变量名 = 值;//可以用“,”隔开来声明多个同类型变量
注:
-
每个变量名必须有类型,类型可以是基本类型,也可以是引用类型(string)。
-
变量名必须是合法的标识符。
-
变量声明是一条完整的语句,每一个声明都必须以分号:“;”结束。
2.变量作用域:
- 类变量
- 实例变量
- 局部变量
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 } }
3.常量:初始化后不能再改变的值(常量名一般用大写)
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);
}
}
4.变量的命名规规范
- 类成员变量:首字母小写和驼峰原则
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线
- 类名:首字母大写和驼峰原则
- 方法名:首字母小写和驼峰原则
二、基本运算符
Java语言支持如下运算符
-
算术运算符:+ 、- 、 * 、 / 、 % 、++ 、 --
-
赋值运算符: =
-
关系运算符:> 、< 、>= 、 <= 、== 、!= 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,则返回第二个操作数的值,否则返回第三个操作数的值
}