Java软件中年级工程师笔试题复杂逻辑
java笔试题及答案

java笔试题及答案在这篇文章中,我将为大家提供一些常见的Java笔试题及其答案。
无论你是准备面试还是进行自我评估,这些问题都能帮助你进一步了解Java编程语言和相关概念。
请您放心,以下笔试题的解答均为准确的,并能满足您的需求。
1. 什么是Java中的包(package)?答:Java中的包是用来组织类和接口的一种机制。
它将相关的类和接口放在一个单独的包中,从而使得代码更易于管理和维护。
可以将包理解为文件夹,类和接口则是包内的文件。
2. Java中的四种访问修饰符是什么?分别解释它们的作用。
答:四种访问修饰符分别是public、protected、private和default (即没有修饰符)。
它们用于限定类、成员变量和方法的访问范围。
具体作用如下:- public:可以被任何类访问。
- protected:可以被同一包内的类和子类访问。
- private:只能被所属类访问。
- default:只能被同一包内的类访问。
3. 什么是静态变量和静态方法?它们有什么特点?答:静态变量(static variable)是指在类中声明的变量,被所有该类的对象所共享。
静态方法(static method)是指在类中声明的方法,可以直接通过类名调用,无需创建对象。
静态变量和静态方法的特点如下:- 它们属于类而不是对象,因此可以在没有对象的情况下访问。
- 静态变量在内存中只有一个副本,所有对象共享该变量。
- 静态方法无法访问非静态成员,因为非静态成员属于对象,而静态方法没有隐式的对象引用。
4. Java中的重载(overload)和重写(override)有什么区别?答:重载是指在一个类中定义多个方法,具有相同的名称但参数类型或个数不同。
重载实现了多态性,可以根据不同的参数类型或个数选择调用相应的方法。
而重写是指子类重新定义父类的方法,并使用相同的名称、参数和返回类型。
重写实现了多态性,可以在运行时动态选择调用子类的方法还是父类的方法。
Java软件开发工程师笔试题及答案

