JAVA达内面试题

时间:2019-05-14 20:31:45下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《JAVA达内面试题》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《JAVA达内面试题》。

第一篇:JAVA达内面试题

诚信、创新、开放、合作

JAVA面试题-CORE JAVA部分

--感谢SD0501班毕业学员李晓宾的提供,希望对面试学员和在校学员有所帮助。

1. 在main(String[] args)方法内是否可以调用一个非静态方法?

答案:不能

2. 同一个文件里是否可以有两个public类?

答案:不能

3. 方法名是否可以与构造器的名字相同?答案:可以。

4.初始化了一个没有run()方法的线程类,是否会出错?

答案:不会。

第一种方法:直接继承Thread类。

public class Test

{

public static void main(String[] args)

{

ThreadClass t = new ThreadClass();

t.start();

System.out.println(“end”);//输出“end”

}

}

class ThreadClass extends Thread//Thread类已经实现了空的run()方法。

{

}

第二种方法:实现Runnable接口

public class Test

{

public static void main(String[] args)

{

ThreadClass t = new ThreadClass();

Thread thread = new Thread(t);

thread.start();

System.out.println(“end”);

}

}

class ThreadClass implements Runnable

{

public void run()//必须有此方法否则编译报错。它是Runnable接口中的抽象方法。{

System.out.println(“Threads”);

}

}

4. 局部内部类是否可以访问非final变量?

答案:不能访问局部的,可以访问成员变量(全局的)。

class Out

{

private String name = “out.name”;

void print()

{

final String work = “out.local.work”;//若不是final的则不能被Animal 使用.int age=10;

class Animal

//定义一个局部内部类.只能在print()方法中使用.//局部类中不能使用外部的非final的局部变量.全局的可以.{

public void eat()

{

System.out.println(work);//ok

//age=20;error not final

System.out.println(name);//ok.}

}

Animal local = new Animal();

local.eat();

}

}

5. 选择语句case中,允许使用的值有哪些?答案:int,short,char,byte(都在int范围之内,且是整

数)

6. Math,String是不可继承的。(final类)

Instanceof 后面跟的应该是OBJECT。

构造器可以是私有的。(private)

=与==意义是完全不同的。一个是赋值,一个是等于。

全局变量可以不进行初始化,如果使用一个局部变量,则这个局部变量要被初始化。

7. 下面都是正确的main方法签名。

public static void main(String[] args)

public static final void main(String[] args)

static public void main(String[] args)

static public synchronized void main(String[] args)

static public abstract void main(String[] args)//错误

8. if(-0.0 == 0.0)是相等还是不等?

答案:相等。

10.一个抽象类是否可以没有抽象方法?

答案:可以。

14.数组,无论是当前的,还是类等级的,都会被初始化。

String 是被初始化为 null,不是空字符。

null,““,” “,都是不同的。

“continue”只能在一个循环里(如for,do,while),它不能在case语句中出现。

Primitive(int,char,long等)数组是不能互相赋值的,即使它们本身可以。

一个Constructor可以抛出任何异常。

初始化块是按照声明的顺序执行的。

所有关于 NaN(Not a Number)和 non-NaN 的比较,都返回false.这条很重要。

==会产生编译错误,如果两边类型不匹配的话。

equals()返回 false 如果对象类型不同,但不产生 编译错误。

15. 16.integer和long 操作 /和% 的话,可能会抛出ArithmeticException,比如除0。但是 float与

double不会,即使是除以0。

double a=0;a=a/0;则a等于NaN。

18.面向对象的特征有哪些方面 ?

答案:最基本特征:封装,继承,多态。

其他特征:抽象关联,聚合,组合,内聚,耦合24.设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。

注:因为这4个线程共享J,所以线程类要写到内部类中。

加线程:每次对j加一。

减线程:每次对j减一。

public class TestThreads

{

private int j=1;

//加线程

private class Inc implements Runnable

{

public void run()

{

for(int i = 0;i < 10;i++)

{

inc();

}

}

}

//减线程

private class Dec implements Runnable

{

public void run()

{

for(int i = 0;i < 10;i++)

{

dec();

}

}

}

//加1

private synchronized void inc()

{

j++;

System.out.println(Thread.currentThread().getName()+“-inc:”+j);

}

//减1

private synchronized void dec()

{

j--;

System.out.println(Thread.currentThread().getName()+“-dec:”+j);

}

//测试程序

public static void main(String[] args)

{

TestThreads test = new TestThreads();

//创建两个线程类

Thread thread = null;

Inc inc = test.new Inc();

Dec dec = test.new Dec();

//启动4个线程

for(int i = 0;i < 2;i++)

{

thread = new Thread(inc);

thread.start();

thread = new Thread(dec);

thread.start();

}

}

}

25.数组转换问题。

Object[] object=new Person[2];

Person [] person=new Person [3];

person=(Person [])object;//可以转换

int[] i = new int[2];

long[] l = new int[3];

