Java工程师面试题(含答案)

阅读: 评论:0

2024年2月5日发(作者:)

Java工程师面试题(含答案)

1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。 2.继承: 继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。 合特殊的需要。 3.封装: 封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。 4.

多态性: 多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。 抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。 5、String是最基本的数据类型吗? 基本数据类型包括byte、int、char、long、float、double、boolean和short。 类是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的区别 String和StringBuffer, JAVA平台提供了两个类:它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要改变的时候你就类提供的字符串进行修改。当你知道字符数据要改变的时候你就StringBuffers来动态构造字符数据。 可以使用StringBuffer。典型地,你可以使用 。典型地,你可以使用 来动态构造字符数据。 8、运行时异常与一般异常有何异同? 异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。 行时异常。 9、说出Servlet的生命周期,并说出Servlet和CGI的区别。

Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器)等,当服务器决定将实例销毁的时候调用其destroy方法。 方法。 与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。 中的forward和redirect的区别? 前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。所以,前者更加高效,在前者可以满足需要时,尽量使用在前者可以满足需要时,尽量使用forward()方法,forward()方法,并且,这样也有助于隐藏实际的链接。在有些情况下,这样也有助于隐藏实际的链接。在有些情况下,比如,在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用sendRedirect()方法。sendRedirect()方法。 方法。 2. xml在解释的时候DOM和SAX协议的区别和含义? DOM:处理大型文件时其性能下降的非常厉害。这个问题是由DOM:处理大型文件时其性能下降的非常厉害。这个问题是由DOM的树结构所造成的,这种结构占用的内存较多,而且DOM必须在解析文件之前把整个文档装入内存,必须在解析文件之前把整个文档装入内存,适合对XML的随机访问 的随机访问 SAX:不现于SAX:不现于DOM,SAX是事件驱动型的XML解析方式。它顺序读取XML文件,不需要一次全部装载整个文件。当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过在其回调事件中写入处理代码来处理XML文件,适合对XML的顺序访问 的顺序访问 3说明JNDI、JMS、JTA、RMI的意思? JNDI(Java Naming and Directory Interface)是一个应用程序设计的API,为开发人员提供了查找和访问各种命名和API,为开发人员提供了查找和访问各种命名和目录服务的通用、统一的接口,类似JDBC都是构建在抽象层上。 都是构建在抽象层上。 JMS()是Java平台上有关面向消息中间件的技术规范,翻译为Java消息服务。JMSJMS(Java Messaging Service消息服务。JMS支持点对点和发布/对点和发布/订阅两种消息模型。 订阅两种消息模型。 JTA(Java Transaction API) 为 J2EE 平台提供了分布式事进行平台提供了分布式事务服务。要用 JTA 务服务。要用 JTA 进行事务界定,应用程序要调用 要调用 ansaction 接口中的方法. 接口中的方法. RMI是Java的一组拥护开发分布式应用程序的API。RMI使用Java语言接口定义了远程对象,它集合了Java序列化和API。Java远程方法协议(Java Remote Method Protocol)。它大大增强了Java开发分布式应用的能力 远程方法协议(Java Remote Method Protocol)开发分布式应用的能力 4.单例模式 Public class Signle{ Private Signle(){ } Pirvate static Signle signle = new Signle(); Public static Signle gets(){ Retrun signle; } } 5数据库中left join的意思,和在什么场合中应用? LEFT JOIN操作用于在任何的 FROM 子句中,组合来源表的记录。使用 LEFT JOIN 运算来创建一个左边外部联接。左操作用于在任何的 FROM 子句中,组合来源表的记录。使用 LEFT JOIN 子句中,组合来源表的记录。使用边外部联接将包含了从第一个(左边)开始的两个表中的全部记录,即使在第二个(右边)表中并没有相符值的记录。 6 ejb中的sessionbean和entitybean的区别和含义? SessionBean在J2EE应用程序中被用来完成一些服务器端的业务操作,例如访问数据库、调用其他EJB组件。EntityBean被用来代表应用系统中用到的数据。 被用来代表应用系统中用到的数据。 对于客户机,SessionBean对于客户机,SessionBean是一种非持久性对象,它实现某些在服务器上运行的业务逻辑。 是一种非持久性对象,它实现某些在服务器上运行的业务逻辑。 对于客户机,EntityBean对于客户机,EntityBean是一种持久性对象,它代表一个存储在持久性存储器中的实体的对象视图,或是一个由现有企业应用程序实现的实体。 企业应用程序实现的实体。 7抽象类和接口的区别 1:一个类可以实现任意多的接口,但是最多只能对一个抽象类进行子类化。1:一个类可以实现任意多的接口,但是最多只能对一个抽象类进行子类化。 一个类可以实现任意多的接口,但是最多只能对一个抽象类进行子类化。

2:一个抽象类可以包括非抽象方法,而一个接口的所有方法在效果上都是抽象的。 :一个抽象类可以包括非抽象方法,而一个接口的所有方法在效果上都是抽象的。 3:一个抽象类可以申明并使用变量,而一个接口不行。 :一个抽象类可以申明并使用变量,而一个接口不行。 4:一个抽象类中的方法的访问修饰符可以使public,internal,protected,protected internal,private,而接口成员internal,private,而接口成员的访问修饰符在默认情况下都是public,而且,在申明接口成员时,不允许使用访问修饰符(甚至不能使用。 public,而且,在申明接口成员时,不允许使用访问修饰符(甚至不能使用public)public)5:一个抽象类可以定义构造函数,而一个接口不行。 :一个抽象类可以定义构造函数,而一个接口不行。 8对象序列化的含义 Java 序列化技术可以使你将一个对象的状态写入一个Byte 流里,并且可以从其它地方 流里,并且可以从其它地方 把该Byte 流里的数据读出来。重新构造一个相同的对象。这种机制允许你将对象通过网络 进行传播,并可以随时把对象持久化到数据库、文件等系统里。Java进行传播,并可以随时把对象持久化到数据库、文件等系统里。Java的序列化机制是RMI、RMI、 EJB、EJB、JNNI等技术的技术基础。 等技术的技术基础。 9数据库中的锁包括什么? 基本的封锁类型有两种:基本的封锁类型有两种:排它锁(X排它锁(X锁)和共享锁(S和共享锁(S锁). 所谓X锁,是事务T对数据A加上X锁时,锁时,只允许事务T读取和修改数据A,… A,… 所谓S锁,是事务T对数据A加上S锁时,锁时,其他事务只能再对数据A加S锁,而不能加X锁,直到T释放A上的S锁若事务T对数据对象A加了S锁,则T就可以对A进行读取,进行读取,但不能进行更新(S但不能进行更新(S锁因此又称为读锁),锁因此又称为读锁),在),在T释放A上的S锁以前,其他事务可以再对A加S锁,但不能加X锁,从而可以读取A,但不能更新A,但不能更新A. 10 jsp和serverlet的区别 (1).简单的来说(1).简单的来说Jsp就是含有Java代码的html,而html,而servlet是含有html的Java代码; 代码; (2).Jsp最终也是被解释为servlet并编译再执行,Jsp并编译再执行,Jsp不过是servlet的另一种编写方式; 的另一种编写方式; (3).Jsp擅长表示,servlet,servlet负责C(控制),各有优擅长表示,servlet擅长数据处理,在MVC三层结构中,Jsp三层结构中,Jsp负责V(视图)势,各司其职; 势,各司其职; 11. oracle中数据表的交集怎么表示 第一种方法:利用操作符intersect 第二种方法: in子句 第二种方法: in子句 12 jsp页面中如何传递参数 (1)直接在URL请求后添加 请求后添加 (2)jsp:param 3)设置session和request 13 jsp中的doget()和dopost()方法的作用? 这个两个方法都是http协议的方法,doget,dopost数据量较大, 协议的方法,doget用于传输数据量较小(密码会泄露)数据量较大, 14什么是用例?如何确定用例? 在不展现一个系统或子系统内部结构的情况下,对系统或子系统的某个连贯的功能单元的定义和描述。 一个用例可以看作是系统的一个功能,例如增加用户,例如增加用户,增加角色,增加角色,查询一个具体的一个事物,查询一个具体的一个事物,在Ejb的设计中,的设计中,一个use case跟Session bean的一个方法是对应的(的一个方法是对应的(使用的session fasade模式),模式),你说的基础数据管理),你说的基础数据管理,你说的基础数据管理,我会把它处理成为一个抽象用例,个抽象用例,因为我认为基础数据这个概念非常的抽象,什么是真正的基础数据?什么是真正的基础数据?例如说一个系统中邮政编码算是这个系统的基础数据,系统的基础数据,那么”邮政编码修改”这个就应该算是用例了. 那么”邮政编码修改”这个就应该算是用例了. 15活动图和时序图的区别? 时序图主要强调时间的顺序 时序图主要强调时间的顺序 活动图主要强调空间上类的交互 活动图主要强调空间上类的交互 16什么是策略模式?什么情况下使用? 策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换 策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换

