当前位置: 首页 > 其他范文 > 其他范文

java开发面试问题

作者:ty8104566 | 发布时间:2025-12-04 07:30:29 收藏本文 下载本文

【简介】以下是小编为大家整理的java开发面试问题(共8篇),仅供参考,欢迎大家阅读。在此,感谢网友“”投稿本文!

篇1:java开发面试问题

Java基础方面:

1,作用域public,protected,private,以及不写时的区别

2,ArrayList和Vector的区别,HashMap和Hashtable的区别

3,char型变量能不能定义为一个中文?为什么?

4,多线程有几种表示方法,都是什么?同步有几种实现方法,都是什么?

5,继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?

6,内部类的实现方式?

7,垃圾回收机制,如何优化程序?

8,float型float f=3.4是否正确?

Jsp方面

1,jsp有哪些内置对象?作用分别是什么?

2,jsp有哪些动作?作用分别是什么?

3,include的两种实现方式的区别?

4,两种跳转方式分别是什么?有什么区别?

Servlet方面

1,说一说Servlet的生命周期?

2,Servlet版本间(忘了问的是哪两个版本了)的不同?

篇2:java开发面试问题

第一面

项目:

1、找一个项目,介绍下情况。其中遇到了什么问题,每种问题怎么样的解决方案。

算法题:

2、一个排好序的数组,找出两数之和为m的所有组合

3、自然数序列,找出任意连续之和等于n的所有子序列

数据结构:

4、从数据库查出一个数据结果集,其中有一个时间字段,请用一个数据结构存储使得可以最快速的查出某个时间段内的记录。

5、上一题我提到了B+树,他就继续问了为何用B+树实现索引而不用二叉树

数据库:

6、说说Oracle数据库的事务隔离级别,以及遇到的相关问题

这个我说了标准的四种级别,Oracle实现的三种级别,并概述了下多版本读一致性

项目相关技术:

7、看到简历上写了个rpc,讲讲,我说了跟rmi比较像,说了异同点,然后又展开到内存分配的问题,不过没搞懂他到底要说什么。还问题java客户端跟c程序服务端的通信情况,比如说c那边直接一个结构体过来,怎么处理,答曰没遇到过。

8、简历上写的jvm性能调优,说说都做了什么事情

9、说到jvm的时候,说到了我们用windows开发,就问linux的脚本知道么,awk用过么

10、简历上写web框架开发维护,就问浏览器端跟服务器端如何通信,不过最后只落到了java对象如何传递到客户端,客户端数据如何传递到服务端。

java基础:

11、并发同步的问题,synchorized是如何使用,Object的wait、notify方法什么作用

框架:

12、是否了解spring,ioc的实现,aop的实现方案,各种方案有什么限制

第二面

项目:

1、介绍下你做的项目,稍微高层次一些的介绍下,意思是不要没完没了的介绍

其中提到了主实例集群节点与主实例备用节点的单例状态如何保持同步

2、rpc通信和rmi区别

3、并发访问同一条数据的时候,如何保证数据同步。

4、网站性能优化都做了什么,具体的?ETag、Last-Modified、Expires、Cache-Control

5、最近看什么书,印象最深刻的是什么?

算法:

6、二叉树,找两个节点的最底层的公共父节点,给思路

7、单向链表反转,写代码

第三面(就记了这么多)

自我介绍:

1、个人基本情况,顺便提到项目,就开始扯了几下

数据库:

2、数据库性能优化有做么?做了些什么?

设计:

3、设计一个小商店进销存系统的的表结构设计,老板每天要知道卖出的货物,要定期查看货物的成本、销售额和利润。

这里要注意,重点之一是如何进行成本计算,要知道成本计算的几种方法,选其中一种实现,这个会影响表结构的设计

算法:

4、1到1亿的自然数,求所有数的拆分后的数字之和,如286 拆分成2、8、6,如1到11拆分后的数字之和 =>1 + ... + 9 + 1 + 0 + 1 + 1。