i =(long[])l;//不可以转换

26.用socket通讯写出客户端和服务器端的通讯,要求客户发送数据后能够回显相同的数据。Server.java:源代码

import java.net.*;

import java.io.*;

classServer

{

public Server()

{

BufferedReader br = null;

PrintWriter pw = null;

try

{

ServerSocket server = new ServerSocket(8888);//建立服务器端

Socket socket = server.accept();//监听客户端

//得到该连接的输入流

br = new BufferedReader(new InputStreamReader(socket.getInputStream()));//得到该连接的输出流

pw = new PrintWriter(socket.getOutputStream(),true);

//先读后写

String data = br.readLine();

System.out.println(data);//输出到控制台

pw.println(data);//转发给客户端

}catch(Exception e)

{

e.printStackTrace();

}

finally

{try{//关闭读写流br.close();pw.close();}catch(Exception e){}}}public static void main(String[] args){Server server = new Server();}

}

Client.java:源代码

import java.net.*;

import java.io.*;

classClient

{

public Client()

{

BufferedReader br = null;

PrintWriter pw = null;

try

{

Socket socket = new Socket(“localhost”,8888);//与服务器建立连接,服务器要先启//得到Socket的输入与输出流

br = new BufferedReader(new InputStreamReader(socket.getInputStream()));

pw = new PrintWriter(socket.getOutputStream(),true);

//先写后读

pw.println(“Client:你好!”);

String data = null;

while(true)

{

data = br.readLine();

if(data!=null)break;

}

System.out.println(data);

}catch(Exception e)

{

e.printStackTrace();

}

finally

{

try

{

br.close();

pw.close();

}catch(Exception e)

{}

}

}

public static void main(String[] args)

{

Client c = new Client();

}

}

37.sleep()和 wait()有什么区别?

答案:sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间(休息),把执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复,时间到了会继续运行。调用sleep不会释放对象锁。

wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。

50.启动一个线程是用run()还是start()?有什么区别?

答案:启动一个线程是调用start()方法,这并不意味着线程就会立即运行,只是进入了可运行状态。直接调用run()方法不会产生线程,而是把它当作普通的方法调用,马上执行。

73.当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?

答案:不能,一个对象的synchronized方法只能由一个线程访问。但其他线程可以同时访问这个对象的非synchronized方法

第二篇:Java试题A

Java测试题(A卷)

一、单选题(2分/题*20题=40分)

1.下列javaDoc注释正确的是()

A、/*我爱北京天安门*/ B、//我爱北京天安门*/ C、/**我爱北京天安门*/ D、/*我爱北京天安门**/ 2.下列说法正确的是()

A、JAVA程序的main方法必须写在类里面 B、JAVA程序中可以有多个main方法 C、JAVA程序中类名必须与文件名一样

D、JAVA程序的main方法中如果只有一条语句,可以不用{}(大括号)括起来 3.下列语句执行后,变量a、c的值分别是()。

int x=182;int a,c;c=x/100;a=x%10;A、1,2

B、2,1 C、1.82, 2 D、100,82 4.下面哪个表达式可用得到x和y的最大值()?

A、x>y?y:x B、xy?(x+y):(x-y)D、x==y?y:x;5.以下代码的执行结果是:()

a = 6;System.out.print(a);System.out.print(a++);System.out.print(a);A、666 B、667

C、677 D、676 6.下列输出结果是()

int a = 2 while(a < 5){ switch(a){ case 0: case 3 : a = a + 2;case 1 : case 2 : a = a + 3;default : a = a + 5;} } System.out.print(a)A、5 B、7

C、10

D、1

27.下面是func(int m,int n)方法的定义,方法调用func(1,4)的返回结果是()。

int func(int m,int n){

int sum=0;for(int i=1;i<=4;i+=2){ sum+=i;} return sum;} A、1

B、4

C、5

D、10

8.以下定义一维数组的语句中,正确的是()

A、int a[5]

B、int a[] = new.int[5];C、int a[];D、int a[] = {1,2,3,4,5};

9.分析选项中关于Java中this关键字的说法正确的是()

A、this关键字是在对象内部指代自身的引用 B、this关键字可以在类中的任何位置使用

C、this关键字和类关联,而不是和特定的对象关联 D、同一个类的不同对象共用一个this 10.在Java中,关于构造方法,下列说法错误的是()

A、构造方法的名称必须与类名相同 B、构造方法可以带参数 C、构造方法不可以重载 D、构造方法绝对不能有返回值

11.假设类A有构造方法A(int a),则在类A的其它构造方法中调用该构造方法的语句为()

A、A(x)

B、this.A(x)C、this(x)//本类的构造方法都是使用this关键字来调用

法使用的是super 12.下列关于抽象类的说法正确的是()

A、某个抽象类的父类是抽象的,则这个子类必须重载父类的所有抽象方法 B、抽象类中必须存在抽象方法 C、绝对不能用抽象类去创建对象

D、抽象类可以实现接口,并且可以只实现接口的部分接口方法 13.下面代码段

静态的变量只有一个值,常驻内存存在的 class HasStatic{

} 输出的结果是: private static int x = 101;public static void main(String[] args){

} HasStatic hs1 = new HasStatic();hs1.x++;102 HasStatic hs2 = new HasStatic();hs2.x++;102 hs1 = new HasStatic();hs1.x++;103 HasStatic.x--;System.out.println(hs1.x + hs2.x);

D、super(x)调用父类的构造方

A、103102 B、204

C、205

D、206

14.下面()不是String类提供的合法的方法。

A、equals(String)//判断是否内容相同 B、trim()//去空格的函数 C、append()D、indexOf()//对索引进行处理

15.在JAVA中,LinkedList类和ArrayList类同属于集合框架类,下列()选项中的方法是LinkedList类有而ArrayList类没有的。A、add(Object o)B、add(int index,Object o)C、remove(Object o)D、removeLast()16.下列哪些说法是正确的?

A、IOException必须被捕获或抛出

B、java语言声明变量的同时必须赋值

C、java 语言不允许同时继承一个类并实现一个接口

D、垃圾收集可被随时强制执行 17.关于线程状态的说法正确的是()

A、使用new刚创建出来的线程是就绪状态 B、调用start()方法线程立即处于运行状态 C、提倡调用stop()方法终止线程

D、线程等待IO输入会处于线程阻塞状态 18.以下代码: class Message{

String mailmessage;}...Message data;Socket toServer=new Socket(“172.17.96.34”,1001);...ObjectOutputStream out=new ObjectOutputStream(toServer.getOutputStream());out.write(data);

在执行上面代码时引发异常NotSerializableException。引发此异常的可能原因是什么? A.没有连上服务器

B.此消息类(Message)声明不充分 C.输出套接字可能被破坏

D.写出到此套接字,不应使用ObjectOutputStream 19.关于JDBC编程,以下说法错误的是()。

A、使用Class.forName()方法加载数据库驱动程序

B、使用DriverManager的getConnection()方法建立与数据库的连接 C、使用Connection的executeQuery(sql)方法执行查询得到ResultSet对象 D、用executeUpdate()执行更新、删除语句不会得到ResultSet对象

20.下面代码段, class Dog {

} class Beagle extends Dog{ } 如果类Beagle继承Dog, 并且Beagle类只有一个构造器,下面哪个是Beagle类合法的构造器? A、Beagle(){ } B、Beagle(){ super();} C、Beagle(){ super(“fido”);}

D、不提供构造器,使用默认的构造器。Dog(String name){ }

二、多选题(错选、漏选不得分,2分/题*10题=20分)

1.下面的说法正确的是()。

A、Java 语言是面向对象的、解释执行的网络编程语言。

B、Java 语言具有可移植性,是与平台无关的编程语言。C、Java 语言可对内存垃圾自动收集。

D、Java 语言编写的程序虽然是“一次编译,到处运行”,但必须要java的运行环境。2.在Java接口中,下列选项中有效的方法声明是()。(选择二项)

A、public void aMethod();B、void aMethod();C、protected void aMethod();D、private void aMethod();3.定义变量如下:

char c='w';int i=8;long L=15;float f=8.9f;以下赋值语句正确的是()。

A、i=c+i;B、c=c+i;C、L=f+L;D、f=i+L+f;

4.面向对象程序设计的三大特征是()。

A、抽象 B、封装 C、继承 D、多态

5.下面关于类的说法正确的是()。

A、类是 Java 语言中的一种复合数据类型。B、类中包含数据变量和方法。

C、类是对所有具有一定共性的对象的抽象。D、Java 语言的类只支持单继承。

6.编译并运行下面的程序:

public class A {

} class B extends A { public static void main(String[] args){

} void test(){ } System.out.print(“A”);A a=new B();a.test();

} 以下结论正确的有().A、子类B定义了与父类A中同名的方法test,java中称为方法的覆盖。B、代码可以编译运行,并输出结果:AB。C、代码可以编译运行,并输出结果:A。

D、子类B定义了与父类A中同名的方法test,java中称为方法的重载。7.下面哪些说法正确()?

A、如果某公共的接口被声明在一个源文件中,则接口必须与源文件具有相同的名字。B、如果源文件包含import语句,则该语句必须是除空行和注释行外的第一个语句行。C、如果某源文件包含package语句,则该语句必须是第一个非空、非注释行。D、接口中的方法必定是抽象方法,但可以不用关键字abstract修饰。8.关于面向对象的说法正确的是()

A、面向对象编程是类来描述现实世界中的实体 B、有多少个实体就要创建多少个类

C、对象的行为和属性被封装在类中,外界通过发送消息来通知对象执行某个任务 D、现实世界中的某些实体不能用类来描述 9.下面代码:

1.class Over { 2.3.4.5.} 6.7.class Over2 extends Over { 8.9.} 哪两个选项放在第8行会导致不能编译? A、public int doStuff(int x, float y){ return 4;} B、protected int doStuff(int x, float y){return 4;} C、private int doStuff(int x, float y){return 4;} D、String doStuff(int x, float y){ return “4”;} E、int doStuff(float x, int y){ return 4;} // 选择代码添加在此处 int doStuff(int a, float b){ } return 7;void test(){

} super.test();System.out.println(“B”);

10.以下关于布局的说法,正确的是()

A、布局管理是为了能自动适应窗口大小的变化

B、BorderLayout是边框布局,他将窗口分为上、下、左、右四部分

C、FlowLayout是流布局,这种布局将其中的组件按照加入的先后顺序从左向右排列,一行排满之后就转到下一行继续从左至右排列

D、GridLayout是网格布局,它以矩形网格形式对容器的组件进行布置。容器被分成大小相等的矩形,一个矩形中放置一个组件

三、填空题(2分/题*5题=20分)1.补充下面代码的实现求数组中元素的最小值。

int[] x={122,33,55,678,-987};int min=_____999_________;for(int i=1;i

} System.out.println(“最小值为:”+min);

2.终止循环使用关键字____break______,结束本次循环进入下一次循环使用关键字____continue______。3.子类中调用父类被重写的方法需使用关键字__Super,声明常量使用关键字___final______。4.自定义的异常类通常继承自______Execption____________类,方法声明中抛出异常使用关键字____throw______。

5.内部类的特点是内部类与外部类共享______外部类的成员变量_________;内部类中的实例变量与外部类的实例变量重名时,内部类中通过“_____________.this.外部类实例变量名”来引用外部类实例变量。if(_x[i]

四、问答题(4分/题*5题=20分)1.什么是垃圾,java垃圾回收的工作原理 2.类变量与实例变量的区别

3.Vector与TreeSet在存储结构和存取性能上的区别

4.IO流分为字节流和字符流,说明他们的区别,每一类分别说出两个java类

5.什么是线程安全问题?什么情况下容易产生线程安全问题?线程安全问题如何解决?

五、程序题(5分/题*2题=10分)

1.用循环输出九九乘法口诀表

2.编写TCP服务器端程序,并且每个连接启动一个单独的线程来处理。

第三篇:达内Java学习心得-第一个月

学习心得

七月之始,我们的达内java班又开始正式上课了,从上课第一天到现在,已经有一个月了,在这短暂的一个月里,我学到是java的基础知识,重点是JavaSE。感觉时间过的是非常快的,短短一个月就这样被我们给熬过去了,当中既有心酸也有快乐。

学习之初,有着一点点的不适应,首先是时间段的不适应,每天有这规定的时间上课,下课,休息。或许是在大学这个懒散的环境下,我们已经渐渐的远离了规定与约束,过分的放纵自己。随着时间的一天天过去,慢慢的,我们开始适应了这种学习的时间安排以及这样的学习氛围,从一种自由放纵中摆脱出来,有了所谓的上进心,开始了各自的Java之路。

在这段时间里,自己感觉最明显的就是打字速度和以前相比有了明显的提升,此外就是对一些基本的代码的理解和运用有了一定自己的意识。这两点是最明显的变化。个人感觉学了这些基本知识之后,对于Java的认识上的确有了一个提升,起初对它的认识感觉和其他的编程语言应该没有多大区别,但是学完这些这些基本的知识之后,我的认识是Java很强大,我们需要不断地去学,更多的是要不断的去敲,把它练熟,这样自己在从业的时候才会有底气,敢于和别人去竞争。

虽然我们的课堂是看视频来学习,但是个人觉得只要是能学到知识,这些学的形式只是一种次要的因素而已,对于一个想要学习的人来说,他每时每刻都在学习者,因为他爱学习。有了这一个月的学习经历之后,感觉自己当初选择达内来学习Java是一个正确的选择,我相信我只要有学习渴望,达内一定能给我所要学的。一个都不爱学习的人,你给他再好的学习环境和最好的学习条件,无亚于对牛弹琴,无动于衷。结果还有一个浪费资源,浪费精力。

整个学习的时间是四个月,对于余下的三个月,我拭目以待,相信自己一定能够在有限的时间内能够学好这一门语言,为自己以后多一个机会。

相信,我可以!

第四篇:达内java暑期实训报告

毕业实习报告

一、实习目的:

进一步了解java开发的相关知识,掌握java开发的基本技术,丰富java开发的实战经验。学习SQL的基础知识及正确的运用方法,和有用的相关技术,提高自己的工作效率。通过实习,培养我们综合运用已学知识Java语言的面向对象编程能力;培养我们动手能力;培养我们良好编程规范、编程方法;以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力;增强自己的团队协作意识,了解软件开发的思考角度和主要流程。为毕业之后能够更快地进入工作状态并且能够更好的工作,打好一定的基础。

二、实习单位介绍:

北京达内科技有限公司是中国高端IT培训的领先品牌,致力于培养面向电信和金融领域的 Java、C++、C#/.Net、测试、嵌入式、PHP等方面的中高端软件人才,由美国国际数据集团IDG和集富亚洲JAFCO ASIA投资,是国内首家获得国际风险投资的IT培训机构。经过9年运营,达内科技实现了98% 的专业就业率,78%的口碑入学率,学员平均毕业薪资3800元/首月平均薪资。目前,达内科技已经发展成为集培训、咨询、开发、人才服务于一体的高新技术集团公司,公司下设达内高端IT培训、达内软件人才服务中心、达内软件研发中心。

达内科技以中关村科技园区为依托,在中国软件业发达城市——北京、上海、广州、深圳、大连、南京、武汉、杭州、西安、苏州、成都、太原20大城市,建立了近40家培训中心,占地2万平米,年培训1万多名软件人才。已累计为IBM、微软、摩托罗拉、华为、中软、用友、Yahoo、阿里巴巴、TOM、新浪、搜狐、百度、联想、神州数码、大唐电信、亚信等知名IT企业培养输送了7万多名中高级软件人才,目前达内全国拥有600多名员工,年产值近2亿元,是中国领先的中高端软件人才培训机构。

由于达内科技优秀的教学效果和行业领先的经营模式赢得了社会各界的广泛赞誉和好评,近年来达内荣获了各界权威机构的颁奖:达内成为业界唯一的一家2006、2007、2008、2009连续4年入选德勤评选的 “中国高科技高成长50强公司”、“亚太地区高科技高成长500强公司”,获得首届中国留学人才归国创业“腾飞”奖、中关村管理委员会指定的“软件人才培养示范基地”、被《计算机世界》评选的“就业服务杰出贡献奖”、被《中国计算机报》评选的“最具影响力培训机构奖”、被搜狐评为“中国十大教育集团”、被腾讯评为“中国大学生心目中最具影响力的IT品牌”、2011年达内CEO韩少云先生当选中国贸易协会专家委员会第一届副主任委员等荣誉。

三、实习岗位介绍:

此次实习为java实训班,我们组一共6人,共同完成一个服装管理系统。我主要负责入库管理模块代码的编写和该模块相关文档的撰写。该模块主要功能包括:新建入库单、删除入库单、查看入库单详细信息、更新入库单、提交入库单、查询入库单。

四、实习内容及过程:

Mysql数据库

1)MySQL数据库管理系统概述

MySQL是最流行的开放源码SQL数据库管理系统,它是由MySQL AB公司开发、发布并支持的。MySQL AB是由多名MySQL开发人创办的一家商业公司。它是一家第二代开放源码公司,结合了开放源码价值取向、方法和成功的商业模型。

数据库是数据的结构化集合。计算机是处理大量数据的理想工具,因此,数据库管理系统在计算方面扮演着关键的中心角色,或是作为独立的实用工具,或是作为其他应用程序的组成部分。

MySQL服务器还有一套实用的特性集合,这些特性是通过与我们用户的密切合作而开发的。在我们的基准测试主页上,给出了MySQL服务器和其他数据库管理器的比较结果。

MySQL服务器最初是为处理大型数据库而开发的,与已有的解决方案相比,它的速度更快,多年以来,它已成功用于众多要求很高的生产环境。尽管MySQL始终在不断发展,但目前MySQL服务器已能提供丰富和有用的功能。它具有良好的连通性、速度和安全性,这使的MySQL十分适合于访问Internet上的数据库。

2)MySQL稳定性

每次发布的MySQL服务器均是可用的。仅当用户尝试源自“灰色区域”的代码时才会出现问题。当然,新用户不了解“灰色区域”是什么。因此,在本节中,我们介绍了目前已知的这类区域。本节所作的介绍主要针对MySQL服务器5.0版和更高版本。在最新的版本中,更正了所有已知和通报的缺陷,但“缺陷”一节所列的除外,这类缺陷与设计有关。

Java中的常用设计模式

1)工厂模式