Java软件开发工程师笔试题及答案考试时间:120分钟姓名:___________ 成绩:___________一、选择题(共40题,每题2分)1.下列表达式正确的( )A、byte b = 128;B、boolean flag = null;C、float f = 0.9239;D、long a = 2147483648L;2.下列运算符合法的是( )A、&&B、<>C、ifD、:=、3.如下哪个不是java的关键字( )A、constB、NULLC、ifD、this4.提供Java存取数据库能力的包是( )A、java.sqlB、java.awtC、ngD、java.swing5.下列哪一种叙述是正确的( )A、abstract修饰符可修饰字段、方法和类B、抽象方法的body部分必须用一对大括号{ }包住C、声明抽象方法,大括号可有可无D、声明抽象方法不可写出大括号6.关于源文件,下列说法错误的是( )A、一个源文件里可以有多个class声明B、一个源文件里只能有一个class用public修饰C、源文件的名称只要和源文件里任意一个类名相同即可D、在开发的时候,如果两个类不存在嵌套关系,最好是一个源文件只有一个类7.已知表达式int m [ ] = {0,1,2,3,4,5,6};下面哪个表达式的值与数组下标量总数相等( )A、m.length()B、m.lengthC、m.length()+1D、m.length-18.下列程序的输出结果是()String str = null;System.out.println(a+2);A、2B、”2”C、”null2”D、” null+2”9.下列程序的输出结果是()int a = 012;int b = a < < 1;System.out.println(b);A、20B、24C、falseD、2110.下列程序的输出结果是()int a = 0x12;int b = a < < 1;System.out.println(b);A、36B、24C、falseD、2111.下列程序的输出结果是()int a = 23;int b = 5;System.out.println(a % b);A、4B、3C、4.6D、012.下列程序的输出结果是()double a = 23.0;double b = 5.0;System.out.println(a % b);A、4B、3C、4.0D、3.013.下列程序的输出结果是()int i = 2;i = i ++;int j = i ++;System.out.println(i+”, ”+j);A、2, 1B、2, 2C、2, 3D、3, 214.关于线程设计,下列描述正确的是()A、线程对象必须实现Runnable接口;B、启动一个线程直接调用线程对象的run()方法;C、Java提供对多线程同步提供语言级的支持;D、一个线程可以包含多个进程;15.欲构造ArrayList类得一个实例,此类继承了List接口,下列哪个方法是正确的()A、ArrayList myList = new Object();B、List myList = new ArrayList();C、ArraylList myList = new List();D、List myList = new List();16.下哪一个类型不能作为switch语句表达式的类型()A、intB、charC、StringD、short17.下面哪行代码有编译问题()public class Test{public void Test(){ //①}public Test(String str){ //②System.out.println(str);}public static void main(String[] args){Test t1 = new Test(); //③Test t2 = new Test(“hello”); //④}}A、①B、②C、③D、④18.关于Map和List,下面说法正确的是()A、Map继承ListB、List中可以保存Map或ListC、Map和List只能保存从数据库中取出的数据D、Map的value可以是List或Map19.下列描述正确的是()A、数组是一种对象B、数组属于一种原生类C、int number=[]={31,23,33,43,35,63}D、数组的大小可以任意改变20.关于package,下列说法不正确的是()A、package的作用是可以对类进行分类管理B、package提供了包一级的封装C、package语句不必是类的第一条非注释代码D、package声明的包可以有子包,但两个子包的名称不能相同21.关于权限修饰符,下列说法错误的是()A、权限修饰符可以用来修饰类和类的成员B、public权限最大,可以跨包访问C、protected权限允许在同一个包访问D、类不能用private修饰22.下列哪种说法是正确的()A、实例方法可直接调用超类的实例方法B、实例方法可直接调用超类的类方法C、实例方法可直接调用其他类的实例方法D、实例方法可直接调用本类的类方法23.阅读下面的程序public class X extends Thread implements Runnable{public void run(){System.out.println("this is run()");}public static void main(String args[]){Thread t=new Thread(new X());t.start();}}正确的判断是()A、第一行会产生编译错误B、第六行会产生编译错误C、第六行会产生运行错误D、程序会运行和启动24.阅读下面的程序public class A{private int value;public A(int value){setValue(value);}public setValue(int value){this.value = value;}}public class Test{public static void main(String[] args){int i = 1;A a = new A(1);modify (i);modify (a);}public static void modify(int i){i = 10;}public static void modify (A a){a.setValue(10);}}关于main方法的执行,正确的判断是()A、i的值改变了,a的成员变量的值改变了B、i的值改变了,a的成员变量的值没有改变C、i的值没有改变,a的成员变量的值改变了D、i的值没有改变,a的成员变量的值没有改变25.关于eqauls方法,下列说法错误的是()A、用==判断两个对象相等B、用对象的eqauls方法判断两个对象相等C、根类Object的eqauls方法的实现机制是判断参数指向的对象和自身是否为同一个对象D、如果我们要判断对象相等,通常需要覆盖eqauls方法26.下面哪行代码有编译问题()public class Test{public static void main(String[] args){int[] a = {}; //①String[] str = {}; //②a = new int[]{}; //③str = {”1”,”2”}; //④}}A、①B、②C、③D、④27.下面哪种定义一个二维数组的方式是错误的()A、int[][] a = new int[5][];B、int[][] a = new int[][5];C、int[][] a = {};D、int[][] a = {{}};28.String s=new String(“hello”);String t =new String(“hello”);char c [ ] ={‘h’,’e’,’l’,’l’,’o’};下列哪些表达式返回true()(多选)A、s.equals(t);B、t.equals(c);C、s= =tD、t.equals (new String(“hello”));29.阅读下面代码:String str1 = “abc”;String str2 = new String(“abc”);boolean b1 = str1 == str2;boolean b2 = str1.eqauls(str2);判断正确的是()A、b1的值为true,b2的值为trueB、b1的值为false,b2的值为trueC、b1的值为true,b2的值为falseD、b1的值为false,b2的值为false30.对于下列代码:public class Parent {public int addValue (int a ,int b ){int s;s = a + b;return s;}}class Child extends Parent {}下述哪个方法可以加入类Child()A、int addValue(int a ,int b){//do something…}B、public void addValue(){//do something…}C、public int addV alue(){//do something…}D、public int addValue( int a, int b )throws MyException {//do some thing…}31.关于异常(Exception),下列说法错误的是()A、异常的基类为Exception,所有异常都必须直接或者间接继承它B、异常可以用try{ . . .}catch(Exception e){ . . .}来捕获并进行处理C、如果某异常继承RuntimeException,则该异常可以不被声明D、异常可以随便处理,而不是抛给外层的程序进行处理32.下列关于栈的叙述正确的是()A、栈是非线性结构B、栈是一种树状结构C、栈具有先进先出的特征D、栈具有后进先出的特征33.有关线程的哪个叙述是错误的()A、一旦一个线程被创建,它就立即开始运行。
Java开发工程师招聘笔试题及解答2024年

2024年招聘Java开发工程师笔试题及解答(答案在后面)一、单项选择题(本大题有10小题,每小题2分,共20分)1、以下哪个不是Java中的基本数据类型?A、intB、floatC、StringD、boolean2、在Java中,以下哪个关键字用于声明一个类?A、classB、structC、enumD、interface3、关于Java中的String类,以下描述正确的是:A. String类是final类,无法继承。
B. String类是可变的,可以对其进行修改。
C. String类是可变的,每次对String对象的操作都会创建新的对象。
D. String类是不可变的,每次对String对象的操作都会创建新的对象。
4、关于Java中的垃圾回收机制,以下描述不正确的是:A. 垃圾回收器可以自动回收不再使用的对象占用的内存空间。
B. 垃圾回收机制是Java自动管理内存的一种方式,程序员无需手动释放内存。
C. 垃圾回收器会定期检查并回收那些不再有引用的对象。
D. 堆内存中的所有对象在不再有引用后,会自动关联到垃圾回收机制中,即成为垃圾,等待垃圾回收器来回收。
5、以下哪个Java版本正式支持模块化系统“Java Platform Module System”(JPMS)?A、Java 8B、Java 9C、Java 10D、Java 116、在Java中,以下哪个关键字用来声明一个线程?A、threadB、runC、ThreadD、start7、以下哪个关键字是Java中用于实现多线程的同步机制?A. synchronizedB. transientC. volatileD. static8、以下哪个选项不是Java中的访问修饰符?A. privateB. publicC. protectedD. friendly9、在Java中,以下哪个选项不是访问修饰符?A. publicB. privateC. protectedD. friend 10、下列关于Java异常处理的说法中,哪一个是正确的?A. Java程序必须捕获并处理所有抛出的异常。
java常见基础知识笔试题

java常见基础知识笔试题Java常见基础知识笔试题:一、Java基础语法1. 请解释Java中的变量和常量有什么区别?2. 请问Java中的关键字有哪些?请列举出来。
3. 请解释Java中的注释有哪几种形式?4. 请说一下Java的数据类型有哪些?5. 请解释Java中的运算符有哪些?二、面向对象1. 请解释面向对象的三大特性是什么?2. 请解释Java中的继承,多态,封装和抽象类分别是什么?3. 请解释Java中的接口是什么?4. 请解释Java中的重载和重写有什么区别?5. 请解释Java中的构造方法和普通方法有何区别?三、异常处理1. 请解释Java中的异常处理机制是什么?2. 请解释Java中的异常分类有哪些?3. 请解释Java中的异常处理关键字try,catch,finally的作用分别是什么?4. 请解释Java中的自定义异常是什么?5. 请解释Java中的异常链是什么?四、集合类1. 请解释Java中的集合类有哪些?2. 请解释Java中的ArrayList和LinkedList的区别。
3. 请解释HashSet和TreeSet的区别。
4. 请解释HashMap和TreeMap的区别。
5. 请解释Java中如何遍历一个集合?五、多线程1. 请解释Java中的线程是什么?2. 请解释Java中的线程实现方式有哪些?3. 请解释Java中的线程池是什么?4. 请解释Java中的synchronized关键字是做什么的?5. 请解释Java中的volatile关键字是做什么的?六、IO流1. 请解释Java中的IO是什么?2. 请解释Java中的字节流和字符流有什么区别?3. 请解释Java中的输入流和输出流有什么区别?4. 请解释Java中的文件读写操作步骤是什么?5. 请解释Java中的RandomAccessFile是什么?以上是java常见基础知识笔试题。
希望这些问题能够帮助读者熟悉Java的基础语法、面向对象、异常处理、集合类、多线程以及IO流的相关知识,在笔试中更好地发挥自己的能力。
Java软件开发工程师笔试题

Java软件开发工程师笔试题下面CN人才网小编为大家带来的是Java软件开发工程师笔试题,希望对大家有所帮助~一、选择题(本大题20 小题,每小题2分.共40分)。
1.在JAVA中,如果父类中某些方法不包含任何逻辑,并且需要由子类重写.应该使用( )关键字来声明父类的这些方法:A) final B) static C) abstract D) void2.在JAVA中,已定义两个接口B和C,要定义一个实现这两个接口的类,以下语句正确的是( )。
A) interface A extend B,C B) interface A implements B,CC) class A implements B,C D) class A implements B, implements C3.在JAVA接口中可以定义( )。
A) 静态方法B) 常量C) 构造方法D) 抽象方法4.假设A有构造方法A (int a),则在类A的其他构造方法中调用该构造方法和语句格式应为( )。
A) A(X) B) this.A(x) C) this(x) D) super(x)5.设x = 1 ,y = 2 , z = 3, 则表达式y+=z--/++x 的值是( )。
A) 3 B) 3.5 C) 4 D) 56.下列关于继承的说法哪个正确?( )。
A)子类只继承父类public方法和属性:B)子类继承父类的非私有属性和方法:C)子类继承父类的方法,而不继承父类的属性:D) 子类将继承的所有的属性和方法.7.在java中.在使用JDBC时。
对于多次调用同一条SQL语句的情况, 使用( )通常会提高效。
A) Statement B) CallableStatementC) PreparedStatement D) PrarmeterStatement8.下列不能控制一个Servlet的生命周期方的法是:A) service B) destroy C) doPost D) init9.能够给一个byte型变量赋值的范围是( )。
中级Java软件开发工程师笔试题(附答案)

