java高级工程师面试题及答案

java高级工程师面试题及答案
java高级工程师面试题及答案

j a v a高级工程师面试题

及答案

标准化工作室编码[XX968T-XX89628-XJ668-XT689N]

一:选择题

1. 关于以下程序代码的说明正确的是( D )

1.class HasStatic{

2. private static int x=100;

3. public static void main(String args[ ]){

4. HasStatic hs1=new HasStatic( );

5. hs1.x++;

6. HasStatic hs2=new HasStatic( );

7. hs2.x++;

8. hs1=new HasStatic( );

9. hs1.x++;

10. HasStatic.x- -;

11. (“x=”+x);

12. }

13. }

A、 5行不能通过编译,因为引用了私有静态变量

B、 10行不能通过编译,因为x是私有静态变量

C、程序通过编译,输出结果为:x=103

D、程序通过编译,输出结果为:x=102

2. 下列关于for循环和while循环的说法中哪个是正确的?( B )

A.while循环能实现的操作,for循环也都能实现

B.while循环判断条件一般是程序结果,for循环判断条件一般是非程序结果C.两种循环任何时候都可替换

D.两种循环结构中都必须有循环体,循环体不能为空

3. 以下选项中循环结构合法的是( C )

A、while (int i<7)

{ i++;

(“i is “+i);

}

B、 int j=3;

while(j)

{

(“ j is “+j);

}

C、int j=0;

for(int k=0; j + k !=10; j++,k++)

{

(“ j is “+ j + “k is”+ k);

}

D、 int j=0;

do{

( “j is “+j++);

if (j = = 3) {continue loop;}

}while (j<10);

4. 给出下面代码段, 哪行将引起一个编译时错误?( D )

1) public class Test {

2) int n = 0;

3) int m = 0;

4) public Test(int a) { m=a; }

5) public static void main(String arg[]) {

6) Test t1,t2;

7) int j,k;

8) j=3; k=5;

9) t1=new Test();

10) t2=new Test(k);

11) }

12) }

A. 行1

B. 行4

C. 行6

D. 行9

5. 下面的方法,当输入为2的时候返回值是多少( D )

public int getValue(int i) {

int result = 0;

switch (i) {

case 1:

result = result + i;

case 2:

result = result + i * 2;

case 3:

result = result + i * 3;

}

return result;

}

A 0

B 2

C 4

D 10

二:简述题

1、描述一下 JVM 加载 class 文件的原理机制

JVM 中类的装载是由ClassLoader 和它的子类来实现的,Java ClassLoader 是一个重要的

Java 运行时系统组件。它负责在运行时查找和装入类文件的类。

2、heap 和stack 有什么区别。

java 的内存分为两类,一类是栈内存,一类是堆内存。栈内存是指程序进入一个方法时,会为这个方法单独分配一块私属存储空间,用于存储这个方法内部的局部变量,当这个方法结束时,分配给这个方法的栈会释放,这个栈中的变量也将随之释放。

堆是与栈作用不同的内存,一般用于存放不放在当前方法栈中的那些数据,例如,使用new 创建的对象都放在堆里,所以,它不会随方法的结束而消失。方法中的局部变量使用final 修饰后,放在堆中,而不是栈中。

3、GC 是什么为什么要有 GC

GC 是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java 提供的GC 功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java 语言没有提供释放已分配内存的显示操作方法。

4、列举出一些常用的类,包,接口,请各举 5 个

要让人家感觉你对java ee 开发很熟,所以,不能仅仅只列core java 中的那些东西,要多列你在做ssh 项目中涉及的那些东西。就写你最近写的那些程序中涉及的那些类。

常用的类:BufferedReader BufferedWriter FileReader FileWirter StringInteger java.util.Date,System,Class,List,HashMap

常用的包:https://www.360docs.net/doc/af16835489.html,ng java.io java.util

java.sql,javax.servlet,org.apache.strtuts.actio

n,org.hibernate 常用的接口:Remote List Map

Document

NodeList,Servlet,HttpServletRequest,HttpServletResponse,Transaction(Hib ernate)、

Session(Hibernate),HttpSession

5 java 中有几种类型的流?JDK 为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?

字节流,字符流。字节流继承于InputStream OutputStream,字符流继承于InputStream Reader

OutputStreamWriter。在java.io 包中还有许多其他的流,主要是为了提高性能和使用方便。

6、多线程有几种实现方法同步有几种实现方法

多线程有两种实现方法,分别是继承Thread 类与实现Runnable 接口

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

一个线程处于等待状态,并且释放所持有的对象的lock。

sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此

方法要捕捉

InterruptedException(中断异常)异常。

notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由JVM 确定唤醒哪个线程,而且不是按优先级。 Allnotity():唤醒所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,而是

让它们竞争。

7、说一说 Servlet 的生命周期

答:servlet 有良好的生存期的定义,包括加载和实例化、初始化、处理请求以及服务结束。这个生存期由javax.servlet.Servlet 接口的init,service 和destroy 方法表达。

Servlet 被服务器实例化后,容器运行其init 方法,请求到达时运行其

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

