Java_中级试题
java中级试题及答案

java中级试题及答案1. 以下哪个选项是Java语言的特性?A) 面向对象B) 面向过程C) 面向函数D) 面向数组答案:A2. Java中,哪个关键字用于定义一个类?A) classB) interfaceC) structD) def答案:A3. 以下哪个选项是Java中创建对象的正确方式?A) new Object();B) new object();C) new ObjectD) object.new()答案:A4. Java中,哪个关键字用于捕获异常?A) tryB) catchD) all of the above答案:D5. 在Java中,哪个关键字用于定义一个接口?A) classB) interfaceC) abstractD) package答案:B6. 下列哪个选项是Java中实现多态的方式?A) 继承B) 封装C) 多线程D) 泛型答案:A7. 在Java中,下列哪个数据类型是基本数据类型?A) StringB) intC) ArrayListD) HashMap答案:B8. Java中,哪个关键字用于定义一个方法?A) functionC) defD) void答案:D9. 在Java中,哪个关键字用于声明一个变量?A) varB) letC) constD) val答案:A10. Java中,哪个关键字用于实现内部类?A) innerB) nestedC) inner classD) class答案:C11. 下列哪个选项是Java集合框架中的接口?A) ListB) MapC) SetD) All of the above答案:D12. 在Java中,哪个关键字用于实现单例模式?A) synchronizedB) volatileC) transientD) final答案:D13. Java中,哪个关键字用于定义一个枚举类型?A) enumB) constC) finalD) static答案:A14. 在Java中,哪个关键字用于强制类型转换?A) castB) typeC) convertD) as答案:A15. Java中,哪个关键字用于定义一个泛型类?A) genericB) templateC) typeD) class答案:D。
java中级笔试题及答案2020

java中级笔试题及答案20201. 题目一:Java 基础问题:请写出Java中实现多态的三种方式。
答案:在Java中实现多态主要有以下三种方式:1. 方法重载(Overloading):在同一个类中定义多个同名方法,但参数列表不同。
2. 方法重写(Overriding):子类覆盖父类的方法,子类方法与父类方法具有相同的方法名、返回类型和参数列表。
3. 接口实现:通过实现接口中的方法来实现多态。
2. 题目二:Java 集合框架问题:简述ArrayList和LinkedList的区别。
答案:ArrayList和LinkedList都是实现了List接口的集合类,它们的区别主要体现在:1. ArrayList是基于动态数组实现的,而LinkedList是基于双向链表实现的。
2. ArrayList在随机访问时速度更快,因为链表需要从头开始遍历。
3. LinkedList在添加和删除元素时速度更快,因为链表可以直接在任意位置添加或删除节点。
4. LinkedList比ArrayList更占内存,因为LinkedList需要存储额外的节点指针。
3. 题目三:Java 异常处理问题:请解释Java中的checked异常和unchecked异常的区别。
答案:Java中的异常分为checked异常和unchecked异常:1. Checked异常:编译器在编译时会检查的异常,必须在方法声明中使用throws关键字抛出或在方法体内使用try-catch语句捕获处理。
2. Unchecked异常:编译器不会检查的异常,包括RuntimeException及其子类。
它们在运行时才会被抛出,不需要在方法声明中使用throws关键字。
4. 题目四:Java 线程问题:描述Java中实现线程同步的两种方式。
答案:Java中实现线程同步主要有两种方式:1. 使用synchronized关键字:可以修饰方法或代码块,确保同一时间只有一个线程执行该段代码。
开发人员(中级)考试试题答案