客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如:如何创建及如何向客户端提供。

3)工厂方法模式

核心工厂类不再负责所有产品的创建,而是将具体创建的工作交给子类去做,成为一个抽象工厂角色,仅负责给出具体工厂类必须实现的接口,而不接触哪一个产品类应当被实例化这种细节。

控制技术-Servlet技术

1)一个servlet就是Java编程语言中的一个类,它被用来扩展服务器的性能,服务器上驻留着可以通过“请求-响应”编程模型来访问的应用程序。虽然servlet可以对任何类型的请求产生响应,但通常只用来扩展Web服务器的应用程序。Java Servlet技术为这些应用程序定义了一个特定于HTTP的 servlet类。

javax.servlet和javax.servlet.http包为编写servlet提供了接口和类。所有的servlet都必须实现Servlet接口,该接口定义了生命周期方法。

2)一个servlet的生命周期由部署servlet的容器来控制。当一个请求映射到一个servlet时,该容器执行下列步骤。

页面设计-JSP页面

1)MVC 模式

为了把表现层presentation从请求处理request processing 和数据存储data storage中分离开来,SUN公司推荐在JSP文件中使用一种“模型-视图-控制器”Model-view-controller 模式。规范的SERVLET或者分离的JSP文件用于处理请求。当请求处理完后,控制权交给一个只作为创建输出作用的JSP页。有几种平台都基于服务于网络层的模-视图-控件 模式(比如Struts 和Spring framework)。

