java基础
2022-04-12 17:52:17 239 举报
AI智能生成
java基础
作者其他创作
大纲/内容
垃圾回收
概念
垃圾回收算法
引用计数法(Reference Counting Collector)
算法分析
优点
缺点
tracing算法(Tracing Collector)
根搜索算法
标记-清除算法分析
compacting算法 或 标记-整理算法
copying算法(Compacting Collector)
generation算法(Generational Collector)
年轻代(Young Generation)
年老代(Old Generation)
持久代(Permanent Generation)
GC(垃圾收集器)
新生代收集器
Serial
PraNew
Parallel Scavenge
老年代收集器
Serial Old
Parallel Old
CMS
GC的执行机制
Scavenge GC
Full GC
Java有了GC同样会出现内存泄露问题
常量池
api
java.lang
exception
异常处理
try..catch
finally
throws
throw
thread
构造方法
Thread()
Thread(Runnable target)
Thread(Runnable target, String name)
Thread(String name)
Thread(ThreadGroup group, Runnable target)
Thread(ThreadGroup group, String name)
方法
sleep(long millis)
start()
toString()
getName()
getPriority()
interrupted()
java.util
date
构造方法
Date()
Date(long date)
方法
after(Date when)
before(Date when)
getTime()
setTime(long time)
Collection
子类
List
ArrayList
构造器
public ArrayList()
public ArrayList(ICollection)
public ArrayList(int)
LinkedList
构造器
LinkedList()
LinkedList(Collection<? extends E> c)
Set
HashSet
构造器
HashSet()
HashSet(Collection<? extends E> c)
HashSet(int initialCapacity)
HashSet(int initialCapacity, float loadFactor)
TreeSet
特点
使用方式
自然排序(Comparable)
比较器排序(Comparator)
区别
构造器
TreeSet()
TreeSet(Collection<? extends E> c)
TreeSet(Comparator<? super E> comparator)
TreeSet(SortedSet<E> s)
Map
Map接口和Collection接口的不同
功能
添加功能
删除功能
判断功能
获取功能
长度功能
子类
HashMap
构造器
HashMap()
HashMap(int capacity)
HashMap(int capacity, float loadFactor)
HashMap(Map<? extends K, ? extends V> map)
TreeMap
构造器
TreeMap()
TreeMap(Map<? extends K, ? extends V> copyFrom)
TreeMap(Comparator<? super K> comparator)
TreeMap(SortedMap<K, ? extends V> copyFrom)
java.util.concurrent
java.io
类
File
构造器
File(File parent, String child)
File(String pathname)
File(String parent, String child)
File(URI uri)
方法
mkdir()
OutputStream
构造器
OutputStream()
方法
close()
flush()
write(byte[] b)
write(byte[] b, int off, int len)
write(int b)
InputStream
构造器
InputStream()
方法
close()
mark(int readlimit)
read()
read(byte[] b)
reset()
Writer
构造器
Writer()
Writer(Object lock)
方法
append(char c)
flush()
write(char[] cbuf)
write(int c)
close()
Reader
构造器
Reader()
Reader(Object lock)
方法
close()
mark(int readAheadLimit)
read()
read(char[] cbuf)
read(CharBuffer target)
ready()
reset()
接口
Serializable
java.math
java.nio
枚举
泛型
方法
例子
类
例子
类型通配符
内部类
成员内部类
局部内部类
匿名内部类
静态内部类
反射
用途
反射相关类
入门
特点
简单
面向对象
跨平台
安全
多线程
八大基本类型
整形
byte
short
int
long
浮点型
float
double
字符型
char
布尔型
boolean
作用域和权限
private:只能本类使用
默认(default ):本类和子类可以使用
protected:本类,子类,同包
public:都可以使用
运算符
==和equals
算数运算符
关系运算符
位运算符
逻辑运算符
赋值运算符
条件运算符(三元运算符)
循环结构
do..while
while
for
普通for循环
增强for循环
break
continue
条件语句
if
if..else
if..else if..else
switch case
数组
定义
一维数组
数组类型[] 数组名 = [数据1,数据2]
数组类型[] 数组名 = new 数组类型[数组大小]
多维数组
数组类型[][] 数组名 = new 数组类型[数组大小][数组大小]
优缺点
优点
查询效率比较高
可以容纳基本类型
缺点
数组的长度是固定的,不能改变
数组存储的类型必须是设置的存储类型
删除和插入比较慢,每次删除和插入会从新排序
方法(函数)
定义
优点
使程序变得简短而清晰
有利于程序维护
可以提高程序开发的效率
提高了代码的重用性
排序
插入排序
直接插入排序
希尔排序
选择排序
简单选择排序
堆排序
交换排序
冒泡排序
快速排序
归并排序
基数排序
数据结构
队列
栈
链表
单链
双链
循环链表
块级链表
树
二叉树
面向对象
类装载器
static修饰
方法
变量
代码块
重载(Overload)
封装
好处
良好的封装能够减少耦合
类内部的结构可以自由修改
可以对成员变量进行更精确的控制
隐藏信息,实现细节
例子
继承
特性
子类拥有父类非 private 的属性、方法
子类可以拥有自己的属性和方法,即子类可以对父类进行扩展
子类可以用自己的方式实现父类的方法
Java 的继承是单继承,但是可以多重继承
提高了类之间的耦合性(继承的缺点,耦合度高就会造成代码之间的联系越紧密,代码独立性越差)
关键字
extends(继承)
implements(实现)
构造方法
注意
方法名和类名要一致
无返回值修饰符
不能被直接调用
由 new 关键字自动调用
可以使用return关键字(结束方法体)
不能用static修饰
可以重载
不可以被继承
重写(Override)
规则
多态
重载式多态
重写式多态
向上转型
向下转行
抽象
定义
如果一个类包含抽象方法,那么该类必须是抽象类。
任何子类必须重写父类的抽象方法,或者声明自身为抽象类
规定
抽象类不能被实例化(初学者很容易犯的错),如果被实例化,就会报错,编译无法通过。只有抽象类的非抽象子类可以创建对象
抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类。
抽象类中的抽象方法只是声明,不包含方法体,就是不给出方法的具体实现也就是方法的具体功能
构造方法,类方法(用 static 修饰的方法)不能声明为抽象方法
抽象类的子类必须给出抽象类中的抽象方法的具体实现,除非该子类也是抽象类
接口(Interface)
接口与类
相同点
一个接口可以有多个方法
接口文件保存在 .java 结尾的文件中,文件名使用接口名
接口的字节码文件保存在 .class 结尾的文件中
接口相应的字节码文件必须在与包名称相匹配的目录结构中
区别
接口不能用于实例化对象
接口没有构造方法
接口中所有的方法必须是抽象方法
接口不能包含成员变量,除了 static 和 final 变量
接口不是被类继承了,而是要被类实现
接口支持多继承
接口和抽象类的区别
抽象类中的方法可以有方法体,就是能实现方法的具体功能,但是接口中的方法不行
抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是 public static final 类型的
接口中不能含有静态代码块以及静态方法(用 static 修饰的方法),而抽象类是可以有静态代码块和静态方法
一个类只能继承一个抽象类,而一个类却可以实现多个接口
特性
接口是隐式抽象的,当声明一个接口的时候,不必使用abstract关键字
接口中每一个方法也是隐式抽象的,声明时同样不需要abstract关键字
接口中的方法都是公有的
final修饰
类
方法
变量
jvm
类装载器:将java文件加载成.class文件
字节码执行引擎
内存模型
线程共用
堆
方法区(元空间)
线程独有
栈
栈帧
局部变量表
操作数栈
动态链接
方法出口
程序计数器
本地方法栈
收藏
0 条评论
下一页