web 容器加载servlet,生命周期开始。通过调用servlet 的init()方法进行servlet 的初始化。通过调用service()方法实现,根据请求的不同调用不同的do***()方法。结束服务,web 容器调用servlet 的destroy()方法。

8、说出数据连接池的工作机制是什么

J2EE 服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。客户端程序需要连接时,池驱动程序会返回一个未使用的池连接并将其表记为忙。如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建连接的数量有配置参数决定。当使用的池连接调用完成后,池驱动程序将此连接表记为空闲,其他调用就可以使用这个连接。

实现方式,返回的Connection 是原始Connection 的代理,代理Connection 的close 方法不是真正关连接,而是把它代理的Connection 对象还回到连接池中。

9、这段代码有什么不足之处

try

{

Connection conn

= ...; Statement

stmt = ...;

ResultSet rs =stmt.executeQuery("select *

from table1");

while(rs.next(

)) {

}

} catch(Exception

ex) {

}

答:没有finally 语句来关闭各个对象,另外,使用finally 之后,要把变量的定义放在try 语句块的外面,以便在try 语句块之外的finally 块中仍可以访问这些变量。

10、一个用户具有多个角色,请查询出该表中具有该用户的所有角色的其他用户。

select count(*) as

num,tb.id from

tb,

(select role from tbwhere

id=xxx) as t1 where

tb.role = t1.role and tb.id != t1.id

group by

tb.id

having

num = select count(role)from tb where id=xxx;

11、一个用户表中有一个积分字段,假如数据库中有 100 多万个用户,若要在每年第一天凌晨将积分清零,你将考虑什么,你将想什么办法解决

alter table drop column score;

alter table add colunm score int; 可能会很快,但是需要试验,试验不能拿真实的环境来操刀,并且要注意,这样的操作时无法回滚的,在我的印象中,只有inert update delete 等DML 语句才能回滚,对于create table,drop table ,alter table 等DDL 语句是不能回滚。

解决方案一,update user set score=0; 解决方案二,假设上面的代码要执行好长时间,超出我们的容忍范围,那我就alter table user drop columnscore;alter table user add column score int。

下面代码实现每年的那个凌晨时刻进行清零。

Runnable runnable =

new Runnable(){

public

voidrun(){

clearDb();

schedule(this,newDate(new Date().getYear()+1,0,0));

}

};

schedule(runnable,

new Date(newDate().getYear()+1,0,1));

12、你对 Spring 的理解, 什么是 spring 的 IOC AOP。

1.Spring 实现了工厂模式的工厂类(在这里有必要解释清楚什么是工厂模式),这个类名为 BeanFactory(实际上是一个接口),在程序中通常BeanFactory 的子类ApplicationContext。 Spring 相当于一个大的工厂类,在其配置文件中通过元素配置用于创建实例对象的类名和实例对象的属性。

2. Spring 提供了对IOC 良好支持,IOC 是一种编程思想,是一种架构艺术,利用这种思想

可以很好地实现模块之间的解耦。IOC 也称为D(I Depency Injection),什么叫依赖注入呢?

譬如,Class Programmer

{

Computer computer =null;

public void code()

{

//Computercomputer = new IBMComputer();

//Computercomputer = beanfacotry.getComputer();

computer.write();

}

public voidsetComputer(Computer computer)

{

https://www.360docs.net/doc/af16835489.html,puter= computer;

}

} 另外两种方式都由依赖,第一个直接依赖于目标类,第二个把依赖转移到

工厂上,第三个彻底与目标和工厂解耦了。在spring 的配置文件中配置片段如下:

3. Spring 提供了对AOP 技术的良好封装, AOP 称为面向切面编程,就是系统中有很多各不相干的类的方法,在这些众多方法中要加入某种系统功能的代码,例如,加入日志,加入权限判断,加入异常处理,这种应用称为AOP。实现AOP 功能采用的是代理技术,客户端程序不再调用目标,而调用代理类,代理类与目标类对外具有相同的方法声明,有两种方式可以实现相同的方法声明,一是实现相同的接口,二是作为目标的子类在,JDK 中采用Proxy 类产生动态代理的方式为某个接口生成实现类,如果要为某个类生成子类,则可以用CGLI B。在生成的代理类的方法中加入系统功能和调用目标类的相应方法,系统功能的代理以 Advice 对象进行提供,显然要创建出代理对象,至少需要目标类和Advice 类。spring 提供了这种支持,只需要在spring 配置文件中配置这两个元素即可实现代理和aop 功能,例如,

type=”o rg.spring.framework.aop.ProxyBeanFactory”>

java高级工程师_面试题和答案

一:选择题 1. 关于以下程序代码的说明正确的是( D ) 1.class HasStatic{ 2. private static int x=100; 3. public static void main(String args[ ]){ 4. HasStatic hs1=new HasStatic( ); 5. hs1.x++; 6. HasStatic hs2=new HasStatic( ); 7. hs2.x++; 8. hs1=new HasStatic( ); 9. hs1.x++; 10. HasStatic.x- -; 11. System.out.println(“x=”+x); 12. } 13. } A、 5行不能通过编译,因为引用了私有静态变量 B、 10行不能通过编译,因为x是私有静态变量 C、程序通过编译,输出结果为:x=103 D、程序通过编译,输出结果为:x=102 2. 下列关于for循环和while循环的说法中哪个是正确的?( B ) A.while循环能实现的操作,for循环也都能实现 B.while循环判断条件一般是程序结果,for循环判断条件一般是非程序结果C.两种循环任何时候都可替换 D.两种循环结构中都必须有循环体,循环体不能为空 3. 以下选项中循环结构合法的是( C ) A、while (int i<7) { i++; System.out.println(“i is “+i); } B、 int j=3; while(j) { System.out.println(“ j is “+j); } C、int j=0; for(int k=0; j + k !=10; j++,k++) { System.out.println(“ j is “+ j + “k is”+ k); } D、 int j=0; do{ System.out.println( “j is “+j++); if (j = = 3) {continue loop;} }while (j<10); 4. 给出下面代码段, 哪行将引起一个编译时错误?( D )

Java软件中年级工程师笔试题复杂逻辑

J2E E部分 1、运算符优先级问题,下面代码的结果是多少?(笔试) package test; public class Test { public static void main(String[] args) { int k = 0; int ret = ++k + k++ + ++k + k; // ret的值为多少 } } 2、运算符问题,下面代码分别输出什么?(笔试) package test; public class Test { public static void main(String[] args) { int i1 = 10, i2 = 10; } } 3、下面代码的结果是什么?还是抛出异常?(笔试) package test; public class Test { public void myMethod(String str) { } public void myMethod(Object obj) { } public static void main(String[] args) { Test t = new Test(); t.myMethod(null); } } 4、假设今天是9月8日,下面代码输出什么?(笔试) package test; public class Test { public static void main(String[] args) { Date date = new Date(); } } 5、下面代码的输出结果是什么? package test; public class Test {

public static void main(String[] args) { double val = 11.5; } } 6、下面代码的结果是什么? package test; public class Test extends Base { public static void main(String[] args) { Base b = new Test(); b.method(); Test t = new Test(); t.method(); } @Override public void method() { } } class Base { public void method() throws InterruptedException { } } 7、以下代码的结果是什么? package test; public class Test extends Base { public static void main(String[] args) { new Test().method(); } public void method() { } } class Base { } 8、true or false? package test; public class Test { public static void main(String[] args) { String str1 = new String("abc"); String str2 = new String("abc"); StringBuffer sb1 = new StringBuffer("abc"); StringBuffer sb2 = new StringBuffer("abc"); } } 9、输出的结果是什么?

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的区别 JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String 类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要改变的时候你就可以使用StringBuffer。典型地,你可以使用StringBuffers来动态构造字符数据。 8、运行时异常与一般异常有何异同 异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。 9、说出Servlet的生命周期,并说出Servlet和CGI的区别。 Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求

Java开发工程师笔试题(带答案)

Java开发工程师笔试试题 (请不要在试题上留任何痕迹,所有答案均写在答题纸上) 一.编程题(共26分) 1.任意写出一种排序算法。(6分) public void sort(int [] array){ //代码区 } 2.求1+2+3+..n(不能使用乘除法、for 、while 、if 、else 、switch 、case 等关 键字以及条件判断语句)(8分) public int sum(int n){ //代码区 return 0; } 3.完成下面方法,输入一个整数,输出如下指定样式图案。(12分) 输入:3, 输出: 1*2*3 7*8*9 4*5*6

输入:4 输出: 1*2*3*4 9*10*11*12 13*14*15*16 5*6*7*8 public void drawNumPic(int n){ //代码区 } 二.选择题(定项选择每题3分,不定项选择每题4分,共63分) 1.在基本JAVA类型中,如果不明确指定,整数型的默认是__类型,带小数的默认是__类型?( B ) A.int float B.int double C.long float D.long double 2.只有实现了__接口的类,其对象才能序列化( A ) A.Serializable B.Cloneable https://www.360docs.net/doc/af16835489.html,parable

D.Writeable 3.代码System. out. println(10 % 3 * 2);将打印出?( B ) A.1 B.2 C.4 D.6 4.以下程序运行的结果为( A ) public class Example extends Thread{ @Override public void run(){ try{ Thread.sleep(1000); }catch (InterruptedException e){ e.printStackTrace(); } System.out.print("run"); } public static void main(String[] args){ Example example=new Example(); example.run(); System.out.print("main"); } }

Java高级工程师笔试试卷.doc

一、选择题(共25题,每题3分,满分75分) 1)使用面向对象思想进行设计的基本步骤不包括()。 A.发现类 B.发现对象 C.发现类的属性 D.发现类的方法 2)在UML屮,类图是一个包含3个部分的矩形,各部分A容不包括()。 A.类名 B.属性 C.方法 D.类和类之间的关系 3)下面关于Java接口的说法错误的是()。 A.—个Java接口是一些方法特征的集合,但没有方法的实现 B.Java接n中定义的方法在不同的地方被实现,可以具有完全不同的行为 C.Java接口屮可以声明私有成员 D.Java接口不能被实例化 4)在Java接口中定义常量,下面语法错误的是()。 A.static int MALE = 1; B.final int MALE = 1; C.int MALE = 1; D.private int MALE = 1; 5)在Java接口中,下列选项中属于有效的方法声明是()。 A.public void aMethod();