中级Java软件开发工程师笔试题(附答案)问题:中级Java软件开发工程师笔试题(附答案)回答: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 strl = Hello String str2 = str1;str1 = null; 中,对象Hello不会被垃圾回收。
java 逻辑思维笔试题

以下是一些Java 逻辑思维笔试题,这些试题可以帮助你测试自己的逻辑思维能力以及Java 编程技能:
1.给定一个整数数组,找出数组中是否存在两个不同的数字,它们之间的差的绝对值等于
给定的数字k。
2.给定一个字符串,判断该字符串是否为回文字符串。
3.给定一个整数数组,找出数组中的最大值和最小值,并计算它们的差值。
4.给定一个整数数组,找出数组中是否存在重复的元素。
5.给定一个字符串,将字符串中的每个字符转换为其对应的ASCII 码值,并输出结果。
6.给定一个整数数组,找出数组中是否存在三个不同的数字,它们之和等于给定的数字k。
7.给定一个字符串,判断该字符串是否为偶数个字符。
8.给定一个整数数组,找出数组中是否存在两个不同的数字,它们之间的和等于给定的数
字k。
9.给定一个整数数组,找出数组中是否存在三个不同的数字,它们之积等于给定的数字k。
10.给定一个字符串,将字符串中的每个字符转换为其对应的字母在字母表中的下一个字
母,如果已经是字母表的最后一个字母,则将其转换为第一个字母。
输出转换后的字符串。
12道JAVA笔试题及答案