之前去百度面试,整理了一下面试问题。没有笔试,直接和面试官交谈。感觉面试官人挺好的,挺有耐心,每次面试回来不论公司大小,不管能不能拿到offer,但基本都能有一些有价值的输入,还挺开心的。我虽然有4年工作经验,但是不是走纯技术系的,开发,维护,见客户,项目管理什么都干过,最近想换工作,粪发图强恶补算法,数据结构一类大公司特爱考的基础知识。

这次后几道题答的不好。尤其是有一个关于服务器session优化和数据库表水平拆分策略的,没说到点儿上,回来的路上有了点儿思路,回来百度一下,发现八九不离十。前面几个算法的也都是磕磕碰碰,好歹都说上来了,是不是最优的就不好说了。

以前做信息系统,更注重业务的获取与功能的实现,虽然所有人都喊性能、架构什么的,但是实际上没人在乎。反正撑死了也就那么点儿人用。互联网公司真的是不一样啊,对并发和大数据量的关注是深入骨髓的。感觉真是惭愧。虽然这几年跑客户谈需求讲ppt自诩也是混场面的,但是从心里希望自己在技术上也能再往前走一步。

根据记忆整理如下:

1. 有一个集合a,里面有n个正整数,乱序排列。给定一个正整数N,求,a中任意两个数相加等于N,共有哪些种组合情况。例如,集合为{1,3,44,2,4,5,54,222,368} N=6,则结果集为{1,5},{2,4}

这个题网上有类似的

2. Treemap的实现。

各种集合类的结构和优缺点,大家都挺爱考的。以前做行业信息化,没什么感觉,但是如果很在意性能,搞清楚还是挺有用的。

3. 有两个很大的文件,每个文件中都有1亿行,每行一个整数。问这两个集合的交集是什么。给定的前提是机器内存不足以完全装入任意一个文件。

这个几乎是网上的原题了

4. 堆和栈的定义,堆和栈里面的对象,哪个运行速度快。

还问了一些衍生的问题,记不清了,只要看清楚java教材关于这方面的介绍足矣

5. 为了实现一个折线图,需要将数据存入一种数据结构,折线图横坐标是时间,纵坐标是值,经常的查询是按时间段进行查询,如select value from t where begin>’0101’ and end<’20111212’ ,问,使用java中的那种数据结构比较好。

还是考java中的各种集合类,本质上是问各种数据结构在顺序/随机的读取/插入上的效率

6. 数据库的索引通常用什么数据结构实现?为什么用这种数据结构。

就知道是btree,但是btree是咋回事,为啥不能用其他tree或者别的结构,这个看过一篇帖子以后才明白。算是学习了。

7. 如果数据库中有2个表,表a字段为姓名、年龄,表b字段为姓名、单位。现在使用姓名字段做left join查询,假设姓名字段都有索引了。问数据库是怎么实现的。如果把这两个表看为在内存中的数组,要自己实现left join,怎么实现?

面试官看我实在不知道数据库里leftjoin怎么实现的,就让我自己实现一个内存中的,勉强答出来了吧,但是可能不太好。

8. 数据库各种事务隔离级别

这个是纯不记得了,以前工作中从来用不到,真是汗颜。

9. wait方法和notify()方法干什么用的,wait()方法有什么使用限制,是哪儿都能用么?

对于一个从来不用多线程的人,这么简单的问题也变得有点儿难。只知道干什么用的,不知道有什么限制。

10. 数据库中有一个表有上亿的数据量,怎么优化?(主要是拆分,除了按业务拆分外,还有什么从技术角度的,可扩展性好的水平拆分方式)

思路是拆没错,但是面试官问的不是业务拆分策略,而是从技术上考虑。还得考虑扩展性,比如拆好以后,数据量增长迅速,又要拆了,怎么办。这个水平拆分策略有好多,网上能搜到。但是我说的都不是很有体系,以前没弄过,都是现场想。。

ps:当时上新东方的时候,老师说,有的时候虽然你英语不好,但是有几个单词只要你记住了,说的时候塞到句子里,人家就会觉得你特地道,

比如absolutely之流。我觉得面试的时候也有这种key words,比如位排序之流,说的时候还得特举重若轻。适用于各类新手和平时工作中压根用不到各种排序算法的人,