B.void aMethod(); C.void aMethod(){} D.private void aMethod(); 6)给定如下Java程序代码,在横线处加入()语句,可以使这段代码编译通过。 interface Parent{ public int count (int i); } public class Test implements Parent { public int count (int i) { return i % 9; } public static void main(String[] args){ int i = p.count(20); } } 7)以下选项屮关于Oracle屮数裾库的说法错误的是()。 A.数据库在逻辑上表现为数据文件、日志文件和控制文件等 B.必须首先创建数据库,然后才能使川Oracle C.可在安装Oracle软件吋同吋创建数据库,也可以在安装后再单独创建数据库 D.每个启动的数据库都对应一个数据库实例,然后由这个实例来访问和控制数据库 8)在Oracle中,使用数据库表student存放学生信息,其中birthday字段存放学生生日,查询该表中1980年9月15 口及以后的学生信息,以下SQL语句正确的是()。 A.SELECT * FROM student WHERE birthday>=,1980-09-15,; B.SELECT * FROM student WHERE birthday〉=.15-9 月-19801; C.SELECT * FROM student WHERE TO_DATE(birthday;YYYY-MM-DD')>=,2009-10-1 *; D. SELECT * FROM student WHERE birthday>=TO_CHAR(' 1980-09-15';YYYY- MM-DD'); 9)一个Oracle数椐库表包含性别字段,在该字段上建立()最合适。

