Java_中级试题
- 格式:docx
- 大小:39.54 KB
- 文档页数:8
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中级笔试题及答案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工程师笔试题(中级)开始时间______________________ 姓名________ 月薪要求(转正税前)_____ 说明:所有题目只需简要描述即可一、基础题(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中级笔试题及答案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软件中级工程师笔试题复杂逻辑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基础知识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)、并发集合类、线程池等,来帮助开发者处理并发问题。
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 的值是()。
-----------------------------------------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"不会被垃圾回收。
全国工业和信息化人才培养工程职业技术考试Java软件工程师(中级)训练题一、填空题1、Java程序的运行必须经过编写、、运行三个步骤。
2、使用命令对java源程序进行编译。
3、Java语言可以利用实现有限制的多重继承。
4、数组中通过可以区分数组中不同的元素。
5、面向对象技术有三个特征,分别是、继承和多态。
6、是在已有类基础上生成新类的过程。
7、关键字可以修饰方法,它所修饰的方法称为类方法或静态方法。
8、子类根据需要可以将继承自父类的方法重新定义以适合子类对象的需要,这种情况称为方法的。
9、一个集合类的对象可以保存和处理其它类的对象,因此集合对象可以称为。
10、把对象实例化可以生成多个对象,使用_________运算符为对象分配内存空间。
11、java程序引入接口的概念,是为了弥补只允许类的________的缺憾。
12、java语言以_______为程序的基本单位,它是具有某些共同特性实体的集合,是一种抽象的概念。
13、抽象方法只能存在于抽象类中。
抽象方法用关键字________来修饰。
14、java语言中_______是所有类的根.15、在java中有一种叫做_______特殊方法,在程序中用它来对类成员进行初始化.16、new是______对象的操作符.17、继承主要强调子类在父类的基础上取”长”补”短”,而______主要强调的是类与类之间的传输18、我们在java程序中,把关键字________加到方法名称的前面,来实现子类调用父类的方法19、java语言中,调用方法时,参数传递是______调用,而不是地址调用20、abstract方法_______(不能或能)与final并列修饰同一个类二、不定项选择题1、关于Java语言,下列说法正确的有()。
A、Java语言是一种面向对象的程序设计语言B、Java 通过自动垃圾回收机制、支持指针类型、字节码验证机制、异常处理机制等保证其安全性C、Java源文件经编译生成与计算机指令无关的字节码,这些字节码不依赖于特定硬件平台和操作系统1 / 12。
1.什么是servlet:在web容器中运行的服务器端JAVA程序,主要用于响应HTTP请求。
Servlet一般用于MVC中的控制器部分。
2.什么是servlet容器:用来管理servlet生命周期的应用程序如(tomcat)。
3.servlet构架:public class servlet extendsHttpServlet{public void init() throws ServletException {}//初始化public void doGet(HttpServletRequest request,HttpServletResponse response)throws IOException,ServletException{}//dogetpublic void doPost(HttpServletRequest request,HttpServletResponse response)throws IOException,ServletException{}//dopostpublic void destroy() {}//销毁servlet对象}4.写Hello Servletpublic class Hello extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {Response.setContentType ("text/html");PrintWriter out = response.getWriter();out.println("<HTML>");out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");out.println(" <BODY>");out.print("Hello");out.println(" </BODY>");out.println("</HTML>");out.flush();out.close();}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doGet(request,response)}}5.servlet的继承关系6.描述servlet容器与servlet API的关系7.什么是JSP Pagejava server page 是servlet的扩展,强调web页面表达,编译后是一个类servlet。
java 中级面试题一、Java中的基本概念Java是一门广泛应用于软件开发领域的高级编程语言,由Sun Microsystems公司于1995年发行。
它具有跨平台的特性,能够在不同的操作系统上运行,如Windows、Linux和Mac OS等。
Java的设计宗旨是“一次编写,到处运行”,因此它成为了许多开发人员的首选语言。
Java面试过程中,会涉及到一些中级的知识点和题目,下面我们将逐一介绍并讨论。
二、面试题目一:Java中的多态性是什么?面试官通常会问到Java中的多态性概念,因为多态性是面向对象编程的重要特性之一。
在Java中,多态性指的是同一个类的实例在不同的情况下表现出不同的行为。
这是通过方法的重载和方法的重写两种方式来实现的。
1. 方法的重载(Overloading):在同一个类中,可以定义多个具有相同名称但参数列表不同的方法。
这样在调用方法时,可以根据传入的参数类型和个数,自动选择调用相应的方法。
例如:```javapublic class Demo {public void print(String str) {System.out.println("String: " + str);}public void print(int num) {System.out.println("Number: " + num);}public static void main(String[] args) {Demo demo = new Demo();demo.print("Hello");demo.print(123);}}```输出结果为:```String: HelloNumber: 123```2. 方法的重写(Overriding):在类的继承关系中,子类可以重写父类中已有的方法,以实现子类特定的功能需求。
子类重写的方法具有相同的名称、参数列表和返回类型。
java中级考试题目及答案1. 题目:以下哪个选项是Java语言的特性?A. 静态类型B. 动态类型C. 编译型D. 解释型答案:A2. 题目:Java中的集合类存放于哪个包中?A. java.utilB. C. java.ioD. ng答案:A3. 题目:以下哪个关键字用于定义Java接口?A. classB. interfaceC. implementsD. extends答案:B4. 题目:Java中创建线程的方法有哪些?A. 实现Runnable接口B. 继承Thread类C. 实现Callable接口D. 以上都是答案:D5. 题目:以下哪个选项是Java异常处理的关键字?A. tryB. catchC. finallyD. 以上都是答案:D6. 题目:Java中,以下哪个关键字用于定义一个类为抽象类?A. abstractB. interfaceC. finalD. static答案:A7. 题目:Java中,以下哪个关键字用于实现多态?A. extendsB. implementsC. superD. this答案:A8. 题目:Java中,以下哪个关键字用于声明一个方法为重载方法?A. overloadB. overloadingC. overloadD. 无关键字,通过方法名和参数列表实现答案:D9. 题目:Java中,以下哪个关键字用于声明一个方法为重写方法?A. overrideB. overloadC. overloadingD. 无关键字,通过方法名和参数列表实现答案:A10. 题目:Java中,以下哪个关键字用于声明一个方法为同步方法?A. synchronizedB. staticC. finalD. abstract答案:A。
Java工程师(中级)笔试题-飞贷金融科技-1、执行如下程序代码后,C的值是( )a=0;c=0;do{--c;a=a-1;}while(a>0);[单选题] *A、0B、1C、-1(正确答案)D、死循环2、下列语句哪一个正确( ) [单选题] *A、Java程序经编译后会产生machine codeB、Java程序经编译后会产生byte code(正确答案)C、Java程序经编译后会产生DLLD、以上都不正确3、下列哪一种叙述是正确的( ) [单选题] *A、abstract修饰符可修饰字段、方法和类B、抽象方法的body部分必须用一对大括号{ }包住C、声明抽象方法,大括号可有可无D、声明抽象方法不可写出大括号(正确答案)4、如下代码段:public void test(int x) {int odd = x % 2;if (odd) {System.out.println("odd");} else {System.out.println("even");}}哪个描述正确( )[单选题] *A. 编译失败.(正确答案)B. "odd" 永远被输出.C. "even" 永远被输出D. "odd" 输出x的值E. "even" 输出x的值5、如下代码段:public static void main(String[] args) {try {badMethod();System.out.print("A");} catch (Exception ex) {System.out.print("C");} finally {System.out.print("B");}System.out.print("D");}public static void badMethod() {throw new Error();}结果是什么( )[单选题] *A、ABCDB、编译失败.C、显示B,退出程序.(正确答案)D、显示B,C,退出程序.E、显示BCD,退出程序.6、以下哪个表达式是不合法的( ) [单选题] *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() : 0;7、关于以下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=10D、编译通过,执行结果为:x=5(正确答案)E、编译通过,执行结果为:x=38、当用命令ls –al查看文件和目录时,欲观看卷过屏幕的内容,应使用组合键( ) [单选题] *A、Shift+HomeB、Ctrl+ PgUp(正确答案)C、Alt+ PgDnD、Shift+ PgUp9、crontab文件由六个域组成,每个域之间用空格分割,其排列如下( ) [单选题] *A、MIN HOUR DAY MONTH YEAR COMMANDB、MIN HOUR DAY MONTH DAYOFWEEK COMMAND(正确答案)C、COMMAND HOUR DAY MONTH DAYOFWEEKD、COMMAND YEAR MONTH DAY HOUR MIN10、Linux有三个查看文件的命令,若希望在查看文件内容过程中可以用光标上下移动来查看文件内容,应使用( )命令 [单选题] *A、catB、moreC、less(正确答案)D、menu11、写出在oracle数据库中,根据id排序并查询出前8条记录的sql语句 [填空题] *_________________________________(答案:select * from (select * from 表名 order by id ) where rownum )12、下面的程序代码输出的结果是多少()import java.util.Date;public class Test extends Date{public static void main(String[] args) {new Test().test();}public void test(){System.out.println(super.getClass().getName());}}[填空题] *_________________________________(答案:Test)13、下面的程序代码输出的结果是多少()public class Test {public static void main(String[] args) {System.out.println(new Test().test());;}static int test(){int x = 1;try{return x;}finally{++x;}}}[填空题] *_________________________________(答案:1) 14、下面的程序代码输出的结果是多少()public class StaticStuff {String str = "456";public static void changerStr(String str){str = "welcome";}public static void main(String[] args){String str = "1234";changerStr(str);System.out.println(str);}}[填空题] *_________________________________(答案:1234)15、下面这段代码可能会抛出什么异常()if(username.equals(“zxx”){[填空题] *_________________________________(答案:空指针异常)16. 列举你用到过的数据传输格式,并举出示例 [填空题]_________________________________17、列举你用到过的应用服务器 [填空题]_________________________________18、列举你用到过的应用服务器 [填空题]_________________________________19、列举你常用的linux命令,并加以说明,至少5个 [填空题]_________________________________20、列举你用到过的网络通讯的中间件产品 [填空题]_________________________________21、大数据量下的分页解决方法(可列举sql server、mysql、oracle的其中一种分页语句) [填空题]_________________________________22、写一个Singleton出来(至少使用2种不同的写法) [填空题]_________________________________23、优化以下代码段代码段一:static public longfactorial( int n ) throws IllegalArgumentException {IllegalArgumentException illegalArgumentException =new IllegalArgumentException( “must be >= 0” );if( n < 0 ) {throw illegalArgumentException ;} else if( ( n > 0 ) || ( n == 1 ) ) {return( 1 );} else (return( n * factorial( n – 1 ) ) ;}代码段二:select * from table1 as t1 where t1.id in (select t2.id from table2 as t2)[填空题]_________________________________24、多线程有几种实现方式,都是什么?什么是线程同步?同步有几种实现方法,都是什么?线程和进程的区别是什么?是否有用过线程池,简述线程池排队的几种配置策略? [填空题]_________________________________25、谈谈对Spring的理解,简述在实际项目过程中用到了哪些Spring相关的技术? [填空题]_________________________________26、Session与Cookie的区别是什么? [填空题]_________________________________27、forward和redirect的区别是什么? [填空题]_________________________________28、对于大数据量、大访问量、高并发的处理,你有什么见解? [填空题]_________________________________29、谈谈你对互联网架构的认识,如果你有互联网经验,请谈谈项目的软件架构组成以及项目的扩展性? [填空题]_________________________________。
java中级练习题1. 编写一个Java程序,接受用户输入的两个整数,然后计算它们的和并输出结果。
```javaimport java.util.Scanner;public class SumCalculator {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("请输入第一个整数: ");int num1 = scanner.nextInt();System.out.print("请输入第二个整数: ");int num2 = scanner.nextInt();int sum = num1 + num2;System.out.println("两个整数的和为: " + sum);scanner.close();}}```2. 编写一个Java程序,判断一个字符串是否为回文。
回文是指正向和反向拼写都相同的字符串。
```javaimport java.util.Scanner;public class PalindromeChecker {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("请输入一个字符串: ");String input = scanner.nextLine();String reversed = "";for (int i = input.length() - 1; i >= 0; i--) {reversed += input.charAt(i);}if (input.equals(reversed)) {System.out.println("是回文字符串");} else {System.out.println("不是回文字符串");}scanner.close();}```3. 编写一个Java程序,求解斐波那契数列的前n个数字。
中级java您的姓名: [填空题] *_________________________________1. 下面哪些是Thread类的方法() *A start()(正确答案)B run()(正确答案)C exit()D getPriority()(正确答案)2. 下面程序的运行结果是:String str1 = "hello";String str2 = "he" + new String("llo");System.err.println(str1 == str2); [填空题] *_________________________________(答案:false) 3. 下面程序的运行结果:()public static void main(String args[]) {Thread t = new Thread() {public void run() {pong();}};t.run();System.out.print("ping");}static void pong() {System.out.print("pong");} [单选题] *A pingpongB pongping(正确答案)C pingpong和pongping都有可能D 都不输出4. 0.6332的数据类型是() [单选题] *A floatB double(正确答案)C FloatD Double5.请简述自己常用的sql优化方法或者注意事项。
[填空题]_________________________________6.throw 和 throws 的区别? [填空题] *_________________________________7.请简述你熟悉的Spring Cloud组件并做简要介绍。
[填空题]_________________________________8.请简要描述一下类加载的执行过程 [填空题]_________________________________9. 请简述@EnableAsync @Async @EnableScheduling @Scheduled 四个注解 [填空题] *_________________________________10.请简述SpringMVC 工作流程 [填空题] *_________________________________。
-----------------------------------------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"不会被垃圾回收。
中兴JA V A试题一、单选1.switch(表达式)语句中,表达式的类型不能为( )A longB byteC charD short2.main方法是Java Application程序执行的入口点,关于main方法的方法头以下哪项是合法的( )A. public static void main()B. public static void main( String args[])C. public static int main( String [] args)D. public void main( String args[])3.下面哪个是short型的取值范围:()A. -27-- 27-1B.0 -- 216-1C.-215-- 215-1D. -231-- 231-14.以下哪项关键字能够作为Interface内定义的Method的修饰符?()A. publicB.finalC.abstractD.protected5.一个函数定义的返回值是float,它不能在return语句中返回的值的类型是()A.charB.floatC.longD.double6.下面不属于JA V A关键字的是()A.instanceofB. finallyC.sizeofD.volatile7.下面程序的输出为:()public class ArrayTest{public static void main (String [] args){Object[] ov;String[] sa= { "Green ", "Blue ", "Red "};ov=sa;System.out.println(“Color=”+ov[1]);}}A.存在编译错误B.输出Color=BlueC.输出Color=GreenD.运行时抛出异常8.字符串t中的字符为()String s = " hypertext"String t = s. substring(2, 5);A. "yper "B. "ype"C. "pert "D. "per"9.有如下程序,请选择一个正确的结果( )class Superclass { }class Subclass extends Superclass { }Superclass a=new Superclass();Subclass b=new Subclass();选择一个正确的来解释下面的语句:b=a;A.编译非法B.编译正确,但运行时可能非法C.运行时正确10.以下哪个方法声明能够被加入到Child类中,编译正确?()public class Parent{public int addValue( int a, int b){return a+b;}}class Child extends Parent{}A.int addValue (int a, int b){// do something…}B.public void addValue (){// do something…}C.pubilc void addValue(int b, int a){//do something…}D.public int addValue(int a, int b)throws MyException{// do something…}11.对于以下的方法体,如果TimedOutException直接继承Exception类,那么哪一个方法声明适合以下的方法体代码?(){success=connect();if (success = =1){throw new TimedOutException();}}A.public void method()B.public void method() throws ExceptionC.public void method() throw TimedOutExceptionD.public throw TimedOutException void method()12.如果需要把一个对象作为key添加到HashMap中,那么该对象至少需要重载Object的哪些方法()A. clone和equalsB. hashCode和cloneC. finalize和cloneD. hashCode和equals13.请问以下陈述哪项是正确的( )A.当一个对象不可到达时,该对象可以被垃圾回收器回收B.只有当没有任何引用指向一个对象时,该对象才能够被回收C.一个对象的finalize方法可能被垃圾回收器多次调用D.finalize方法只能够被垃圾回收器调用14.请问以下哪项陈述是正确的( )A.垃圾回收线程的优先级很高,以保证不再使用的内存将被及时回收B.垃圾收集允许程序开发者明确指定释放哪一个对象C.垃圾回收机制保证了JA V A程序不会出现内存溢出D.进入"Dead"状态的线程将被垃圾回收器回收E.以上都不对15.以下程序的执行结果是()class A{public int n;public String str;}class B{public A[] a;public B() { a= new A[10]; }}class Test{public static void main (String[] args){B b = new B()b.a[0].n = 1;b.a[0].str ="2" ;System.out.println( b.a[0]. Str+b.a[0]. n);}}A.编码错误B.21C.3D.产生NullPointerExceptionE.产生ClassCastException二.是非题1.在不同操作系统下,Java的short数据的取值范围有所不同( ) 2.在Java中,没有无符号的数据类型( )3.Java和C++类似,可以多重继承,一个子类继承多个父类( ) 4.Java程序中,只有属于同一个包的java类才能互相访问( )5.不需要import一个类,就可以通过反射方式创建该类的实例( )三.简答题1.什么是抽象类和接口?他们的特点是?2.现有两种方法(以JComboBox示例):1. JComboBox box = new JComboBox();for(int I =0; I<numItems;I++){box.addItem(new Integer(I);}2.Vector v = new Vector(numItems);for(int I=0;l<numItems;I++){v.add(new Integer(I));}ComboBoxModel model = new DefaultComboBoxModel(v);JComboBox box = new JComboBox(model);请问哪种方式更快为什么?3.为什么使用final后会提高程序的性能?在什么情况下使用final? 4.有哪些方法可以优化Java程序的性能?如何定位性能瓶颈?5.什么是内存泄漏?JVM一般在什么情况下开始垃圾回收?。
-----------------------------------------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行。