JavaSE-基本语法复习,内容较略。
1. 关键字和保留字
- 关键字
- 定义:被Java 语言赋予了特殊含义,用做专门用途的字符串(单词)
- 特点: 关键字中所有字母都为小写
用于定义数据类型的关键字 | class, interface, enum, byte, short, int, long, float, double, char, boolean, void |
---|---|
用于定义流程控制的关键字 | if, else, switch, case, default, while, do, for, break, continue, return |
用于定义访问权限修饰符的关键字 | private, protected, public |
用于定义类,函数,变量修饰符的关键字 | abstract, final, static, synchronized |
用于定义类与类之间关系的关键字 | extends, implements |
用于定义建立实例及引用实例,判断实例的关键字 | new, this, super, instanceof |
用于异常处理的关键字 | try, catch, finally, throw, throws |
用于包的关键字 | package, import |
其他修饰符关键字 | native, strictfp, transient, volatile, assert |
用于定义数据类型值的字面值 | true, false, null |
- 保留字
- Java保留字:现有Java版本尚未使用,但以后版本可能会作为关键字使用。自己命名标识符时要避免使用这些保留字
- 示例:
goto, const
2. 标识符
标识符 :是指在程序中,我们自己定义内容。比如类的名字、方法的名字和变量的名字等等,都是标识符。
定义合法标识符规则
- 标识符就是名称的意思,所有的名字都统称为标识符
- Java 中经常要定义类、方法、变量等,在定义的时候需要给它们取名字,这些名字就是标识符
- 只有字母(区分大小写),下划线 (_),美元符号 ($) 和数字组成,长度不受限制
- 第一个字母不能是数字,不能用数字开头
- 不能是关键字
- 不能是
true, false, null
(这三个都不是关键字,而是常量标识,前两个是布尔类型的默认值,null是引用类型的默认值)
Java中的名称命名规范:
- 包名:多单词组成时所有字母都小写:
xxxyyyzzz
- 类名、接口名:多单词组成时,所有单词的首字母大写:
XxxYyyZzz
- 变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:
xxxYyyZzz
- 常量名:所有字母都大写。多单词时每个单词用下划线连接:
XXX_YYY_ZZZ
注意:见名知意 驼峰命名法 尽量不要用拼音
a. 驼峰命名法: 小驼峰 一般用于变量名,方法名 首字母小写,之后的每一个单词首字母大写getStudentAge setStudentAge studentScore studentGender
大驼峰 一般用于类名,接口名 所有单词首字母大写FirstJava Demo1 Person UserService StudentDao
b. 下划线命名法: 一般用于Java中的常量 MAX_VALUE 最大值 DEFAULT_CAPACITY 默认容量
3. 变量
3.1 变量概述
变量:常量是固定不变的数据,那么在程序中可以变化的量称为变量。
Java中要求一个变量每次只能保存一个数据,必须要明确保存的数据类型。
- Java语言中数据类型:2大类
- 基本数据类型
- 引用数据类型
字节
字节是我们常见的计算机中最小存储单元,计算机存储任何的数据,都是以字节的形式存储。
8个bit(二进制位) 0000-0000表示为1个字节,写成1 byte或者1 B。
1 | 8 bit = 1 B |
3.2 Java基本数据类型
基本数据类型:4类8种
- 布尔类型:
boolean
,数值有2个:true, false
- 字符类型:
char
,占2个字节 - 整数类型:
byte
字节,1字节(8bit)short
短整型,2字节(16bit)int
整型(默认类型),4字节(32bit)long
长整型,加L
或l
进行表示,8字节(64bit)
- 浮点类型
float
单精度,加F
或f
进行表示,4字节(32bit)double
双精度,(默认类型),8字节(64bit)
基本数据类型是 Java 语言中内置的类型。整数类型、浮点类型、字符类型、布尔类型 这四类是最基础的类型。
附:
char 字符型 ,2 个字节 ,用单引号表示 ‘’ ,刚好容纳一个汉字
注意: char 里面只能放一个
long类型:建议数据后加L表示。
float类型:建议数据后加F表示。
3.3 变量定义
变量:计算机内存中的一块存储空间,是存储数据的基本单元。
语法
1 | 数据类型 变量名 = 数据的值; |
注意
- Java中每个变量必须先声明,后使用
- 使用变量名来访问这块区域的数据
- 变量的作用域:其定义所在的一对
{ }
内- 变量只有在其作用域内才有效
- 同一个作用域内,不能定义重名的变量
3.4 字符类型
ASCII(American Standard Code for Information Interchange),美国标准信息交换码
用ASCII码表示的字符在存储空间种占1个字节(8bit)。
在计算机内部,所有数据都使用 二进制表示。每一个二进制位(bit)有 0 和 1 两种状态,
因此 8 个二进制位就可以组合出 256 种状态,这被称为一个字节(byte)。一个字节一
共可以用来表示 256 种不同的状态,每一个状态对应一个符号,就是 256 个符号,从
0000000 到 11111111。ASCII码:上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的
关系,做了统一规定。这被称为ASCII码。ASCII码一共规定了128个 个字符的编码,比如
空格“SPACE”是32(二进制00100000),大写的字母A是65(二进制01000001)。这
128个符号(包括32个不能打印出来的控制符号),只占用了一个字节的后面7位,最前
面的1位统一规定为0。
GB2312老国标 支持中文简体字和一部分少数民族文字
GBK 新国标(国标扩) 支持中文简体字和少数民族文字
UTF-8 万国码 支持世界上通用文字,也是后期开发中会使用的到的编码
JavaWEB项目 HTML前端页面 数据库软件编码集全部都是对应的UTF-8BIG5 中文繁体字编码,主要流行于中国香港,中国澳门,中国台湾省,新加坡
ASCII码 美国XXXXX协会制定的一个标准编码
Java中的所有字符都使用Unicode编码,故一个字符可以存储一个字 母,一个汉字,或其他书面语的一个字符。
- Unicode中每个字符都对应一个二进制整数,可以使用多种方式赋值。
- 字符赋值:char c1 = ‘A’;(通过’’描述为字符赋值)
- 整数赋值:char c2 = 65;(通过十进制数65在字符集中对应的字符赋值)
- 进制赋值:char c3 = ‘\u0041’;(通过十六进制数41在字符集中所对应的字符赋值)
示例
1 | char c3 = '\u0041'; //通过十六进制数41在字符集中所对应的字符赋值 |
输出
1 | A |
3.5 基本数据类型的转换
Java允许程序员在一定程度上进行数据类型的转换。
8种基本数据类型:
7种数值类型可以参加转换:byte,short,char,int,long,float,double(boolean不参加)。
- 显式转换
- 显式转换(强制转换):取值范围大的转为取值范围小的。
- 小范围数据类型 变量 = (小范围数据类型 变量)大范围数据类型;
int n = (int)6.7;
- 语法结构:(要转换的类型)数值
- 隐式转换
- 隐式转换(自动转换):取值范围小的转为取值范围大的。
- 大范围数据类型 变量 = 小范围的数据类型;
double d = 10000;
数据范围从大到小:
double >float>long>int>short>byte
示例
1 | //隐式转换; |
输出
1 | intNum:23 |
4. 运算符
4.1 算术运算符
+,-,*, / , %,++,--
+
:加-
:减*
:乘/
:取商%
:取余或者取模
自增自减运算
++:自增1
–:自减1
i++和++i
变量在独立运算时, 前 ++ 和 后 ++ 没有区别 。
和其他变量放在一起, 前 ++ 和 后 ++ 就产生了不同。
i++,给i加1,但是i++的值是i本身。(先计算,后加1)
++i,给i加1,但是++i的值是i+1了。(先加1,后计算)
4.2 赋值运算符
=
,赋值:=右侧的数据,赋值给=左边的变量+=
,-=
,*=
,/=
,%=
1 | a += b //a =a + b |
4.3 关系运算符(比较运算符)
用于比较两个数的关系,返回boolean
类型的结果
>
, <
, >=
, <=
, ==
, !=
==
:判断两个数是否相等==
,和=的区别=
:赋值运算符==
:比较数值是否相等!=
:判断两个数是否不相等
4.4 逻辑运算符(重点)
操作数是boolean类型,结果也是boolean类型
&
:与操作
规则:操作数都是true,结果才是true,有一个是false就为false。
一假则假,全真才真
|
:或操作
规则:操作数都是false,结果才是false,有一个是true,就是true
一真则真,全假才假
^
:异或:异表示不同
规则:两个操作数,相同为假,不同为真。
!
:取非,取反
规则:!T–>F, !F–>T
&&
:短路与
规则:遇到一个false就直接返回结果为false,后面的不再参加计算了。
||
:短路或
规则:遇到一个true就直接返回结果为true,后面不再计算了
5. 程序流程控制
5.1 选择结构
程序的流程结构:顺序结构,选择结构,循环结构
通过分支语句实现:if
,switch
条件运算符
语法结构:X ? Y : Z
X必须是boolean
类型的表达式:True,False
X的值为true–>取Y的值
X的值为false–>取Z的值
1 | int age = 16; |
if
语句
简单if语句语法:
1 | if (条件) { |
if-else
语句
if-else 语句语法:
1 | if (条件) { |
switch
语句
可以实现选择结构:
1 | switch (变量) { |
注意事项:
- 变量的类型范围为:int类型,byte,short,int,char,String,枚举
- case后的数值必须唯一
- case可以无序
- break用于防止switch的穿透
- default是可选的语句。
5.2 循环结构
- for循环
- while循环
- do-while循环
补充:增强for循环
语法:增强for的冒号左边是定义变量,右边必须是数组或集合类型。例如上例中循环遍历的主浊arr这个int数组,增强for内部会依次把arr中的元素赋给变量i。
1 | int[] arr = {1, 2, 3}; |
增强for的优缺点
- 只能从头到尾的遍历数组或集合,而不能只遍历部分。
- 在遍历List或数组时,不能获取当前元素下标。
- 增强for使用便简单,这是它唯一的优点了。
- 增强for比使用迭代器方便一点。