JAVA高级工程师笔试题(技术部分)

Java 软件高级工程师笔试题 【智力部分】(30分) 1.烧一根不均匀的绳要用一个小时,如何用它来判断半个小时?(5分) 2.4,4,10,10,加减乘除,怎么出24点?(5分) 3.如果你有无穷多的水,一个容积为3L的和5L的提桶,你如何准确称出4L的水?(5分) 4.一只蜗牛从井底爬到井口,每天白天蜗牛要睡觉,晚上才出来活动,一个晚上蜗牛可以向上爬3尺,但是白天 睡觉的时候会往下滑2尺,井深10尺,问蜗牛几天可以爬出来?(5分) 5.有一种细菌,经过一分钟分裂为2个,再过一分钟,分裂为4个,这样,将一个细菌放在一个瓶子里面,一个 小时后瓶子被细菌充满了。现在假设一开始放入瓶中的为两个细菌,那么到充满瓶子要多长的时间?(10分) 【专业部分】(70分) 6.简述一下面向对象的特征,并举例说明你对面向对象的理解?(5分) 7.ArrayList和HsahSet的区别,HashMap和Hashtable的区别?(5分) 8.线程同步的关键字是什么?sleep() 和wait() 有什么区别?怎么唤醒wait()停止的线程?(5分)

9.列举你在项目中常用的设计模式(伪代码或类图),并说明每种设计模式的具体应用场景。(5分) 10.Spring中事务管理支持哪几种方式以及每种方式的具体使用方法。(5分) 11.Hibernate的缓存等级及其特点(5分) 12.至少写出一种11位手机号码的正则表达式。(5分) 13.用简短的代码实现字符串“s tr in g”到“s tr in g”转换。即将多个空格转换为一个空格(5 分) 14.使用Socket编写一个程序,客户端向服务器端发送请求(发送字符串即可),服务端接收后发送反馈信息.(10 分)

JAVA_软件工程师公司笔试题

一、 1.Anonymous Inner Class(匿名内部类)是否可以extends(继承)其它类,是否可以implements(实现)interface(接口) 答:匿名的内部类是没有名字的内部类。不能extends(继承)其它类,但一个内部类可以作为一个接口,由另一个内部类实现 2.你对MVC的理解,MVC有什么优缺点?结合Struts,说明在一个Web应用如何去使用?答: MVC设计模式(应用观察者模式的框架模式) M:Model(Business process layer),模型,操作数据的业务处理层,并独立于表现层(Independent of presentation)。 V:View(Presentation layer),视图,通过客户端数据类型显示数据,并回显模型层的执行结果。C:Controller(Control layer),控制器,也就是视图层和模型层桥梁,控制数据的流向,接受视图层发出的事件,并重绘视图 MVC框架的一种实现模型 模型二(Servlet-centric): JSP+Servlet+JavaBean,以控制为核心,JSP只负责显示和收集数据,Sevlet,连接视图和模型,将视图层数据,发送给模型层,JavaBean,分为业务类和数据实体,业务类处理业务数据,数据实体,承载数据,基本上大多数的项目都是使用这种MVC的实现模式。 StrutsMVC框架(Web application frameworks) Struts是使用MVC的实现模式二来实现的,也就是以控制器为核心。 Struts提供了一些组件使用MVC开发应用程序: Model:Struts没有提供model类。这个商业逻辑必须由Web应用程序的开发者以JavaBean 或EJB的形式提供 View:Struts提供了action form创建form bean,用于在controller和view间传输数据。此外,Struts提供了自定义JSP标签库,辅助开发者用JSP创建交互式的以表单为基础的应用程序,应用程序资源文件保留了一些文本常量和错误消息,可转变为其它语言,可用于JSP中。 Controller:Struts提供了一个核心的控制器ActionServlet,通过这个核心的控制器来调用其他用户注册了的自定义的控制器Action,自定义Action需要符合Struts的自定义Action规范,还需要在struts-config.xml的特定配置文件中进行配置,接收JSP输入字段形成Action form,然后调用一个Action控制器。Action控制器中提供了model的逻辑接口。 二、 1.什么是WebService? 答: WebService是一个SOA(面向服务的编程)的架构,它是不依赖于语言,不依赖于平台,可以实现不同的语言间的相互调用,通过Internet进行基于Http协议的网络应用间的交互。WebService实现不同语言间的调用,是依托于一个标准,webservice是需要遵守WSDL(web 服务定义语言)/SOAP(简单请求协议)规范的。

