参考书:《Java 核心技术 卷1 基础知识》
1.数据类型
Java中一共有8种基本类型,其中4种整型,2种浮点类型,1种字符类型,和1种用于表示真值的类型。
整型: int:4字节;short:2字节;long:8字节;byte:1字节。
浮点类型:float:4字节; double:8字节。
char类型:有些Unicode字符可以用一个char值表示,有些则需要两个。
boolean类型:false和true。注意:整型和布尔值之间不能进行相互转换。

2.变量与常量
声明变量:

如:
 double salary;
 int vacationDays;
 long Population;
 boolean done;
 变量名必须是一个以字母开头并由字母或数字构成的序列。在Java中字母和数字范围更大,如"_","$"或在某种语言中表示字母的任何Unicode字符,都属于字母。变量初始化:
 如:
 int days;
 days = 12;
 或:
 int days = 12;
注:Java10开始,对于局部变量如果可以从变量初始值推断出它的类型,就不需要声明类型,只需用关键词var。如:
 var days = 20; //days is an int
 var greeting = “HELLO”; //greeting is a String

常量:
关键字:final。final表示这个变量只能被赋值一次。习惯上,常量名使用全大写。
例如:final double CM_PER_INCH = 2.54;
若要某个变量在一个类的多个方法中使用,通常将这些常量成为类常量,关键字:static final。
例如:public static final double CM_PER_INCH = 2.45;

枚举类型:
例如:
enum Size{SMALL, MEDIUM, LARGE, EXTRA_LARGE};
Size s = Size.MEDIUM;

3.运算符
算术运算符:+、- 、* 、/。参与 / 运算的两个操作数都是整数时,表示整数除法,否则表示浮点除法,15.0/2等于7.5。

取余:%,15%2等于1。
数学函数与常量:
 Math类中包含各种数学函数。如,计算一个数值的平方根:
 double x = 4;
 double y = Math.sqrt(x);
 System.out.println(y); //输出2

数值类型之间的转换:

java中的实数类型如何定义 java中,实型变量的类型有_运算符


如:

int n = 123456789;

float f = n; //f 等于 1.23456792E8,损失了一定精度。

如果两个操作数有一个double,另一个操作数就会转换为double;

否则,如果一个是float,另一个转化为float;

否则,如果一个是long,另一个转化为long;

否则,两个都被转化为int。

强制类型转换:
如:
double x = 9.997;
int x = (int) x;
如果想对浮点数进行舍入运算,以便得到最接近的整数,需使用Math.round方法:
double x=9.997;
int nx = (int) Math.round(x);

结合赋值和运算符:
x+=4;等价于x=x+4;
注:如果运算符得到一个值,其类型与左侧操作数的类型不同,就会发生强制类型转换。如:如果x是一个int,则 x+=3.5;是合法的,将把x设置为(int)(x+3.5)。

自增与自减运算符:同C,C++。

关系和boolean运算符:值为false或true,注意:不为0或1

位运算符:
& : and | : or ^ : xor(异或) ~ : not

4.字符串
Java字符串就是Unicode字符序列。
Java没有内置的字符串类型,而是在标准Java类库中提供了一个预定义类,很自然地叫做String。每个双引号括起来的字符串都是String类的一个实例:
String e = " ";
String greeting = “HELLO”;
类似于C,C++,Java字符串中的代码单元和代码点从0开始计数。

子串:
String类的substring方法可以从一个较大的字符串提取一个子串。例如:

String greeting = “HELLO”;
 String s = greeting.substring(0,3);


s为"HEL"。其中3是不想复制的第一个位置,即要复制0,1,2,而不包含3。

拼接:

Java可以用+号连接两个字符串。
 String e= “Expletive”;
 String G = “deleted”;
 String m = e + G;
 上述代码将"Expletivedeleted" 赋给m。
 ·当一个字符串与一个非字符串的值进行拼接时,后者会转换为字符串。如:
 int age = 13;
 String r = “ABC” + age;
 则 r 为"ABC13"。这种特性通常用在输出语句中,例如:
 System.out.println(“The answer is " + answer);
 ·如果需要把多个字符串放在一起,用一个界定符分隔,可以用静态join方法:
 String a = String.join(”/",“s”,“m”,“l”,“xl”);


字符串a为"s/m/l/xl"。

如果字符串重复出现,可以用repeat方法:
 String r=“java”.repeat(3);
 字符串r为"javajavajava"。如果想将"HELLO"变成"HELP!",可以这样:
 String greeting = “HELLO”;
 greeting = greeting.substring(0,3)+“P!”;

检测字符串是否相等:
对于表达式 s.equals(t) 如果s与t相等,则返回true,否则返回false。其中s和t可以是"HELLO"这样的字符串字面量,也可以是greeting这样的字符串变量。
注:一定不要使用==检测两个字符串是否相等。

其他:
检验一个字符串是否为空:

if(str.length()==0) 或 if(str.equals(""))