LTS版本有 JDK 8、11、17,很多企业还在使用JDK 8
PS:在同一个Java源文件中,public类和main方法都是唯一的
(1)标识符可由字母、数字、下划线、美元符号($)组成
(2)不能以数字开头
(3)不能以关键字命名
(4)命名时尽量见名知意
(5)包名(package)一律小写,如test
(6)常量名一律大写,单词间用下划线连接,如DAY_OF_MONTH
(7)类名和接口名单词首字母大写,如ArrayList(大驼峰)
(8)变量名和方法名采用“驼峰命名法”,如getMaxValue(小驼峰)
// 单行注释
/*……*/ 多行注释
/**……*/ 文档注释
整型
(1)byte。大小:1字节(8位),取值范围:-128~127
(2)short。大小:2字节(16位),取值范围:-32768~32767
(3)int(默认类型)。大小:4字节(32位),取值范围:-21亿↗~21亿↗
(4)long(后缀:l/L)。大小:8字节(64位),取值范围:-900亿亿↗~900亿亿↗
PS:
(1)Java7开始,加前缀0b可书写二进制数,如0b1001→9
(2)Java7开始,数字可加下划线以便阅读,如1_000_000一百万
浮点型
(1)float(后缀:f/F)
大小:4字节(32位),有效位数:6~7位
(2)double(默认类型)
大小:8字节(64位),有效位数:15位
PS:表数形式
(1)小数
(2)指数,如1e-6
字符型
char。大小:2字节,取值范围:0~65535
布尔型
boolean,取值:true、false
按位与 &
按位或 |
按位异或 ^
(1)交换律 a ^ b = b ^ a
(2)结合律 (a ^ b) ^ c = a ^ ( b ^ c)
(3)n ^ n = 0;n ^ 0 = n
(4)自反性a ^ b ^ b = a ^ 0 = a
按位取反~
左移位<<
(有符号)右移位>>
移位时带符号,高位补符号位(正数补0,负数补1,因为数据在计算机中用补码表示)
(无符号)右移位>>>
移位时不带符号,高位补0
tips:位运算骚操作
(1)判断奇偶数
将该数和1作&运算,值为0→偶数;值为1→奇数
(2)判断二进制某位是0/1
将该位数右移到末尾,用判断奇偶性的方法
(3)交换两个整型变量值
a = a ^ b
b = a ^ b
a = a ^ b
switch(表达式)…
PS:Java的上述表达式支持byte、short、int、char、enum、String类型(C/C++仅支持char和int)
修饰符 返回值类型 方法名(参数列表){
//执行语句
return 返回值;
}
PS:修饰符
1.访问权限
(1)private:当前类访问级别(访问范围仅限于本类)
(2)default:包访问级别(同一个包下的类都可以访问)
(3)protected:子类访问级别(同一个包下的其他类,以及不同包中该类的子类可以访问)
(4)public:公共访问级别(可以被所有类访问,不论是否在同一个包中)
若一个类或类的成员没有访问控制修饰符,则默认为default,访问范围仅限本包内
2.静态修饰符static
3.最终修饰符final
public class MethodOverride {
public static void main(String[] args) {
System.out.println("sum1 = " + add(1, 2));
System.out.println("sum2 = " + add(1, 2, 3));
System.out.println("sum3 = " + add(1.2, 2.3));
}
// 两个整数相加
public static int add(int x, int y) {
return x + y;
}
// 三个整数相加
public static int add(int x, int y, int z) {
return x + y + z;
}
// 两个小数相加
public static double add(double x, double y) {
return x + y;
}
}
public class Demo {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
System.out.println("1+2+……+" + n +" = " + sum(n));
}
//计算1+2+……+n
public static int sum(int n) {
if(n == 1) return 1; //递归出口
return n + sum(n-1); //子问题
}
}
方式一:
int[] arr = new int[4]; //定义可以存储4个整数的数组,自动初始化为0
方式二:
int [] arr = new int[]{1, 2, 3, 4}; //动态分配内存并初始化
方式三:
int [] arr = {1, 2, 3, 4}; //静态初始化
方式一:
int [][] arr = new int[3][4]; //定义一个3行4列的二维数组
方式二:
int [][] arr = new int[3][]; //定义一个3行的二维数组,列数不定
方式三:
int [][] arr = {{1, 2}, {3, 4, 5}, {6, 7, 8, 9, }}; //定义一个二维数组并初始化