第一部分JA V A基础知识一、选择题答案(10分)1、A 2:、B 3、B 4、A 5、B二、编程题1、下面这段程序的运行结果是什么?(5分)答案:名称[0]名称[1]名称[2]名称[3]名称[4]名称[5]名称[6]名称[7]名称[8]名称[9]2、下面的程序是一个给应用提供获取客户信息的工厂类,请分析下面这段程序存在什么BUG,会导致什么样的严重问题,并分析清楚原因。
(10分)答案:答“会存在数据跟数据库中数据不一致的情况的”,得2分;答“会导致内存溢出错误的”,得10分。
3、有一个数字字符串,数字间以“,”分隔,请编写一个Java类,实现按数字大小升序和逆序排序,并输出结果。
(10分)参考答案:public class NumberSort{public static void sortAsc(String numberStr){if(numberStr==null || numberStr.trim().length()==0)throw new IllegalArgumentException("数字字符串不能为空");String[] numbers=numberStr.split(",");int[] integers=new int[numbers.length];for(int i=0;i<numbers.length;i++){integers[i]=Integer.parseInt(numbers[i]);}Arrays.sort(integers);System.out.println(“按升序排序:”);for(int i=0;i<integers.length;i++){System.out.print(integers[i]+" ");}System.out.println();}public static void sortDesc(String numberStr){if(numberStr==null || numberStr.trim().length()==0)throw new IllegalArgumentException("数字字符串不能为空");String[] numbers=numberStr.split(",");int[] integers=new int[numbers.length];for(int i=0;i<numbers.length;i++){integers[i]=Integer.parseInt(numbers[i]);}Arrays.sort(integers);System.out.println(“按降序排序:”);for(int i=0;i<integers.length;i++){System.out.print(integers[i]+" ");}System.out.println();}public static void main(String[] args){String numberStr= "67,2,45,9,36,42,99,432,0,-1";sortAsc(numberStr);sortDesc(numberStr);}}4、请编写一个金额的中文转换类,能够将金额字符串转换成中文的大写输出,如9,458.25转换成:¥玖仟肆佰伍拾捌圆贰角伍分;8,865.00转换成捌仟捌佰陸拾伍圆整。
Java工程师笔试题中级

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笔试题(附参考答案)(完整资料).doc

此文档下载后即可编辑中级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中级笔试题及答案2015

java中级笔试题及答案20151. Java 基础- 1.1 以下哪个选项是Java语言的特性?A. 面向对象B. 面向过程C. 面向组件D. 面向服务答案:A- 1.2 Java中,以下哪个关键字用于实现多态?A. finalB. abstractC. interfaceD. implements答案:B2. 面向对象编程- 2.1 请解释Java中的封装、继承和多态。
答案:封装是指将对象的状态(属性)和行为(方法)封装在一起,隐藏其内部实现细节,仅通过方法来访问和修改对象的状态。
继承是指一个类(子类)继承另一个类(父类)的属性和方法,从而实现代码的复用。
多态是指允许不同类的对象对同一消息做出不同的响应,即同一个接口可以被不同的对象以不同的方式实现。
- 2.2 以下哪个关键字用于定义接口?A. classB. interfaceC. abstractD. final答案:B3. 异常处理- 3.1 Java中,try-catch语句块的作用是什么?答案:try-catch语句块用于捕获和处理程序执行过程中可能抛出的异常。
try块包含可能会抛出异常的代码,catch块则包含异常发生时的处理代码。
- 3.2 以下哪个关键字用于声明一个方法可以抛出异常?A. throwsB. throwC. catchD. try答案:A4. 集合框架- 4.1 Java集合框架中,List和Set的主要区别是什么?答案:List是一个有序集合,可以包含重复元素,而Set是一个无序集合,不允许包含重复元素。
- 4.2 如何在Java中创建一个ArrayList?答案:可以通过调用ArrayList的构造函数来创建一个ArrayList,例如:```javaList<String> list = new ArrayList<String>();```5. 多线程编程- 5.1 请解释Java中线程的启动方式。
java软件中级工程师笔试题复杂逻辑

java软件中级工程师笔试题复杂逻辑J2EE部分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();}@Overridepublic 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、输出的结果是什么?package test;public class Test {public static void main(String[] args) {}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) { }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;i1 = 128;i2 = 128;}}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");str3 = str3.intern();}}13、true or false?理由package test;public class Test {public static void main(String[] args) { }}14、以下代码输出是什么?package test;public class Test {public static void main(String[] args) {BigInteger one = new BigInteger("1");BigInteger two = new BigInteger("2");BigInteger three = new BigInteger("3"); BigInteger sum = new BigInteger("0");sum.add(one);sum.add(two);sum.add(three);}}15、输出的结果是什么?12345?根据单词排序?还是?package test;public class Test {public static void main(String[] args) {Set set = new HashSet();set.add("one");set.add("two");set.add("three");set.add("four");set.add("five");for (Iterator it = set.iterator(); it.hasNext();) {}}}16、以下代码输出的结果(笔试选择题)public class Test {public static void main(String[] args) {}}A. nullB. 0C. Test17、下面为一个单例的实现代码,请指出代码中有几个错误或不合理之处,并改正。
中级java工程师面试题

