以下是作者将Java入门的基础知识进行了一定总结,适用于学习过,但需要复习和加固基础的人群查阅,其中要有不对或不全之处,欢迎补充
目录
一. 编程基础
1.数据类型
2.运算符
3.循环结构语句
4.数组
二.面向对象
1.基本思想
2.封装
3.继承
4. 抽象类和接口
5.多态
3.2.6 Object类
三.异常
1.定义
2.处理
3.自定义异常
四. API
1.包装类
2.常用类
五.集合
1.概述
2.常用类
3.集合遍历
4. Map接口
六.泛型
一. 编程基础
1.数据类型
基本数据类型
整数类型
字节型byte
8位
短整型short
16位
整型int
32位
长整型long
64位
浮点数类型
float
32位
double
64位
字符型
char
‘ ’单引号
布尔型
boolean
true或false
引用数据类型
类 class
接口interface
数组
枚举enum
注解annotation
1.变量之间可以相互转型
自动转型:byte<short<int<long
强制转型:目标类型 变量=(目标类型)值
2.变量只有在作用范围内才能被使用,一个{}则为一个作用域。
2.运算符
算术运算符
运算符
范例
结果
+ 正号/加号
+3
3
- 负号/减号
b=4;-b;
-4
* 乘
3*4
12
/ 除
5/5
1
% 取模(求余数)
7%5
2
++自增 前(先加)
a=2;b=++a
a=3,b=3
++自增 后(后加)
a=2;b=a++
a=3,b=2
-- 自减 前(先减)
a=2;b=--a
a=1,b=1
-- 自减 后(后减)
a=2;b=a--
a=1,b=2
赋值运算符
= 赋值
a=3
a=3
+= 加等于
a+=b
a=a+b
-= 减等于
a-=b
a=a-b
*= 乘等于
a*=b
a=a*b
/= 除等于
a/=b
a=a/b
%= 模等于
a%=b
a=a/b取整
比较运算符 (返回均为布尔型)
==等于
4==3
false
!=不等于
4!=3
true
<小于
4<3
false
>大于
4>3
true
<=小于等于
4<=3
false
>=大于等于
4>=3
true
逻辑运算符
& 与 一假为假
true&false
false
| 或 全假才假
true|false
true
1.运算符优先级:
算术 > 乘除 > 加减 > 比较 > 逻辑 > 赋值
3.循环结构语句
循环结构
语法
备注
if语句循环
for(初始化表达式;循环条件;操作表达式){ 执行语句 }
在循环次数已知的情况下,for循环语句
if…else if…else
if(判断语句){执行语句1 }else if(判断语句){执行语句2 }else{执行语句n }
对于多个判断条件进行判断,进行多种不同的处理
switch
switch(表达式){ case 目标值1: 执行语句 break; default: 执行语句n break; }
只针对于某个表表达式的值做出判断
while语句循环 (先判断后执行)
while(循环条件){ 执行语句 }
while语句会反复进行循环条件判断,只要条件成立,{}内的执行语句就会执行
do…while (先执行后判断)
do{ 执行语句 } while(循环条件)
循环体会无条件执行一次,再根据条件决定是否继续循环
for循环语句
for(初始化表达式;循环条件;操作表达式){ 执行语句 }
一般在循环次数已知的情况下
跳转语句
break语句
跳出循环语句执行后面的代码
continue语句
它的作用是终止本次循环,执行下一次循环
4.数组
1.数组基本元素:名称、元素、索引、数据类型
数据类型[ ]数组名=new 数据类型[元素…]
2.定义数组类型 (按数据类型进行分类)
3.写明数组长度(数组的初始值为0,最小索引为0,最大索引为数组长度减一)
4.new 为引用数据关键字
5.有一个length属性,可获得数组长度
二.面向对象
1.基本思想
封装性
将对象的属性和行为看成一个整体
继承性
子类可以继承父类的所有方法和属性
多态性
三要素:继承、重写、父类引用指向子类对象
1.类和对象
创建:class 类名{}
类名 对象名=new 类名()
new:在堆内存中创建一个新对象
对象的属性和方法的访问都是通(.)运算符来实现
2.控制权限
访问范围
private私有
default默认
protected受保护的
public 公共
同类
√
√
√
√
同包中的类
√
√
√
不在同包中的子类
√
√
全局范围
√
2.封装
定义
实现
关键字
作用
将类的细节包装隐藏起来,通过类提供的方法访问
属性私有化,提供公有的读写方法
private 获取属性 getxxx() 设置属性setxxx()
防止本类代码和数据被外部类定义的代码随机访问
1.构造方法
定义
实现
关键字
注意
是类的特殊,在类实例化对象时自动调用
属性私有化,提供公有的读写方法
pubiic
构造方法的名称必须和类名一致 2.名称前不能有任何返回值类型的声明 3.不能在构造方法中使用return返回值
Overload:重载,不同方法之间作用,根据参数不同或数据类型不同选择不同方法,方法之间可以同名,所有同名不同参。
2.this关键字
调用本类中的属性
调用成员方法

调用构造方法

