第一篇: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、x
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软件工程师试题(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程序员笔试题 说明:该份题目要求在1小时内答完 1、工厂方法模式和抽象工厂模式的区别 2、jsp/servlet 中 forward, include, reDirect 之间的区别 3、JSP中的两种include包含指令的区别与用法 4、ArrayList和Vector的区别,HashMap和Hashtable及HashSet的区别? 5、请说明在实际应用中,java.sql 包中的Statement和PreparedStatement有何区别? 6、如何遍历一个集合(collection),并在屏幕上打印出集合中的每个元素public void printStr (Collection cols){ } 7、写一个方法,实现字符串的反转,例如:输入abc,输出cba PublicString reverseStr(String str){ //代码 } 8、输入为整数数组,请写出如下的排序算法,使得数组data里面存储的数字随数组脚标的增大而依 次增大,即越小的数字存储的位置越靠前 Public void sort(int[]data){ } 9、用户在JSP: input.jsp中输入姓名和手机号码,点”Done”按钮来提交请求到一个/ 6 servlet:test.java。test.java将输入的姓名和手机号码存储在文件store.txt里。 请写出input.jsp, test.java的程序源码,并在input.jsp和test.java中分别通过js和java代码对输入进行校验,如果1)姓名项没有填写或者输入的长度超过了20个字符2)手机号码项没有填写,或者输入了非数字的字符或者输入的长度不是13位,则返回input.jsp,并给出相应的错误提示。 10、有若干条有关城市的信息,每条包括如下属性:ID(唯一递增的序列),CITY(城市名称),DESC(城市说明),要求设计一套数据结构及算法使得1)所有登陆系统的用户均能使用这些城市信息2)能够根据城市ID 号或名称获得城市的其他信息3)如果从该数据结构中找不到合适的城市信息,可以往该数据结构中添加新的城市信息,但相同的城市(ID号或名称有任意一个相同均认为是同一城市)在数据结构中只能有一条记录 4)如任一条城市信息,超过两个小时没有被使用(查询)则需自动将其删除 pubic class CityCache{ } 11、读下面一段程序,写出运行结果 ---- pubicclassBaseClass{ static{ System.out.println(“aaaaa”);/ 6 } BaseClass(){ System.out.println(“11111”); } } publicclassDerivedClass extendsBaseClass{ static{ System.out.println(“bbbbb”); } DerivedClass(){ System.out.println(“22222”); } } publicclassStartRun { public static void main(String[ ] args){ DerivedClasssdc 1 = newDerivedClass(); dc1 = newDerivedClass(); } } 12、请写出符合要求的sql 语句(假定数据库为Oracle)。/ 6 现有数据表a,建表语句如下: create table a(bm char(4),——编码 mc varchar2(20)——名称) 表中数据如下 bmmc 11111111 11121111 11131111 11141111 要求1:用一条sql语句实现对表a中数据的复制,即达到如下的结果(2)bmmc 11111111 11121111 11131111 11141111 11111111 11121111 11131111 11141111/ 6 要求2:请删除表中重复的记录(bm和mc都相同的记录为重复记录) 13、classStack { LinkedListlist = new LinkedList() public synchronized void push(Objectx){ synchronized(list){ list.addLast(x); notify(); } } public synchronized Object pop(){ synchronized(list){ if(list.size()<=0) wait(); return list.removeLast(); } }/ 6 } 请问上面这个类中有什么错误?应该怎么解决?14、15、请写出MSSQL、ServerMysql和ORACE实现分页算法的sql语句。UNIX和网络基础,依次写出完成下列的操作命令,最好有常用参数的简单说明 1)如何显示当前的IP配置信息 2)查看当前目录 3)拷贝文件或目录 4)移动文件或目录 5)删除文件或目录 6)切换用户 7)修改文件或目录的权限 8)查看日志文件的最后1行 9)查看系统内存、CPU的使用状况 10)查看系统正在运行的和apache相关的进程/ 6 深圳市九城恩科软件技术有限公司 java程序员笔试题 JAVA 程序员笔试题 时间:30分钟 试题一: 简单描述一下什么是事务管理,事务管理中有哪些语句? 姓名: 试题二: 跳出当前循环的关键词是什么?继续本次循环的关键词是什么? 试题三: 在JSP页面源代码中写 “${flag}”是代表什么意思? 试题四: 请写出最少五种设计模式的名称。 试题五: 请写出Eclipse 中下列功能的快捷键: 删除当前行: 注释当前行: 代码助手完成一些代码的插入: 打开类型: 打开资源: 试题六: 什么情况下Eclipse不编译生成Class文件? 深圳市九城恩科软件技术有限公司 java程序员笔试题 试题七: public static void main(String[] args){ int i=3,j=16;do{ if(++i>=j--)continue;}while(i<9);System.out.println(“i=”+i+“;j=”+j);} 这段程序运行后输出的结果是什么? 试题八: public class One { } public class Two extends One { } protected void printA(){System.out.println(“two A”);} private void printB(){System.out.println(“two B”);} public static void main(String[] args){ Two t = new Two();t.printAB();} protected void printA(){System.out.println(“one A”);} private void printB(){System.out.println(“one B”);} protected void printAB(){printA();printB();} 这段程序运行后输出的结果是什么? 试题九: 有一个表 “表A” 中包含 “姓名”,“成绩”两个字段,请写一个SQL语句查询出“成绩”大于60分的,“姓名”有重复的人的名字 试题十: 请写一个方法实现:传入的一个大于10位的字符串,把字符串的最后两位移动到字符串的第4位后面。 诚信、创新、开放、合作 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软件工程师试题
第三篇:Java程序员笔试题
第四篇:JAVA程序员笔试题
第五篇:JAVA达内面试题