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

合集下载

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软件开发工程师笔试题及答案

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年

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常见基础知识笔试题:一、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软件开发工程师笔试题

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软件开发工程师笔试题(附答案)问题:中级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 逻辑思维笔试题,这些试题可以帮助你测试自己的逻辑思维能力以及Java 编程技能:
1.给定一个整数数组,找出数组中是否存在两个不同的数字,它们之间的差的绝对值等于
给定的数字k。

2.给定一个字符串,判断该字符串是否为回文字符串。

3.给定一个整数数组,找出数组中的最大值和最小值,并计算它们的差值。

4.给定一个整数数组,找出数组中是否存在重复的元素。

5.给定一个字符串,将字符串中的每个字符转换为其对应的ASCII 码值,并输出结果。

6.给定一个整数数组,找出数组中是否存在三个不同的数字,它们之和等于给定的数字k。

7.给定一个字符串,判断该字符串是否为偶数个字符。

8.给定一个整数数组,找出数组中是否存在两个不同的数字,它们之间的和等于给定的数
字k。

9.给定一个整数数组,找出数组中是否存在三个不同的数字,它们之积等于给定的数字k。

10.给定一个字符串,将字符串中的每个字符转换为其对应的字母在字母表中的下一个字
母,如果已经是字母表的最后一个字母,则将其转换为第一个字母。

输出转换后的字符串。

12道JAVA笔试题及答案

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变量的生命周期根据作用范围来区分,超出作用范围就会失效如果为全域变量,页面关闭才失效。

JAVA逻辑思维面试题

JAVA逻辑思维面试题

【01】假设有一个池塘,里面有无穷多的水。

现有2个空水壶,容积分别为5升和6升。

问题是如何只用这2个水壶从池塘里取得3升的水。

【02】周雯的妈妈是豫林水泥厂的化验员。

一天,周雯来到化验室做作业。

做完后想出去玩。

"等等,妈妈还要考你一个题目,"她接着说,"你看这6只做化验用的玻璃杯,前面3只盛满了水,后面3只是空的。

你能只移动1只玻璃杯,就便盛满水的杯子和空杯子间隔起来吗?" 爱动脑筋的周雯,是学校里有名的"小机灵",她只想了一会儿就做到了。

请你想想看,"小机灵"是怎样做的?【03】三个小伙子同时爱上了一个姑娘,为了决定他们谁能娶这个姑娘,他们决定用手枪进行一次决斗。

小李的命中率是30%,小黄比他好些,命中率是50%,最出色的枪手是小林,他从不失误,命中率是100%。

由于这个显而易见的事实,为公平起见,他们决定按这样的顺序:小李先开枪,小黄第二,小林最后。

然后这样循环,直到他们只剩下一个人。

那么这三个人中谁活下来的机会最大呢?他们都应该采取什么样的策略?【4】一间囚房里关押着两个犯人。

每天监狱都会为这间囚房提供一罐汤,让这两个犯人自己来分。

起初,这两个人经常会发生争执,因为他们总是有人认为对方的汤比自己的多。

后来他们找到了一个两全其美的办法:一个人分汤,让另一个人先选。

于是争端就这么解决了。

可是,现在这间囚房里又加进来一个新犯人,现在是三个人来分汤。

必须寻找一个新的方法来维持他们之间的和平。

该怎么办呢?按:心理问题,不是逻辑问题【5】在一张长方形的桌面上放了n个一样大小的圆形硬币。

这些硬币中可能有一些不完全在桌面内,也可能有一些彼此重叠;当再多放一个硬币而它的圆心在桌面内时,新放的硬币便必定与原先某些硬币重叠。

请证明整个桌面可以用4n个硬币完全覆盖【6】一个球、一把长度大约是球的直径2/3长度的直尺.你怎样测出球的半径?方法很多,看看谁的比较巧妙【7】五个大小相同的一元人民币硬币。

Java软件高级工程师笔试题-逻辑思路

Java软件高级工程师笔试题-逻辑思路