主题:淘宝北京专场java面试题(2011-12-31)

第一面

1、说说项目

由于我几年一直做一个产品,从后台做到前台,从业务开发做到技术平台,所以就画了整个产品部署架构图,b/s & c/s的,然后一层层的讲解。

B/S现有Web框架改造、浏览器缓存、c/s补丁下载各种方式、cdn、c/s通信协议、rpc集群、http集群、负载均衡、集群前置机调度、后端服务器主从实例、后端服务器各种优化(异步、性能隔离)、数据库服务器各种优化(索引、物化视图、读写分离、帐套结转、数据库横向切分、纵向切分)、层间调用性能监控的实现,对照产品架构图各个部分一路讲下来。

2、http集群方案,我们的是反向代理服务器,自己有写代理服务器,也可以用主流的web服务器,然后面试官就问ngnix、lighttpd、apache三大主流web服务器的区别...辶恕!!

3、如果有机会重新设计你们的产品,你会怎么做?

这个当时回答的不好,主要从通信协议和数据存储两块来说了,这样说有些片面。因为我们产品本身又很多问题,只通过部署架构图是反映不出来的,如二次开发问题、补丁下载问题、不同模块java包相互依赖问题、技术框架比较封闭、构建系统方案落后、文档缺失等,我们内部经历过很多的痛苦的,但是当时思维局限在了部署架构,所以没有说出这些问题。

第二面

4、网站性能优化如何优化的?

自己一点网站性能优化经历,结合《构建高性能Web站点》,扯了一通,跟一面有点类似。

5、本来要花产品架构图,我翻过简历,后边有一面时候画的,就没要画了。然后就要我在黑板(暂且叫做黑板)上画jvm体系结构。

画了jvm体系结构,讲解了jvm各个组件和组件的交互、GC算法、各种垃圾收集器、运行期优化、产品中遇到的与jvm相关的问题如oom、ClassLoader问题等,并针对HotSpot VM的实现讲解了堆、非堆内存划分

第三面(HR面)

6、看我面过b2b和支付宝,问了下情况

b2b面完了,但是没过;支付宝过了2面

7、个人优缺点

8、是否愿意来杭州

第四面(视频电话面,杭州某大牛)

9、介绍项目。对于Web框架的改造,跟原有框架的异同

10、下班后的时间有学习技术么

11、是否参加过开源项目

[java开发面试问题]

篇3:java面试问题

question no: 1

publicclass test1 {

publicstaticvoid changestr(string str){

str=“welcome”;

}

publicstaticvoid main(string[] args) {

string str=“1234”;

changestr(str);

system.out.println(str);

}

}

//输出结果:1234

//这里虽然是一个静态方法,但是里面的变量是一个局部变量,

//所以这里不因为是静态方法,就误认为里面的变量也是静态变量了

question no:2

publicclass test2 {

staticboolean foo(char c) {

system.out.print(c);

returntrue;

}

publicstaticvoid main(string[] argv) {

int i = 0;

//for(65;88&&(i<2);67)

for (foo('a'); foo('b') && (i < 2); foo('c')) {

i++;

foo('d');

}

}

}

/*

what is the result?

a. abdcbdcb

b. abcdabcd

c. compilation fails.

d. an exception is thrown at runtime.

//输出结果是:abdcbdcb

分析:for循环里面讲究的条件要为真,与你的判断式是什么没有关系

就像这里,虽然是打印的字母,但是却不是false,所以可以执行

第一次进行循环:

foo('a')打印字母a,(注:这里不是false条件就默认为true条件)

foo('b')打印字母b,i=0,比较(i < 2),条件为true,进行循环体,foo('d')打印d

foo('c')打印字母c

第二次循环:

foo('b')打印b,i=1,比较(i < 2)为true,进行循环体,foo('d')打印d

foo('c')打印字母c

第三次循环:

foo('b')打印字母b,i=2,比较(i < 2)为false,退出循环,得结果

*/

篇4:java面试问题

你刚毕业,在一家公司实习了一个月。

面试人问:

你在这公司实习一个月学到了什么?

