目录
一、关键字
二、标识符
三、注释
四、变量
五、数据类型
六、运算符
6.1 算术运算符
6.2 比较运算符
6.3 逻辑运算符
6.4 位移运算符
一、关键字
在 Java 中内置了很多有特殊意义的单词,这些单词不能做为类名、方法名、变量名来使用。关键字必须是小写的。
在我们的入门程序中已经接触到了以下几个:
-
public:它表示是公共的,是一个范围修饰符
-
class:它是用于定义类的关键字
-
static:它表示这个变量或方法是一个静态的,静态可以通过类名来访问,而且是放到内存的静态区域中。
-
void:它是用于修饰方法的,表示这个就去没有返回值。
二、标识符
对程序中出现的一些事物所起的名称,称之为标识符。
标识符必须遵守以下规则:
-
标识符是由字母、数字、下划线
_
和美元符$
构成的字符序列 -
标识符必须以字母、下划线
_
或美元符$
开头,不能以数字开头 -
标识符不能是关键字
-
标识符不能是Java内置关键字数据(
this
、true
、false
、null
、super
等) -
标识符不能是API里面的已知类的名称
-
标识符可以为任意长度,但必须是一个连续的字符序列
-
标识符严格区分大小写
三、注释
在java中有三种注释:
-
// 表示单行注释
-
/* */ 表示多行注释
-
/** */ 表示文档注释
四、变量
变量用于存放某个值的,而这个值可以在程序的运行过程中发生变化。它其实是在内存中开辟了一块区域来进行存放。便于程序在运行过程中使用。定义变量时,在遵守标识符的规则,同时我们尽量做到见名知意。
定义变量的格式:
变量类型 变量名称 = 值;
五、数据类型
在 Java 中数据类型分为如下两类:
-
基本数据类型
-
字节:byte
-
字符:char
-
短整型:short
-
整型:int
-
长整型:long
-
浮点型:float
-
双精度:double
-
布尔类型:boolean
-
-
引用数据类型
-
数组
-
类
-
接口
-
使用示例:
public class JavaType { public static void main(String[] args) { // 1. avaible int age = 18; System.out.println("age=" + age); float money = 3.5F; System.out.println("money=" + money); boolean flag = true; System.out.println("flag=" + flag); char c = 'C'; System.out.println("c=" + c); //char c = 'C1'; c = '1'; System.out.println("c=" + c); }
}
注意:
变量需要先定义再使用
定义变量时需要指定它的类型
如果定义的是 float 类型,则它的值后在带上小 f 或 大 F ,这样才能明确指定它是 float 类型,否则它就是 double 类型
布尔类型在 java 中只有两个值:true 和 false
字符的值只能使用单引号,而且单引号中只能有一位
六、运算符
6.1 算术运算符
在 Java 中,算术运算符包含:+、-、*、/、%
public class ArithmeticOperator {
public static void main(String[] args) {
int a = 10; // 定义了一个整型类型的变量 a,它的值是 10
int b = 6;
// 1. + 加法运算符,它是用于两个数相加操作
int result = a + b;
//System.out.println(result);
System.out.println("result = " + result);
System.out.println("--------");
// 2. - 减法运算符
result = a - b;
System.out.println("result = " + result);
// 3. * 乘法运算符
result = a * b;
System.out.println("result = " + result);
// 4. / 除法运算符。注意在 Java中两个整数相除,结果为整数。
result = a / b; // 10 / 6 = 1
System.out.println("result = " + result);
// 类型自动提升:发生在小类型向大类型转换。如将 int 转换为 double
double r = a / b * 1.0;
System.out.println("r = " + r);
// 大类型向小类型转换,需要强制执行,格式是使用一对小圆括号来指定要转换了类型
int n = (int)r;
System.out.println("n = " + n);
// 5. % 取模运算符,它其实是得到两个数相除的余数。
result = a % b;
System.out.println("result = " + result);
}
}
在Java中除了算术运算符以外,还有++、--运算符
public class ArithmeticOperator02 {
public static void main(String[] args) {
// ++ 运算符,它是一种自增操作
通过加法和减法运算符,实现两个数的交换操作:
int a = 10;
int r = a++; // 如果++在变量之后,是先将变量的值赋值后,自己再加1操作
System.out.println("r = " + r + ", a = " + a); // r = 10, a = 11
int b = 5;
r = ++b; // 如果 ++ 在变量之前,是先将变量做加1操作后,再把结果赋值给变量
System.out.println("r = " + r + ", b = " + b); // r = 6, b = 6
int c = 6;
int s = ++c + c++ + c++ + ++c;
/**
* 7 + c++ + c++ + ++c; c = 7
* 7 + 7 + c++ + ++c; c = 8
* 7 + 7 + 8 + ++c; c = 9
* 7 + 7 + 8 + 10; c = 10
*/
System.out.println("s = " + s + ", c = " + c); // s = 32, c = 10
}
}
public class ArithmeticOperator03 {
public static void main(String[] args) {
int a = 5;
int r = a--; // 如果 -- 在变量之后,是先将变量的值赋值给别的变量后,自己再减1
System.out.println("r = " + r + ", a = " + a);
int b = 5;
r = --b; // 如果 -- 在变量之前,是先自己执行减1操作后,再将结果赋值给别的变
量。
System.out.println("r = " + r + ", b = " + b);
int c = 6;
int s = --c + c++ + c-- + ++c;
/**
* --c + c++ + c-- + ++c;
* 5 + c++ + c-- + ++c; c = 5
* 5 + 5 + c-- + ++c; c = 6
* 5 + 5 + 6 + ++c; c = 5
* 5 + 5 + 6 + 6; c = 6
*/
System.out.println("s = " + s + ", c = " + c); // s = 22, c = 6
}
}
通过加法和减法运算符,实现两个数的交换操作:
public class ArithmeticOperator04 {
public static void main(String[] args) {
// 需求:使用 + 和 - 运算符实现两个数的交换
int a = 3;
int b = 4;
System.out.println("a = " + a + ", b = " + b);
//int tmp = 0;
//tmp = a;
//a = b;
//b = tmp;
a = a + b;
b = a - b;
a = a - b;
System.out.println("a = " + a + ", b = " + b);
}
}
6.2 比较运算符
在 Java 中比较运算符包括 大于(>)、大于等于(>=)、等于(==)、小于(<)、小于等于(<=)、不等于(!=) 对比较运算符,运算后的结果是一个布尔类型的值。
public class ComparisonOperator01 {
public static void main(String[] args) {
int a = 6;
int b = 6;
System.out.println(a > b); //false
System.out.println(a >= b); // true
System.out.println(a < b); // false
System.out.println(a <= b); // true
System.out.println(a == b); // true
System.out.println(a != b); // false
}
}
6.3 逻辑运算符
逻辑运算符中包括与(&&)、或(||)、非(!),他们运算的结果也是布尔类型的值
public class LogicalOperator01 {
public static void main(String[] args) {
boolean f1 = true;
boolean f2 = false;
boolean f3 = false;
boolean f4 = true;
// 使用 && 操作时,在这个运算符的前后值都是 true 时,结果才为 true;否则结果为
false
System.out.println(f1 && f2); // true && false = false
System.out.println(f3 && f1); // false && true = false
System.out.println(f1 && f4); // true && true = true
System.out.println(f2 && f3); // false && false = false
System.out.println("-------------------");
// 当使用 || 操作时,在这个运算符前后的值只要有一个是 true 结果就为 true,否则
结果为 false
System.out.println(f1 || f2); // true || false = true
System.out.println(f3 || f1); // false || true = true
System.out.println(f1 || f4); // true || true = true
System.out.println(f2 || f3); // false || false = false
System.out.println("-------------------");
// 使用 ! 运算符,如果原来的值是 true 取反后值为 false;如果原来的值是 false,
取后结果为 true
System.out.println(!f1); // !true = false
System.out.println(!f2); // !false = true
}
}
当我们把比较运算符和逻辑运算符相结合使用时:public class LogicalOperator02 {
public static void main(String[] args) {
int a = 5;
int b = 6;
boolean c = true;
System.out.println(a > b && c); // false
System.out.println(a > b || c); // true
}
}
- &&运算符的短路效果是:当表达中找到 false 后,后面的值就不计算了,直接返回 false 值。
- ||运算符的短路效果是:当表达中找到 true 后,后面的值就不计算了,直接返回 true 值。
算术运算符与逻辑运算符也可以综合使用,演示短路效果:public class LogicalOperator03 {
public static void main(String[] args) {
int a = 5;
boolean f1 = true;
System.out.println(f1 || a/0 == 0);
boolean f2 = false;
System.out.println(f2 && a/0 == 0);;
}
}
6.4 位移运算符
位移运算包括左移 << 、右移 >> ,无符号左移 <<<,以及无符号右移 >>>
public class ShiftBitwiseOperators01 {
public static void main(String[] args) {
// 需求:计算 2 的 3 平方
int a = 2;
int r = a * a * a;
System.out.println(r);
r = a << 2;
System.out.println(r);
}
}
使用位移运算符来实现两个数据的交换:
public class ShiftBitwiseOperators02 {
public static void main(String[] args) {
int a = 3;
int b = 4;
System.out.println("a = " + a + ", b = " + b);
a = a ^ b;
b = a ^ b;
a = a ^ b;
System.out.println("a = " + a + ", b = " + b);
}
}