笔试题(答对要点即可得分)1.接口与抽象类的区别Java接口和Java抽象类最大的一个区别,就在于Java抽象类可以提供某些方法的部分实现,而Java接口不可以(就是interface中只能定义方法,而不能有方法的实现,而在abstract class中则可以既有方法的具体实现,又有没有具体实现的抽象方法)一个抽象类的实现只能由这个抽象类的子类给出,也就是说,这个实现处在抽象类所定义出的继承的等级结构中,而由于Java语言的单继承性,所以抽象类作为类型定义工具的效能大打折扣。
在这一点上,Java接口的优势就出来了,任何一个实现了一个Java接口所规定的方法的类都可以具有这个接口的类型,而一个类可以实现任意多个Java接口,从而这个类就有了多种类型。
2.字节流与字符流的区别字节流在操作的时候本身是不会用到缓冲区(内存)的,是与文件本身直接操作的,而字符流在操作的时候是使用到缓冲区的字节流在操作文件时,即使不关闭资源(close方法),文件也能输出,但是如果字符流不使用close方法的话,则不会输出任何内容,说明字符流用的是缓冲区,并且可以使用flush方法强制进行刷新缓冲区,这时才能在不close 的情况下输出内容3.==与equals的区别在JAVA中利用"=="比较变量时,系统使用变量在"栈"中所存的值作为比较的依据。
基本数据类型在"栈"中存的是其内容值,而对象类型在"栈"中存的是地址,这些地址指向"堆"中的对象。
ng包中的Object类有public boolean equals(Object obj)方法,它比较两个对象是否相等。
其它对象的equals方法仅当被比较的两个引用指向的对象内容相同时,对象的equals()方法返回true。
总之,"=="和"!="比较的是地址.也可认为"=="和"!="比较的是对象句柄;而equals()比较的是对象内容.或者说,,"=="和"!="比较的是"栈"中的内容,而equals()比较的是"堆"中的内容.4.Js变量的生命周期根据作用范围来区分,超出作用范围就会失效如果为全域变量,页面关闭才失效。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
J2E E部分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<String> set = new HashSet<String>();set.add("one");set.add("two");set.add("three");set.add("four");set.add("five");for (Iterator<String> it = set.iterator(); it.hasNext();) {}}}16、以下代码输出的结果(笔试选择题)public class Test {public static void main(String[] args) {}}A. nullB. 0C. Test17、下面为一个单例的实现代码,请指出代码中有几个错误或不合理之处,并改正。
public class Test {public Test instance = null;public static Test getInstance() {if (instance == null) {instance = new Test();return instance;}}}18、编程输出一个目录下的所有目录及文件名称,目录之间用tab。
(笔试)19、从键盘读入10个整数,然后从大到小输出。
(笔试)20、如何迭代Map容器,手写个试试?答案:1、82、i1 + i2 = 1010 语法错误i1 * i2 = 100 i1 / i2 = 13、string4、5 195、1211.012.06、test test7、test.Test test.Base 8、true false9、12 false 10、A: synchronized static是某个类的范围,synchronized static cSync{}防止多个线程同时访问这个类中的synchronized static 方法。
它可以对类的所有对象实例起作用。
???B: synchronized 是某实例的范围,synchronized isSync(){}防止多个线程同时访问这个实例中的synchronized 方法。
11、true false 12、true false true13、false 14、015、two five one three four 16、B17、getInstance 无默认返回值instance?必须是static18、package test;public class Test {public static void main(String[] args) {new Test().read("D:/test", "");}public void read(String path, String tab) {File file = new File(path);File[] childFiles = file.listFiles();for (int i = 0; childFiles != null && i < childFiles.length; i++) { if (childFiles[i].isDirectory()) {read(childFiles[i].getPath(), tab + "\t");}}}}19、package test;public class Test {public static void main(String[] args) {Scanner in = new Scanner(System.in);// 注意这里的数组,不是int的Integer[] arr = new Integer[10];for (int i = 0; i < 10; i++) {arr[i] = in.nextInt();}Arrays.sort(arr, new Comparator<Integer>() {@Overridepublic int compare(Integer o1, Integer o2) {if (o1 > o2) return -1;if (o1 < o2) return 1;return 0;}});}}20、package test;public class Test {public static void main(String[] args) {Map<Class, String> m = new HashMap<Class, String>();Set<Entry<Class, String>> set = m.entrySet();Iterator<Entry<Class, String>> it = set.iterator();while (it.hasNext()) {Map.Entry<Class, String> entry = it.next();Class key = entry.getKey();String value = entry.getValue();}}}。