2)JSP技术的强势

(1)一次编写,到处运行。在这一点上Java比PHP更出色,除了系统之外,代码不用做任何更改。

(2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP/PHP的局限性是显而易见的。

(3)强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台

服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。

(4)多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。

3)JSP技术的弱势

(1)与ASP一样,Java的一些优势正是它致命的问题所在。正是由于为了跨平台的功能,为了极度的伸缩能力,所以极大的增加了产品的复杂性。

(2)Java的运行速度是用class常驻内存来完成的,所以它在一些情况下所使用的内存比起用户数量来说确实是“最低性能价格比”了。从另一方面,它还需要硬盘空间来储存一系列的.java文件和.class文件,以及对应的版本文件。

五、实习总结及体会

通过这一期的实训,虽然倍感折磨,但是收获却很大的,学习中我不但有了学习成果的喜悦,而且自己也日渐成熟,有种说不出的喜悦。

当我们正式准备学习实训java编程技术时,让我倍感兴奋。Java是自己以后想主攻的技术,所以自然也就非常的亢奋。感觉肩上责任之重大,那一刻起,我就决心带领我们小组,奋战我们的实训路。当然开始学习后也并非是想象中那样顺利,开始的学习让我异常感到学习任务的艰巨,因为学习中我们遇到了很多以前未曾遇到的难点,有时难免冥思苦想也无济于事,通过我们小组的积极努力协作,同时请教老师和其他同学,我们顺利的化解了一道道的障碍。