3.static关键字
应用
输入
输出
注意
静态属性 (公共属性)
适用于属性如果在使用中被修改,则所有对象的属性都修改
类名.属性进行访问
类.属性=“”修改
只能修饰成员变量,不能修饰局部变量
静态方法
适用于需要不创建对象,类名直接调用某个方法,一般用于工具类
类名.方法进行访问
类.方法=“”修改
静态方法只能访问静态成员
注:修饰类时,该类只能执行一次
3.继承
定义
关键字
注意
在现有类(父类)的基础上构建一个新类称为子类,子类继承父类属性和方法
extends
1.子类只能访问父类中公共和受保护的方法。2.只能单继承,不允许多继承,可以多个类继承一个父类,并且多层继承也可以
1.Override
Override:重写,继承中子类重写方法要和父类方法同名、同参、同类型
注:子类重写父类时,不能使用比父类方法更严格的访问权限
2.关键字
关键字
作用
注意
super
1.访问父类的非私有属性或调用非私有方法 2.调用父类指定构造方法
调用的代码必须位于子类构造方法第一行,所以this和super不能同时使用
final
1.类不能有子类 2.方法不能被重写 3.变量变为常量
声明变量时,变量名应全为大写
4. 抽象类和接口
1.抽象类
定义
抽象方法在定义时不需要实现方法体,包含抽象方法的类就是抽象类
关键字
abstract
语法格式
abstract 返回值类型 方法名称(参数列表)
定义规则
1.包含抽象方法的类必须是抽象类 2.声明抽象类和抽象方法时都要使用 abstract 关键字修饰 3.抽象方法只需要声明而不需要实现。 4.如果一个非抽象类继承了抽象类之后,那么该类必须重写抽象类中的全部抽象方法。
注意
1.抽象类中不一定有抽象方法,但抽象方法一定在抽象类中 2.抽象类不可以被实例化 3.抽象方法不能使用private关键字
2.接口
定义
定义程序协议,接口可以对接不同的业务模块
关键字
声明:interface / 实现:implements
语法格式
(public)interface 接口名 [extender 接口1,接口2] 使用:修饰符 class 类名 implements 接口1,接口2{ }
定义规则
允许接口继承接口,并且一个接口可以同时继承多个接口
5.多态
定义
形式
不同类的对象在调用同一个方法时有多种不同行为
1.方法的重载 2.方法的重写
1.对象类型转换
情况
作用
格式
注意
子类对象 父类对象
父类对象可以调用子类重写发方法,不用更改父类代码
父类类型 父类对象=子类实例
父类对象 子类对象
重新获得向上转型丢失的子类特性
父类类型 父类对象=子类实例 子类类型 子类对象=(子)父类对象
必须先向上转型,再向下转型
2.instanceof关键字
作用
语法
判断一个对象是否是某个类的实例
对象 instanceof 类
3.2.6 Object类
定义
常用方法
方法说明
所有类的父类,通常被称为超类
boolean equals()
判断两个对象是否“相等”
int hashCode()
返回对象的哈希值
String toString()
返回对象的字符串表示形式
三.异常
1.定义
Exception 普通错误
RuntimeException 运行时异常
ArithmeticException算术异常
ClassCastException类处理异常
Error 严重错误
IOError/AWTError
运行时异常
描述
java编程基础应用ArithmeticException
算术异常
IndexOutOfBoundsException
索引越界异常
ClassCastException
类型转换异常
NullPointerException
空指针异常
NumberFormatException
数字格式化异常
2.处理
关键字
功能描述
try
放置可能引发异常的代码块
catch
后面对应异常类型和一个代码块,该代码块用于处理这种类型的异常
finally
无论程序是否异常都要执行,只能出现在try之后,不能单独出现
throw
用于抛出一个实际的异常。它可以单独作为语句来抛出一个具体的异常对象,可以自定义错误信息
throws
用在方法签名中,用于声明该方法可能抛出的异常,需要写在方法声明后面,throw后面还需要声明异常类型
3.自定义异常
自定义的异常类只需继承 Exception 类,在构造方法中使用 super()语句调用
四. API
1.包装类
装箱:将基本数据类型转换/成包装类的过程
拆箱:将包装类转换成基本数据类型的过程
基本数据类型
对应的包装类
byte
Byte
char
Character
int
Integer
short
Short
long
Long
float
Float
double
Double
boolean
Boolean
2.常用类
类型
类名
特点
常用方法
字符串类
String类
初始化字符串对象
boolean equals(Obiect obj) 比较 obj 与当前字符串的内容是否相同
StringBuffer类
字符串内容和长度可变
int length() 获取字符串缓冲区中字符串内容的长度
StringBuilder类
没有实现线程安全
系统相关
System类
系统相关的属性和方法
static Properties getProperties() 获取当前系统全部属性
Runtime类
获取Java虚拟机运行状态
getRuntime() 用于获取 Runtime类的实例
算术相关
Math类
进行科学计算PI—Π E--e
random() 用于生成一个大于或等于 0.0 且小于 1.0 的随机数 [0,1)
Random类
指定范围的随机数
Random() 利用系统时间创建一个对象
数据特殊
BigInteger类
处理8个字节以上的整数
BigDecimal类
处理书=数字精度要求高的场景
日期和时间
Date类
时间和日期
Calendar类
读取时间和日期的特定部分,抽象类,不可以被实例化
Instant类
精确时刻,精细到纳秒
LocalDate类
不带时区的日期
LocalTime类
不带时区的时间
Duration类
计算两个时间的间隔
Period类
计算两个日期的间隔
日期和时间格式化
DateForm类
将日期时间进行格式化
SimpleDataFormat类
是DateForm类子类,可以创建实例对象
数字格式化
NumberFormat类
格式化和解析任何区域数字
正则表达式
Pattern类
创建正则表达式
Marcher类
验证Pattern类定义的与字符串是否匹配
五.集合
1.概述
集合 可以存储任意类型的对象,并且存储的长度可变,这些类统称为集合
Collection 单列集合
List 存储一组有序、不唯一的对象
ArrayList
LinkedList
Vector
Set 存储一组无序、唯一的对象
HashSet
TreeSet
Map 双列集合
HashTable
Properties
HashMap
LinkedHashMap
TreeMap
2.常用类
ArrayList
HashSet
概念
ArrayList 实现了 List 接口,是一个可变长度的有序集合,可以动态增加或减少元素
它基于哈希表数据结构,元素被散列到哈希表中,使元素的查找和插入效率非常高。
用法
它内部使用数组来存储元素,允许重复元素,而且保持元素的插入顺序
HashSet用于存储一组唯一的元素,不允许重复。 可用于快速查找、插入和删除元素。
主要方法
add(E element): 向列表末尾添加一个元素。 get(int index): 获取指定索引位置的元素。 set(int index, E element): 替换指定索引位置的元素。 remove(int index): 移除指定索引位置的元素。 size(): 返回列表的大小。 isEmpty(): 检查列表是否为空。 contains(Object o): 检查列表是否包含指定元素。
add(E ): 向集合添加一个元素,如果已存在则不添加。 remove(object o): 从集合中移除指定元素。 contains(Object o): 检查集合中是否包含指定元素。 size(): 返回集合的大小。 isEmpty(): 检查集合是否为空。
使用场景
当需要一个动态数组,可以随时添加或删除元素时,使用 ArrayList。 适用于需要按顺序存储和访问元素的情况。
当需要存储一组唯一的元素时,使用 HashSet。 适用于需要快速查找、插入和删除元素的情况。
3.集合遍历
使用
Iterator接口