Context(应用场景Context(应用场景): 应用场景): 1、需要使用ConcreteStrategy提供的算法。 提供的算法。 2、 内部维护一个Strategy的实例。 的实例。 3、 负责动态设置运行时Strategy具体的实现算法。 具体的实现算法。 4、负责跟Strategy之间的交互和数据传递。 之间的交互和数据传递。 17面向接口编程的好处 使用接口编程,易于程序扩展,降低程序耦合性。 使用接口编程,易于程序扩展,降低程序耦合性。 包括结构清晰,类之间通信简单易懂,扩展性好,提高复用性等等。 包括结构清晰,类之间通信简单易懂,扩展性好,提高复用性等等。 18事物 事务就是一系列的操作,事务就是一系列的操作,这些操作完成一项任务.这些操作完成一项任务.只要这些操作里有一个操作没有成功,只要这些操作里有一个操作没有成功,事务就操作失败,事务就操作失败,发生回滚事件.发生回滚事件.即撤消前面的操作,即撤消前面的操作,这样可以保证数据的一致性.这样可以保证数据的一致性.而且可以把操作暂时放在缓存里,而且可以把操作暂时放在缓存里,等所有操作都成功有提交数据库,等所有操作都成功有提交数据库,这样保证费时的操作都是有效操作. 样保证费时的操作都是有效操作.

Java工程师面试题(含答案)

本文发布于:2024-02-05 16:04:27,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170712026757484.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:方法   操作   类型
留言与评论(共有 0 条评论)
   
验证码:
排行榜

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23