java第一阶段理论性知识总结

java重要知识点

1 线程的生命周期

在这里插入图片描述

2 流的特点

1)流是有序的
2)流是先进先出的
3)流可以控制数据的流动方向
4)流是可以关闭的
5)流的作用主要是用来读取数据和写入数据的

3 异常体系

在这里插入图片描述
说明:
1)异常体系的总体父类叫Throwable
2)Throwable分两大类,一个是Error,代表严重错误
3)Exception:代表异常,是不严重的情况,可以通过异常的处理,使得项目在出现异常问题后正常运

4)Exception分运行时异常和非运行时异常(编译时异常),运行时异常有个子类叫
RuntimeException;
5)编译时异常(受检型异常),在编译阶段就必须处理异常,否则编译不通过,io流
运行时异常(非受检型异常):在运行时才可能出现异常情况,不要求必须异常处理
6)RuntimeException和他的子类为运行时异常,Exception和他的除了RuntimeException之外的子类
为编译时异常

4 final finalize finally的区别

final代表最终的,可以修饰类,方法和常量
修饰的类不能被继承,修饰的方法不能被重写,修饰的常量不能修改
finalize()是个方法,代表对象被垃圾回收时调用的方法
finally是trycatch代码块中最终执行的代码

5 throw 和throws的比较

1)使用位置不同,throw 是方法体中,throws是方法名后面
2)throw后面跟异常对象,只能是一个对象,throws后面是异常类型,可以是多个
3)throw通常需要搭配throws一起使用

6 HashMap和Hashtable的区别

1)HashMap允许有null值和null键,Hashtable不能有null值和null键
2)HashMap是不同步的,线程不安全的,执行效率高的,Hashtable是同步的,线程安全的,执行效率低的
3)HashMap和Hashtable的版本不同,HashMap是jdk1.2的,Hashtable是JDK1.0
4)两个的直接父类不同

7 泛型的好处

1)将错误提前到编译阶段
2)在获取元素时不需要向下转型,保证了数据的安全性

8 set添加数据

在这里插入图片描述

9 集合的分类

在这里插入图片描述
1)Collection里面存储的元素是一个值,所以它叫单列集合,他是个接口
2)Map中存储的元素是一对数据,叫双列集合,他是个接口
3)Collection的子接口是list和Set
4)List中存储的元素是有序的,可以是重复的
5)Set中存储的元素是无序的,是不能重复的
{
1)所有集合中存储的元素,可以是不同类型的,但是只能是引用类型,不能是基本数据类型
2)所有集合的长度是不固定的
}

10 ArrayList和LinkedList,Vector的区别

1)ArrayList,Vector是数组结构存储数据的,linkedList是链表结构存储数据的
2)ArrayList,Vector的查询效率高,增删效率低
3)LinkedList的查询效率低,但是增删效率高
4)ArrayList是不同步的,线程不安全的,执行效率高的,Vector是同步的,线程安全的,执行效率低的
5)ArrayList的容量每次扩充,扩充到原来的1.5倍,Vector每次扩充2倍
6)ArrayList是jdk1.2版本的,Vector是1.0版本的

11 包装类

byte Byte
short Short
int Integer
long Long
char Character
float Float
double Double
boolean Boolean

12 自动拆箱装箱

装箱:基本数据类型–》包装类
拆箱:基本数据类型《–包装类
jdk1.5版本之后才有的
自动装箱:基本数据类型可以直接赋值给包装类
Integer integer=3;
自动拆箱:包装类对象可以直接赋值给基本数据类型
int a = integer;

13*String StringBuilder和StringBuffer的区别

1)String是不可变的字符序列,StringBuilder和StringBuffer的是可变的
2)StringBuilder是不同步的,线程不安全的,执行效率高的,StringBuffer是同步的,线程安全的,执
行效率低的
3)StringBuffer是jdk1.0版本的,StringBuilder是1.5版本的

14 匿名内部类 概述

1)是没有名字的内部类
2)一次性的内部类,将类的定义和类的实例化一次性完成的类
3)匿名内部类定义的是一个类的子类或者一个接口的实现类
4)实例化的是类的子类或接口的实例化对象

内部类名称总结:
1.有名字的内部类 成员内部类 外部类名 内部类名.class
局部内部类 方法所在类名 内部类名.class
2,匿名内部类:所在类类名.class

15 equals和==的区别

== :可以判断基本数据类型和引用类型
equals方法:只能判断引用类型
1) == 判断的是基本数据类型的值是否相同,和引用类型是否是同一个引用,即内存地址是否相同
2)equals方法,如果没有被重写,即和==的比较是相同的,都是内存地址的比较
如果被重写,比如String就重写了equals方法,则此时equals的比较结果和重写定义的逻辑是相同的

16 类库的概念

类库
Java中生成的.class文件进行打包,生成一个.jar的文件,我们叫jar包,很多的jar包,形成了类库
第一方jar包:java的类生成的jar包
第二方jar包:我们自定义的类生成的jar包
第三方jar包:其他公司为了实现某些功能,封装成的jar包

17 接口和抽象类的区别

在这里插入图片描述

18 访问修饰词

public 公共的访问权限 可以修饰 类 和 类成员
缺省(default)同包只能都能访问 可以修饰 类 和类成员
private 私有的,当前类 可以修饰 类成员
protected 受保护的 不同包子类可以访问,不同包非子类不能访问 可以修饰类成员
在这里插入图片描述

19方法的重写

1)一个父类中定义了一个方法,他的子类对于该方法的实现方式不一样,此时,可以在子类中重新定义该方法的实现逻辑,我们将子类中该方法叫方法的重写
2)重写的方法必须和父类一样(方法名,参数)
3)一旦在子类中重写了方法,则运行时会直接调用子类中重写的方法

20方法的重载

在同一个类中,方法名相同的方法,但是参数不同
好处: 类中有类似的模块,使用相同的方法名字,这样对用定义者,不用想很多名字来进行区分,对于调用者,可以 减轻记忆负担

特点

1)在同一个类中
2)方法名相同
3)参数不同
–》参数类型不同
–》参数个数不同
–》参数顺序不同
4)和返回值类型无关
5)和方法的修饰词无关

21 静态变量和非静态的变量的区别

1)所属不同
静态变量属于类
非静态变量属于对象
2)存储位置不同
静态变量存储在方法区中的静态区域
非静态变量存储在堆中
3)生命周期不同
静态变量与类同寿的
非静态变量对象创建时创建,对象没有了引用,非静态变量会等待垃圾回收
4)访问方式
静态变量:类名 对象名
非静态变量:对象名

22 java的平台版本

java可以完成很多项目,项目的需求不同,使用不同的java平台版本
javaME 最小版本 主要用于非智能移动端的开发 基本上已经淘汰
javaSE 标准版本 主要用于pc端开发 有图形化界面的开发
javaEE 企业版本 主要用于网页后台的开发

23 jvm jre jdk

jvm

java virtual machine java虚拟机
运行java的容器

jre

java runtime environment java运行环境
java项目的运行除了虚拟机之外,还需要一些java提前定义好的类,很多的类形成了一个类库
jre = jvm + 核心类库

jdk

java development kit java开发工具包
jdk = jre + 工具包

总结:三者是相互包含的关系

在这里插入图片描述

24 数据类型

java是个强类型的语言,java中的所有数据都是有类型的,
1)不同的数据类型所占的内存不同,合理定义数据类型, 可以节省内存空间
2)不同的数据类型,使用的方法不同,即实现的功能不同
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值