[java面试问题]

篇5:java开发面试自我介绍

“埋头不问世事,默侍事力求精” + “永不熄灭的求知欲.” 是我工作的原则。

喜欢突破常规,富于创新,善于接受新事物

精通windows操作,了解unix,linux.能熟练运用c/c++,,java,汇编进行程序设计。熟悉软件技术基础,操作系统知识及计算机网络基础知识。熟悉关系型数据库原理及SQL Server,对oracle数据库有一定了解。精通java,熟悉J2EE开发。

实习期间,曾参与xx科院实验平台系统相关模块的开发及维护。它实现了企业内部资源和企业外部资源的信息共享,使企业的更多资源(包括人、才、物、产、供、销、时间、客户及信息等等资源)得到了充分的利用。它实现了信息技术和管理技术的协调统一,使企业的科学决策性、计划准确性和作业有效性得到有机统一。它实现了继承过去和拓展未来的管理平台,使企业的竞争能力和综合实力得到了全面增强。

我具备的较高的编程水平和系统分析设计能力,相信能为贵公司的发展贡献微薄的力量。

篇6:java面试问题及答案

1、作用域public,private,protected,以及不写时的区别

答:区别如下:

作用域 当前类 同一package 子孙类 其他package

public √ √ √ √

protected √ √ √ ×

friendly √ √ × ×

private √ × × ×

不写时默认为friendly

2、arraylist和vector的区别,hashmap和hashtable的区别

答:就arraylist与vector主要从二方面来说.

一.同步性:vector是线程安全的,也就是说是同步的,而arraylist是线程序不安全的,不是同步的

二.数据增长:当需要增长时,vector默认增长为原来一培,而arraylist却是原来的一半

就hashmap与hashtable主要从三方面来说。

一.历史原因:hashtable是基于陈旧的dictionary类的,hashmap是java 1.2引进的map接口的一个实现

二.同步性:hashtable是线程安全的,也就是说是同步的,而hashmap是线程序不安全的,不是同步的

三.值:只有hashmap可以让你将空值作为一个表的条目的key或value

3、char型变量中能不能存贮一个中文汉字?为什么?

答:是能够定义成为一个中文的,因为java中以unicode编码,一个char占16个字节,所以放一个中文是没问题的

4、多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么?

答:多线程有两种实现方法,分别是继承thread类与实现runnable接口

同步的实现方面有两种,分别是synchronized,wait与notify

篇7:java面试问题及答案

1)transient和volatile是java关键字吗?(瞬联)

如果用transient声明一个实例变量,当对象存储时,它的值不需要维持。例如:

class t

{

transient int a; //不需要维持

int b; //需要维持

}

这里,如果t类的一个对象写入一个持久的存储区域,a的内容不被保存,但b的将被保存。

volatile修饰符告诉编译器被volatile修饰的变量可以被程序的其他部分改变。在多线程程序中,有时两个或更多的线程共享一个相同的实例变量。考虑效率问题,每个线程可以自己保存该共享变量的私有拷贝。实际的变量副本在不同的时候更新,如当进入synchronized方法时。 用strictfp修饰类或方法,可以确保浮点运算(以及所有切断)正如早期的java版本那样准确。切断只影响某些操作的指数。当一个类被strictfp修饰,所有的方法自动被strictfp修饰。

strictfp的意思是fp-strict,也就是说精确浮点的意思。在java虚拟机进行浮点运算时,如果没有指定strictfp关键字时,java的编译器以及运行环境在对浮点运算的表达式是采取一种近似于我行我素的行为来完成这些操作,以致于得到的结果往往无法令你满意。而一旦使用了strictfp来声明一个类、接口或者方法时,那么所声明的范围内java的编译器以及运行环境会完全依照浮点规范ieee-754来执行。因此如果你想让你的浮点运算更加精确,而且不会因为不同的硬件平台所执行的结果不一致的话,那就请用关键字strictfp。

你可以将一个类、接口以及方法声明为strictfp,但是不允许对接口中的方法以及构造函数声明strictfp关键字,例如下面的代码:

strictfp interface a {}