1.烧一根不均匀的绳要用一个小时,如何用它来判断半个小时?(5分)2.4,4,10,10,加减乘除,怎么出24点?(5分)3.如果你有无穷多的水,一个容积为3L的和5L的提桶,你如何准确称出 4L的水?(5分)4.一只蜗牛从井底爬到井口,每天白天蜗牛要睡觉,晚上才出来活动,一个晚上蜗牛可以向上爬3尺,但是白天睡觉的时候会往下滑2尺,井深10尺,问蜗牛几天可以爬出来?(5分)5.有一种细菌,经过一分钟分裂为2个,再过一分钟,分裂为4个,这样,将一个细菌放在一个瓶子里面,一个小时后瓶子被细菌充满了。

现在假设一开始放入瓶中的为两个细菌,那么到充满瓶子要多长的时间?(10分)6.简述一下面向对象的特征,并举例说明你对面向对象的理解?(5分)7.ArrayList和HsahSet的区别,HashMap和Hashtable的区别?(5分)8.线程同步的关键字是什么?sleep() 和 wait() 有什么区别?怎么唤醒wait()停止的线程?(5分)9.列举你在项目中常用的设计模式(伪代码或类图),并说明每种设计模式的具体应用场景。

(5分)10.Spring中事务管理支持哪几种方式以及每种方式的具体使用方法。

(5分)11.Hibernate的缓存等级及其特点(5分)12.至少写出一种11位手机号码的正则表达式。

(5分)13.用简短的代码实现字符串“string”到“string”转换。

即将多个空格转换为一个空格(5分)14.使用Socket编写一个程序,客户端向服务器端发送请求(发送字符串即可),服务端接收后发送反馈信息.(10分)15.用SQL语句实现Oracle分页查询。

(10分)16.aa,bb表都有20个字段,且记录数量都很大,aa,bb表的X字段(非空)上有索引,请用SQL列出aa表里面存在的X在bb表不存在的X的值,请写出认为最快的语句,并解译原因。

(10分)。

java工程师笔试题及答案

java工程师笔试题及答案

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中的泛型是什么,并给出一个简单的例子。

2021年初级java程序员笔试题及答案

2021年初级java程序员笔试题及答案

2021年初级java程序员笔试题及答案2021年初级java程序员笔试题及答案程序员需要理解一个模块的需求,很多程序员写程序往往只关注一个功能需求,他们把性能指标全部归结到硬件,操作系统和开发环境上,而忽视了本身代码的性能考虑,性能需求指标中。

下面是我整理的关于初级java程序员笔试题及答案,希望大家认真阅读!一、选择题以下对Java语言描述不正确的是(C )A Java语言是一个完全面对对象的语言B Java是结构独立、与平台无关的语言C Java是一种编译性语言D Java是一种解释性语言以下说法正确的是(C )A Java程序文件名必须是和程序文件中定义的类型一致B Java程序文件名可以和程序文件中定义的类名不一致C Java源程序文件的扩展名必须是.javaD以上A、C说法正确,B说法不正确以下有关运行Java应用程序(Application)正确的说法是(B )A Java应用程序是由Java编译器解释执行的B Java应用程序经编译后生成的字节代码可由Java虚拟机解释执行C Java应用程序经编译后可直接在操作系统下运行D Java应用程序经编译后可直接在浏览器中运行4、以下有关标识符说法中正确的是(C )A、任何字符的组合都可以形成一个标识符B、Java的关键字也可以作为标识符使用C、标识符是以字母、下划线或$开头,后跟字母、数字、下划线或$的字符组合D、标识符是不分大小写5、以下说法正确的是(D )A、基本字符数据类型有字符和字符串两种B、字符类型占两个字节,可保存两个字符C、字符类型占两个字节,可保存一个字符D、以上说法都是错误的6、以下有关类型转变的说法错误的是(D )A、低精度类型向高精度类型转换时,不会丢失数据精度B、系统会自动进行(整型或浮点型)低精度类型数据向高精度类型数据的转换C、高精度类型数据向低精度类型数据的转换、整型和浮点型数据之间的转换,必须强制进行,有可能会引起数据丢失D、高精度类型数据向低精度类型转换时,也不会丢失数据精度,因为转换是系统进行的7、以下正确的关系表达式(D )A、xyB、x+yzC、=xD、x+y!=z8、以下正确的逻辑表达式( A)A、(x+y7)(x-y1)B、!(x+y)C、(x+y7)||(z=a)D、(x+y+z)(z=0)9、以下有关条件运算符(?:)说法正确的是( D)A、条件运算符是一个三元运算符,其格式是:表达式1?表达式2:表达式3B、格式中的"表达式1'是关系或者逻辑表达式,其值是boolean值C、若"表达式1'成立,该条件表达式取"表达式2'的值,否则取"表达式3'的值D、以上说法都正确10、在if(表达式)语句中,"表达式'的值必须是(C )A、任意整数值B、字符串C、布尔逻辑值D、非零值11、在switch(表达式)语句中,"表达式'的值必须是(D )A、整数值B、字符值C、布尔逻辑值D、整数或字符值12、下列关于for循环和while循环的说法中,正确的是(A )A、while循环能实现的操作,for循环也能实现B、while循环判断条件一般是程序结果,for循环判断条件一般是非程序结果C、两种循环任何时候都可以替换D、两种循环结构中必须都有循环体,循环体不能为空13、下面表达式中,用来访问数组中的第一个值的是(C )A、intArray[1]B、intArray.1C、intArray[0]D、intArray.014下面的表达式中正确的是(C )String s='你好';if(s=='你好') System.out.println(true);String s='你好';if(s!='你好') System.out.println(false);String s='你好';if(s.equals('你好')) System.out.println(true);String s='你好';if(equals(s,'你好')) System.out.println(true);15String str;System.out.println(str.length());以上语句的处理结果是(A )A、编译报错B、运行结果是nullC、运行结果为0D、随机值16、执行String [ ] s=new String[10];代码后,下面结论正确的是( D)A、s[10]为''B、s[10]为nullC、s[0]未定义D、s.length为1017、构造器(B )被调用。