java高级软件工程师面试题

java高级软件工程师面试题 招聘java高级工程师,职位描述如下,有兴趣的加394504340交流,打扰了,谢谢! 职位名称:java高级开发工程师(急) 职位描述:互联网产品的开发和维护。 职位要求:1. 熟悉JAVA、J2EE体系结构,熟练掌握Spring、Struts、Hibernate、ibatis 的开发技术。 2. 熟悉MySql等数据库开发,熟练掌握SQL语句,有较好的数据库设计能力。 3. 熟练掌握HTML、javascript、ajax等web开发技术,熟悉http协议。 4. 熟悉SVN、Maven、Junit等工具。 5. 具有良好的学习能力、沟通能力,乐于承担工作压力。 6. 有大型门户或社区网站开发经验者优先。 职位所在城市:杭州 职位所在行业:高科技 -------------------------========================================================= 1.说一下struts中常用的对象 2.怎样整合apatche和tomcat 3.说一下在linx系统中搭建服务器 4.简述一下sql server 建模 5.请写一个程序,把一个10进制转换成16进制 6.表student 列id name age WA(本科以上,大专,高中,初中以下) 毕业学校ID,学校信息表 问:统计出文化学历本科以上,大专,高中,初中以下,每个年龄各有多少人(一条SQL语句) 7.有两位少年从隧道的一端向另一端行走.当他们走过隧道的五分之二时,发现隧道外面迎来一辆火车.火车很快就要进入隧道.两位少年向来时隧道跑去.两位少年都是每小时10公里.两位在千钧一发跑出了隧道.假设火车速度恒定,并且两位少年都在瞬间达到最大速度,请问火车的速度 8.请写出常用的oracle语句及说明,存储过程的语句及说明 ---------------------------------------------------------------------------------------------------------------------------------

java高级工程师面试题及答案完整版

j a v a高级工程师面试题 及答案 集团标准化办公室:[VV986T-J682P28-JP266L8-68PNN]

一:选择题 1. 关于以下程序代码的说明正确的是( D ) 1.class HasStatic{ 2. private static int x=100; 3. public static void main(String args[ ]){ 4. HasStatic hs1=new HasStatic( ); 5. hs1.x++; 6. HasStatic hs2=new HasStatic( ); 7. hs2.x++; 8. hs1=new HasStatic( ); 9. hs1.x++; 10. HasStatic.x- -; 11. (“x=”+x); 12. } 13. } A、 5行不能通过编译,因为引用了私有静态变量 B、 10行不能通过编译,因为x是私有静态变量 C、程序通过编译,输出结果为:x=103 D、程序通过编译,输出结果为:x=102 2. 下列关于for循环和while循环的说法中哪个是正确的( B ) A.while循环能实现的操作,for循环也都能实现 B.while循环判断条件一般是程序结果,for循环判断条件一般是非程序结果C.两种循环任何时候都可替换 D.两种循环结构中都必须有循环体,循环体不能为空 3. 以下选项中循环结构合法的是( C ) A、while (int i<7) { i++; (“i is “+i); } B、 int j=3; while(j) { (“ j is “+j); } C、int j=0; for(int k=0; j + k !=10; j++,k++) { (“ j is “+ j + “k is”+ k); } D、 int j=0; do{ ( “j is “+j++); if (j = = 3) {continue loop;} }while (j<10); 4. 给出下面代码段, 哪行将引起一个编译时错误( D ) 1) public class Test {

java高级工程师-面试题及答案

一:选择题 1.关于以下程序代码的说明正确的是(D) 1.classHasStatic{ 2.privatestaticintx=100; 3.publicstaticvoidmain(Stringargs[]){ 4.HasStatichs1=newHasStatic(); 5.hs1.x++; 6.HasStatichs2=newHasStatic(); 7.hs2.x++; 8.hs1=newHasStatic(); 9.hs1.x++; 10.HasStatic.x--; 11.(“x=”+x); 12. 13. A、5 B、 C D 2. A. B. C D 3. A、 } B、 { } C、 { } D、 do{ (“jis“+j++); if(j==3){continueloop;} }while(j<10); 4.给出下面代码段,哪行将引起一个编译时错误?(D) 1)publicclassTest{ 2)intn=0; 3)intm=0; 4)publicTest(inta){m=a;} 5)publicstaticvoidmain(Stringarg[]){ 6)Testt1,t2; 7)intj,k; 8)j=3;k=5; 9)t1=newTest();

