J2SE知识点

来源:互联网 发布:志村团藏 知乎 编辑:程序博客网 时间:2024/05/20 08:41

1、面向对象的概念
面向对象:对象的概念、认识事物的方式
抽象:把事物相应的抽象(人类自己的一种想象)
面向对象开发流程:先把项目抽象化,然后再对方法细分

面向对象的三大特征:封装、继承、多态
封装:把一些方法属性封装起来,使其包装起来。好处:重用性,安全性
继承:代码的复用,可扩展性
多态:动态绑定(相同的行为,不同的实现)必须要继承;特点:重写,重载
2、方法的重写和重载
重载:同一类中,方法名要相同,参数列表不同(个数,类型,顺序),同类中为区分
重写:两个类,关系:父与子;方法名,参数列表,返回类型,访问修饰符要大于或等于父类的访问修饰符相同,为找到相同名的方法
修饰符:大public--->protected---->默认---->private小
3、抽象类和接口
接口:全部抽象方法,实现接口的类,实现其全部方法(方法名一致),设计更合理,规范后面的代码
狭义的接口:以interface,方法就是一个接口;
广义的接口:尽量提供外部的一个可以调用的方法;
抽象类:方法的定义和申明
区别:1、修饰;2、属性;3、方法;4、构造方法(抽象:有构造方法;接口:没有构造方法);5、单程继承和多重实现(接口可以多重继承接口!特殊)
4、值传递和引用传递
值传递:Java 编程语言只有值传递参数
引用传递:引用的拷贝(地址的拷贝)
5、异常
异常:thorwable--->error和exception
error -->程序当中出现严重错误,程序员没办法处理,如内存溢出,堆栈溢出等等,没必要处理
exception -->运行异常和编译异常
运行异常:在运行时需要捕获和处理,父类RuntimeException
编译异常:在编译时需要捕获和处理,父类Exception
何时调用异常?
编译异常-->try---catch
运行异常-->需要调试代码,来处理异常
自定义异常?
作用:规范异常,包装异常
6、java程序运行机制
过程:编写源文件-->调用Javac编译.class文件-->类加载器去加载类文件-->校验-->解释-->运行

8、集合框架(JCF)
常用:ArrayList,HashSet,HashMap
collection/map都是隶属于集合,区别:map键值对,collection单一的元素
collection:list、set
list和set区别
1、顺序:list是有序的,set是无序的
2、是否重复:list是可重复,set是不可重复
常用list的类:ArrayList,LinkedList,Vector
ArrayList和Vector唯一区别:ArrayList线程不安全,Vector线程安全
ArrayList和LinkedList区别:
1、结构:ArrayList(线型结构)LinkedList(链表结构)
2、性能:ArrayList查询快,LinkedList查询慢,情况(添加和删除):后面添加:ArrayList快;中间和前面添加:LinkedList快
常用set的类:HashSet,TreeSet
HashSet和TreeSet区别:HashSet是不可排序,TreeSet是可排序;性能:HashSet效率高,利用hash值排列
Map:HashMap,TreeMap,HashTable;
HashMap和HashTable的区别:
1、出现时间不同,JDK版本不同HashTable是1.0出现的,HashMap是1.2出现的
2、性能:HashTable效率慢(线程安全),HashMap效率高(线程不安全)
3、HashTable不允许有空键空值的出现,HashMap允许有空键空值的出现
collection和collections的区别:collection是接口,collections是集合算术类,方法全是静态的
iterator(迭代器)的常用方法:hasNext是否有下一个,next一下个
9、输入输出(相对的)
判定输入输出:利用参照物来评定
如何输入和输出?
流:输入流、输出流(好比:管道)
流分为三大类:字节流,字符流,对象流(其本质都是字节流)
字节流:InputStream、OutputStream
字符流:Reader、Writer
对象流:ObjectInputStream,ObjectOutputStream
字节流常用:FileInputStream 、FileOutputStream 、PrintStream 、ByteArrayInputStream 、ByteArrayOutputStream
字符流常用:BufferedReader 、BufferedWriter
10、什么是序列化和反序列化
对象序列化:把对象转化成二进制数据,为了保存下来,必须实现Serializable接口
对象反序列化:把二进制数据转化成对象 transient
Properties 类表示了一个持久的属性集
11、事件委托模型
事件委托模型就是典型的回调机制例子(运用广泛)
需要有:监听者,事件源
12、JavaBean
JavaBean是一种规范,基于主键式的开发
JavaBean规范:
1、必须要有一个无参,公共的构造方法;
2、必须符合命名规范的get、set方法;(驼峰命名法);
3、必须支持内省(内省:通过属性可以得到方法;反之也一样);
4、应该实现Serializable接口;
5、有运行时外观,就必须要实现awt.component
简单JavaBean的方法:只能设值和取值;
绑定属性JavaBean;约束属性JavaBean;
13、反射机制及其运用
反射:简单理解:在运行时(不是编译时)动态获取类的方法,属性,构造方法
反射作用:在运行期得到一个类的名称(字符串)来产生对象;通过类的方法获得信息
反射原理:Class获得类模板对象,再去实例化代码——new对象(隐式),反射是获得类模板产生对象(显式)
如何用代码实现反射:
知道对象的情况:对象.getClass();
知道类名的情况:类名:class;
不知道对象和类名的情况:Class.forName(全限定名=包名+类名);
利用12Class中常用方法去获得方法和属性
最后就是去设置和获取属性值,也可以调用方法
反射局限性:性能低(做游戏等不建议使用)
14、多线程
线程状态:新建-->就绪-->运行-->死亡
运行时的状态:
1、睡眠sleep(自己知道唤醒);
2、等待wait(需要别人来唤醒);
3、挂起yeild(暂时让出当前CPU的控制权);
4、阻塞IO(把整个程序中断);
15、线程的同步方法和同步块
线程同步(线程安全)
同步方法:在同一监视器的情况下,方法加synchronized,当前方法被同步,锁只有一个
同步块:在方法里调用synchronized(xxx.class){}

原创粉丝点击