Java开发工程师笔试题(带答案).docx

Java开发工程师笔试题(带答案).docx
D.final变量指的是用final修饰的变量
6.在如下所示的类Test中,共有(D)个构造方法。
publicclassTest{
privateintx;
publicTest(){
x = 35;
}
publicvoidTest(doublef){
.
.
this
. x
= (
int
)f;
}
public
Test(
C.main
D.run
E.不能确定
5.下面有关java实例变量,局部变量,类变量和final变量的说法,错误的是?( B )
A.
B.
实例变量指的是类中定义的变量,即类成员变量,如果没有初始化,会有默认值局部变量指的是在方法中定义的变量,如果没有初始化,会有默认值
C.类变量指的是用static修饰的属性
C.在数据库设计阶段,一定要尽最大可能避免数据冗余,最好做到无数据冗余
D.数据冗余通常是由于数据库设计引起的
20.在视图上使用INSERT语句,下列()情况可以进行插入操作(C)
A.视图中包含了使用统计函数的结果
B.视图由多个表连接而成,对多个表的列进行插入操作
C.视图全部包含了基本表中属性为
NOT NULL的列
5*6*7*8
public void drawNumPic(int n){
//代码区
}
二. 选择题(定项选择每题3分,不定项选择每题4分,共63分)
1.在基本JAVA类型中,如果不明确指定,整数型的默认是__类型,带小数的默认是__类型?( B )
A.int float
B.int double
C.long float

java笔试题及答案

java笔试题及答案

java笔试题及答案题目:Java 笔试题及答案一、基础语法1. 请解释 Java 中的接口和抽象类的区别。

答:接口(Interface)是一种完全抽象的类,它允许声明方法,但不允许实现这些方法。

接口中的方法默认是 public 和 abstract 的,且从 Java 8 开始,接口也可以包含默认方法和静态方法。

抽象类(Abstract Class)可以包含抽象方法和非抽象方法,允许有构造器,成员变量,以及具体的方法实现。

一个类可以实现多个接口,但只能继承一个抽象类。

2. 请解释 Java 中的集合框架。

答:Java 集合框架是 Java 中存储和处理一组对象的一套标准接口和类。

集合框架分为两大类:不包含重复元素的集合(如 List、Set)和可能包含重复元素的集合(如 Map、Bag)。

集合框架提供了一系列的接口和实现类,如 List 接口的实现类有 ArrayList 和LinkedList,Set 接口的实现类有 HashSet 和 TreeSet 等。

二、面向对象1. 请解释封装、继承和多态的概念。

答:封装是将对象的状态信息隐藏在对象内部,并通过公共方法对外提供服务。

继承允许新的类(子类)继承现有类(父类)的属性和方法,实现代码的复用。

多态是指允许使用子类的对象来替代父类的对象,子类可以重写父类的方法,从而在运行时表现出不同的行为。

2. 请解释抽象类和接口在实现多态中的作用。

答:抽象类通过定义抽象方法来规定子类必须实现的功能,而接口则通过声明方法签名来规定实现类必须提供的方法实现。

抽象类和接口都可以被子类继承或实现,这样可以确保子类具有某些共同的行为,是实现多态的基础。

三、异常处理1. 请解释 Java 中的异常处理机制。

答:Java 中的异常处理机制是通过 try-catch-finally 结构来实现的。

当 try 块中的代码可能会抛出异常时,catch 块用来捕获并处理这些异常。

java软件工程师笔试题及答案

java软件工程师笔试题及答案

java软件工程师笔试题及答案一、选择题1. Java中,下列哪个关键字用于声明一个类?A. classB. interfaceC. publicD. private答案:A2. 在Java中,下列哪个选项是正确的继承关系?A. 一个类可以继承多个类B. 一个类只能继承一个类C. 一个类不能继承任何类D. 一个类可以继承多个接口答案:B3. 下列哪个是Java中合法的变量名?A. 2variableB. variable2C. _variableD. variable!答案:B4. 在Java中,下列哪个关键字用于捕获异常?A. tryB. catchC. throwD. throws答案:B5. Java中,下列哪个选项是正确的多线程创建方式?A. 继承Thread类B. 实现Runnable接口C. 继承Runnable接口D. 实现Thread类答案:A、B二、填空题1. Java中,用于定义接口的关键字是______。

答案:interface2. Java中,用于定义抽象方法的关键字是______。

答案:abstract3. 在Java中,用于定义私有方法的关键字是______。

答案:private4. Java中,用于定义构造方法的关键字是______。

答案:构造方法5. 在Java中,用于定义包的关键字是______。

答案:package三、简答题1. 请简述Java中接口和抽象类的区别。

答案:接口是一种完全抽象的结构,它不能包含实现细节,只能包含抽象方法和常量。

抽象类可以包含抽象方法和具体方法,可以有构造方法,并且可以包含成员变量。

2. 请简述Java中垃圾回收机制的作用。

答案:Java的垃圾回收机制用于自动回收不再使用的对象,释放内存资源,防止内存泄漏。

四、编程题1. 编写一个Java程序,实现计算两个整数的和。

答案:```javapublic class SumCalculator {public static void main(String[] args) {int num1 = 10;int num2 = 20;int sum = num1 + num2;System.out.println("The sum is: " + sum);}}```2. 编写一个Java程序,实现一个简单的计数器,从1数到10。

java工程师笔试题及答案

java工程师笔试题及答案

java工程师笔试题及答案一、选择题1.下列哪个不是Java的特点?A.面向对象B.平台无关性C.动态性D.指针操作答案:D2.以下关于Java垃圾回收机制的说法错误的是?A.对象不再被引用时,垃圾回收器自动回收B.程序员可以主动调用System.gc()方法来主动垃圾回收C.垃圾回收器通过标记-清除算法来回收对象D.垃圾回收会导致程序的执行暂停答案:B3.关于Java中的多态性,以下说法正确的是?A.多态可以实现继承B.多态需要在编译时确定C.多态可以提高代码的可维护性D.多态只能在类之间实现答案:C二、编程题1.编写一个Java程序,打印出1到100之间所有的质数。

答案:```javapublic class PrimeNumberPrinter {public static void main(String[] args) {for (int i = 2; i <= 100; i++) {if (isPrime(i)) {System.out.println(i);}}}public static boolean isPrime(int number) {if (number <= 1) {return false;}for (int i = 2; i <= Math.sqrt(number); i++) { if (number % i == 0) {return false;}}return true;}```2.请编写一个Java程序,将一个字符串进行反转。

答案:```javapublic class StringReverser {public static void main(String[] args) {String originalString = "Hello, world!";String reversedString = reverseString(originalString); System.out.println(reversedString);}public static String reverseString(String input) {StringBuilder reversedString = new StringBuilder(); for (int i = input.length() - 1; i >= 0; i--) {reversedString.append(input.charAt(i));}return reversedString.toString();}}三、简答题1.什么是Java中的多线程?答:Java中的多线程是指在一个程序中可以同时运行多个线程,并且这些线程可以并发执行,相互之间互不干扰。

Java开发工程师笔试题(带答案)

Java开发工程师笔试题(带答案)

Java开发工程师笔试试题(请不要在试题上留任何痕迹,所有答案均写在答题纸上)一.编程题(共26分)1.任意写出一种排序算法。

(6分)public void sort(int [] array){//代码区}2.求1+2+3+..n(不能使用乘除法、for 、while 、if 、else 、switch 、case 等关键字以及条件判断语句)(8分)public int sum(int n){//代码区return 0;}3.完成下面方法,输入一个整数,输出如下指定样式图案。

(12分)输入:3,输出:1*2*37*8*94*5*6输入:4输出:1*2*3*49*10*11*1213*14*15*165*6*7*8public void drawNumPic(int n){//代码区}二.选择题(定项选择每题3分,不定项选择每题4分,共63分)1.在基本JAVA类型中,如果不明确指定,整数型的默认是__类型,带小数的默认是__类型?( B )A.int floatB.int doubleC.long floatD.long double2.只有实现了__接口的类,其对象才能序列化( A )A.SerializableB.CloneableparableD.Writeable3.代码System. out. println(10 % 3 * 2);将打印出?( B )A. 1B.2C.4D.64.以下程序运行的结果为( A )public class Example extends Thread{@Overridepublic void run(){try{Thread.sleep(1000);}catch (InterruptedException e){e.printStackTrace();}System.out.print("run");}public static void main(String[] args){Example example=new Example();example.run();System.out.print("main");}}A.run mainB.main runC.mainD.runE.不能确定5.下面有关java实例变量,局部变量,类变量和final变量的说法,错误的是?( B )A.实例变量指的是类中定义的变量,即类成员变量,如果没有初始化,会有默认值B.局部变量指的是在方法中定义的变量,如果没有初始化,会有默认值C.类变量指的是用static修饰的属性D.final变量指的是用final 修饰的变量6.在如下所示的类Test中,共有(D)个构造方法。

java工程师笔试题

java工程师笔试题

java工程师笔试题一、题目描述请编写一个Java程序,实现以下功能:1. 定义一个Rectangle类,具有长度(length)和宽度(width)两个属性,以及计算面积(getArea)和周长(getPerimeter)的方法。

2. 定义一个Square类,继承自Rectangle类,只有一个边长(side)属性,重写计算面积和周长的方法。

二、解题思路为了实现以上功能,我们需要按照以下步骤进行编码:1. 创建Rectangle类,并在该类中定义私有属性length和width。

2. 在Rectangle类中定义计算面积和周长的公共方法getArea和getPerimeter,分别使用length和width计算结果。

3. 创建Square类,并让它继承Rectangle类。

4. 在Square类中定义私有属性side,其代表正方形的边长。

5. 在Square类中重写计算面积和周长的方法,使用side计算结果。

6. 在主函数中创建Rectangle对象和Square对象,并进行测试。

三、代码实现```javaclass Rectangle {private double length;private double width;public Rectangle(double length, double width) { this.length = length;this.width = width;}public double getArea() {return length * width;}public double getPerimeter() {return 2 * (length + width);}}class Square extends Rectangle {private double side;public Square(double side) {super(side, side);this.side = side;}@Overridepublic double getArea() {return side * side;}@Overridepublic double getPerimeter() {return 4 * side;}}public class Main {public static void main(String[] args) {Rectangle rectangle = new Rectangle(3, 4);Square square = new Square(5);double rectangleArea = rectangle.getArea();double rectanglePerimeter = rectangle.getPerimeter(); double squareArea = square.getArea();double squarePerimeter = square.getPerimeter();System.out.println("Rectangle Area: " + rectangleArea);System.out.println("Rectangle Perimeter: " + rectanglePerimeter);System.out.println("Square Area: " + squareArea);System.out.println("Square Perimeter: " + squarePerimeter);}}```四、测试结果运行上述程序,将得到以下输出结果:```Rectangle Area: 12.0Rectangle Perimeter: 14.0Square Area: 25.0Square Perimeter: 20.0```以上代码实现了Rectangle类和Square类,并在主函数中创建了Rectangle对象和Square对象,分别计算并输出了矩形和正方形的面积和周长。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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();}}}。

相关文档
最新文档