JavaSE知识点总结学习资料.docx
《JavaSE知识点总结学习资料.docx》由会员分享,可在线阅读,更多相关《JavaSE知识点总结学习资料.docx(27页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精品名师归纳总结2. 面对对象的懂得面对对象是 Java 的基本特点,是软件开发过程使用的基于面对过程一种思维方式,将功能封装进对象,强调具备功能的对象和调用结果,不关注详细实现这个功能的过程。面对对象特点:是一种更符合人们摸索习惯的思想,可以将复杂的事情简洁化,将程序由执行者转换成为指挥者。面对对象特性:封装,继承,多态封装:封装是把数据和方法包装进类中,隐匿其详细实现细节,对外供应公共拜访方法。封装的结果是一个同时带有特点和行为的数据类型。(安全性,复用性)继承:当一个类的属性与行为均与现有类相像,属于现有类的一种时,这一个类可以 定义为现有类的子类。或者,当多个类具有相同的属性和行为,我
2、们可以抽取出共性 的内容定义父类,再创建相像的”兄弟 ”类时只要继承父类即可。当子类继承父类后, 拥有了父类非私有的方法并可以直接调用。假如认为父类供应的方法不够强大,子类 可以依据子类自身的规律重写继承过来的父类方法。(复用性,可保护性,多态前提)多态:继承是多态的前提,多态是指一种事物具有多种形状,比如猫具有猫类的形 态,也具有动物的形状,多态的详细表现是父类引用指向子类对象,父类的引用也可以接收自己子类的对象。(可保护性,扩展性)面试 :跟我谈谈什么是面对对象1 面对对象是基于面对过程的2 什么是面对过程什么是面对对象3 面对对象的特点3. 面对对象和面对过程的区分面对过程强调的是功能行
3、为,分析解决问题所需的步骤,以函数为基础,完成各种步骤的操作和实现。面对对象是基于面对过程的,将功能封装成对象,强调的是具备了这些功能的对象, 让对象去调用方法来解决问题。面对对象举例可编辑资料 - - - 欢迎下载精品名师归纳总结4. abstract与哪些关键字不能共存为什么private :私有的方法是不行见的,无法被重写final :被 final 修饰的方法是最终方法,无法被重写static :被 static 修饰的方法,要随类加载到方法区,由于抽象方法没有方法体所以不能加载5. static 的特点(1) 随着类的加载而加载。优先于对象存在。 被全部对象所共享。可以直接被类名所调
4、用。(2) 静态方法只能拜访静态,非静态方法既可以拜访静态也可拜访非静态(3) 静态方法中不行以定义this 、super 关键字,由于静态优先于对象存在,this和 super 所代表的对象仍不存在。6. 类与类、类与接口、接口与接口的关系继承(单继承,多层继承,object ),实现(多实现),继承(多继承)7. final 、finally 、finalize 的区分final :可以修饰类、方法和变量,被final 修饰的类无法被继承,方法无法被重写,变量为常量只能赋值一次finally :反常处理,和 try 、catch 结合使用,可以添加也可以不添加,用于执行一些必需执行的代码,
5、如释放资源等finalize :Object 类中的方法,其中定义了对象要被垃圾收集器回收之前要做的相关的清理工作8. 什么是多态,多态的好处和弊端多态可以懂得为 事物存在的多种表达形状 。父类的引用指向了自己的子类对象。父类的引用也可以接收自己子类的对象。提高了程序的可保护性和扩展性可编辑资料 - - - 欢迎下载精品名师归纳总结弊端:父类的引用只能拜访父类中有的成员而无法调用子类中特有的方法10. wait 和 sleep 的区分(1) 所在的类不同: wait 是 Object 类中的方法, sleep 是 Thread 类中的方法2sleep 方法没有释放同步锁,而wait 方法释放了
6、同步锁,使得其他线程可以使用。(3) sleep 必需指定时间, wait 可以指定也可以不指定时间。(4) wait , notify 和 notifyAll 只能在同步方法或者同步代码块里面使用,而sleep 可以在任何的方使用(5) sleep 必需捕获反常,而 wait , notify 和 notifyAll 不需要捕获反常16. 对匿名内部类的懂得匿名内部类就是没出名字的内部类,是内部类的简化形式。一般只使用一次的时候使用匿名内部类, 匿名内部类本质上是一个匿名子类对象。匿名内部类的使用前提:内部类继承一个类或实现接口。匿名内部类包括两个步骤:创建一个类或者接口的子类,即刻创建该子
7、类的对象。简化书写。17. IO 体系字节流 InputStream/OutputStream |-FileInputStream/FileOutputStream:文件字节流,用于文件的读写操作|-BufferedInputStream/BufferedOutputStream:加缓冲区的字节流,用于提高效率字符流 Reader/Writer |-FileReader/FileWriter:文件字符流,用于文本文件的读写操作|-BufferedReader/BufferedWrite:加缓冲区的字符 流,用于提高效率 转换流 InputStreamReader/OutputStreamWri
8、ter:是字节流和字符流之间的桥梁18. 集合体系|-Vector :功能同 ArrayList 类似,底层也是数组,线程是同步的,所以是安全的,效率较低,数据增长是 50% 的增长。|-Set :元素是无序的,元素不答应重复,底层用到了Map|-HashSet :底层 hash 表,储备的对象最好复写hashCode 和 equals 方法,可编辑资料 - - - 欢迎下载精品名师归纳总结|-TreeSet :底层自平稳的二叉树,储备的对象具备比较性,有两种方法:自然排序、比较器排序|-Collection |-List:元素是有序的,元素答应重复,由于该集合体系都具有索引|-ArrayLi
9、st :底层数据结构是数组,查询速度快,增删操作较慢,线程不同步|-LinkedList :底层数据结构是链表,查询效率较低,增删操作快,线程不同步,数据增长是 100% 的增长。 保证元素不会重复|-Map :数据是以键值对的形式储备的,有的元素存在映射关系就可以使用该集合,|-HashMap :答应有 null 键或值,线程不同步,键是唯独的|-TreeMap :元素可排序|-HashTable :类似 HashMap ,不答应有 null 键或值,线程同步,元素不答应重复21. 局部变量和成员变量区分成员变量定义位置:类中,整个类中均可以拜访,通常用private 修饰。内存:成员变量随
10、着对象的建立而建立,存在于对象所在的堆内存中。默认值:成员变量有默认值。回收:随着对象的回收而回收。局部变量定义位置:定义在局部范畴,如方法内,语句内等。内存:局部变量存在于栈内存中。默认值:没有默认值。回收:随着作用域终止而回收,通常为语句或方法范畴。22. 同步函数与同步代码块的区分可编辑资料 - - - 欢迎下载精品名师归纳总结同步代码块使用的锁可以是任意对象。同步函数使用的锁是 this ,静态同步函数的锁是该类的字节码文件对象。在一个类中只有一个同步的话,可以使用同步函数。假如有多同步,必需使用同步代码块,来确定不同的锁。所以同步代码块相对敏捷一些。23. 数组和集合的区分容器长度:
11、集合长度可变,数组长度固定储备内容类型:集合储备引用数据类型,数组储备任意类型是否可储备不同类型数据:数组只能储备同种数据类型的元素,集合可以储备不同类型 键值 的元素。有序可重复:数组是有序可重复的集合中有些是有序可重复的如list ,有些是无序不行重复的如set, map24. StringBuffer和 StringBuilder的区分StringBuffer是同步的,所以线程安全,但是效率低,StringBuilder是不同步的,所以 线程担心全,但是效率高。StringBuilder要比 StringBuffer快。单线程的程序使用StringBuilder比较好,多线程的情形下可以
12、自己加锁,也可以直接使用 StringBuffer 。25. String和 StringBuffer区分String 对象一经创建就不会发生变化了,即便是赋新值也不是在原对象的基础上转变,而是创建一个新的字符串对象,将引用指向这个新的对象,会造成空间的铺张, 效率较低。 StringBuffer只创建一个对象,是在同一个实例的基础之上追加,效率更高,当需要用到String 的时候 toString 就可以了可编辑资料 - - - 欢迎下载精品名师归纳总结其次部分 学问点26. 说明 Java 中 String str=null与 String str=的区分?String str = nul
13、l表示声明白一个 String 对象的引用 str ,但是没有为其安排内存空间。String str = 表示创建了一个长度等于0 的空字符串,并在内存中为其安排了内存空间。String str = new Stringtw; str在内存中有两个对象, 1. 堆内存有一个 new Sting2. 常量池中有一个字符串。27. 使用运算符 = =和方法 equals进行比较对象的区分?使用 = = 算符比较基本数据类型时,比较的是值相等。使用= 算符比较对象时, 比较的是内存的址值使用 equals 方法 比较对象时,比较的是对象的内容,与的址无关,假如没有重写equals 方法就直接调用的是
14、 Object 的 equals 方法。28. 接口和抽象类有何区分?(1) 成员特点:构造方法:接口没有构造方法。抽象类有构造方法。成员变量:接口中只有常量。抽象类中可以是常量,也可以是变量。成员方法:接口中只有抽象方法。抽象类中既有抽象方法,也有非抽象方法。(2) 关系特点:类与类:类与类之间只有单继承,可以有多层继承。类与接口:类与接口之间是实现关系,可以单实现,也可以多实现。接口与接口:接口与接口之间是继承关系,可以单继承,也可以多继承。(3) 设计理念:接口对应的设计模式是 简洁工厂设计模式 ,抽象类对象的设计模式是 模板设计模式。可编辑资料 - - - 欢迎下载精品名师归纳总结(5
15、)必需实现抽象类或接口的全部抽象方法才可以实例化。黑马程序员入学面试题32. 不借用第三方变量,互换两个变量。n=nm;m=nm;/nmm一个数异或另一个数两次,仍是得原先那个数n=nm/nnm33. 传统 for 和增强 for 有什么区分了?1. 增强 for 对集合进行遍历,集合不能为空。只能猎取集合元素,但是不能对集合进行操作。增强 for 有一个局限性,必需要有被遍历的目标。2. 迭代器除了遍历,仍可以进行remove 集合中元素的动作。假如是用 ListIterator ,仍可以在遍历过程中进行增删改查的动作。建议在遍历数组的时候,仍是期望是用传统for 。由于传统 for 可以定
16、义角标。1. 增强 for 循环和 iterator遍历的成效是一样的,也就说增强for 循环的内部也就是调用 iteratoer实现的,但是增强 for 循环有些缺点,例如不能在增强循环里动态的删除集合内容。不能猎取下标等。2. ArrayList 由于使用数组实现,因此下标明确,最好使用一般循环。34. Collection和 Colections 的区分是什么?Collection 是一个单列集合的顶层接口,它是List 、Set、Queue 等接口的父接口。在这个接口中,定义了集合类中通用的方法。Collections 是针对集合操作的工具类,有对集合进行排序和二分查找等静态方法。37
17、. 线程的状态: 线程的五种状态:可编辑资料 - - - 欢迎下载精品名师归纳总结1) 新建 new 用 new 语句创建的线程对处于新建状态,此时它和其它Java 对象一样,仅仅在 Heap 中被安排了内存。当一个线程处于新建状态时,它仅仅是一个空的线程对象,系统不为它安排资源。Thread t = new Threadnew Runner;2) 就绪 Runnable程序通过线程对象调用启动方法start 后,系统会为这个线程安排它运行时所需的除处理器之外的全部系统资源。这时,它处在随时可以运行的状态,在随后的任意时刻,只要它获得处理器即会进入运行状态。t.start3) 运行 Runni
18、ng处于这个状态的线程占用CPU,执行程序代码。在并发环境中,假如运算机只有一个 CPU,那么任何时刻只会有一个线程处于这个状态。假如运算机中有多个 CPU,那么同一时刻可以让几个线程占用不同的CPU,使它们都处于运行状态,只有处于就绪状态的线程才有机会转到运行状态。4) 堵塞 Blocked 堵塞状态是指线程由于某些缘由舍弃 CPU,临时停止运行。当线程处于堵塞状态时, Java 虚拟机不会给线程安排 CPU,直到线程重新进入就绪状态,它才有机会转到运行状态。堵塞状态可分为以下 3 种:位于对象等待池中的堵塞状态Blocked in objects wait pool:当线程处于运行状态时,
19、 假如执行了某个对象的wait 方法, Java 虚拟机就会把线程放到这个对象的等待池中。位于对象锁池中的堵塞状态Blocked in objects lock pool:当线程处于运行状态,试图获得某个对象的同步锁时,假如该对象的同步锁已经被其他线程占用,Java 虚拟机就会把这个线程放到这个对象的锁池中。其他堵塞状态 Otherwise Blocked:当前线程执行了 sleep 方法,或者调用了其他线程的 join 方法,或者发出了 I/O 恳求时,就会进入这个状态。当一个线程执行System.out.println或者 System.in.read方法时是,就会发出一个I/O 恳求,该
20、线程舍弃 CPU,进入堵塞状态,直到I/O 处理完毕,该线程才会复原执行。5) 死亡 Dead 当线程退出 run 方法时,就进入死亡状态,该线程终止生命周期。线程有可能是正常执行完 run 方法而退出,也有可能是遇到反常而退出。不管线程是正常终止仍是反常终止,都不会对其他线程造成影响。40. 集合集合名称阅读技巧:可编辑资料 - - - 欢迎下载精品名师归纳总结JDK1.2 显现的集合框架中常用的子类对象前缀名是结构名,后缀名是体系名。ArrayList :数组结构,看到 Array 就知道查询速度快, 看到 List 就知道可以又重复元素,可以增删改查LinkedList :链表结构,增删
21、快HashSet :哈希结构,查询速度更快,不保证有序,不行以重复,必需掩盖hashCode和 equals 方法LinkedHashSet :链表加哈希结构,可以实现有序TreeSet :二叉树结构,可以排序。有两种方法:1. 自然排序 compable , 2.比较器comparator Java供应了只包含一个 compareTo 方法的 Comparable 接口。这个方法可以个给两个对象排序。详细来说,它返回负数,0,正数来说明输入对象小于,等 于,大于已经存在的对象。Java 供应了包含 compare 和 equals 两个方法的 Comparator 接口。 compare 方
22、法用来给两个输入参数排序,返回负数,0,正数说明第一个参数是小于,等于,大于第 二个参数。 equals 方法需要一个对象作为参数,它用来打算输入参数是否和comparator相等。只有当输入参数也是一个comparator并且和当前 comparator的排序结果是相同的时候,这个方法才返回true.ArrayList 和 Vector 都是使用数组方式储备数据,此数组元素数大于实际储备的数据以便增加和插入元素,答应直接按序号索引元素. 但是插入元素要涉及数组元素移动等内存操作 ,所以索引数据快而插入数据慢,Vector 由于使用了 synchronized方法(线程安全), 通常性能上较
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JavaSE知识点总结学习资料 JavaSE 知识点 总结 学习 资料
限制150内