public strictfp class fpdemo1 {

strictfp void f {}

}

2. 错误的使用方法

interface a {

strictfp void f();

}

public class fpdemo2 {

strictfp fpdemo2() {}

}

一旦使用了关键字strictfp来声明某个类、接口或者方法时,那么在这个关键字所声明的范围内所有浮点运算都是精确的,符合ieee-754规范

的。例如一个类被声明为strictfp,那么该类中所有的方法都是strictfp的。

2)抽象类和接口有什么区别?(瞬联)

1.abstract class 在 java 语言中表示的是一种继承关系,一个类只能使用一次继承关系。但是,一个类却可以实现多个interface。

2.在abstract class 中可以有自己的数据成员,也可以有非abstarct的成员方法,而在interface中,只能够有静态的不能被修改的数据成员(也就是必须是static final的,不过在 interface中一般不定义数据成员),所有的成员方法都是abstract的。

3.abstract class和interface所反映出的设计理念不同。其实abstract class表示的是“is-a”关系,interface表示的是“like-a”关系。

4.实现抽象类和接口的类必须实现其中的所有方法。抽象类中可以有非抽象方法。接口中则不能有实现方法。

5.接口中定义的变量默认是public static final 型,且必须给其初值,所以实现类中不能重新定义,也不能改变其值。

6.抽象类中的变量默认是 friendly 型,其值可以在子类中重新定义,也可以重新赋值。

7.接口中的方法默认都是 public,abstract 类型的。

3)能说一下java的反射(reflection)机制吗?(瞬联)

开放性和原因连接(causally-connected)是反射系统的两大基本要素

4)在java中怎样实现多线程?(瞬联)

extends thread

implement runnable

方法一:继承 thread 类,覆盖方法 run(),我们在创建的 thread 类的子类中重写 run() ,加入线程所要执行的代码即可。下面是一个例子:

public class mythread extends thread

{

int count= 1, number;

public mythread(int num)

{

number = num;

system.out.println

(“创建线程 ” + number);

}

public void run() {

while(true) {

system.out.println

(“线程 ” + number + “:计数 ” + count);

if(++count== 6) return;

}

}

public static void main(string args[])

{

for(int i = 0;i 〈 5; i++) new mythread(i+1).start();

}

}

这种方法简单明了,符合大家的习惯,但是,它也有一个很大的缺点,那就是如果我们的类已经从一个类继承(如小程序必须继承自 applet 类),则无法再继承 thread 类,这时如果我们又不想建立一个新的类,应该怎么办呢?

我们不妨来探索一种新的方法:我们不创建thread类的子类,而是直接使用它,那么我们只能将我们的方法作为参数传递给 thread 类的实例,有点类似回调函数。但是 java 没有指针,我们只能传递一个包含这个方法的类的实例。

那么如何限制这个类必须包含这一方法呢?当然是使用接口!(虽然抽象类也可满足,但是需要继承,而我们之所以要采用这种新方法,不就是为了避免继承带来的限制吗?)

java 提供了接口 java.lang.runnable 来支持这种方法。

方法二:实现 runnable 接口

runnable接口只有一个方法run(),我们声明自己的类实现runnable接口并提供这一方法,将我们的线程代码写入其中,就完成了这一部分的任务。但是runnable接口并没有任何对线程的支持,我们还必须创建thread类的实例,这一点通过thread类的构造函数 public thread(runnable target);来实现。下面是一个例子:

public class mythread implements runnable

{

int count= 1, number;

public mythread(int num)

{

number = num;

system.out.println(“创建线程 ” + number);

}

public void run()

{

while(true)

{

system.out.println

(“线程 ” + number + “:计数 ” + count);

if(++count== 6) return;

}

}

public static void main(string args[])

{

for(int i = 0; i 〈 5;i++) new thread(new mythread(i+1)).start();

}

}

严格地说,创建thread子类的实例也是可行的,但是必须注意的是,该子类必须没有覆盖 thread 类的 run 方法,否则该线程执行的将是子类的 run 方法,而不是我们用以实现runnable 接口的类的 run 方法,对此大家不妨试验一下。