这让我不断的对学习技术又有了新的认识:学习中我们必须边总结边学习,开始阶段对老师交代的任何方法和类都不要放过,不管是否简单与否都要乐于地接受,因为老师肯定有他的道理,相信老师走过的路比我们长,那么其经验也就肯定比我们丰富。上课时一定要专心听讲,一个关键的知识点听漏了,可能会使一个人在课下花很多时间去消化,这样也就会花掉做其他事情的大量时间,同时也使得学习不能和老师的讲的课程同步,以至出现以后就跟不上老师讲课的进度而掉队。所以学习中我们宁可劳其筋骨,苦其心志,恶其体肤,也不能掉队跟不上学习进度。

在学习的过程中也体会到,遇到问题也要请教。不然的话自己一个人去做的话会花很多的时间,我在做这个在线考试的项目中,其中也问到过许多问题,通过同学的帮助

下解决了,提高了程序的开发进程。其他的同学有问题的话我也是给他们尽量解决。我认为学习知识的过程当中就应该是相互学习相互进步的。

Java是面在的主流技术我会努力将它学好,现在我缺乏的是坚持不懈的精神,周贤军给了我很大的影响,我会向他学习,虽然学习java的路还很找,但我会继续走下去。

在这里,我非常感谢实训的指导老师,在老师的帮助和指导下,我克服了Java学习上的一道道难关,课上认真听讲,摘好必要的笔记,并通过自己课后的不断消化学习,现在自己已经基本掌握了java的基础知识,并等待知识的进一步提升。

