JavaSE知识点总结

上传人:枫** 文档编号:488123312 上传时间:2023-03-28 格式:DOCX 页数:17 大小:45.92KB
返回 下载 相关 举报
JavaSE知识点总结_第1页
第1页 / 共17页
JavaSE知识点总结_第2页
第2页 / 共17页
JavaSE知识点总结_第3页
第3页 / 共17页
JavaSE知识点总结_第4页
第4页 / 共17页
JavaSE知识点总结_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《JavaSE知识点总结》由会员分享,可在线阅读,更多相关《JavaSE知识点总结(17页珍藏版)》请在金锄头文库上搜索。

1、2、面向对象得理解面向对象就是Java得基本特征,就是软件开发过程使用得基于面向过程一种思维方式,将功能封装进对象,强调具备功能得对象与调用结果,不关注具体实现这个功能得过程。面向对象特点:就是一种更符合人们思考习惯得思想,可以将复杂得事情简单化,将程序由执行者转换成为指挥者。面向对象特性:封装,继承,多态封装:封装就是把数据与方法包装进类中,隐藏其具体实现细节,对外提供公共访问方法。封装得结果就是一个同时带有特征与行为得数据类型。(安全性,复用性)继承:当一个类得属性与行为均与现有类相似,属于现有类得一种时,这一个类可以定义为现有类得子类。或者,当多个类具有相同得属性与行为,我们可以抽取出共

2、性得内容定义父类,再创建相似得”兄弟”类时只要继承父类即可。当子类继承父类后,拥有了父类非私有得方法并可以直接调用。如果认为父类提供得方法不够强大,子类可以按照子类自身得逻辑重写继承过来得父类方法。(复用性,可维护性,多态前提)多态:继承就是多态得前提,多态就是指一种事物具有多种形态,比如猫具有猫类得形态,也具有动物得形态,多态得具体表现就是父类引用指向子类对象,父类得引用也可以接收自己子类得对象。(可维护性,扩展性)面试:跟我谈谈什么就是面向对象1面向对象就是基于面向过程得2什么就是面向过程什么就是面向对象3面向对象得特点3、面向对象与面向过程得区别面向过程强调得就是功能行为,分析解决问题所

3、需得步骤,以函数为基础,完成各种步骤得操作与实现。面向对象就是基于面向过程得,将功能封装成对象,强调得就是具备了这些功能得对象,让对象去调用方法来解决问题。面向对象举例、abstract与哪些关键字不能共存为什么private:私有得方法就是不可见得,无法被重写final:被final修饰得方法就是最终方法,无法被重写static:被static修饰得方法,要随类加载到方法区,由于抽象方法没有方法体所以不能加载、static得特点随着类得加载而加载;优先于对象存在;被所有对象所共享;可以直接被类名所调用。(1) 静态方法只能访问静态,非静态方法既可以访问静态也可访问非静态(2) 静态方法中不可

4、以定义this、super关键字,因为静态优先于对象存在,this与super所代表得对象还不存在。、类与类、类与接口、接口与接口得关系继承(单继承,多层继承,object),实现(多实现),继承(多继承)7、final、finally、finalize得区别final:可以修饰类、方法与变量,被final修饰得类无法被继承,方法无法被重写,变量为常量只能赋值一次finally:异常处理,与try、catch结合使用,可以添加也可以不添加,用于执行一些必须执行得代码,如释放资源等finalize:Object类中得方法,其中定义了对象要被垃圾收集器回收之前要做得相关得清理工作8、什么就是多态,

5、多态得好处与弊端多态可以理解为事物存在得多种体现形态。父类得引用指向了自己得子类对象;父类得引用也可以接收自己子类得对象。(1) 提高了程序得可维护性与扩展性弊端:父类得引用只能访问父类中有得成员而无法调用子类中特有得方法10、wait()与sleep()得区别所在得类不同:wait就是Object类中得方法,sleep就是Thread类中得方法(2)sleep方法没有释放同步锁,而wait方法释放了同步锁,使得其她线程可以使用。(3)sleep()必须指定时间,wait()可以指定也可以不指定时间。wait,notify与notifyAll只能在同步方法或者同步代码块里面使用,而sleep可

