一、 JAVA语言
1、 面向对象的三个基本特征
答:继承、封装、多态
2、 方法重载和方法重写的概念和区别
答:方法重载:方法名称相同但方法内的参数个数和参数类型不一样。
方法重写:在类的继承中,当子类的成员变量与父类的成员变量同名时,子类的成员变量会隐藏父类的成员变量;当子类的方法与父类的方法同名,参数列表、反回值类型相同时,子类的方法将覆盖父类的方法,当重写的方法在子类的对象被调用时,他总是参考在子类中的定义的方法就被隐藏。
3、 接口和内部类、抽象类的特征
答:接口:在一个类里,只有申明没有实现。
内部类:是在一个类的内部定义的一个类
抽象类:是以abstract 定义的,里面至少有一个抽象方法。
4、 文件读写的基本类
答:File Reader 类和FileWriter类分别继承自Reader类和Writer类。FileReader类用于读取文件,File Writer类用于将数据写入文件,这两各类在使用前,都必须要调用其构造方法创建相应的对象,然后调用相应的read()或 write()方法。
5、 串行化的注意事项以及如何实现串行化
答:如果有循环引用是不可以串行化的。对象输出流的WriteObject方法和 对象输入流的ReadObect 方法
6、 线程的基本概念、线程的本状态以及状态之间的关系
STOP(),SUSPENG()
STOP的本意是中止一个线程。中止的线程的问题根源不在于object locks,而是object的状态。当stop()中止一个线程时,会释放线程持有的所有locks。但你并不知道当时的代码正在做什么。
Suspend() 原意是暂时悬挂起一个线程对应的是resume()函数,用来恢复先前被悬挂起的线程。它并不释放将被悬挂之线程所有的LOCKS。
7、 线程的同步、如何实现线程的同步
答:当两个或多个线程同时访问同一个变量,并且以个线程需要修改这个变量。就要用到线程同步。在Java 中,同步是通过 synchronized 关键字来定义的。 诺是想同步化某程序段,可以使用 synchronized(object){}方法,其中{}内的程序语句被同步化。
8、 几种常用的数据结构以及内部实现的原理
答:list map使用红黑树来实现的 set 。
9、 socket通信(tcp/udp区别及JAVA的实现方式)
10、 JAVA的事件委托机制和垃圾回收机制
11、 JDBC调用数据库的基本步骤
答:注册驱动程序
生成连接
创建Statement/PreparedStatement对象
执行命令
查看结果
关闭连接,释放资源
12、 解析XML文件的几种方式和区别
答:Dom解析 在内存中创建一个DOM树,能随机访问文件内容,也可以修改原文件内容
SAX解析 线性解析,不能随机访问,也无法修改原文件
Dom解析要先用SAX解析创建DOM树
13、 JAVA的四种基本权限的定义
14、 JAVA的国际化
答:Java 中提供了诺干国际化明感类,来实现国际化的。例如:dateformat timezone 等等。
二、 JSP
1、 至少能说出7个隐含对象以及他们的区别
答:request,response, session, application, out, page, exception, pageContext
2、 forward和rederect的区别
答:redirect重定向到另外一个页面,重新开始一个请求
forward跳转到另外一个页面, 请求不断开
3、 jsp的常用的命令
答:page, include, talib, forward,
三、 servlet
1、 什么情况下调用doget()和什么情况dopost
答:当表单提交时method设置的 是 get 就调用 doget 方法,如果是 post 就调用 dopost方法。 http get方法请求一页面,调用doget() http post方法请求一页面,调用dopost()
2、 servlet的init()方法和service()方法的区别
答:初始化时调用init()方法
有请求到达时调用service()方法,service()根据请求的类型,调用doget()或depost()等方法
3、 servlet的生命周期
答:init()----serviece()----destory()
4、 如何实现servlet的单线程模式
答:默认就是单线程的
5、 servlet的配置
6、 四种会话跟踪技术
答:cookie
url重写
session
隐藏域
四、 ejb
1、 ejb 容器提供的服务
答:主要提供声明周期管理、代码产生、持续性管理、安全、事务管理、锁和并发行管理等服务。
2、 ejb的角色和三个对象
答:EJB角色主要包括Bean开发者 应用组装者 部署者 系统管理员 EJB容器提供者 EJB服务器提供者
三个对象是Remote(Local)接口、Home(LocalHome)接口,Bean类
3、 ejb的几种类型
会话(Session)Bean ,实体(Entity)Bean 消息驱动的(Message Driven)Bean
会话Bean又可分为有状态(Stateful)和无状态(Stateless)两种
实体Bean可分为Bean管理的持续性(BMP)和容器管理的持续性(CMP)两种
4、 bean实例的生命周期
对于Stateless Session Bean、Entity Bean、Message Driven Bean一般存在缓冲池管理,而对于Entity Bean和Statefull Session Bean存在Cache管理,通常包含创建实例,设置上下文、创建EJB Object(create)、业务方法调用、remove等过程,对于存在缓冲池管理的Bean,在create之后实例并不从内存清除,而是采用缓冲池调度机制不断重用实例,而对于存在Cache管理的Bean则通过激活和去激活机制保持Bean的状态并限制内存中实例数量。
5、 remote接口和home接口主要作用
remote接口定义了业务方法,用于EJB客户端调用业务方法
home接口是EJB工厂用于创建和移除查找EJB实例
7、 客服端口调用EJB对象的几个基本步骤
答;设置JNDI服务工厂以及JNDI服务地址系统属性
查找Home接口
从Home接口调用Create方法创建Remote接口
通过Remote接口调用其业务方法
五、数据库
1、存储过程的编写
2、基本的SQL语句
六、 weblogic
1、 weblogic指定大小的内存
答:在启动Weblogic的脚本中(位于所在Domian对应服务器目录下的startServerName),增加set MEM_ARGS=-Xms32m -Xmx200m,可以调整最小内存为32M,最大200M。
2、 如何设定weblogic的热启动模式(开发模式)与产品发布模式。
答:可以在管理控制台中修改对应服务器的启动模式为开发或产品模式之一。或者修改服务的启动文件或者commenv文件,增加set PRODUCTION_MODE=true。
3、 如何启动时不需要用户名和密码。
答:修改服务启动文件,增加 WLS_USER和WLS_PW项。也可以在boot.properties文件中增加加密过的用户名和密码.
4、 在weblogic管理控制台中对一个应用域(或者一个网站)进行jms以及ejb或连接池等相关信息进行配置,实际保存在什么文件中。
答:保存在此Domain的config.xml文件中,它是服务器的核心配置文件。
5、 说说webloic中一个Domain的缺省目录结构?比如要讲一个简单的helloword.jsp放入何目录下,在浏览器上就可以打入http://主机:端口号//hello.jsp既可以看到结果,又比如其中用到了一个自己写的javabean如何办。
答:Domain目录\服务器目录\applications,将应用目录放在此目录下将可以作为应用访问,如果是Web应用,应用目录需要满足Web应用目录要求,jsp文件可以直接放在应用目录中,Javabean需要放在应用目录的WEB-INF目录的classes目录中,设置服务器的缺省应用将可以实现在浏览器上无需输入应用名。
6、 如何查看在weblogic中已发布的ejb。
答:可以使用管理控制台,在它的Deployment中可以查看所有已发布的EJB
7、 如何在weblogic进行ssl的配置与客户端的认证配置或说说j2ee进行ssl的配置。
答:缺省安装中使用DemoIdentity.jks和DemoTrust.jks KeyStore实现SSL,需要配置服务器使用Enable SSL,配置其端口,在产品模式下需要从CA获取私有密钥和数字证书,创建identity和trust keystore,装载获得的密钥和数字证书。可以配置此SSL连接是单向还是双向的。
8、 在weblogic中发布ejb需要设计那些配置文件。
答:不同类型的EJB涉及的配置文件不同,都涉及到的配置文件包括ejb-jar.xml,weblogic-ejb-jar.xmlCMP实体Bean一般还需要weblogic-cmp-rdbms-jar.xml
9、 ejb需直接实现他的业务接口或home接口吗?请简述理由。
答:远程接口和Home接口不需要直接实现,他们的实现代码是由服务器产生的,程序运行中对应实现类会作为对应接口类型的实例被使用。
10、 说说在weblogic中开发消息bean时persistenty与non-persistent的差别。
答:persistent方式的MDB可以保证消息传递的可靠性,也就是如果EJB容器出现问题而JMS服务器依然会将消息在此MDB可用的时候发送过来,而non-persistent方式的消息将被丢弃。
11、 说说你所熟悉的j2ee中的几种常用的模式?以及对设计模式的一些看法。
答:Session Facade Pattern:使用SessionBean访问EntityBean
Message Facade Pattern:实现异步调用
EJB Command Pattern:使用Command JavaBeans取代SessionBean,实现轻量级访问
Data Transfer Object Factory:通过DTO Factory简化EntityBean数据提供特性
Generic Attribute Access:通过AttibuteAccess接口简化EntityBean数据提供特性
Business Interface:通过远程(本地)接口和Bean类实现相同接口规范业务逻辑一致性
EJB架构的设计好坏将直接影响系统的性能、可扩展性、可维护性、组件可重用性及开发效率。项目越复杂,项目队伍越庞大则越能体现良好设计的重要性
12、 java的调试如何进行。
答:jdb 是java 的调试器,类似于 UNIX系统的调试器 dbx,jdb 使用 Java调试器应用程序接口来完成对本地或远程的Java调试器的调用工作。
一般是在要测试的代码段想控制台打印消息。
13、 java中对象之间的通讯采用什么方法。
答:直接调用另一对象方法来进行通讯以及数据的交换。
14、 applet访问数据库采用了什么底层机制。
15、 tcp/ip在连接是有几次握手?释放是有几次握手?
答:建立连接是2次,释放是3次。
16、 谈谈你对swing mvc模式的理解?
答:Swing号称是完全按照MVC的思路来进行设计的。在设计开始前,Swing的希望能够达到的目标就包括:
模型驱动(Model-Driven)的编程方式。
提供一套单一的API,但是能够支持多种视感(look-and-feel),为用户提供不同的界面。
严格的说,Swing中的MVC实际上是MVC的一个变体:M-VC。 Swing中只显示的定义了Model接口,而在一个UI对象中集成了视图和控制器的部分机制。View和Control比较松散的交叉组合在一起,而更多的控制逻辑是在事件监听者部分引入的。
但是,这并没有妨碍在Swing中体现MVC的精髓。事实上,在Swing的开发初期,Swing确实是按照标准的MVC模式来设计的,但是很快的问题就出现了:View和Controller实际上是紧密耦合的,很难作出一个能够适应不同View的一般化的Controller来,而且,一般也没有很大的必要。
17、 Java中线程间怎么通讯?什么叫僵死线程?
答:线程之间可以通过管道进行通讯。
18、 Java程序怎么优化?
答:提高JAVA的性能,一般考虑如下的四个主要方面:
(1) 程序设计的方法和模式
(2) JAVA布署的环境。
(3) JAVA应用程序的实现
(4) 硬件和操作系统
为了提高JAVA程序的性能,需要遵循如下的六个步骤。
a) 明确对性能的具体要求
b) 了解当前程序的性能
c) 找到程序的性能瓶颈
d) 采取适当的措施来提高性能
e) 只进行某一方面的修改来提高性能
f) 返回到步骤c,继续作类似的工作,一直达到要求的性能为止。
19、 Java中如何访问数据库?
答:Java 中是通过 JDBC 进行对数据库的访问的。
20、 Jdbc提供什么方法访问数据库?
答:1. 建立数据源
2. 建立连接
与数据库建立连接的标准方法是调用方法Drivermanger.getConnection(String url,String user,String password)。Drivermanger类用于处理驱动程序的调入并且对新的数据库连接提供支持。
3. 执行SQL语句
JDBC提供了Statement类来发送SQL语句,Statement类的对象由createStatement方法创建;SQL语句发送后,返回的结果通常存放在一个ResultSet类的对象中,ResultSet可以看作是一个表,这个表包含由SQL返回的列名和相应的值,ResultSet对象中维持了一个指向当前行的指针,通过一系列的getXXX方法,可以检索当前行的各个列,从而显示出来。
21、 在java中如何进行socket编程。
答:Sockets有两种主要的操作方式:面向连接的和无连接的。
无连接的操作使用数据报协议.这个模式下的socket不需要连接一个目的的socket,它只是简单地投出数据报.无连接的操作是快速的和高效的,但是数据安全性不佳.
面向连接的操作使用TCP协议.一个这个模式下的socket必须在发送数据之前与目的地的socket取得一个连接.一旦连接建立了,sockets就可以使用一个流接口:打开-读-写-关闭.所有的发送的信息都会在另一端以同样的顺序被接收.面向连接的操作比无连接的操作效率更低,但是数据的安全性更高.
在服务器,使用ServerSocket监听指定的端口,端口可以随意指定(由于1024以下的端口通常属于保留端口,在一些操作系统中不可以随意使用,所以建议使用大于1024的端口),等待客户连接请求,客户连接后,会话产生;在完成会话后,关闭连接。
在客户端,使用Socket对网络上某一个服务器的某一个端口发出连接请求,一旦连接成功,打开会话;会话完成后,关闭Socket。客户端不需要指定打开的端口,通常临时的、动态的分配一个1024以上的端口。
22、 用java怎样实现多线程?线程有那些状态?
答:Java 中实现多线程的方法有两种,一是继承 java.lang 包中的 Thread 类,二是用户自己的类实现 Runnable 接口。
初始状态,就绪状态,阻塞状态,运行状态,死亡状态。
23、 编译java用那些命令?
答:javac编译命令。Help命令可以帮助你得到你想要的命令。
24、 同时编译java两个类应带什么参数?
答:CLASSPATH
七、数据库:
1、 动态查询如何实现?表的结构变化后,如果不需要修改程序,如何设计和实现查询?
答:讲查询封装进存储过程中,通过调用存储过程实现动态调用;表结构发生变化后修改相应的存储过程即可再不修改程序的情况下实现查询。
2、 如何优化数据库,如何提高数据库的性能?
答:优化数据库主要是优化查询语句,通过高性能的查询语句提高数据库的性能。
3、 设计数据库应注意那些问题
答:首先应尽量满足三范式的要求,在一定程度上打破3范式的要求以提高数据库的性能。
4、 表与表之间的关联关系
答:分为3种:一对一、一对多、多对多。
5、 主键和外键的区别
答:主键在本表中是唯一的、不可唯空的,外键可以重复可以唯空;外键和另一张表的主键关联,不能创建对应表中不存在的外键。
分享到:
相关推荐
Java是世界上最流行的编程语言之一,尤其对于初学者和专业开发者来说,选择合适的书籍来学习至关重要。以下是一些推荐的Java学习必读书目及其详细解析: 1. **《Java2核心技术(第6版)卷I:基础知识》** - 由Cay S....
以下是一份精心挑选的15本Java工程师必读书籍推荐,涵盖了从初学者到高级开发者的各种层次: 1. **《Java核心技术卷》**:这本书由Java之父James Gosling等人撰写,是学习Java语言的基础教材,详细讲解了Java语法、...
2. **Think In Java.chm**:这是经典的《深入思考Java》电子版,作者Bruce Eckel深入浅出地讲解了Java语言的核心概念,包括面向对象编程、集合框架、多线程、异常处理等内容,是Java初学者必读的书籍之一。...
《JAVA程序员必读基础篇 .rar》可能是针对Java初学者的基础教程,强调了语言基础和编程思维的培养,是入门Java编程的良好起点。 最后,《J2EE开发全程实录 .rar》可能是一部实战教程,通过实际项目的开发流程,让...
### OSGi R4规范详解 #### 一、概述 **OSGi R4规范**是OSGi联盟在2009年发布的版本,是OSGi技术的重要里程碑之一。...无论是对于初学者还是高级开发者而言,《OSGi R4规范》都是必读的经典之作。
对于那些初学Java的程序员来说,本书被推荐为必读之物。来自以色列海法Technion大学的Anatoly Vorobey就称赞《Thinking In Java》是“我所见过的最好的编程语言教程之一”。南非King Edward VIII医院的注册员Gavin ...
这个压缩包中的资源可能对Java初学者或寻求提升技能的开发者有所帮助。 1. **DOS6.22帮助手册.exe** DOS是Disk Operating System的缩写,是早期个人计算机上的一种操作系统。虽然Java主要在现代高级操作系统上运行...
《awesome-javaJava 开源项目集合》是一个汇集了Gitee和Github上众多优秀Java开源项目的资源库,对于Java...无论是初学者还是经验丰富的开发者,都能在这个宝藏中找到适合自己的学习路径,不断提升自己的Java技能。
### 《Thinking in Java》第四版核心知识点概览 #### 一、书籍概述与价值 《Thinking in Java》第四版是一本经典的Java编程教材,由Bruce Eckel编写,旨在为...无论是初学者还是有一定经验的开发者都能从中受益匪浅。
这些书籍通常由业界专家撰写,具有高度的实践性和理论性,是初学者快速掌握技能的首选。 1. **Java**: - 《Java编程语言(第三版)》:Java之父James Gosling的作品,深入阐述Java语言基础。 - 《Java编程思想...
- **书籍简介**:本书由Ian Horton撰写,专为Java初学者设计。通过本书的学习,读者可以逐步掌握Java编程的基础知识,并了解JDK 5的新特性。 - **核心知识点**: - Java编程语言的基本语法 - 类与对象的概念及其...
《学生综合信息管理系统1.0》是一个以Java编程语言实现的教育管理软件,专为Java初学者设计,提供了一个良好的学习和实践平台。系统的主要功能是管理学生的基本信息,包括但不限于学号、姓名、性别、出生日期、班级...
6. **《Java编程思想》**:Bruce Eckel的经典之作,深入解析Java语言,适合初学者和有经验的开发者。 7. **《expert one-on-one J2EE Development without EJB》**:讨论了如何在不使用EJB的情况下进行J2EE开发,为...
这些书籍涵盖了Java的基础、高级特性和最佳实践,对于初学者和有经验的开发者都是宝贵的资源。 在C#方面,Charles Petzold的《C#程序设计》被誉为"windows编程泰山北斗",他的另一本作品《c#Windows程序设计》同样...
- 内容:本书深入讲解了Java的基础知识与面向对象编程的核心理念,适合初学者构建坚实的Java编程基础。 - **《Java核心技术》** - 作者:Cay S. Horstmann & Gary Cornell - 内容:全面覆盖Java的各种特性,是...
本资料集旨在为初学者提供一个全面的入门指南,帮助理解GEF的基础概念和实现方法。 GEF的核心功能是提供了一套强大的组件和API,用于创建可交互的、图形式的用户界面。通过使用GEF,开发者可以轻松地创建出具有拖放...
- 《大数据工程师必读手册》:全面讲解大数据工程师所需的技术和实践经验。 - 《领军行业大数据及 AI 实战》:分享了行业领先的大数据和AI应用案例。 - 《Apache Flink 十大技术难点实战》与《Apache Flink 年度...
计算机编程是信息技术领域不可或缺的一部分,对于想要学习计算机的初学者来说,选择合适的书籍至关重要。这里推荐的书籍都是由业内专家和大牛精心挑选,涵盖了多种编程语言和关键领域,包括Java、C#和C++。 首先,...
本书全面覆盖了Android应用开发的各个方面,包括用户界面、四大组件、资源访问、多媒体处理、网络通信等,对于Android初学者和有一定经验的开发者都是很好的参考手册。 3. **《Android开发艺术探索》** - 作者:...