10)t2=newTest(k); 11)} 12)} A.行1 B.行4 C.行6 D.行9 5.下面的方法,当输入为2的时候返回值是多少?(D) publicintgetValue(inti){ intresult=0; switch(i){ case1: result=result+i; case2: result=result+i*2; case3: } } 1 JVM Java 2、 java 3、GC GC 4 在做ssh StringIntegerjava.util.Date,System, Class,List,HashMap 常用的包:https://www.360docs.net/doc/af16835489.html,ng java.iojava.utiljava.sql,javax.servlet,or g.apache.strtuts.action,org.hibernate常用的接口: RemoteListMap Document NodeList,Servlet,HttpServletRequest,HttpServletResponse,Transaction(Hibernate)、Session(Hibernate),HttpSession 5java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?

JAVA高级工程师笔试题目

JAVAEE工程师笔试题目 一、选择题 1.下面哪一项属于java语言面向对象的三大特性() A.多线程 B.安全 C.跨平台 D.多态 2.下面哪一项不属于java语言中基本数据类型() A.int B.long C.char D.string 3.在java程序中满足条件并确保程序的执行,使用到的关键字是() A.final B.finalize C.finally D.synchronized 4.不属于switch语句所支持的数据类型是() A.short B.int C.枚举 D.String 5.下面关于定义类和接口的说法,哪一项是正确的() A.自定义一个类的时候可以继承多个父类。 B.继承类的时候使用的关键字是implements C.只有接口可以实现接口,类不能实现接口。 D.接口中的方法都是抽象方法,不可实例化。 E.接口中不可以没有任何方法。 6.下面说法错误的是() A.java语言规范将派生于Error类的异常成为已检查异常,派生于RuntimeException类的异常称为未检查异常。 B.编译器将核查是否为所有的已检查异常提供了异常处理 C.程序中不应该声明从RuntimeException继承的那些未检查异常。 D.如果一个方法有可能抛出多个已检查异常,那么就必须在方法的首部列出所有的异常类。 7.当前线程进入wait等待池,以下哪个方法会确保让该线程回复工作() A.start B.run C.notify D.notifyAll 8.Struts2的核心控制器是() A.FilterDispatcher B.Action C.ActionMapper D.ActionProxy 9.0.63的数据类型是() A.float B.double C.Float D.Double 10.struts的配置文件中的result标签中的type默认值是() A.success B.input C.error D.以上都不是 11.下面说法正确的是() A.struts2项目中只需配置struts.xml,不需要配置web.xml B.package标签中可以没有extends属性 C.package标签中的extends属性值是struts-default时,result标签中可以没有任何属性. D.struts2与ajax和json进行整合时,package标签中的extends属性值是json. 12.有一个多线程类myThread,除run方法外还包含一个方法void disp()。对如下语句myThread mt=new myThread(); mt.start(); mt.disp(); 说法正确的是() A.运行完线程体run方法后再运行disp()方法 B.运行完disp()后才能启动线程体run C.线程体run一定会在disp结束前结束。

java高级工程师面试题及答案

java高级工程师面试题及答案

一:选择题 1. 关于以下程序代码的说明正确的是( D ) 1.class HasStatic{ 2.private static int x=100; 3.public static void main(String args[ ]){ 4.HasStatic hs1=new HasStatic( ); 5.hs1.x++; 6.HasStatic hs2=new HasStatic( ); 7.hs2.x++; 8.hs1=new HasStatic( ); 9.hs1.x++; 10.HasStatic.x- -; 11.System.out.println(“x=”+x); 12.} 13.} A、5行不能经过编译,因为引用了私有静态 变量 B、10行不能经过编译,因为x是私有静态 变量 C、程序经过编译,输出结果为:x=103 D、程序经过编译,输出结果为:x=102 2. 下列关于for循环和while循环的说法中哪个是正确的?( B )

A.while循环能实现的操作,for循环也都能实现 B.while循环判断条件一般是程序结果,for 循环判断条件一般是非程序结果 C.两种循环任何时候都可替换 D.两种循环结构中都必须有循环体,循环体不能为空 3. 以下选项中循环结构合法的是( C ) A、while (int i<7) { i++; System.out.println(“i is “+i); } B、int j=3; while(j) { System.out.println(“ j is “+j); } C、int j=0; for(int k=0; j + k !=10; j++,k++) { System.out.println(“ j is “+ j + “k is”+ k); } D、int j=0; do{ System.out.println( “j is “+j++); if (j = = 3) {continue loop;} }while (j<10); 4. 给出下面代码段, 哪行将引起一个编译时错误?( D )

2020年JAVA高级工程师面试总结