使用 runnable 接口来实现多线程使得我们能够在一个类中包容所有的代码,有利于封装,它的缺点在于,我们只能使用一套代码,若想创建多个线程并使各个线程执行不同的代码,则仍必须额外创建类,如果这样的话,在大多数情况下也许还不如直接用多个类分别继承 thread 来得紧凑。

综上所述,两种方法各有千秋,大家可以灵活运用。

下面让我们一起来研究一下多线程使用中的一些问题。

三、线程的四种状态

1. 新状态:线程已被创建但尚未执行(start() 尚未被调用)。

2. 可执行状态:线程可以执行,虽然不一定正在执行。cpu 时间随时可能被分配给该线程,从而使得它执行。

3. 死亡状态:正常情况下 run() 返回使得线程死亡。调用 stop()或 destroy() 亦有同样效果,但是不被推荐,前者会产生异常,后者是强制终止,不会释放锁。

4. 阻塞状态:线程不会被分配 cpu 时间,无法执行。

四、线程的优先级

线程的优先级代表该线程的重要程度,当有多个线程同时处于可执行状态并等待获得 cpu 时间时,线程调度系统根据各个线程的优先级来决定给谁分配 cpu 时间,优先级高的线程有更大的机会获得 cpu 时间,优先级低的线程也不是没有机会,只是机会要小一些罢了。

你可以调用 thread 类的方法 getpriority() 和 setpriority()来存取线程的优先级,线程的优先级界于1(min_priority)和10(max_priority)之间,缺省是5(norm_priority)。

5)你用过哪种设计模式?(瞬联,ibm,aspentech)

设计:design

模式:pattern

框架:framework

创建模式,结构模式和行为模式

gof设计模式

a.创建模式

设计模式之factory(工厂模式)

使用工厂模式就象使用new一样频繁./10/9更新

设计模式之prototype(原型模式)

用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。

设计模式之builder

汽车由车轮 方向盘 发动机很多部件组成,同时,将这些部件组装成汽车也是一件复杂的工作,builder模式就是将这两种情况分开进行。

设计模式之singleton(单态模式)

保证一个类只有一个实例,并提供一个访问它的全局访问点 /10/9更新

b.结构模式

设计模式之facade

可扩展的使用jdbc针对不同的数据库编程,facade提供了一种灵活的实现.

设计模式之proxy

以jive为例,剖析代理模式在用户级别授权机制上的应用

设计模式之adapter

使用类再生的两个方式:组合(new)和继承(extends),这个已经在“thinking in java”中提到过.

设计模式之composite

就是将类用树形结构组合成一个单位.你向别人介绍你是某单位,你是单位中的一个元素,别人和你做买卖,相当于和单位做买卖。文章中还对jive再进行了剖析。

设计模式之decorator

decorator是个油漆工,给你的东东的外表刷上美丽的颜色.

设计模式之bridge

将“牛郎织女”分开(本应在一起,分开他们,形成两个接口),在他们之间搭建一个桥(动态的结合)

设计模式之flyweight

提供java运行性能,降低小而大量重复的类的开销.

c.行为模式

设计模式之template

实际上向你介绍了为什么要使用java 抽象类,该模式原理简单,使用很普遍.

设计模式之memento

很简单一个模式,就是在内存中保留原来数据的拷贝.

设计模式之observer

介绍如何使用java api提供的现成observer

设计模式之chain of responsibility

各司其职的类串成一串,好象击鼓传花,当然如果自己能完成,就不要推委给下一个.

设计模式之command

什么是将行为封装,command是最好的说明.

设计模式之state

状态是编程中经常碰到的实例,将状态对象化,设立状态变换器,便可在状态中轻松切换.

设计模式之strategy

不同算法各自封装,用户端可随意挑选需要的算法.

设计模式之mediator

mediator很象十字路口的红绿灯,每个车辆只需和红绿灯交互就可以.

设计模式之interpreter

主要用来对语言的分析,应用机会不多.

设计模式之visitor

访问者在进行访问时,完成一系列实质性操作,而且还可以扩展.

设计模式之iterator