中级java工程师面试题一、Java基础知识1. 请解释Java的基本特性。
答:Java具有以下基本特性:简单性、面向对象、平台独立性、多线程、安全性、健壮性和动态性。
简单性体现在语法上的清晰和简洁;面向对象则是指Java支持封装、继承和多态等面向对象编程的概念;平台独立性意味着Java程序可以在任何支持Java虚拟机(JVM)的平台上运行;多线程使得Java能够同时执行多个操作,提高了程序的效率;安全性则是指Java提供了一系列的安全特性,如异常处理和垃圾回收机制;健壮性体现在Java的强类型检查和错误检测能力;动态性则是指Java支持动态加载、运行时检查等特性。
2. 什么是JVM,JRE和JDK?答:JVM(Java虚拟机)是运行Java程序的虚拟机环境,负责将Java 字节码解释执行或通过即时编译器(JIT)编译为本地机器码执行。
JRE(Java运行环境)包括JVM和运行Java程序所需的核心类库和支持文件。
JDK(Java开发工具包)则包含了JRE和开发Java应用程序所需的编译器、调试器等工具。
3. 描述Java中的垃圾回收机制。
答:垃圾回收(Garbage Collection, GC)是Java自动内存管理的一部分,负责回收不再使用的对象所占用的内存。
Java中的对象会在没有引用指向它们时变成垃圾,GC会定期或根据内存需求来执行回收过程。
这个过程包括标记无用对象、清除这些对象以及压缩内存空间。
垃圾回收提高了程序的性能和稳定性,但也可能导致程序的暂停。
二、Java进阶知识1. 请解释Java中的多线程和并发。
答:多线程是指在单个程序中并行执行多个线程,每个线程执行独立的任务。
Java通过Thread类和Runnable接口来支持多线程编程。
并发是指多个任务在宏观上同时进行,在微观上交替执行。
Java提供了多种并发工具,如同步块(synchronized block)、并发集合类、线程池等,来帮助开发者处理并发问题。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
-----------------------------------------Part I ,总计70分----------------------------------------------------一、单选题(共12题,每题2分,共24分)1.下面关于Java的表述有错误的是________A.Java中没有sizeof操作符,所有数据类型的长度都是确定的,与平台无关。
B.在Java中,局部变量不会被自动初始化,需要显式的赋初值。
C.Java中的instanceof运算符,可以判断一个对象是否属于某个类的实例。
D.一个Java文件里可以有多个public类,但Java文件名必须和包含main方法的那个public类名精确一致。
2.下面关于Java中static关键字的表述错误的是________A.被static修饰的类成员变量在编译时由内存分配一块空间,直到程序停止运行才会被释放。
B.被static修饰的类方法只能访问其自身类未被static修饰的实例方法,而不能访问其他类的。
C.被static修饰的类方法不能使用this关键字。
D.在没有创建该类的对象时,该类中用static修饰的类方法就可以被调用。
3.下面关于Java中abstract关键字的表述有错误的是________A.用abstract修饰不在类内实现的方法,称为抽象方法;抽象方法必须在子类派生时被重载。
B.用abstract修饰的类为抽象类;抽象类可以同时被static或final关键字修饰。
C.抽象类中不一定包含抽象方法,但包含抽象方法的类一定要声明为抽象类。
D.如果一个类被定义为抽象类,则该类不能进行实例化。
4.下面关于Java中垃圾回收(gc)的表述有错误的是_______A.在String str1 = "Hello";String str2 = str1;str1 = null;中,对象"Hello"不会被垃圾回收。
B.调用Runtime.getRuntime().gc()会立即启动垃圾回收线程对当前程序进行垃圾回收。
C.调用Systmer.gc()只是提示垃圾回收器进行垃圾回收操作,但并不保证gc线程立即启动。
D.当垃圾回收器将要释放无用对象的内存时,先调用该对象的finalize()方法。
5.下面关于Java中接口(interface)的表述有错误的是________A.在接口中定义的常量可以被多个类共享,具有public,final,static属性,可被任意类访问。
B.接口中只对方法进行声明而没有实现体,而且用分号结尾,具有public和abstract属性C.子接口中定义了与父接口同名的常量或者相同的方法,则父接口的常量被隐藏,方法被重写D.实现接口的类必须实现接口和其父接口中的所有方法。
6.下面哪个方法不属于String类提供的______A.IndexOf()B.getChar2()C.replace()D.append()7.在Java多线程中,调用下面哪种方法不会使线程进入阻塞状态?________B.suspend()C.wait()D.yield()8.下面程序被编译运行时,下面哪些描述是正确的_________。
class B{public int f(int i){return i+i;}public int f(int i, int j){return i+j;}public int f(char c){return c;}}public class Test extends B{public int f(int i, int j){return super.f(i,j);}public int f(int j){return -j;}public static void main(String[] args){B x = new Test();System.out.println(x.f(5,10)+" "+x.f(4)+" "+x.f('A'));}}A.编译不通过,B x = new Test() 出错,类型不匹配B.编译不通过,原因是B.f(char c),一个char类型不能直接当做int类型返回C.编译通过,运行输出结果是15 -4 65D.编译通过,运行输出结果是15 8 659.下面哪个类或接口定义了wait()、notify()、notifyAll()方法_______A.ng.ThreadB.ng.RunnableC.ng.ObjectD.ng.TreadGroup10.在Java API文档中,下面的哪部分未被包括在内_______A.类的用途的描述B.类层次C.父类方法的列表D.成员变量的列表11.下面列出的修饰符中,哪一个用来修饰方法(method)要求此方法必须显式地获得某个对象才能执行________A.finalB.synchronizedC.static12.下面的各种异常中,哪种异常在一个方法中没有声明抛出此异常时也可以在其方法体中直接抛出________A.ng.ClassNotFoundExceptionB.ng.ExceptionC.ng.NullPointerExceptionD.java.ioException二、多选题(共5题,每题3分,共15分)1.下面对操作系统中线程和进程的表述有错误的是_______A.进程是程序的运行实例,它包含内存和资源,而线程是由进程进一步派生出来的一组代码的执行过程B.每个进程都有一个主线程,还可以建立另外的线程。
进程中的线程是并行执行的,每个线程占用CPU 的时间由此进程来调度。
C.进程中的所有线程共享进程的虚拟地址空间,这意味着所有线程都可以访问进程的全局变量和资源。
D.进程中的每个线程的声明周期都在该进程中,每个线程都有自己的私有虚拟地址空间。
2.下面关于HashMap与Hashtable区别的表述正确的是______A.HashMap与Hashtable采用的hash/rehas算法基本一致。
B.HashMap允许将null作为一个entry得key或value,而Hashtable不允许。
C.HashMap与Hashtable都是Map interface的实现。
D.Hashtable的方法是syncronized的,而HashMap不是,因此HashMap非线程安全3.对于一个abstract的method,不能用下面哪个Java关键字同时修饰_______A.staticB.nativeC.synchronizedD.final4.下面关于Java中Vector、ArrayList、LinkedList的表述正确的是_______A.这三个类都实现了java.util.List接口,但只有Vector是线程安全的B.ArrayList与Vector在从指定位置用index检索一个元素的时候,时间开销是O(1) C.LinkedList在插入、删除任意位置元素的时间开销都是O(1),但它在索引一个元素的时候比较慢,为O(i),其中i是索引的位置。
D.当向这几种类型中增加元素时,如果数目超出了其目前的长度,Vector缺省情况下自动增长原来一倍的长度,而ArrayList与LinkedList则增长50%的长度。
5.在J2EE中,JSP可以使用下列哪些技术对客户端会话状态进行跟踪__________A.建立匿名的表格字段B.使用URL重写C.使用持久化CookiesD.使用session会话机制三、填空题(共5题,每题3分,共15分)1.下面程序的运行结果为_________public class Test{public static void main(String[] args){B obj = new B();}}class A{static {System.out.print("X");}public A(){System.out.print("A");}}class B extends A{static {System.out.print("Y");}public B(){System.out.print("B");}}2.下面程序的运行结果为_________public class Test{public static void main(String[] args){Sub obj = new Sub();obj.print();}}class Base{public String s = "X";public void print(){System.out.print(s);printAgain();}public void printAgain(){System.out.print("A");}}class Sub extends Base{public String s = "Y";public void printAgain(){System.out.print("B");}}3.下面程序的运行结果为________public class Test{static int func(int i, int j){try{return i/j;}catch(ArithmeticException e){System.out.print("A");return 0;}catch(Exception e){System.out.print("B");return 0;}finally{System.out.print("C");}}public static void main(String[] args){System.out.println(func(10,0));}}4.下面程序的运行结果为_______class A{void func1(){System.out.print("A");}}class B extends A{void func2(){System.out.print("B");}}class C extends B{void func2(){System.out.print("C");}}public class Test{public static void main(String[] args){B obj = new C();obj.func1();obj.func2();}}5.请填写下面程序的输出结果class A{int a = 1;}public class Test{public static void main(String[] args){A obj1 = new A();A obj2 = new A();A obj3 = obj1;String s1 = new String("abc");String s2 = new String("abc");String s3 = "abc";System.out.println(obj1 == obj2);System.out.println(obj1.equals(obj2));System.out.println(obj1 == obj3);System.out.println(s1 == s2);System.out.println(s1.equals(s2));System.out.println(s1.equals(s3));}}四、简答题(共3题,前两题每题5分,最后一题6分,共16分)1.请编写一个函数func(),将此函数的输入参数(int型)逆序输出显示,如54321 –> 12345,要求使用递归,并且函数体代码不超过8行。