Java高级工程师面试总结 随着java技术在各行各业的广泛应用,企业对于java人才招聘的要求越来越高。下面是关于Java高级工程师面试总结,希望大家认真阅读! 一、独白 之前也面试别人,现在轮到自己找工作,怎么说呢,每个面试官的看法不一样,面试的方式就不一样,比如我面试别人我喜欢问项目中他用到了那些,然后针对用到的技术去问一些问题,或者说对于某些场景的一些技术实现方案是我特别喜欢问的,比如当你的接口服务数据被人截包了,你如何防止数据恶意提交?相对来说,Java的底层和基础会问的少一点,当然问的少不是代表不问,而是说侧重点在于你的所做过的项目和你的设计思路如何。当然,懂基础和底层更好,这样能让你知其然,更知其所以然,写出来的代码和程序更具有健壮性和可维护性。所以说,基础还是很重要的。 现在轮到自己出去面试,怎么说呢,其实还是挺紧张的,原以为自己不会因此紧张或者焦虑,实际上,还是有的,在没找到合适的工作的时候,甚至晚上有点睡不着觉,总觉着有什么事压在心头,睡觉都不安心。既然睡不着,那还是看看资料吧,我有个习惯,睡前看点问题,第二天早上就能想到答案,睡前记点资料,第二天早上就能记得特别深刻,不说废话了,直接进入正题吧。 二、面试技巧 1、背熟你的简历

原因:面试的第一个问题,一般都是让你简单介绍下你自己,或者介绍一下你最近的项目,而一个面试者,如果连自己的简历都无法熟知,对里面提到的项目、技术都无法描述清楚的话,我想没有哪家公司会接受这样的,哪怕你是超级人才,你自我表述不行,估计也会为此头疼,所以,切记:一定要背好自己的简历,不要求你能全部记下,至少要熟记你最近所待过的两家公司,这两家公司里面你做过的项目,你负责的模块,项目里面用到的技术以及相对应的技术实现方案(这个尤为重要)。 2、深入了解并熟记部分Java基础知识 原因:大部分公司无论面试初级还是高级,无论是笔试还是面试,都会问到一系列基础题,这些基础题大概涵括jvm、字符串、集合、线程等等,如果说每一个让你死记硬背你肯定记不住,那么就是理解中记忆了,拿jvm来说,如果让你谈谈你对jvm的理解,那么你首先得知道JVM有哪些结构组成,每个结构用来做什么的,然后考虑一个Java对象从创建到回收,如何途径JVM这些结构的。如果你从这些方面来综合记忆,相信事半功倍,并且你理解的更透彻。至于如果让你谈集合,举例List集合下面ArryList、LinkedList、Vector 等集合的区别,那么同样的方法,你需要理解每一个的结构组成是什么,你才能知道他有什么作用,这样你在平时的用法上会更精炼,而且在面试过程中,也不至于哑口无言。 3、保持自信心和沉重冷静的心态

用友软件Java工程师面试题(含答案)

1.web中的forward和redirect的区别? 前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。所以,前者更加高效,在前者可以满足需要时,尽量使用forward()方法,并且,这样也有助于隐藏实际的链接。在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用sendRedirect()方法。 2. xml在解释的时候DOM和SAX协议的区别和含义? DOM:处理大型文件时其性能下降的非常厉害。这个问题是由DOM的树结构所造成的,这种结构占用的内存较多,而且DOM必须在解析文件之前把整个文档装入内存,适合对XML的随机访问 SAX:不现于DOM,SAX是事件驱动型的XML解析方式。它顺序读取XML文件,不需要一次全部装载整个文件。当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过在其回调事件中写入处理代码来处理XML文件,适合对XML的顺序访问 3说明JNDI、JMS、JTA、RMI的意思? JNDI(Java Naming and Directory Interface)是一个应用程序设计的API,为开发人员提供了查找和访问各种命名和目录服务的通用、统一的接口,类似JDBC都是构建在抽象层上。 JMS(Java Messaging Service)是Java平台上有关面向消息中间件的技术规范,翻译为Java消息服务。JMS支持点对点和发布/订阅两种消息模型。 JTA(Java Transaction API) 为 J2EE 平台提供了分布式事务服务。要用 JTA 进行事务界定,应用程序要调用https://www.360docs.net/doc/af16835489.html,erTransaction 接口中的方法. RMI是Java的一组拥护开发分布式应用程序的API。RMI使用Java语言接口定义了远程对象,它集合了Java序列化和Java远程方法协议(Java Remote Method Protocol)。它大大增强了Java开发分布式应用的能力 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 运算来创建一个左边外部联接。左边外部联接将包含了从第一个(左边)开始的两个表中的全部记录,即使在第二个(右边)表中并没有相符值的记录。 6 ejb中的sessionbean和entitybean的区别和含义? SessionBean在J2EE应用程序中被用来完成一些服务器端的业务操作,例如访问数据库、调用其他EJB组件。EntityBean 被用来代表应用系统中用到的数据。 对于客户机,SessionBean是一种非持久性对象,它实现某些在服务器上运行的业务逻辑。 对于客户机,EntityBean是一种持久性对象,它代表一个存储在持久性存储器中的实体的对象视图,或是一个由现有企业应用程序实现的实体。 7抽象类和接口的区别 1:一个类可以实现任意多的接口,但是最多只能对一个抽象类进行子类化。 2:一个抽象类可以包括非抽象方法,而一个接口的所有方法在效果上都是抽象的。 3:一个抽象类可以申明并使用变量,而一个接口不行。 4:一个抽象类中的方法的访问修饰符可以使public,internal,protected,protected internal,private,而接口成员的访问修饰符在默认情况下都是public,而且,在申明接口成员时,不允许使用访问修饰符(甚至不能使用public)。