这个模式已经被整合入java的collection.在大多数场合下无需自己制造一个iterator,只要将对象装入collection中,直接使用iterator进行对象遍历。

篇8:java面试问题及答案

1.J2EE是什么?(Java 2 Enterprise Edition, 中文为Java 2企业版本,由多种技术组成,主要的两大技术为Servlet技术和EJB技术,J2EE程序需要在J2EE容器内运行)

2.介绍JAVA中的Collection FrameWork(Java的Collection FrameWork包括两大接口,为Collection和Map。5.0版本增加了一个新的接口Queue。其中Collection又包括List和Set接口。其所有的标准实现类均在java.util包中定义。总体上来说,Map定义了键和值的对应关系,List定义了列表,Set定义了堆式。所以一般来说Map和Set为无序而List有序,但也有例外。)?

如COLLECTION中遗留类(HASHTABLE、VECTOR)和现有类的区别?(同步) 3.Java中异常处理机制,事件机制?

所有继承自Trowable的类的对象都可被抛出和捕获,继承它的Error接口表示错误,而Exception表示异常,继承自Exception下RuntimeException接口的类表示运行时异常,可以不被捕获。事件则一般采用接口来实现,接口内定义回调方法而实现该接口的类定义具体流程。

4.EJB与JAVA BEAN的区别?

EJB与JAVA BEAN是SUN的不同组件规范,EJB是在容器中运行的,分步式的,而JAVA BEAN主要是一种可利用的组件,主要在客户端UI表现上。

5.JAVA中的多形与继承?

可出编程,选择题。

6.抽象类与接口?

接口的好处是将实现与表现分离。

抽象类与接口都用于抽象,但是抽象类(JAVA中)可以有自己的部分实现,而接口则完全是一个标识(同时有多重继承的功能)。

7.Java 的通信编程,编程题(或问答),用JAVA SOCKET编程,读服务器几个字符,再写入本地显示?

8.JAVA SERVLET API中forward() 与redirect()的区别?

forward()是在容器内部对请求的转发,而redirect()使用的是HTTP协议在应答中将客户端

重新定向至所指定的URL。使用forward()时客户端不产生新的请求,而使用redirect()时客户端会产生一个新的请求。

9.JAVA解析XML的方式? SAX、DOM

10.用JAVA实现数据库查询,这是一道编程题。

11.用JAVA实现一种排序 ,比较,JAVA类实现序列化的方法(二种)?

如在COLLECTION框架中,实现比较要实现什么样的接口。

12.JSP中动态INCLUDE与静态INCLUDE的区别? 动态可以带参数,静态相当于一段静态HTML文件。

13.应用服务器与WEB SERVER的区别?

应用服务器侧重于对应用流程的实现,WEB SERVER侧重于对网络协议的实现。

14.设计模式与UML方面。

如工厂模式,解决多数据库支持问题。

15。 编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。

但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。

16。在ORACLE大数据量下的分页解决方法。 一般用截取ID方法,还有是三层嵌套方法。 17。WEB SERVICE名词解释。JSWDL开发包的介绍。JAXP、JAXM的解释。SOAP、UDDI解释。 18。BS与CS的联系与区别。 19。LINUX下线程,GDI类的解释。 20。JAVA多线程编程。

用JAVA写一个多线程程序,如写四个线程,二个加1,二个对一个变量减一,输出。 21。JAVA的基本功: STRING与STRINGBUFFER的区别。

