[优质文档]Java软件中级工程师笔试题-复杂逻辑
- 格式:doc
- 大小:88.50 KB
- 文档页数:10
java笔试题大集合及答案# Java笔试题大集合及答案1. Java中接口和抽象类的区别是什么?- 接口和抽象类都是抽象的,不能直接实例化。
- 接口中所有的方法默认是public的,而抽象类可以包含非public的成员。
- 一个类可以实现多个接口,但只能继承一个抽象类。
- 接口中不能包含构造方法,而抽象类可以。
- 接口中的字段默认是public static final的,而抽象类中的字段可以是任意类型。
2. Java中如何实现单例模式?- 单例模式确保一个类只有一个实例,并提供一个全局访问点。
- 可以通过私有化构造方法,提供一个私有静态变量来保存实例,并提供一个公有静态方法来获取实例。
3. Java中集合框架的层次结构是怎样的?- 集合框架分为两大类:单元素集合和复合元素集合。
- 单元素集合包括List、Set和Queue。
- 复合元素集合包括Map。
- 每个接口都有多个实现类,如ArrayList、LinkedList、HashSet、TreeSet、HashMap、TreeMap等。
4. Java中如何实现多线程?- 可以通过继承Thread类并重写run方法来实现。
- 也可以通过实现Runnable接口并重写run方法,然后创建Thread对象来实现。
- Java 5引入了Executor框架,可以更方便地管理线程。
5. Java中异常处理的机制是什么?- Java使用try-catch-finally块来处理异常。
- try块中编写可能抛出异常的代码。
- catch块中编写处理异常的代码。
- finally块中的代码无论是否发生异常都会执行。
6. Java中StringBuffer和StringBuilder的区别是什么?- StringBuffer是线程安全的,而StringBuilder不是。
- StringBuffer的方法是同步的,StringBuilder的方法不是。
- 在单线程环境下,StringBuilder的性能优于StringBuffer。
中软Java笔试题目中软Java笔试题目Java笔试题目(一)一、判断题(30分)1.Java程序里,创建新的类对象用关键字new,回收无用的类对象使用关键字free,。
2.对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与赋值对象相同的新对象。
3.有的类定义时可以不定义构造函数,所以构造函数不是必需的。
4.类及其属性、方法可以同时有一个以上的修饰符来修饰。
5.Java的屏幕坐标是以像素为单位,容器的左下角被确定为坐标的起点6.抽象方法必须在抽象类中,所以抽象类中的方法都必须是抽象方法。
7.Final类中的属性和方法都必须被final修饰符修饰。
8.最终类不能派生子类,最终方法不能被覆盖。
9.子类要调用父类的方法,必须使用super关键字。
10.一个Java类可以有多个父类。
11.如果p是父类Parent的对象,而c是子类Child的对象,则语句c = p是正确的。
12.在java集合中,Vector和HashMap是线程安全的。
13.当一个方法在运行过程中产生一个异常,则这个方法会终止,但是整个程序不一定终止运行。
14.接口是特殊的类,所以接口也可以继承,子接口将继承父接口的所有常量和抽象方法。
15.用“+”可以实现字符串的拼接,用- 可以从一个字符串中去除一个字符子串。
二、选择题(30分)1、关于垃圾收集的哪些叙述是正确的( ):A.程序开发者必须自己创建一个线程进行内存释放的工作B.垃圾收集允许程序开发者明确指定并立即释放该内存C.垃圾收集将检查并释放不再使用的内存D.垃圾收集能够在期望的时间释放被java对象使用的内存2、下面的哪些赋值语句是不正确的( ):A.float f=11.1;B.double d=5.3E12;C.double d=3.14159;D.double d=3.14D;3、下面关于变量及其范围的陈述哪些是不正确的( ):A.实例变量是类的成员变量B.实例变量用关键字static声明C.在方法中定义的'局部变量在该方法被执行时创建D.局部变量在使用前必须被初始化4、下列关于修饰符混用的说法,错误的是( ):A.abstract不能与final并列修饰同一个类B.abstract类中不可以有private的成员C.abstract方法必须在abstract类中D.static方法中能处理非static的属性5、容器Panel和Applet缺省使用的布局编辑策略是( ):A、BorderLayoutB、FlowLayoutC、GridLayoutD、CardLayout6、以下标识符中哪项是不合法的( ):A、 BigMeaninglessNameB、$intC、1 stD、$17、main方法是Java Application程序执行的入口点,关于main 方法的方法头以下哪项是合法的( ):A、 public static void main()B、 public static void main(String[ ] args)C、 public static int main(String[ ] arg)D、 public void main(String arg[ ])8、执行完以下代码int [ ] x = new int[25];后,以下哪项说明是正确的( ):A、 x[24]为0B、 x[24]未定义C、 x[25]为0D、 x[0]为空9、以下代码段执行后的输出结果为( ):int x=3; int y=10;System.out.println(y%x);A、0B、1C、2D、310、以下哪个表达式是不合法的( ):A、String x=”Hello”; int y=9; x+=y;B、String x=”Hello”; int y=9; if(x= =y) { }C、String x=”Hello”; int y=9; x=x+y;D、String x=null; int y=(x!=null)&&(x.length()>0) ? x.length : 011、编译运行以下程序后,关于输出结果的说明正确的是 ( ):public class Conditional{public static void main(String args[ ]){int x=4;System.out.println(“value is “+ ((x>4) ? 99.9 :9));}}A、输出结果为:value is 99.99B、输出结果为:value is 9C、输出结果为:value is 9.0D、编译错误12、以下声明合法的是( ):A、 default String s;B、 public final static native int w( )C、 abstract double d;D、 abstract final double hyperbolicCosine( )13、关于以下application的说明,正确的是( ):1. class StaticStuff2. {3. static int x=10;4. static { x+=5;}5. public static void main(String args[ ])6. {7. System.out.println(“x=” + x);8. }9. static { x/=3;}10. }A、 4行与9行不能通过编译,因为缺少方法名和返回类型B、 9行不能通过编译,因为只能有一个静态初始化器C、编译通过,执行结果为:x=5D、编译通过,执行结果为:x=314、关于以下程序代码的说明正确的是( ):1.class HasStatic{2. private static int x=100;3. public static void main(String args[ ]){。
Java工程师笔试题(中级)开始时间______________________ 姓名________ 月薪要求(转正税前)_____ 说明:所有题目只需简要描述即可一、基础题(Required):【Java语言】1、String和StringBuffer有什么区别?int 和Integer有什么不同,float f=3.4是否正确String是常量,在创建后就不能改变,在内存中是共享的.2、异常(Exception)分几种类型?有什么区别?写出几个常见异常(若记不得异常的英文名,写中文名亦可)3、写出几种常见的java数据结构和特点(List ,Set,Map等)4、下列两个方法有什么区别public synchronized void method1(){}public void method2(){synchronized (obj){}}5、public class Test{Public static void so(String[] name){String temp=name[0];Name[0]=name[1];Name[1]=temp;}public static void so(String name0,String name1){String temp=name0;Name0=name1;Name1=temp;’}public static void main(String[] wewe){String[] name = new String[]{"mike”,”Lily”};String name0 = “mike”;String name1=”Lily“;So(name);System.out.println(name[0]+”,”+name[1]);So(name0,name1);System.out.println(name0+”,”+name1);}写出输出结果6、以下数据库操作的程序片段如何改进会跟好?try {Class.forName(“com.mysql.jdbc.Driver”);Connection conn = DriverManager.getConnection(“jdbc:mysql://localhost/test”, “root”, “123456”);Statement stmt = conn.createStatement();String sql = “select * from T_User where username=’” + name+ “’ and password=’” + password + “’”;ResultSet rs = stmt.executeQuery(sql);if (rs.next()) {System.out.println(“User Name and Password is correct!”);} else {System.out.println(“User Name and Password pair is invalidate”);}} catch (Exception e) {e.printStackTrace();}7、请问下列程序运行输出结果是多少?public static void main(String[] afsaf){List list1;List list2;list1=new List();list2=list1;list1.add(new Object());System.out.println(list2.size());}【数据库(Oracle)】1、从Product表中取出price大于9.99的前100行数据。
此文档下载后即可编辑中级JAVA笔试题(附参考答案)java 基础1.StringBuffer的实现方式,容量如何扩充。
2.ClassLoader的功能和工作模式。
3.==和equals的区别。
4.什么是线程安全?举例说明一个线程不安全的例子。
5.说出数据连接池的工作机制,解决什么问题。
6.一个字符串"java Java JAVa JaVa IloveJAVA you hateJavaafasdfasdf",把其中奇数位java(大小写不敏感)替换成java,偶数位替换成JAVA。
数据库7.经常使用的数据库的优化方法。
8.薪水最高的第10到第20名雇员Oracle和mysql的实现。
算法:9.ArrayList LinkedList HashMap,存储性能和特点。
10.用任意方法对int类型数组进行排序。
架构:11.描述MVC的设计思想12.Spring的核心理念是什么13.谈一下自己最熟悉的web框架参考答案:java 基础1.StringBuffer的实现方式,容量如何扩充。
(StringBuffer是通过char[]来实现的,默认长度是16,在进行串的append的时,StringBuffer会检测剩余容量,适时会重新扩充,而扩容的同时,会创建一个新的数组,并将原来的数组内容复制到新的数组里面。
)2.ClassLoader的功能和工作模式。
(1:JVM在运行时会产生三个ClassLoader,其层次关系::Bootstrap ClassLoader—>Extension ClassLoader—>AppClassLoader,2: 当一个装载器被请求装载某个类时,它首先委托自己的parent去装载,若parent能装载,则返回这个类所对应的Class对象,若parent不能装载,则由parent的请求者去装载。
)3.==(引用指向同一个对象)和equals(引用可能指向的不是同一个对象)的区别。
中软国际JAVA工程师招聘笔试题及参考答案本卷总分100分,70分及格,时间60分钟姓名:____________ 岗位:_____________ 地点:□南京□深圳到职日期:______________一、问答题1.C++或Java中的异常处理机制的简单原理和应用。
当JAVA程序违反了JAVA的语义规那么时,JAVA虚拟机就会将发生的错误表示为一个异常。
违反语义规那么包括2种情况。
一种是JAVA类库内置的语义检查。
例如数组下标越界,会引发IndexOutOfBoundsException;访问null的对象时会引发NullPointerException。
另一种情况就是JAVA允许程序员扩展这种语义检查,程序员可以创立自己的异常,并自由选择在何时用throw关键字引发异常。
所有的异常都是ng.Thowable的子类。
2. Java的接口和C++的虚类的一样和不同处。
C++虚类相当于java里的抽象类,一样点:〔1〕都包含抽象方法,声明多个类共用方法的返回值和参数表;〔2〕都不能被实例化;〔3〕都是应用数据类型。
可以声明抽象类及接口变量,并将子类的对象赋给抽象类变量,或将实现接口的类的变量赋给接口变量。
不同点:〔1〕一个类只能继承一个抽象类,是单继承;一个类可以实现多个接口,具有多重继承的能。
〔2〕抽象类及其成员具有与普通类一样的访问权限;接口的访问权限有public和默认权限,但接口中成员的访问权限都是public;〔3〕抽象类中可以声明成员变量,成员变量的属性可以更改;接口中只能声明常量。
〔4〕抽象类中可以声明抽象方法,普通方法及构造方法;接口中只能声明抽象方法。
3. 垃圾回收的优点和原理。
并考虑2种回收机制。
Java语言中引入的垃圾回收机制:它使得Java程序员在编写程序的时候不再需要考虑内存管理。
由于有个垃圾回收机制,Java中的对象不再有"作用域"的概念,只有对象的引用才有"作用域"。
以下是一些Java 逻辑思维笔试题,这些试题可以帮助你测试自己的逻辑思维能力以及Java 编程技能:
1.给定一个整数数组,找出数组中是否存在两个不同的数字,它们之间的差的绝对值等于
给定的数字k。
2.给定一个字符串,判断该字符串是否为回文字符串。
3.给定一个整数数组,找出数组中的最大值和最小值,并计算它们的差值。
4.给定一个整数数组,找出数组中是否存在重复的元素。
5.给定一个字符串,将字符串中的每个字符转换为其对应的ASCII 码值,并输出结果。
6.给定一个整数数组,找出数组中是否存在三个不同的数字,它们之和等于给定的数字k。
7.给定一个字符串,判断该字符串是否为偶数个字符。
8.给定一个整数数组,找出数组中是否存在两个不同的数字,它们之间的和等于给定的数
字k。
9.给定一个整数数组,找出数组中是否存在三个不同的数字,它们之积等于给定的数字k。
10.给定一个字符串,将字符串中的每个字符转换为其对应的字母在字母表中的下一个字
母,如果已经是字母表的最后一个字母,则将其转换为第一个字母。
输出转换后的字符串。
JAVA试题(中级工程师)您的姓名: [填空题] *_________________________________您的性别: [单选题] *○男○女请输入您的手机号码: [填空题] *_________________________________请选择日期: [填空题] *_________________________________下列语句序列执行后,m 的值是( )。
int a=10, b=3, m=5;if( a==b ) m+=a; else m=++a*m; [单选题] *155055(正确答案)5下列语句序列执行后,k 的值是()。
int i=4,j=5,k=9,m=5;if(i>j||m<k) k++; else k--; [单选题] *10(正确答案)89下列语句序列执行后,x 的值是()。
int a=2, b=4, x=5;if( a<--b ) x*=a; [单选题] *5201510(正确答案)下列语句序列执行后,b 的值是( )。
int a=2, b=4;if( a < - - b ) a*=a; [单选题] *53(正确答案)1510下列语句序列执行后,m 的值是( )。
int i=9, j=8, m=10, n=9;if( i<j || m - -<n ) i++; else j--; [单选题] *789(正确答案)下列语句序列执行后,x 的值是( )。
int a=3, b=4, x=5;if( ++a<b ) x=x+1; [单选题] *5(正确答案)346下列语句序列执行后,ch1 的值是( )。
char ch1=’A’,ch2=’W’;if(ch1 + 2 < ch2 ) ++ch1; [单选题] *‘A''B'(正确答案)'C''D'下列语句序列执行后,x 的值是()。
一套中级Java程序员笔试题
这是网上载录的一家公司的中级Java程序员笔试题,不是很全欢迎大家讨论主要内容:JS、5道Orecle(大部分)1.假如一个页面index.htm需要弹出小窗口win.htm,如何使弹出的小窗口不会重复打开,以及如何关闭这个小窗口。
2.JSP在服务器端的转发方式3.在两个JSP页面上同时用一个变量,不能用URL参数加FORM进行传递,怎样实现4.读程序,写出执行结果public class Test{String para1;StringBuffer para2;public void method1(String param){para1 = param.replace(‘j’,l’);}public void method2(StringBuffer param){para2 = param.append(‘c’);}public static void main(String[] args){Test obj = new Test();obj.method1(new String(“java”));obj.method2(new StringBuffer(“java”));System.out.println(obj.para1);System.o ut.println(obj.para2.toString());}}5.有两张表A、B,A是主表,B 是丛表,删除A表记录在B表中不存在的。
1。
java笔试题目及答案1. 题目:请简述Java语言的特点及优势。
Java语言的特点及优势主要有以下几点:(1)面向对象:Java是一种纯粹的面向对象编程语言,支持类、继承、封装、多态等面向对象的特性,使得程序具有更好的结构性、可扩展性与可维护性。
(2)可移植性:Java语言通过编译成字节码,然后在Java虚拟机(JVM)上运行,实现了平台无关性。
只需在不同的平台上安装对应的JVM即可运行Java程序,方便实现跨平台开发。
(3)自动内存管理:Java语言通过垃圾回收机制实现自动内存管理,不需要开发者手动进行内存的申请和释放,降低了内存泄漏和野指针的风险。
(4)丰富的类库:Java拥有庞大的类库,为开发者提供了丰富的工具和类,简化了程序的编写过程,提高了开发效率。
(5)多线程支持:Java语言提供了多线程的支持,可以方便地实现并发编程,充分发挥多核CPU的计算能力。
(6)安全性:Java通过安全管理器对代码进行安全控制,提供了安全可靠的运行环境,可以防止潜在的恶意代码对系统造成危害。
2. 题目:请解释Java中的封装性及其优势。
封装是面向对象编程的核心概念之一,指将数据和对数据的操作进行封装,通过对外提供公共接口来控制对数据的访问和操作。
封装的优势主要有以下几点:(1)数据隐藏:通过封装,将数据隐藏在对象内部,外界无法直接访问和修改对象的数据,只能通过封装的方法来间接访问和操作数据。
这样可以保护数据的完整性和安全性,避免数据被误用或修改。
(2)代码复用:封装可以将一组相关的属性和方法封装到一个对象中,实现代码的复用。
其他程序可以通过实例化对象来直接使用对象中封装好的属性和方法,而无需重复编写相同的代码。
(3)模块化开发:封装可以将一个大型的程序拆分成多个小的模块,每个模块都可以独立进行设计、开发和测试,提高了代码的可读性和可维护性。
同时,封装还可以隐藏具体实现的细节,提供简单的接口供其他模块使用,降低了模块之间的耦合度。
java工程师笔试题及答案# Java工程师笔试题及答案一、选择题(每题2分,共20分)1. 下列哪个选项是Java语言的特点?- A. 面向过程- B. 面向对象- C. 编译型语言- D. 解释型语言答案:B2. Java中,哪个关键字用于定义类?- A. `class`- B. `interface`- C. `enum`- D. `package`答案:A3. 在Java中,哪个方法用于获取类的完整路径名?- A. `getClass()`- B. `getClassName()`- C. `getName()`- D. `getPackage()`答案:A4. 以下哪个是Java集合框架中的接口?- A. `ArrayList`- B. `LinkedList`- C. `HashSet`- D. `Collection`答案:D5. Java中的异常分为哪两大类?- A. 编译时异常和运行时异常- B. 检查型异常和非检查型异常- C. 系统异常和应用异常- D. 可捕获异常和不可捕获异常答案:B二、简答题(每题5分,共20分)1. 请简述Java的垃圾回收机制。
答案:- Java的垃圾回收机制是自动内存管理的一部分,它负责回收不再使用的对象所占用的内存。
- 垃圾回收器定期检查堆内存,找出那些不再被任何引用指向的对象,然后将这些对象占用的内存释放。
2. 什么是Java的多线程,以及它的重要性是什么?答案:- Java的多线程是指在同一个Java虚拟机中同时运行多个线程的能力。
- 多线程可以提高程序的响应性和效率,允许同时执行多个任务,特别是在多核处理器上。
3. 请简述Java中的接口和抽象类的区别。
- 答案:- 接口定义了一组方法规范,但不能包含实现,所有方法默认为public abstract。
- 抽象类可以包含方法的实现,并且可以有非抽象方法。
4. 请解释Java中的泛型是什么,并给出一个简单的例子。
J2EE部分
1、运算符优先级问题,下面代码的结果是多少?(笔试)package test;
public class Test {
public static void main(String[] args) {
int k = 0;
int ret = ++k + k++ + ++k + k;
// ret的值为多少
System.err.println(ret);
}
}
2、运算符问题,下面代码分别输出什么?(笔试)
package test;
public class Test {
public static void main(String[] args) {
int i1 = 10, i2 = 10;
System.err.println("i1 + i2 = " + i1 + i2);
System.err.println("i1 - i2 = " + i1 - i2);
System.err.println("i1 * i2 = " + i1 * i2);
System.err.println("i1 / i2 = " + i1 / i2);
}
}
3、下面代码的结果是什么?还是抛出异常?(笔试)
package test;
public class Test {
public void myMethod(String str) {
System.err.println("string");
}
public void myMethod(Object obj) {
System.err.println("object");
}
public static void main(String[] args) {
Test t = new Test();
t.myMethod(null);
}
}
4、假设今天是9月8日,下面代码输出什么?(笔试)
package test;
import java.util.Date;
public class Test {
public static void main(String[] args) {
Date date = new Date();
System.err.println(date.getMonth() + " " + date.getDate());
}
}
5、下面代码的输出结果是什么?
package test;
public class Test {
public static void main(String[] args) {
double val = 11.5;
System.err.println(Math.round(val));
System.err.println(Math.floor(val));
System.err.println(Math.ceil(val));
}
}
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() {
System.err.println("test");
}
}
class Base {
public void method() throws InterruptedException {
System.err.println("base");
}
}
7、以下代码的结果是什么?
package test;
public class Test extends Base {
public static void main(String[] args) {
new Test().method();
}
public void method() {
System.err.println(super.getClass().getName());
System.err.println(this.getClass().getSuperclass().getName());
}
}
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");
System.err.println(str1.equals(str2));
StringBuffer sb1 = new StringBuffer("abc");
StringBuffer sb2 = new StringBuffer("abc");
System.err.println(sb1.equals(sb2));
}
}
9、输出的结果是什么?
package test;
public class Test {
public static void main(String[] args) {
System.err.println(new Test().method1());
System.err.println(new Test().method2());
}
public int method1() {
int x = 1;
try {
return x;
} finally {
++x;
}
}
public int method2() {
int x = 1;
try {
return x;
} finally {
return ++x;
}
}
}
这样呢?输出什么
package test;
public class Test {
public static void main(String[] args) { System.err.println(method());
}
public static boolean method() {
try {
return true;
} finally {
return false;
}
}
}
10、方法m1和m2有区别吗?什么区别
package test;
public class Test {
public static void main(String[] args) { }
public synchronized void m1() {
}
public static synchronized void m2() {
}
}
11、true or false?理由
package test;
public class Test {
public static void main(String[] args) { Integer i1 = 127;
Integer i2 = 127;
System.err.println(i1 == i2);
i1 = 128;
i2 = 128;
System.err.println(i1 == i2);
}
}
12、true or false?理由
package test;
public class Test {
public static void main(String[] args) { String str1 = "a";
String str2 = "a";
String str3 = new String("a");
System.err.println(str1 == str2);
System.err.println(str1 == str3);
str3 = str3.intern();
System.err.println(str1 == str3);
}
}
13、true or false?理由
package test;
public class Test {
public static void main(String[] args) { System.err.println(12 - 11.9 == 0.1);
}
}。