java高级工程师-面试题及答案

一: 选择题 1、关于以下程序代码的说明正确的就是( D ) 1.class HasStatic{ 2. private static int x=100; 3. public static void main(String args[ ]){ 4. HasStatic hs1=new HasStatic( ); 5. hs1、x++; 6. HasStatic hs2=new HasStatic( ); 7. hs2、x++; 8. hs1=new HasStatic( ); 9. hs1、x++; 10. HasStatic、x- -; 11. System、out、println(“x=”+x); 12. } 13. } A、5行不能通过编译,因为引用了私有静态变量 B、10行不能通过编译,因为x就是私有静态变量 C、程序通过编译,输出结果为:x=103 D、程序通过编译,输出结果为:x=102 2、下列关于for循环与while循环的说法中哪个就是正确的?( B ) A.while循环能实现的操作,for循环也都能实现 B.while循环判断条件一般就是程序结果,for循环判断条件一般就是非程序结果 C.两种循环任何时候都可替换 D.两种循环结构中都必须有循环体,循环体不能为空 3、以下选项中循环结构合法的就是( C ) A、while (int i<7) { i++; System、out、println(“i is “+i); } B、int j=3; while(j) { System、out、println(“ j is “+j); } C、int j=0; for(int k=0; j + k !=10; j++,k++) { System、out、println(“ j is “+ j + “k is”+ k); } D、int j=0; do{ System、out、println( “j is “+j++); if (j = = 3) {continue loop;} }while (j<10); 4、给出下面代码段, 哪行将引起一个编译时错误?( D ) 1) public class Test { 2) int n = 0; 3) int m = 0; 4) public Test(int a) { m=a; } 5) public static void main(String arg[]) { 6) Test t1,t2; 7) int j,k; 8) j=3; k=5; 9) t1=new Test();

java软件工程师面试题

java软件工程师面试题集 EJB方面 1、EJB2.0有哪些内容?分别用在什么场合? EJB2.0和EJB1.1的区别? 答:规范内容包括Bean提供者,应用程序装配者,EJB容器,EJB配置工具,EJB服务提供者,系统管理员。这里面,EJB容器是EJB之所以能够运行的核心。EJB容器管理着EJB的创建,撤消,激活,去活,与数据库的连接等等重要的核心工作。 JSP,Servlet,EJB,JNDI,JDBC,JMS..... 2、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组件。 3、EJB的基本架构 答:一个EJB包括三个部分: Remote Interface 接口的代码 package Beans; import javax.ejb.EJBObject; import java.rmi.RemoteException; public interface Add extends EJBObject { //some method declare }

2021年java高级工程师面试题及答案

一:选取题 1. 关于如下程序代码阐明对的是( D ) 1.class HasStatic{ 2.private static int x=100; 3.public static void main(String args[ ]){ 4.HasStatic hs1=new HasStatic( ); 5.hs1.x++; 6.HasStatic hs2=new HasStatic( ); 7.hs2.x++; 8.hs1=new HasStatic( ); 9.hs1.x++; 10.HasStatic.x--; 11.System.out.println(“x=”+x); 12.} 13.} A、5行不能通过编译,由于引用了私有静态变量 B、10行不能通过编译,由于x是私有静态变量 C、程序通过编译,输出成果为:x=103 D、程序通过编译,输出成果为:x=102 2. 下列关于for循环和while循环说法中哪个是对的?( B ) A.while循环能实现操作,for循环也都能实现 B.while循环判断条件普通是程序成果,for循环判断条件普通是非程序成果C.两种循环任何时候都可替代 D.两种循环构造中都必要有循环体,循环体不能为空 3. 如下选项中循环构造合法是( C ) A、while (int i<7) { i++;

System.out.println(“i is “+i); } B、int j=3; while(j) { System.out.println(“ j is “+j); } C、int j=0; for(int k=0;j + k !=10;j++,k++) { System.out.println(“ j is “+ j + “k is”+ k); } D、int j=0; do{ System.out.println( “j is “+j++); if (j = = 3) {continue loop;} }while (j<10); 4. 给出下面代码段,哪行将引起一种编译时错误?( D ) 1) public class Test { 2) int n = 0; 3) int m = 0; 4) public Test(int a) { m=a;} 5) public static void main(String arg[]) { 6) Test t1,t2; 7) int j,k; 8) j=3;k=5; 9) t1=new Test(); 10) t2=new Test(k); 11) } 12) } A. 行1 B. 行4 C. 行6 D. 行9

相关文档
最新文档