没有合适的资源?快使用搜索试试~ 我知道了~
java面试题汇总最新.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 131 浏览量
2022-07-14
06:14:35
上传
评论
收藏 60KB PDF 举报
温馨提示
试读
27页
java面试题汇总最新.pdf
资源推荐
资源详情
资源评论
1.抽象:
抽象就是忽略一个主题中与当前目标无关的那些方面, 以便更充分地留心与当前目标有关
的方面。抽象并不打算明白所有疑问,而只是挑选其中的一部分, 暂时不用部分细节。 抽象
包含两个方面,一是流程抽象,二是数据抽象。
2.继承:
继承是一种联结类的层次模型, 并且准许和鼓励类的重用, 它提供了一种明确表述共性的
要领。 对象的一个新类能够从现有的类中派生, 这个流程称为类继承。 新类继承了原始类的
特征,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类能够
从它的基类那里继承要领和实例变量, 并且类能够修改或添加新的要领使之更适合特殊的须
要。
3.封装:
封装是把流程和数据包围起来, 对数据的访问只好议决已解释的界面。 面向对象计算始于
这个基本观点, 即现实全球能够被描绘成一系列完全自治、 封装的对象, 这些对象议决一个
受保卫的接口访问其他对象。
4. 多态性:
多态性是指准许不一样类的对象对同一消息作出响应。 多态性包含参数化多态性和包含多
态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的处理了使用程序函
数同名疑问。
5、String 是最基本的数据类型吗 ?
基本数据类型包含 byte 、 int、char 、long 、 float 、double 、boolean 和 short 。
java.lang.String 类是 final 类型的,因此不能够继承这个类、无法修改这个类。为了提高
效率节省空间,咱们应该用 StringBuffer 类
6、int 和 Integer 有什么区别
Java 提供两种不一样的类型:引用类型和原始类型(或内置类型)。 Int 是 java 的原始
数据类型, Integer 是 java 为 int 提供的封装类。 Java 为每个原始类型提供了封装类。
原始类型 封装类
boolean Boolean
char Character
byte Byte
short Short
int Integer
long Long
float Float
double Double
引用类型和原始类型的行为完全不一样, 并且它们具有不一样的语义。 引用类型和原始类
型具有不一样的特征 和用法,它们包含:大小和速度疑问,这种类型以哪种类型的数据结
构存储, 当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。 对象引用实例变
量的缺省值为 null ,而原始类型实例变量的缺省值与它们的类型有关 。
7、String 和 StringBuffer 的区别
JAVA 平台提供了两个类: String 和 StringBuffer ,它们能够储存和操作字符串,即包含
多个字符的字符数据。这个 String 类提供了数值不可改动的字符串。而这个 StringBuffer
类提供的字符串实行修改。当你知晓字符数据要改动的时刻你就能够运用 StringBuffer 。典
型地,你能够运用 StringBuffers 来动态构造字符数据。
8、运行时异常与通常异常有何异同?
异常示意程序运行流程中可能出现的非正常状态, 运行时异常示意虚拟机的通常操作中可
能遇到的异常,是一种多见运行不正确。 java 编译器要求要领必须声明抛出可能发生的非
运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。
9、说出 Servlet 的生命周期,并说出 Servlet 和 CGI 的区别。
Servlet 被服务器实例化后, 容器运行其 init 要领,请求到达时运行其 service 要领,service
要领自动派遣运行与请求对应的 doXXX 要领( doGet ,doPost )等,当服务器决定将实例
销毁的时刻调用其 destroy 要领。
与 cgi 的区别在于 servlet 处于服务器进程中, 它议决多线程形式运行其 service 要领,一个
实例能够服务于多个请求,并且本来例通常不会销毁,而 CGI 对每个请求都产生新的进程,
服务完成后就销毁,所以效率上低于 servlet 。
10 、说出 ArrayList,Vector, LinkedList 的存储性能和特征
ArrayList 和 Vector 都是运用数组形式存储数据, 此数组元素数大于实际存储的数据以便
添加和插入元素, 它们都准许直接按序号索引元素, 但是插入元素要涉及数组元素移动等内
存操作,所以索引数据快而插入数据慢, Vector 由于运用了 synchronized 要领(线程安全) ,
通常性能上较 ArrayList 差,而 LinkedList 运用双向链表实现存储,按序号索引数据须要实
行前向或后向遍历,但是插入数据时只须要记载本项的前后项即可,所以插入速度较快。
11 、EJB 是基于哪些技能实现的?并说出 SessionBean 和 EntityBean 的区别,
StatefulBean 和 StatelessBean 的区别。
EJB 包含 Session Bean 、Entity Bean 、Message Driven Bean ,基于 JNDI 、RMI 、JAT
等技能实现。
SessionBean 在 J2EE 使用程序中被用来完成一些服务器端的业务操作,比方访问数据库、
调用其他 EJB 组件。 EntityBean 被用来代表使用系统中用到的数据。
对于客户机, SessionBean 是一种非持久性对象,它实现某些在服务器上运行的业务逻
辑。
对于客户机, EntityBean 是一种持久性对象,它代表一个存储在持久性存储器中的实体
的对象视图,或是一个由现有企业使用程序实现的实体。
Session Bean 还能够再细分为 Stateful Session Bean 与 Stateless Session Bean ,
这两种的 Session Bean 都能够将系统逻辑放在 method 之中执行,不一样的是 Stateful
Session Bean 能够记载呼叫者的状态,因此通常来说,一个运用者会有一个相对应的
Stateful Session Bean 的实体。 Stateless Session Bean 虽然也是逻辑组件,但是他却不
负责记载运用者状态,也就是说当运用者呼叫 Stateless Session Bean 的时刻, EJB
Container 并不会找寻特定的 Stateless Session Bean 的实体来执行这个 method 。换言
之,很可能数个运用者在执行某个 Stateless Session Bean 的 methods 时,会是同一个
Bean 的 Instance 在执行。从内存方面来看, Stateful Session Bean 与 Stateless
Session Bean 比较, Stateful Session Bean 会消耗 J2EE Server 较多的内存,然而
Stateful Session Bean 的优势却在于他能够维持运用者的状态。
12 、Collection 和 Collections 的区别。
Collection 是集合类的上级接口,继承与他的接口首要有 Set 和 List.
Collections 是针对集合类的一个帮助类,他提供一系列静态要领实现对各种集合的搜索、
排序、线程安全化等操作。
13 、&和&& 的区别。
&是位运算符,示意按位与运算, &&是逻辑运算符,示意逻辑与( and )。
14 、HashMap 和 Hashtable 的区别。
HashMap 是 Hashtable 的轻量级实现(非线程安全的实现),他们都完成了 Map 接口,
首要区别在于 HashMap 准许空( null )键值( key) ,由于非线程安全,效率上可能高于
Hashtable 。
HashMap 准许将 null 作为一个 entry 的 key 或者 value ,而 Hashtable 不准许。
HashMap 把 Hashtable 的 contains 要领去掉了,改成 containsvalue 和 containsKey 。因
为 contains 要领简单让人惹起误解。
Hashtable 继承自 Dictionary 类,而 HashMap 是 Java1.2 引进的 Map interface 的一个实现。
最大的不一样是, Hashtable 的要领是 Synchronize 的,而 HashMap 不是,在多个线程访
问 Hashtable 时,不须要自身为它的要领实现同步,而 HashMap 就必须为之提供外同步。
Hashtable 和 HashMap 采用的 hash/rehash 算法都大概一样, 所以性能不会有很大的差别。
15 、final, finally, finalize 的区别。
final 用于声明属性,要领和类,分别示意属性不可变,要领不可覆盖,类不可继承。
finally 是异常处理语句结构的一部分,示意总是执行。
finalize 是 Object 类的一个要领,在垃圾收集器执行的时刻会调用被回收对象的此要领,能
够覆盖此要领提供垃圾收集时的其他资源回收,比方关上文件等。
16 、sleep() 和 wait() 有什么区别 ?
sleep 是线程类( Thread )的要领,导致此线程暂停执行指定时间,给执行机会给其他
线程,但是监控状态依然保持,到时后会自动还原。调用 sleep 不会释放对象锁。
wait 是 Object 类的要领,对此对象调用 wait 要领导致本线程放弃对象锁,进入等待此对象
的等待锁定池,只有针对此对象发出 notify 要领(或 notifyAll )后本线程才进入对象锁定池
准备取得对象锁进入运行状态。
17 、Overload 和 Override 的区别。 Overloaded 的要领能无法 能够改动返回值的类型 ?
要领的重写 Overriding 和重载 Overloading 是 Java 多态性的不一样表现。 重写 Overriding
是父类与子类之间多态性的一种表现, 重载 Overloading 是一个类中多态性的一种表现。 假
如在子类中解释某要领与其父类有相似的名称和参数,咱们说该要领被重写 (Overriding) 。
子类的对象运用这个要领时,将调用子类中的解释,对它而言,父类中的解释如同被 "屏蔽 "
了。假如在一个类中解释了多个同名的要领, 它们或有不一样的参数个数或有不一样的参数
类型,则称为要领的重载 (Overloading) 。Overloaded 的要领是能够改动返回值的类型。
18 、error 和 exception 有什么区别 ?
error 示意还原不是不可能但很难处的情况下的一种严重疑问。比如说内存溢出。不可能
指望程序能处理这样的情况。
exception 示意一种设计或实现疑问。也就是说,它示意假如程序运行正常,从不会发
生的情况。
19 、同步和异步有何异同,在什么情况下分别运用他们?举例表明。
假如数据将在线程间共享。 比方正在写的数据以后可能被另一个线程读到, 或者正在读的
数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须实行同步存取。
当使用程序在对象上调用了一个须要花费很长时间来执行的要领, 并且不期盼让程序等待要
领的返回时,就应该运用异步编程,在许多情况下采用异步途径往往更有效率。
20 、abstract class 和 interface 有什么区别 ?
声明要领的存在而不去实现它的类被叫做抽象类( abstract class ),它用于要建立一个
体现某些基本行为的类,并为该类声明要领,但无法在该类中实现该类的情况。无法建立
abstract 类的实例。然而能够建立一个变量,其类型是一个抽象类,并让它指向详细子类
的一个实例。无法有抽象构造函数或抽象静态要领。 Abstract 类的子类为它们父类中的所
有抽象要领提供实现,否则它们也是抽象类为。取而代之,在子类中实现该要领。 知晓其行
为的其它类能够在类中实现这些要领。
接口( interface )是抽象类的变体。在接口中,所有要领都是抽象的。多继承性可议决实
现这样的接口而取得。 接口中的所有要领都是抽象的, 没有一个有程序体。 接口只好够解释
static final 成员变量。接口的实现与子类相似,除了该实现类无法从接口解释中继承行为。
当类实现特殊接口时,它解释(即将程序体给予)所有这种接口的要领。然后,它能够在实
现了该接口的类的任何对象上调用接口的要领。 由于有抽象类, 它准许运用接口名作为引用
变量的类型。通常的动态联编将生效。引用能够转换到接口类型或从接口类型转换,
instanceof 运算符能够用来决定某对象的类能无法 实现了接口。
21 、heap 和 stack 有什么区别。
栈是一种线形集合, 其添加和删除元素的操作应在同一段完成。 栈按照后进先出的形式实
行处理。
堆是栈的一个组成元素
22 、forward 和 redirect 的区别
forward 是服务器请求资源,服务器直接访问目标地址的 URL ,把那个 URL 的响应内容
读取过来, 然后把这些内容再发给阅读器, 阅读器根本不知晓服务器发送的内容是从哪儿来
的,所以它的地址栏中仍旧原来的地址。
redirect 就是服务端根据逻辑 ,发送一个状态码 ,告诉阅读器重新去请求那个地址,通常来
说阅读器会用刚才请求的所有参数重新请求,所以 session,request 参数都能够获取。
23 、EJB 与 JAVA BEAN 的区别?
Java Bean 是可复用的组件, 对 Java Bean 并没有严格的规范, 理论上讲, 任何一个 Java
类都能够是一个 Bean 。但通常情况下,由于 Java Bean 是被容器所建立(如 Tomcat )的,
所以 Java Bean 应具有一个无参的构造器,另外,通常 Java Bean 还要实现 Serializable
接口用于实现 Bean 的持久性。 Java Bean 实际上相当于微软 COM 模型中的本地进程内
COM 组件, 它是无法被跨进程访问的。 Enterprise Java Bean 相当于 DCOM ,即分布式组
件。它是基于 Java 的远程要领调用( RMI )技能的,所以 EJB 能够被远程访问(跨进程、
跨计算机)。但 EJB 必须被布署在诸如 Webspere 、WebLogic 这样的容器中, EJB 客户从
不直接访问真实的 EJB 组件,而是议决其容器访问。 EJB 容器是 EJB 组件的代理, EJB
组件由容器所建立和维护。客户议决容器来访问真实的 EJB 组件。
24 、Static Nested Class 和 Inner Class 的不一样。
Static Nested Class 是被声明为静态( static )的内部类,它能够不依靠于外部类实例被
实例化。而通常的内部类须要在外部类实例化后才能实例化。
剩余26页未读,继续阅读
资源评论
czq131452007
- 粉丝: 2
- 资源: 12万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功