实训即将结束了,我非常怀念在达内科技的实训,在实训的这1个月时间里,我每一天过的都市踏实的,充实的;我相信,只要我秉持艰苦奋斗,为理想拼搏的精神,尽管在未来的java路上荆棘丛丛,我一定可以披荆斩刺,度过重重难关,实现自己未来的理想!

第五篇:Java软件工程师试题

姓名:联系电话:电子邮件:学历:专业:毕业时间:

Java软件工程师试题(A卷)

(满分100分,作答时间为120分钟)

一、单选题(每题3分,共45分)

1.以下哪个修饰符可用于定义成员常量?B

A.start B.final C.abstract D.No modifier can be used

2.定义一个Java文件名字为:Sub.java,其代码为:

class Super {

public int i=0;

public Super(){

}

public static void main(){

}

} System.out.println((new Super()).i);i = 1;

这段程序的运行结果是: B

A.Compile will fail

C.Compile success and print 0

3.给出如下代码:

class Test {

private int m;

public static void fun(){

// some code......}

} B.Compile success and print 1D.Compile success and print nothing

如何使成员变量m被函数fun()直接访问?D

A.将private int m改为protected int m

c.将private int m改为int m

4.下面代码段中,执行之后i和j的值是什么? C

int i = 1;

int j;

j = i++;

A.1,1B.1,2C.2,15.已知如下代码:A

boolean m;

if(m == false)

System.out.println(“false”);

else

B.将private int m改为public int m D.将private int m改为static int mD.2,2

System.out.println(“true”);

执行结果是什么?

A.Compile will fail

C.true

B.false D.An error will occur when running

6.下面哪个语句是创建数组的错误语句?C

A.float f[][] = new float [6][6];

C.float f[][] = new float [][6];

E.float [][]f = new float [6][];

B.float []f[] = new float [6][6];D.float [][]f = new float [6][6];

7.给出如下代码:C

String a = new String(“巨匠IT”);

String b = new String(“巨匠IT”);

请问上面的语句在内存中分配了多少个内存区?

A.1B.2C.3D.48.给出如下代码:D

Set set = new HashSet();

set.add(“gjun”);

set.add(“pcschoolchina”);

set.add(“gjun”);

set.add(“it”);

Iterator it = set.iterator();

while(it.hasNext()){

System.out.println(it.next());

}

上面的代码最有可能的输出结果是:

A.gjun pcschoolchina gjun it

C.it gjun pcschoolchina gjun

9.请看下面的代码段:

String a = “gjun”;

String b = new String(“gjun”);

String c = new String(“gjun”);

if(a==b){

System.out.println(“true”);

}else{B.gjun pcschoolchina it gjun D.it gjun pcschoolchina

System.out.println(“false”);

}

if(a.equals(b)){

System.out.println(“true”);

}else{

System.out.println(“false”);

}

if(c==b){

System.out.println(“true”);

}else{

System.out.println(“false”);

}

输出的结果为:C

A.false truetrue B.truefalse true C.false truefalse D.false false true

10.以下哪个方法用于定义线程的执行体?C

A.start()B.init()C.run()

D.main()E.synchronized()

11.给出url地址为“index?page=3&category=tech”,下面哪个描述是正确的:

A.通过request.getAttribute(“page”)可以获取page的值

B.通过request.getParameter(“page”)可以获取page的值

C.通过request.getAttribute(“page&category”)可以获取page和category的值

D.通过request.getParameter(“page&category”)可以获取page和category的值

12.有一个登录的表单,其属性有name=“loginForm”, action=“loginServlet”, method=“post”,下面哪个描述是正确的:

A.在loginServlet中使用doPost的方法来处理表单的请求

B.在loginServlet中使用doGet的方法来返回表单的处理结果

C.在loginServlet中,先调用doPost的方法,然后再调用service的方法来处理表单的请求

D.在loginServlet中,先调用doGet的方法,然后再调用service的方法来处理表单的请求

13.如果需要从一个Servlet中传递参数username到结果的页面,下面哪种方式是可行的:

A.request.setParameter(“username”, username);

B.request.setAttribute(“username”, username);

C.response.setParameter(“username”, username);

D.request.setAttribute(“username”, username);

14.下列哪个描述是正确的:

A.EJB3.0包含Session Bean, Entity Bean和JMS

B.在系统中,我们会使用Entity Bean来保存数据和处理业务流程

C.Session Bean分为有状态和无状态两中,其中有状态的性能更高

D.远程调用EJB组件,可以通过lookup的方式去查找JNDI名称,获取代理接口来调用

15.关于JUnit的描述,哪个是正确的:

A.JUnit其实是一个main函数

B.JUnit可以应用于系统的整体测试

C.如果要测试一个方法的话可以,使用assertEquals来判定结果的正确性

D.JUnit中可以的使用@Test来修饰方法,该方法可以带参数

二、多选题(每题3分,共45分)

16.如下哪些字符串是Java中的标识符?AE

A.fieldnameB.superC.3number

17.如下哪些是Java中有效的关键字?ACDE

A.constB.NULLC.false

D.#numberE.$numberD.thisE.native

18.在switch语句中,以下哪些参数类型是合法的?ABCD

A.intB.ByteC.charD.byte

19.下面哪个赋值语句是合法的?BCD

A.float a = 2.0B.double b = 2.0

E.String C.int c = 2D.long d = 2

20.已知如下的命令执行java MyTest a b c,请问哪个语句是正确的?CD

A.args[0] = “MyTest a b c”;B.args[0] = “MyTest”;

C.args[0] = “a”;D.args[1] = “b”;

21.下面代码执行后的输出是什么?ADC

for(int i=0;i<3;i++){

} for(int j=0;j<2;j++){} if(j==1)continue;System.out.println(j+“and”+i);

A.0 and 0

F.1 and 2

b.0 and 1G.2 and 0C.0 and 2H.2 and 1D.1 and 0I.2 and 2 E.1 and 1

22.Java中如下哪个修饰符是正确的?ABE

A.privateB.publicC.default

23.已知如下类的说明:

public class Test {

} private float f = 1.0f;int m = 12;static int n = 1;public static void main(String arg[]){} Test t = new Test();D.friendE.protected

如下哪个代码可以加入到下划线中?AD

A.t.f = 0;B.this.n = 1;

24.已知如下类定义:

class Base {

}

public class Child extends Base { public Base(){} public Base(int m){} protected void fun(int n){}C.Test.m = 2;D.Test.n = 3;

// member methods

}

如下哪句可以正确地加入子类中?CD

A.private void fun(int n){}

C.protected void fun(int n){}

B.void fun(int n){} D.public void fun(int n){}

25.下面哪个方法可用于定义新线程类?AD

A.implement the Runnable interface B.add a run()method in the class

C.create an instance of ThreadD.extend the Thread class

26.下面哪个对象是JSP中内置对象?

A.contextB.request

C.exceptionD.application

27.现在有一个登录页面login.jsp,提交到/LoginServlet来处理,下面哪些描述是正确的。

A.通过request.getParameter(“username”)获取到login.jsp中的用户名值

B.通过request.getAttribute(“username”)获取到login.jsp中的用户名值

C.可以在LoginSerlvet中的doPost方法中处理请求

D.可以在LoginSerlvet中的service方法中处理请求

28.在LoginServlet处理完成后,跳转到要去到index.jsp页面,下面那些描述是正确的。

A.response.sendRedirect(“index.jsp”);

B.response.forward(“index.jsp”);

C.request.getRequestDispatcher(“index.jsp”).forward(request, response);

D.request.sendRedirect(“index.jsp”);

29.在Struts2.0中,Action接口默认的result值有:

A.SUCCESSB.FAILUREC.LOGIND.ERROR

E.OUTPUT

30.在Hibernate3.0中,假设现在有个Student的对象,下面那些HQL的写法是正确的:

A.select * from StudentB.from Student

C.select s from Student sD.select s from Student s where id>10

三、填空题(每题5分,共10分)

31.补充完整Test类的定义,使其能计算下面的数列值:

F(1)= 1(n=1)

F(2)= 2(n=2)

F(n)= F(n-1)*n(n>3)

如: 当n=5时,f(5)=f(4)*5,f(4)=f(3)*4,f(3)=f(2)*3,f(2)=f(1)*1,f(1)=1

结果f(5)= 1*1*3*4*5 = 60

public class Test {

public static int calculate(int n){if(①)return 1;return②;} public static void main(String[] args){System.out.println(calculate(3));

}

}

32.请看TestAnimal类的代码:

public class TestAnimal{

public static void main(String args[]){Animal a1 = new Dog();Animal a2 = new Cat();①②

Dog b1 =③

Cat b2 =④

}⑥}

interface Animal {

}

class Dog implements Animal{

}

class Cat implements Animal{

} public void run(){} public void catchMouse(){} System.out.println(“catching mouse”);System.out.println(“A cat is running now”);public void run(){} public void watch(){} System.out.println(“watching house”);System.out.println(“A dog is running now”);public void run();

请补充完整上面的代码,使其运行的时候得到如下结果:

A dog is running now

A cat is running now

watching house

catching mouse

下载JAVA达内面试题word格式文档
下载JAVA达内面试题.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    Java程序员笔试题