22。STRUTS的应用(如STRUTS架构

JAVA方面

1 面向对象的特征有哪些方面 继承,多态,抽象,重载, 封装 2 String是最基本的数据类型吗? 不是

3 int 和 Integer 有什么区别 一个是基本类型,另一个是对象 4 String 和StringBuffer的区别 一个是非可变类,另一个是可变类 5运行时异常与一般异常有何异同?

异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。

6 说出一些常用的类,包,接口,请各举5个

7 说出ArrayList,Vector, LinkedList的存储性能和特性

ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差,而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。

8设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。

以下程序使用内部类实现线程,对j增减的时候没有考虑顺序问题。 public class ThreadTest1{ private int j; public static void main(String args[]){ ThreadTest1 tt=new ThreadTest1(); Inc inc=tt.new Inc(); Dec dec=tt.new Dec(); for(int i=0;i<2;i++){ Thread t=new Thread(inc); t.start(); t=new Thread(dec); t.start(); } } private synchronized void inc(){ j++; System.out.println(Thread.currentThread().getName()+“-inc:”+j); } private synchronized void dec(){ j--; System.out.println(Thread.currentThread().getName()+“-dec:”+j); } class Inc implements Runnable{ public void run(){ for(int i=0;i<100;i++){ inc(); } } } class Dec implements Runnable{ public void run(){ for(int i=0;i<100;i++){ dec(); } } } }

9.JSP的内置对象及方法。

request request表示HttpServletRequest对象。它包含了有关浏览器请求的信息,并且提供了几个用于获取cookie, header, 和session数据的有用的方法。

response response表示HttpServletResponse对象,并提供了几个用于设置送回 浏览器的响应的方法(如cookies,头信息等)

out out 对象是javax.jsp.JspWriter的一个实例,并提供了几个方法使你能用于向浏览器回送输出结果。

pageContext pageContext表示一个javax.servlet.jsp.PageContext对象。它是用于方便存取各种范围的名字空间、servlet相关的对象的API,并且包装了通用的servlet相关功能的方法。

session session表示一个请求的javax.servlet.http.HttpSession对象。Session可以存贮用户的状态信息

application applicaton 表示一个javax.servle.ServletContext对象。这有助于查找有关servlet引擎和servlet环境的信息

config config表示一个javax.servlet.ServletConfig对象。该对象用于存取servlet实例的初始化参数。

page page表示从该页面产生的一个servlet实例

10.用socket通讯写出客户端和服务器端的通讯,要求客户发送数据后能够回显相同的数据。

参见课程中socket通讯例子。

11说出Servlet的生命周期,并说出Servlet和CGI的区别。

Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。

与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。

12.EJB是基于哪些技术实现的?并说出SessionBean和EntityBean的区别,StatefulBean和StatelessBean的区别。

SessionBean用于提供对流程的处理,EntityBean提供对数据持久化的管理。StatefulBean有状态,StatelessBean无状态,一般来说StatelessBean速度较快但无法保持客户信息,StatefulBean速度较慢但可以保持客户状态。

13.EJB包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的?

无状态SessionBean的生命周期由容器自由决定。有状态SessionBean在客户需要时被创建,用完后销毁。EntityBean的生命周期也由容器决定,但是在它的不同阶段会根据需要来表示不同的数据内容。

14.说出数据连接池的工作机制是什么?

对表示数据库连接的对象进行包装并预先生成一定数量的连接,当用户请求数据库连接时,从池中选取一个当前不在使用的连接提交给用户。用户使用完成后关闭改连接,此时连接并不真正的被关闭,只是对事物进行提交或回滚等相应的操作,然后回到池中等待被下一次调用。

17你所知道的集合类都有哪些?主要方法? 查API

18给你一个:驱动程序A,数据源名称为B,用户名称为C,密码为D,数据库表为T,请用JDBC检索出表T的所有数据。

[java面试问题及答案]

java开发工程师岗位职责

java开发师岗位职责

java开发岗位职责认识

java开发年终工作总结

java开发自我评价

本文标题: java开发面试问题
链接地址:https://www.dawendou.com/fanwen/qitafanwen/2704826.html

版权声明:
1.大文斗范文网的资料来自互联网以及用户的投稿,用于非商业性学习目的免费阅览。
2.《java开发面试问题》一文的著作权归原作者所有,仅供学习参考,转载或引用时请保留版权信息。
3.如果本网所转载内容不慎侵犯了您的权益,请联系我们,我们将会及时删除。

重点推荐栏目

关于大文斗范文网 | 在线投稿 | 网站声明 | 联系我们 | 网站帮助 | 投诉与建议 | 人才招聘 | 网站大事记
Copyright © 2004-2025 dawendou.com Inc. All Rights Reserved.大文斗范文网 版权所有