- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java面试题
# 相关概念## 面向对象的三个特征封装,继承,多态.这个应该是人人皆知.有时候也会加上抽象.## 多态的好处允许不同类对象对同一消息做出响应,即同一消息可以根据发送对象的不同而采用多种不同的行为方式(发送消息就是函数调用).主要有以下优点:1. 可替换性:多态对已存在代码具有可替换性.2. 可扩充性:增加新的子类不影响已经存在的类结构.3. 接口性:多态是超类通过方法签名,向子类提供一个公共接口,由子类来完善或者重写它来实现的.4. 灵活性:5. 简化性:### 代码中如何实现多态实现多态主要有以下三种方式:1. 接口实现2. 继承父类重写方法3. 同一类中进行方法重载### 虚拟机是如何实现多态的动态绑定技术(dynamic binding),执行期间判断所引用对象的实际类型,根据实际类型调用对应的方法.## 接口的意义接口的意义用三个词就可以概括:规范,扩展,回调.## 抽象类的意义抽象类的意义可以用三句话来概括:1. 为其他子类提供一个公共的类型2. 封装子类中重复定义的内容3. 定义抽象方法,子类虽然有不同的实现,但是定义时一致的## 接口和抽象类的区别|比较|抽象类|接口||----|------|----||默认方法|抽象类可以有默认的方法实现|,java 8之前,接口中不存在方法的实现.||实现方式|子类使用extends关键字来继承抽象类.如果子类不是抽象类,子类需要提供抽象类中所声明方法的实现.|子类使用implements来实现接口,需要提供接口中所有声明的实现.|构造器|抽象类中可以有构造器,|接口中不能||和正常类区别|抽象类不能被实例化|接口则是完全不同的类型|访问修饰符|抽象方法可以有public,protected和default等修饰|接口默认是public,不能使用其他修饰符|多继承|一个子类只能存在一个父类|一个子类可以存在多个接口|添加新方法|想抽象类中添加新方法,可以提供默认的实现,因此可以不修改子类现有的代码|如果往接口中添加新方法,则子类中需要实现该方法.|## 父类的静态方法能否被子类重写不能.重写只适用于实例方法,不能用于静态方法,而子类当中含有和父类相同签名的静态方法,我们一般称之为隐藏.## 什么是不可变对象不可变对象指对象一旦被创建,状态就不能再改变。任何修改都会创建一个新的对象,如 String、Integer及其它包装类。## 静态变量和实例变量的区别?静态变量存储在方法区,属于类所有.实例变量存储在堆当中,其引用存在当前线程栈.## 能否创建一个包含可变对象的不可变对象?当然可以创建一个包含可变对象的不可变对象的,你只需要谨慎一点,不要共享可变对象的引用就可以了,如果需要变化时,就返回原对象的一个拷贝。最常见的例子就是对象中包含一个日期对象的引用.## java 创建对象的几种方式1. 采用new2. 通过反射3. 采用clone4. 通过序列化机制前2者都需要显式地调用构造方法.? ?造成耦合性最高的恰好是第一种,因此你发现无论什么框架,只要涉及到解耦必先减少new的使用.## switch中能否使用string做参数在idk 1.7之前,switch只能支持byte,short,char,int或者其对应的封装类以及Enum类型。从idk 1.7之后switch开始支持String.## switch能否作用在byte,long上??可以用在byte上,但是不能用在long上.## String s1=ab,String s2=a+b,String s3=a,String s4=b,s5=s3+s4请问s5==s2返回什么?返回false.在编译过程中,编译器会将s2直接优化为ab,会将其放置在常量池当中,s5则是被创建在堆区,相当于s5=new String(ab);## 你对String对象的intern()熟悉么?intern()方法会首先从常量池中查找是否存在该常量值,如果常量池中不存在则现在常量池中创建,如果已经存在则直接返回.比如String s1=aa;String s2=ern();System.out.print(s1==s2);//返回false## Object中有哪些公共方法?1. `equals()`2. `clone()`3. `getClass()`4. `notify(),notifyAll(),wait()`5. `toString`## java当中的四种引用强引用,软引用,弱引用,虚引用.不同的引用类型主要体现在GC上:1. 强引用:如果一个对象具有强引用,它就不会被垃圾回收器回收。即使当前内存空间不足,JVM也不会回收它,而是抛出 OutOfMemoryError 错误,使程序异常终止。如果想中断强引用和某个对象之间的关联
文档评论(0)