    Java程序员笔试题 说明:该份题目要求在1小时内答完1、工厂方法模式和抽象工厂模式的区别 2、jsp/servlet 中 forward, include, reDirect 之间的区别 3、JSP中的两种include......

    JAVA程序员笔试题

    深圳市九城恩科软件技术有限公司java程序员笔试题 JAVA 程序员笔试题 时间:30分钟 试题一: 简单描述一下什么是事务管理,事务管理中有哪些语句?姓名: 试题二: 跳出当前循环的关键......

    java笔试题06

    Using the java.lang.String Class 1. Given the following, 1. public class StringRef { 2. public static void main(String [] args) { 3. String s1 = "abc"; 4. Strin......

    JAVA工程师笔试题

    一、选择题 1.Java中提供了名为( )的包装类来包装原始字符串类型。 A.Integer B.Char C.Double D.String 2.java.lang包的( )方法比较两个对象是否相等,相等返回true。 A.toString() B.equ......

    java web考试试题

    2. Web的工作模式是:B浏览器/服务器 3. 表示:D强制换行 4.一组选项中可以选择多项的表单元素是:A Checkbox 6. 下面那种语言是解释执行的:C JavaScript 2. JSP文件应放在Tomcat......

    JAVA工程师笔试题5篇

    【程序17】 题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下 的......

    java程序员笔试题5篇

    姓名:联系方式:考试开始时间: Java程序员笔试题 一、单项选择题(共10题,每题2分,共20分) 1. 下列说法哪一个是正确的。( B ) A.Java程序经编译后会产生machine code B.Java程序经编译后......

    软件开发工程师(JAVA)笔试题A

    JAVA笔试题  软件开发工程师(JAVA)笔试题 请在90分钟以内做答 答案请写在答题纸上 一、选择题 1、下面哪项是不合法的标识符:(c e) A. $persons B. TwoUsers C. *point D. _en......