6、以在任何地方使用sleep必须捕获异常,而wait,notify与notifyAll不需要捕获异常、对匿名内部类得理解匿名内部类就就是没有名字得内部类,就是内部类得简化形式。一般只使用一次得时候使用匿名内部类,匿名内部类本质上就是一个匿名子类对象。匿名内部类得使用前提:内部类继承一个类或实现接口。匿名内部类包括两个步骤:创建一个类或者接口得子类,即刻创建该子类得对象。简化书写。、IO体系字节流InputStream/OutputStream|-:文件字节流,用于文件得读写操作|-BufferedInputStream/BufferedOutputStream:加缓冲区得字节流,用于提高效率字符

7、流Reader/Writer|-:文件字符流,用于文本文件得读写操作|-BufferedReader/BufferedWrite:加缓冲区得字符流,用于提高效率转换流InputStreamReader/OutputStreamWriter:就是字节流与字符流之间得桥梁、集合体系|-Vector:功能同ArrayList类似,底层也就是数组,线程就是同步得,所以就是安全得,效率较低,数据增长就是50%得增长。|-Set:元素就是无序得,元素不允许重复,底层用到了Map|-HashSet:底层hash表,存储得对象最好复写hashCode与equals方法,|-TreeSet:底层自平衡得二叉树,

8、存储得对象具备比较性,有两种方法:自然排序、比较器排序|-Collection|-List:元素就是有序得,元素允许重复,因为该集合体系都具有索引|-ArrayList:底层数据结构就是数组,查询速度快,增删操作较慢,线程不同步|-LinkedList:底层数据结构就是链表,查询效率较低,增删操作快,线程不同步,数据增长就是100%得增长。保证元素不会重复|-Map:数据就是以键值对得形式存储得,有得元素存在映射关系就可以使用该集合,|-HashMap:允许有null键或值,线程不同步,键就是唯一得|-TreeMap:元素可排序|-HashTable:类似HashMap,不允许有null键或值

9、,线程同步,元素不允许重复、局部变量与成员变量区别成员变量定义位置:类中,整个类中均可以访问,通常用private修饰。内存:成员变量随着对象得建立而建立,存在于对象所在得堆内存中。默认值:成员变量有默认值。回收:随着对象得回收而回收。局部变量定义位置:定义在局部范围,如方法内,语句内等。内存:局部变量存在于栈内存中。默认值:没有默认值。回收:随着作用域结束而回收,通常为语句或方法范围。21 、同步函数与同步代码块得区别同步代码块使用得锁可以就是任意对象。同步函数使用得锁就是this,静态同步函数得锁就是该类得字节码文件对象。在一个类中只有一个同步得话,可以使用同步函数。如果有多同步,必须使用

10、同步代码块,来确定不同得锁。所以同步代码块相对灵活一些。、数组与集合得区别容器长度:集合长度可变,数组长度固定存储内容类型:集合存储引用数据类型,数组存储任意类型就是否可存储不同类型数据:数组只能存储同种数据类型得元素,集合可以存储不同类型(键值)得元素有序可重复:数组就是有序可重复得集合中有些就是有序可重复得如list,有些就是无序不可重复得如set,map、StringBuffer与StringBuilder得区别StringBuffer就是同步得,所以线程安全,但就是效率低,StringBuilder就是不同步得,所以线程不安全,但就是效率高。StringBuilder要比StringB

11、uffer快。单线程得程序使用StringBuilder比较好,多线程得情况下可以自己加锁,也可以直接使用StringBuffer。、String与StringBuffer区别String对象一经创建就不会发生变化了,即便就是赋新值也不就是在原对象得基础上改变,而就是创建一个新得字符串对象,将引用指向这个新得对象,会造成空间得浪费,效率较低。StringBuffer只创建一个对象,就是在同一个实例得基础之上追加,效率更高,当需要用到String得时候toString就可以了第二部分知识点26、说明Java中Stringstr=null与Stringstr=得区别?Stringstr=null表