foreach循环 (只能访问其中元素,不能对其元素修改)

4. Map接口
定义
K
V
双列集合,每一个元素都包含一个键对象和一个值对象,键和值之间存在映射
hashset 不可重复,重复将会覆盖
Arraylist 可重复
1.常用方法
方法声明
功能描述
void put( Objcet key, Object value)
将指定的值和键存人集合并进行映射美联
Object get( Objeet key)
返回指定的键映射的值;如果此映射不包含该键的狭射关系,则返回 null
void clear()
移除所有的键值对元素
2.实现类
HashMap
概念
Java 中的一个集合类,它实现了 Map 接口,用于存储键值对。 将键映射到值,允许快速查找、插入和删除元素。HashMap 不允许重复的键,但允许键对应的值重复。
方法
put(K key, V value): 将指定的键值对添加到映射中。如果键已存在,将替换对应的值。 get(Object key): 返回与指定键关联的值,如果键不存在,则返回 null。 remove(Object key): 从映射中移除指定键对应的键值对。 containsKey(Object key): 检查映射是否包含指定的键。 containsValue(Object value): 检查映射是否包含指定的值。 keySet(): 返回包含映射中所有键的集合。 values(): 返回包含映射中所有值的集合。 entrySet(): 返回包含映射中所有键值对的集合。 size(): 返回映射中键值对的数量。 isEmpty(): 检查映射是否为空。
使用场景
HashMap 适用于需要存储键值对的情况,当需要关联一个唯一键与一个值时,但不要求键的顺序时,特别是在需要快速查找和访问值的情况下。
inkedHashMap
集合中元素遍历顺序与存入顺序一致
TreeMap
对元素的键进行排序
Propertise
存储应用配置项
3.常用工具类
Collections
提供大量排序、查找、修改的操作
Arrays
提供了针对集合和数组的操作
Lambda
取代匿名内部类
六.泛型
作用
1.类型安全 2.消除强制类型转换 3.潜在的性能收益 4.更好的代码复用性
优点
1.提高类型的安全性。 2.消除强制类型转换。 3.提高代码复用性。 4.拥有更高的运行效率。
使用
修饰符 <代表泛型的变量> 返回值类型 方法名(参数){ }super (参数 1,参数 2,..) 泛型广泛应用于Java集合框架 可以创建泛型类和接口 泛型方法
接口
public<泛型类型>返回类型方法名(泛型类型变量名){}
通配符
E:元素 K,V:键值对 N:数字 T:类型dd
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/h6javajc/2909.html