语法基础
- 一、关键字的概述和使用
- 二、标识符的概述和组成规则
- 三、标识符中常见的命名规则
- 四、数据类型的概述和分类
- 五、数据类型的概述和分类
- 六、数据类型转换之强制转换
- 七、数据类型转换之强制转换超出范围
- 八、字符和字符串参与运算
- 九、算术运算符的基本用法
- 十、算术运算符++和--的用法
- 十一、赋值运算符的基本用法
- 十二、关系运算符的基本用法及其注意事项
- 十三、逻辑运算符的基本用法
- 十四、逻辑运算符&&和&的区别
- 十五、三元运算符的基本用法
一、关键字的概述和使用
- A:什么是关键字
- 被Java语言赋予特定含义的单词
- B:关键字的特点
- 组成关键字的字母全部小写
- C:常见关键字
- public static void class等
- D:关键字的注意事项
- goto和const作为保留字存在,目前并不使用,类似Editplus这样的高级记事本,针对关键字有特殊的颜色标记,非常直观
二、标识符的概述和组成规则
- A:什么是标识符
- 就是给类,接口,方法,变量等起名字时使用的字符序列
- B:标识符的组成规则
- 英文大小写字母
- 数字字符
- $和_
- C:标识符注意事项
- 1,不能使用关键字
- 2,不能数字开头
三、标识符中常见的命名规则
- 见名知意
- A:包
- 最好是域名倒过来,要求所有的字母小写
- B:类或者接口
- 如果是一个单词首字母大写
- 如果是多个单词每个单词首字母大写(驼峰标识)
- C:方法或者变量
- 如果是一个单词全部小写
- 如果是多个单词,从第二个单词首字母大写
- D:常量
- 如果是一个单词,所有字母大写
- 如果是多个单词,所有的单词大写,用下划线区分每个单词
四、数据类型的概述和分类
- A:为什么有数据类型
- Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间
- B:Java中数据类型的分类
- 基本数据类型
- 引用数据类型
- 面向对象部分讲解
- C:基本数据类型分类(4类8种)
- 整数型
- byte 占一个字节 -128到127
- short 占两个字 -215~215-1
- int 占四个字节 -231~231-1
- long 占八个字节 -263~263-1
- 浮点型
- float 占四个字节 -3.403E38~3.403E38 单精度
- float表示的数据范围比long的范围要大
- double 占八个字节-1.798E308~1.798E308 双精度
- float 占四个字节 -3.403E38~3.403E38 单精度
- 字符型
- char 占两个字节 0~65535
- 布尔型
- boolean
- boolean理论上是占八分之一个字节,因为一个开关就可以决定是true和false了,但是java中boolean类型没有明确指定他的大小
- boolean
- 整数型
五、数据类型的概述和分类
- A:案例演示
- a:int + int
- b:byte + int
- B:Java中的默认转换规则
- 取值范围小的数据类型与取值范围大的数据类型进行运算,会先将小的数据类型提升为大的,再运算
- C:画图解释byte+int类型的问题,x=x+b,x+b=7,如图:
public static void main(String[] args) {
int x = 3;
byte b = 4;
x = b + x;
System.out.println(x); //7
}
六、数据类型转换之强制转换
- B:强制转换的格式
- b = (byte)(a + b);
- C:强制转换的注意事项
- 如果超出了被赋值的数据类型的取值范围得到的结果会与你期望的结果不同
- 如果超出了被赋值的数据类型的取值范围得到的结果会与你期望的结果不同
我们把上面例子改一下,改成如下的程序,会报错,可能损失精度,因为type比int小,从大往小可能损失精度,但我们知道结果为7,在byte的范围之内,但它就是报错了,怎么办呢
public static void main(String[] args) {
int x = 3;
byte b = 4;
b = b + x;
System.out.println(x); //报错饿了
}
碰到这种情况,就需要用到强制类型转换了,修改代码如下:
public static void main(String[] args) {
int x = 3;
byte b = 4;
b = (byte)( b + x);
System.out.println(b); //7
}
再看一张图,加深一下印象
七、数据类型转换之强制转换超出范围
上面的例子强制转换还在范围之内,但如果超国了范围之内呢?那么就丢失精度了。
public static void main(String[] args) {
byte b = (byte)(123 + 12);
System.out.println(b); //-121
}
八、字符和字符串参与运算
- A:案例演示
-
System.out.println(‘a’);
-
System.out.println(‘a’+1);
-
通过看结果知道’a’的值是多少,由此引出ASCII码表
-
- B:ASCII码表的概述
- 记住三个值:
- ‘0’ 48
- ‘A’ 65
- ‘a’ 97
- 记住三个值:
- C:案例演示
- System.out.println(“hello”+‘a’+1);
- System.out.println(‘a’+1+“hello”);
- D:+在有字符串参与中被称为字符串连接符
- System.out.println(“5+5=”+5+5);
- System.out.println(5+5+“=5+5”);
例子:
public static void main(String[] args) {
System.out.println('a' + 1); //98,因为有ASCII码表,a字符对应的是int类型的97
System.out.println((char)('a' + 1)); //b
System.out.println("hello"+'a'+1); //helloa1 任何数据类型用+与字符串相连接都会产生新的字符串
System.out.println('a'+1+"hello"); //98hello
System.out.println(" 5 + 5 = " + (5 + 5)); // 5 + 5 = 10
}
九、算术运算符的基本用法
- A:什么是运算符
- 就是对常量和变量进行操作的符号。
- B:运算符的分类
- 算术运算符,赋值运算符,比较(关系或条件)运算符,逻辑运算符,位运算符,三目(元)运算符
- C:算数运算符有哪些
- +,-,*,/,%,++,–
- D:注意事项:
- a:+号在java中有三种作用,代表正号,做加法运算,字符串的连接符
- b:整数相除只能得到整数。如果想得到小数,必须把数据变化为浮点数类型
- c:/获取的是除法操作的商,%获取的是除法操作的余数
- %运算符
- 当左边的绝对值小于右边绝对值时,结果是左边
- 当左边的绝对值等于右边或是右边的倍数时,结果是0
- 当左边的绝对值大于右边绝对值时,结果是余数
- %运算符结果的符号只和左边有关系,与右边无关
- 任何一个正整数%2结果不是0就是1可以用来当作切换条件
例子:
public static void main(String[] args) {
System.out.println(10 / 3); //3 整数相除结果只能是整数
System.out.println(10 / 3.0); //3.3333333 如果想得到小数,把其中一个数变成小数,另一个数在运算的时候会自动类型提升
System.out.println(-5 % 5); //0
System.out.println(13 % -5); //3
}
十、算术运算符++和–的用法
- A:++,–运算符的作用
- 自加(++)自减(–)运算
- ++:自加。对原有的数据进行+1
- –:自减。对原有的数据进行-1
- B:案例演示
- a:单独使用:
- 放在操作数的前面和后面效果一样。(这种用法是我们比较常见的)
- b:参与运算使用:
- 放在操作数的前面,先自增或者自减,然后再参与运算。
- 放在操作数的后面,先参与运算,再自增或者自减。
- a:单独使用:
例子:
public static void main(String[] args) {
//单独使用
int c = 3;
//c++; //a = a + 1;
++c; //a = a + 1;
System.out.println(c); //4
//参与运算使用
int a = 3;
int b;
b = a++; //当++在变量后面的时候,会先将变量中的值取出做赋值操作,然后再自身加1
//b = ++a; //当++在变量前面的时候,会先自身加1,然后在将结果赋值
System.out.println("a = " + a); //a = 4
System.out.println("b = " + b); //b = 3
}
十一、赋值运算符的基本用法
- A:赋值运算符有哪些
-
a:基本的赋值运算符:=
- 把=右边的数据赋值给左边。
-
b:扩展的赋值运算符:+=,-=,*=,/=,%=
- += 把左边和右边做加法,然后赋值给左边。
-
十二、关系运算符的基本用法及其注意事项
- A:关系运算符有哪些(比较运算符,条件运算符)
- ==,!=,>,>=,<,<=
- 注意事项:
-
无论你的操作是简单还是复杂,结果是boolean类型。
-
“==“不能写成”=”。
-
十三、逻辑运算符的基本用法
-
A:逻辑运算符有哪些
- &,|,^,!
- &&,||
-
B:案例演示
-
逻辑运算符的基本用法
-
注意事项:
- a:逻辑运算符一般用于连接boolean类型的表达式或者值。
- b:表达式:就是用运算符把常量或者变量连接起来的符合java语法的式子。
- 算术表达式:a + b
- 比较表达式:a == b(条件表达式)
-
C:结论:
-
&逻辑与:有false则false。
-
|逻辑或:有true则true。
-
^逻辑异或:相同为false,不同为true。
-
!逻辑非:非false则true,非true则false。
- 特点:偶数个不改变本身。
十四、逻辑运算符&&和&的区别
- A:案例演示
- &&和&的区别?
- a:最终结果一样。
- b:&&具有短路效果。左边是false,右边不执行。
- &是无论左边是false还是true,右边都会执行
- &&和&的区别?
- B:同理||和|的区别?(自学)
- C:开发中常用谁?
- &&,||,!
十五、三元运算符的基本用法
- A:三元运算符的格式
(关系表达式) ? 表达式1 : 表达式2; - B:三元运算符的执行流程
- C:案例演示
- 获取两个数中的最大值
例子:
public static void main(String[] args) {
//(关系表达式) ? 表达式1 : 表达式2;
int x = 10;
int y = 5;
int z;
z = (x > y) ? x : y; //括号的值是true,把x赋值给z,为false,把y赋值给z
System.out.println("z = " + z); //z = 10
}