12、示声明了一个String对象得引用str,但就是没有为其分配内存空间。Stringstr=表示创建了一个长度等于0得空字符串,并在内存中为其分配了内存空间。Stringstr=newString(tw);str在内存中有两个对象,1、堆内存有一个newSting2、常量池中有一个字符串。27、使用运算符=与方法equals()进行比较对象得区别?使用=算符比较基本数据类型时,比较得就是值相等;使用=算符比较对象时,比较得就是内存地址值使用equals()方法比较对象时,比较得就是对象得内容,与地址无关,如果没有重写equals()方法就直接调用得就是Object得equals()方法。28、接

13、口与抽象类有何区别?(1)成员特点:构造方法:接口没有构造方法;抽象类有构造方法。成员变量:接口中只有常量;抽象类中可以就是常量,也可以就是变量。成员方法:接口中只有抽象方法;抽象类中既有抽象方法,也有非抽象方法。(2)关系特点:类与类:类与类之间只有单继承,可以有多层继承。类与接口:类与接口之间就是实现关系,可以单实现,也可以多实现。接口与接口:接口与接口之间就是继承关系,可以单继承,也可以多继承。(3)设计理念:接口对应得设计模式就是简单工厂设计模式,抽象类对象得设计模式就是模板设计模式。32 (5)必须实现抽象类或接口得所有抽象方法才可以实例化。黑马程序员入学面试题、不借用第三方变量,互

14、换两个变量。33 n=nAm;m=nAm;/(nAm)Am个数异或另一个数两次,还就是得原来那个数n=nAm/nA(nAm)、传统for与增强for有什么区别呢?1、增强for对集合进行遍历,集合不能为空。只能获取集合元素,但就是不能对集合进行操作。增强for有一个局限性,必须要有被遍历得目标。2、迭代器除了遍历,还可以进行remove集合中元素得动作。如果就是用ListIterator,还可以在遍历过程中进行增删改查得动作。建议在遍历数组得时候,还就是希望就是用传统for。因为传统for可以定义角标。1、增强for循环与iterator遍历得效果就是一样得,也就说增强for循环得内部也就就是

15、调用iteratoer实现得,但就是增强for循环有些缺点,例如不能在增强循环里动态得删除集合内容。不能获取下标等。34 2、ArrayList由于使用数组实现,因此下标明确,最好使用普通循环、Collection与Colections得区别就是什么?Collection就是一个单列集合得顶层接口,它就是List、Set、Queue等接口得父接口。在这个接口中,定义了集合类中通用得方法。Collections就是针对集合操作得工具类,有对集合进行排序与二分查找等静态方法。37、线程得状态:线程得五种状态:1)新建(new)用new语句创建得线程对处于新建状态,此时它与其它Java对象一样,仅仅

16、在Heap中被分配了内存。当一个线程处于新建状态时,它仅仅就是一个空得线程对象,系统不为它分配资源。Threadt=newThread(newRunner();就绪(Runnable)程序通过线程对象调用启动方法start()后,系统会为这个线程分配它运行时所需得除处理器之外得所有系统资源。这时,它处在随时可以运行得状态,在随后得任意时刻,只要它获得处理器即会进入运行状态。t、start()运行(Running)处于这个状态得线程占用CPU,执行程序代码。在并发环境中,如果计算机只有一个CPU,那么任何时刻只会有一个线程处于这个状态。如果计算机中有多个CPU,那么同一时刻可以让几个线程占用不同得CPU,使它们都处于运行状态,只有处于就绪状态得线程才有机会转到运行状态。2) 阻塞(Blocked)阻塞状态就是指线程因为

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 活动策划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号