Java基础知识图解
Java基础语法
1、基础入门
1-1 关键字
关键字(keyword)的定义和特点:
- 定义:被Java语言赋予了特殊含义,用做专门用途的字符串(单词)
- 特点:关键字中所有字母都为小写
- 官方地址:
https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html
1-2 标识符(Identifier)
- 标识符:
- Java 对各种变量、方法和类等要素命名时使用的字符序列称为标识符
- 技巧:凡是自己可以起名字的地方都叫标识符。
- 定义合法标识符规则:
- 由26个英文字母大小写,0-9 ,_或 $ 组成 数字不可以开头。
- 不可以使用关键字和保留字,但能包含关键字和 保留字。
- Java中严格区分大小写,长度无限制。
- 标识符不能包含空格。
- Java中的名称命名规范:
- 包名:多单词组成时所有字母都小写:xxxyyyzzz
- 类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
- 变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个 单词首字母大写:xxxYyyZzz
- 常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ
1-3 变量
下图为变量的分类(按数据类型):
- 在方法体外,类体内声明的变量称为成员变量。
- 在方法体内部声明的变量称为局部变量。
下图为变量的分类(按声明位置):
- 注意:二者在初始化值方面的异同:
同:都有生命周期
异:局部变量除形参外,需显式初始化。
基本数据类型转换
- 自动类型转换:容量小的类型自动转换为容量大的数据类型。数据类型按容 量大小排序为:
- 有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的 那种数据类型,然后再进行计算。
- byte,short,char之间不会相互转换,他们三者在计算时首先转换为int类型。 boolean类型不能与其它数据类型运算。
- 当把任何基本数据类型的值和字符串(String)进行连接运算时(+),基本数据类 型的值将自动转化为字符串(String)类型。
字符串类型:String
String不是基本数据类型,属于引用数据类型
强制类型转换
- 自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型。使 用时要加上强制转换符:(),但可能造成精度降低或溢出,格外要注意。
- 通常,字符串不能直接转换为基本类型,但通过基本类型对应的包装类则可 以实现把字符串转换成基本类型。
- 如: String a = “43”; int i = Integer.parseInt(a);
- boolean类型不可以转换为其它的数据类型
1-4 运算符
运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。
① 算术运算符
算术运算符的注意问题:
- 如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。 但被模数是 负数则不可忽略。此外,取模运算的结果不一定总是整数。
- 对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只 保留整数部分而舍弃小数部分。 例如:int x=3510;x=x/1000*1000; x的 结果是?
- “+”除字符串相加功能外,还能把非字符串转换成字符串. 例如: System.out.println(“5+5=”+5+5);
② 赋值运算符
- 符号:=
- 当“=”两侧数据类型不一致时,可以使用自动类型转换或使用强制类型转换原则进行处理。
- 支持连续赋值。
- 扩展赋值运算符: +=, -=, *=, /=, %=
③ 比较运算符(关系运算符)
- 比较运算符的结果都是boolean型,也就是要么是true,要么是false。
- 比较运算符“==”不能误写成“=” 。
④ 逻辑运算符
⑤ 位运算符
- 位运算是直接对整数的二进制进行的运算
⑥ 三元运算符
(条件表达式)?表达式1:表达式2;
1-5 运算符的优先级:
2、数组
2-1 数组的概念
-
数组(Array),是多个相同类型数据按一定顺序排列 的集合,并使用一个名字命名,并通过编号的方式 对这些数据进行统一管理。
-
数组的常见概念
- 数组名
- 下标(或索引)
- 元素
- 数组的长度
-
数组本身是引用数据类型,而数组中的元素可以是任何数据类型,包括
基本数据类型和引用数据类型。 -
创建数组对象会在内存中开辟一整块连续的空间,而数组名中引用的是这块连续空间的首地址。
-
数组的长度一旦确定,就不能修改。
-
我们可以直接通过下标(或索引)的方式调用指定位置的元素,速度很快。
-
数组的分类:
-
按照维度:一维数组、二维数组、三维数组、…
-
按照元素的数据类型分:基本数据类型元素的数组、引用数据类型元素的数组(即对 象数组)
-
2-2 一维数组的使用
-
一维数组的声明方式:
type var[] 或 type[] var;
例如:-
int a[];
-
int[] a1;
-
double b[];
-
String[] c; //引用类型变量数组
-
-
Java语言中声明数组时不能指定其长度(数组中元素的数), 例如: int a[5]; //非法
数组元素的引用:
- 定义并用运算符new为之分配空间后,才可以引用数组中的每个元素;
- 数组元素的引用方式:数组名[数组元素下标]
- 数组元素下标可以是整型常量或整型表达式。如a[3] , b[i] , c[6*i];
- 数组元素下标从0开始;长度为n的数组合法下标取值范围: 0 —>n-1;如int a[]=new int[3];
可引用的数组元素为a[0]、a[1]、a[2]
- 每个数组都有一个属性length指明它的长度,例如:a.length 指明数组a的长 度(元素个数)
- 数组一旦初始化,其长度是不可变的
数组元素的默认初始化值:
-
数组是引用类型,它的元素相当于类的成员变量,因此数组一经 分配空间,其中的每个元素也被按照成员变量同样的方式被隐式初始化。
例如:
public class Test {
public static void main(String argv[]){
int a[]= new int[5];
System.out.println(a[3]); //a[3]的默认值为0
}
} -
对于基本数据类型而言,默认初始化值各有不同
-
对于引用数据类型而言,默认初始化值为null(注意与0不同!)
2-3 多维数组的使用
2-4数组中涉及的常见算法
数组中涉及的常见算法
- 数组元素的赋值(杨辉三角、回形数等)
- 求数值型数组中元素的最大值、最小值、平均数、总和等
- 数组的复制、反转、查找(线性查找、二分法查找)
- 数组元素的排序算法