AnthonyCJ's Blogs

Find your passion, and you'll feel the light.

JavaSE-2-基本语法

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
2
3
4
5
8 bit = 1 B
1024 B = 1 KB
1024 KB = 1 MB
1024 MB = 1 GB
1024 GB = 1 TB

3.2 Java基本数据类型

基本数据类型:4类8种

  • 布尔类型:boolean,数值有2个:true, false
  • 字符类型:char,占2个字节
  • 整数类型:
    • byte 字节,1字节(8bit)
    • short 短整型,2字节(16bit)
    • int 整型(默认类型),4字节(32bit)
    • long 长整型,加Ll进行表示,8字节(64bit)
  • 浮点类型
    • float 单精度,加Ff进行表示,4字节(32bit)
    • double 双精度,(默认类型),8字节(64bit)

基本数据类型是 Java 语言中内置的类型。整数类型、浮点类型、字符类型、布尔类型 这四类是最基础的类型。

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-8

BIG5 中文繁体字编码,主要流行于中国香港,中国澳门,中国台湾省,新加坡

ASCII码 美国XXXXX协会制定的一个标准编码

Java中的所有字符都使用Unicode编码,故一个字符可以存储一个字 母,一个汉字,或其他书面语的一个字符。

  • Unicode中每个字符都对应一个二进制整数,可以使用多种方式赋值。
  • 字符赋值:char c1 = ‘A’;(通过’’描述为字符赋值)
  • 整数赋值:char c2 = 65;(通过十进制数65在字符集中对应的字符赋值)
  • 进制赋值:char c3 = ‘\u0041’;(通过十六进制数41在字符集中所对应的字符赋值)

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
char c3 = '\u0041'; //通过十六进制数41在字符集中所对应的字符赋值
System.out.println(c3);

char c = 'c';
char c2 = 'A';
System.out.println("c2:"+c2);

//转义字符
System.out.println("------------转义字符--------------");
System.out.println("\"hello,world!!\"");
System.out.println("\"hello,\nworld!!\""); //\n转义字符 换行

System.out.println("\"hello,\tworld!!\""); //\t转义字符,一个制表符

输出

1
2
3
4
5
6
7
A
c2:A
------------转义字符--------------
"hello,world!!"
"hello,
world!!"
"hello, world!!"



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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//隐式转换;
byte byteNum = 23;
int intNum = byteNum;//将一个byte类型的数据赋值给int类型的变量
System.out.println("intNum:"+intNum);
int i = 345;
double d = i;
System.out.println("d:"+d);

//显式转换:
double doubleNum =3.45;
int iNum = (int)doubleNum;//发生了精度丢失
System.out.println("iNum:"+iNum);//

int num = 129;
byte bNum = (byte)num;//有可能发生了数据的溢出
System.out.println("bNum:"+bNum);

char c = 'c';
int cNum = (int)c;
System.out.println("cNum:"+cNum);

long l1 = 345L;

输出

1
2
3
4
5
intNum:23
d:345.0
iNum:3
bNum:-127
cNum:99



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 选择结构

程序的流程结构:顺序结构,选择结构,循环结构

通过分支语句实现:ifswitch


条件运算符

语法结构:X ? Y : Z

X必须是boolean类型的表达式:True,False
X的值为true–>取Y的值
X的值为false–>取Z的值

1
2
int age = 16;
String result = age >= 18 ? "Adult" : "Child"; //判断是否成年

if语句

简单if语句语法:

1
2
3
if (条件) {
执行语句
}

if-else语句

if-else 语句语法:

1
2
3
4
5
6
7
if (条件) {
执行语句1
} else if {
执行语句2
} else {
...
}

switch语句

可以实现选择结构:

1
2
3
4
5
6
7
8
9
10
11
12
13
switch (变量) {
case 常量值1: {
分支1;
break;
}
case 常量值1: {
分支1;
break;
}
...
default;

}

注意事项:

  • 变量的类型范围为: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
2
3
4
int[] arr = {1, 2, 3};
for (int i : arr) {
System.out.println(i);
}

增强for的优缺点

  • 只能从头到尾的遍历数组或集合,而不能只遍历部分。
  • 在遍历List或数组时,不能获取当前元素下标。
  • 增强for使用便简单,这是它唯一的优点了。
  • 增强for比使用迭代器方便一点。
用爱发电,无需打赏哦~