百一测评——Java经典面试题 带答案

合集下载

Java面试题大全(答案版)

Java面试题大全(答案版)

Java面试题大全(答案版)1、一个".java"源文件中是否可以包括多个类(不是内部类)有什么限制可以,但是只能有一个类用public修饰,并且用public修饰的类名与文件名要一致2、&和&&的区别。

&和&&都可以用作逻辑与;&&还具有短路功能,即如果第一个表达式的结果为false,则不再计算第二个表达式;&还可以用作位运算符,当&操作符两边的表达式不是boolean 类型时,&表示按位与操作。

3、Java有没有gotojava中的保留字,现在没有在java中使用。

4、在JAVA中,如何跳出当前的多重嵌套循环break+变量控制与 return5、switch是否能作用在byte(拜特)上,是否能作用在long上,是否能作用在String上Switch可以作用在int上,而byte可以隐式转换为int 所以能作用在byte上不能作用在long上,也不能作用在String上6、short s1 = 1; s1 = s1 + 1;有什么错 short s1 = 1; s1 += 1;有什么错1在java中为int数据类型,short+int=int,大类型转为小类型,编译时,会报告需要强制转换类型的错误。

s1+=1不会报,因为JVM 会对它特殊处理(自动强转)7、char型变量中能不能存贮一个中文汉字为什么可以,char型变量是用来存储unicode(依妮Q特)编码的,而unicode编码包含了中文,所以是可以保存的8、编程题: 用最有效率的方法算出2乘以8等於几2<<3,表示将2左移3位;一个数左移几位就表示这个数乘以了2的几次方,左移运算,CPU直接支持,所以是最有效率的9、请设计一个一百亿的计算器思路:用两个数组分别保存两个操作数,再新建一个数组保存结果。

10、使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变引用变量不能变11、"=="和equals方法究竟有什么区别==和equals方法都可以用来比较两个对象是否是同一个对象。

百一测评——Java经典面试题 带答案

百一测评——Java经典面试题 带答案

试卷名称:Java经典面试题带答案试卷描述:java笔试题目、招聘笔试、微信考试、在线考试试卷链接:试卷限时:50分一.单项选择题每题分值:分是否题目乱序:是是否选项乱序:是是否可回溯:是难度:中1.[单选]Java是从()语言改进重新设计。

A.AdaB.C++C.PasacalD.BASIC答案:B2.[单选]下列语句哪一个正确()A.Java程序经编译后会产生machine codeB.Java程序经编译后会产生byte codeC.Java程序经编译后会产生DLLD.以上都不正确答案:B3.[单选]下列说法正确的有()A.class中的constructor不可省略B.constructor必须与class同名,但方法不能与class同名C.constructor在一个对象被new时执行D.一个class只能定义一个constructor答案:C4.[单选]提供Java存取数据库能力的包是()A.B.C.D.答案:A5.[单选]下列运算符合法的是()A.&&B.<>C.ifD.:=答案:A6.[单选]执行如下程序代码a=0;c=0;do{--c;a=a-1;}while(a>0);后,C的值是()A.0B.1C.-1D.死循环答案:C7.[单选]下列哪一种叙述是正确的()A.abstract修饰符可修饰字段、方法和类B.抽象方法的body部分必须用一对大括号{}包住C.声明抽象方法,大括号可有可无D.声明抽象方法不可写出大括号答案:D8.[单选]下列语句正确的是()A.形式参数可被视为localvariableB.形式参数可被字段修饰符修饰C.形式参数为方法被调用时,真正被传递的参数D.形式参数不可以是对象答案:A9.[单选]下列哪种说法是正确的()A.实例方法可直接调用超类的实例方法B.实例方法可直接调用超类的类方法C.实例方法可直接调用其他类的实例方法D.实例方法可直接调用本类的类方法答案:D二.多项选择题每题分值:分是否题目乱序:是是否选项乱序:是是否可回溯:是难度:中10.[多选]下列说法正确的有()A.环境变量可在编译sourcecode时指定B.在编译程序时,所能指定的环境变量不包括class path C.javac一次可同时编译数个Java源文件D.能指定编译结果要置于哪个目录(directory)答案:BCD11.[多选]下列标识符不合法的有()A.newB.$UsdollarsC.1234D.答案:ACD12.[多选]下列说法错误的有()A.数组是一种对象B.数组属于一种原生类C.intnumber=[]={31,23,33,43,35,63}D.数组的大小可以任意改变答案:BCD13.[多选]不能用来修饰interface的有()A.privateB.publicC.protectedD.static答案:ACD14.[多选]下列正确的有()A.call byvalue不会改变实际参数的数值B.call by reference能改变实际参数的参考地址C.call byreference不能改变实际参数的参考地址D.call byreference能改变实际参数的内容答案:ACD15.[多选]下列说法错误的有()A.在类方法中可用this来调用本类的类方法B.在类方法中调用本类的类方法时可直接调用C.在类方法中只能调用本类中的类方法D.在类方法中绝对不能调用实例方法答案:ACD16.[多选]下列说法错误的有()A.Java面向对象语言容许单独的过程与函数存在B.Java面向对象语言容许单独的方法存在C.Java语言中的方法属于类中的成员(member)D.Java语言中的方法必定隶属于某一类(对象),调用方法与过程或函数相同答案:ABC17.[多选]下列说法错误的有()A.能被成功运行的javaclass文件必须有main()方法B.J2SDK就是Java APIC.可利用jar选项运行.jar文件D.能被Appletviewer成功运行的javaclass文件必须有main()方法答案:BCD三.判断题每题分值:分是否题目乱序:是是否选项乱序:是是否可回溯:是难度:中18.[判断]Java程序中的起始类名称必须与存放该类的文件名相同。

100道最新Java面试题,常见面试题及答案汇总

100道最新Java面试题,常见面试题及答案汇总

100道最新Java⾯试题,常见⾯试题及答案汇总除了掌握扎实的专业技能之外,你还需要⼀份《Java程序员⾯试宝典》才能在万千⾯试者中杀出重围,成功拿下offer。

⼩编特意整理了100道Java⾯试题,送给⼤家,希望⼤家都能顺利通过⾯试,拿下⾼薪。

赶紧码住吧~~⽂末有福利Q1:Java内部类和⼦类之间有什么区别?答案:内部类是指在⼀个外部类的内部再定义⼀个类,内部类对外部类有访问权限,可以访问类中定义的所有变量和⽅法。

⼦类是从⽗类(superclass)中继承的类,⼦类可以访问⽗类所有public和protected的字段和⽅法。

Q2:Java语⾔中有哪些常见的访问说明符,有什么意义?答案:Java中的访问说明符是放在类名之前,⽤于定义访问范围的关键字,常见的访问说明符有以下⼏类:Public:公共,能被项⽬中的任何⼀个Class、Method、Field访问。

Protected:受保护,能被同类或⼦类访问,不能从外部访问。

Default:默认,只能被同⼀个包的Class、Method、Field访问。

Private:私有,只能被本类访问。

Q3:静态⽅法和静态变量的⽬的是什么?答案:静态变量被类的所有实例共⽤,静态类只能访问类的静态变量,或调⽤类的静态⽅法。

Q4:什么是数据封装及其意义?答案:封装是⾯向对象编程中⽤于在单个单元中组合属性和⽅法。

封装可以帮助程序员遵循模块化⽅法进⾏软件开发,每个对象都有⾃⼰的⼀组⽅法和变量,并且可以独⽴于其他对象来执⾏其功能。

另外,封装也有数据隐藏的⽬的。

Q5:什么是 singleton class(单例类)?并给出其⽤法的实际例⼦。

答案:单例类只能有⼀个实例,必须⾃⼰创建⾃⼰的唯⼀实例,必须给所有其他对象提供这⼀实例。

单例使⽤场景的最佳实践是由于某些驱动程序限制或由于许可问题的限制只能连接数据库。

Q6:什么是循环?Java中有哪些循环?答案:循环⽤于编程中重复执⾏语句,Java中的循环有三类:1、for循环for循环⽤于执⾏指定重复次数的语句,当程序员明确知道循环次数可以使⽤for循环。

java中级面试题及答案

java中级面试题及答案

java中级面试题及答案1. 什么是Java中的自动装箱和拆箱?在Java中,自动装箱是指将基本数据类型自动转换为相应的包装类类型。

拆箱则是指将包装类类型自动转换为基本数据类型。

例如,将int类型的数据赋值给Integer类型的变量就是一种自动装箱的操作;而将Integer类型的数据赋值给int类型的变量就是一种拆箱的操作。

2. Java中的异常处理机制是什么?Java中的异常是指程序出现了意外情况或错误,导致程序无法正常执行的情况。

为了使程序具备容错性和稳定性,Java提供了异常处理机制。

异常处理机制包括try-catch语句和finally语句。

try块中的代码可能会抛出异常,catch块中的代码用于捕获和处理异常,而finally块中的代码无论是否发生异常都会被执行。

3. 请解释什么是Java中的多态性?Java中的多态性是指同一个方法名可以有多个不同的实现方式。

多态性可以通过继承和接口实现。

父类的引用变量可以指向子类的对象,这样在调用同样的方法时,会根据实际类型调用对应子类的方法实现。

4. 什么是Java中的抽象类和接口?抽象类是用来定义不能实例化的类,其中的方法只有声明,没有具体实现。

抽象类中的方法可以是抽象方法(没有具体实现的方法)或者具体方法(有具体实现的方法)。

其他类可以继承抽象类并实现其中的抽象方法。

接口是一种特殊的抽象类,其中的方法都是抽象方法,没有具体实现。

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

接口提供了一种规范,要求实现类必须实现接口中定义的所有方法。

5. 请解释Java中的线程池是什么?线程池是一种线程管理机制,它可以在应用程序启动时创建一定数量的线程,这些线程被放入线程池中,当需要执行任务时,可以直接从线程池中获取线程并执行任务。

线程池的优点是可以避免频繁创建和销毁线程的开销,提高了线程的复用率和执行效率。

6. 什么是Java中的反射机制?Java的反射机制是指在运行时动态地获取类的相关信息,并可以通过这些信息操作该类的属性和方法。

java面试题库java面试题目及答案(3篇)

java面试题库java面试题目及答案(3篇)

第1篇一、基础知识1. Java简介题目:请简述Java的基本特点。

答案:- 简单易学:Java设计之初就考虑了易学性,使用面向对象编程。

- 原生跨平台:Java通过JVM(Java虚拟机)实现跨平台运行。

- 安全性:Java提供了强大的安全机制,如沙箱安全模型。

- 体系结构中立:Java不依赖于特定的硬件或操作系统。

- 高效:Java的运行速度接近C/C++。

- 多线程:Java内置多线程支持,便于实现并发处理。

- 动态性:Java在运行时可以进行扩展和修改。

2. Java虚拟机题目:请解释Java虚拟机(JVM)的作用。

答案:JVM是Java程序的运行环境,其主要作用包括:- 将Java字节码转换为本地机器码。

- 管理内存,包括堆、栈、方法区等。

- 提供垃圾回收机制。

- 管理线程和同步。

3. Java内存模型题目:请简述Java内存模型的组成。

答案:Java内存模型主要由以下部分组成:- 堆(Heap):存储对象实例和数组。

- 栈(Stack):存储局部变量和方法调用。

- 方法区(Method Area):存储类信息、常量、静态变量等。

- 本地方法栈(Native Method Stack):存储本地方法调用的相关数据。

- 程序计数器(Program Counter Register):存储线程的当前指令地址。

4. Java关键字题目:请列举并解释Java中的几个关键字。

答案:- `public`:表示访问权限为公开。

- `private`:表示访问权限为私有。

- `protected`:表示访问权限为受保护。

- `static`:表示属于类本身,而非对象实例。

- `final`:表示常量或方法不能被修改。

- `synchronized`:表示线程同步。

- `transient`:表示数据在序列化时不会被持久化。

二、面向对象编程5. 类和对象题目:请解释类和对象之间的关系。

答案:类是对象的模板,对象是类的实例。

java模拟面试题目(3篇)

java模拟面试题目(3篇)

第1篇一、Java基础知识1. 请简述Java语言的特点。

2. 什么是Java虚拟机(JVM)?它有什么作用?3. 什么是Java的内存模型?请解释Java内存模型中的几个关键概念:堆、栈、方法区、程序计数器、本地方法栈。

4. 什么是Java中的反射机制?请举例说明反射在Java中的应用。

5. 什么是Java中的泛型?请解释泛型的原理和作用。

6. 请简述Java中的四种访问控制符:public、protected、default、private。

7. 什么是Java中的继承和多态?请举例说明继承和多态在实际开发中的应用。

8. 什么是Java中的封装?请举例说明封装在实际开发中的应用。

9. 什么是Java中的接口和抽象类?它们之间有什么区别?10. 什么是Java中的异常处理?请解释try-catch-finally语句的执行顺序。

二、Java集合框架1. 请列举Java集合框架中的常用集合类及其特点。

2. 请简述ArrayList、LinkedList、HashMap、HashSet的区别。

3. 什么是Java中的泛型集合?请举例说明泛型集合的应用。

4. 什么是Java中的迭代器(Iterator)和枚举器(Enum)?请比较它们的区别。

5. 什么是Java中的List、Set、Map的遍历方法?6. 请解释Java中的ArrayList和LinkedList的内部实现原理。

7. 什么是Java中的HashMap的扩容机制?8. 什么是Java中的HashSet的内部实现原理?9. 请解释Java中的线程安全集合类,如CopyOnWriteArrayList、ConcurrentHashMap。

三、Java多线程与并发1. 什么是Java中的线程?请解释线程的创建、调度和同步。

2. 请简述Java中的线程状态,如新建、就绪、运行、阻塞、等待、超时等待、终止。

3. 什么是Java中的同步机制?请解释synchronized关键字的作用。

java高级面试题及答案

java高级面试题及答案

java高级面试题及答案一、基础理论知识1. 请解释Java中的四种访问修饰符及其作用范围。

答:Java中的四种访问修饰符分别是public、protected、default(无修饰符)和private。

public修饰的类或成员可以被任何其他类访问;protected修饰的成员可以被同一个包内的类以及子类访问;default(无修饰符)的成员只能被同一个包内的类访问;private修饰的成员只能在声明它的类内部访问。

2. 什么是Java的序列化和反序列化?请举例说明。

答:Java序列化是将对象的状态信息转换为字节流的过程,以便于存储或传输。

反序列化则是将字节流恢复为原来的对象。

例如,通过ObjectOutputStream和ObjectInputStream类可以实现对象的序列化和反序列化。

3. 解释Java中的多态性及其优势。

答:多态性是指允许使用子类对象来替代父类对象的能力。

在Java中,这是通过继承和接口实现的。

多态性的优势包括代码的可扩展性和可维护性,以及能够编写更通用的代码。

二、Java集合框架1. 请比较ArrayList和LinkedList的性能差异。

答:ArrayList是基于动态数组的数据结构,适合随机访问;LinkedList是基于双向链表的数据结构,适合频繁的插入和删除操作。

在随机访问大量元素时,ArrayList的性能优于LinkedList;而在插入和删除操作频繁时,LinkedList的性能更优。

2. 什么是HashMap的工作原理,以及如何解决它的线程安全问题?答:HashMap基于哈希表实现,通过键的哈希值来计算存储位置。

当两个不同的键具有相同的哈希值时,会发生哈希冲突,HashMap通过链表或红黑树来解决这个问题。

对于线程安全问题,可以使用ConcurrentHashMap,它通过锁分离技术来提供线程安全的映射。

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

java跳槽面试题目(3篇)

java跳槽面试题目(3篇)

第1篇一、Java基础知识1. 请简述Java的基本特点。

解析:Java具有“一次编写,到处运行”的特点,具有跨平台性;具有简单易学、面向对象、分布式、解释型、健壮性、安全性、体系结构中立、多线程、动态性等特点。

2. 什么是JVM?请简述JVM的作用。

解析:JVM(Java虚拟机)是运行所有Java应用程序的虚拟机。

它的作用是执行Java字节码,为Java程序提供运行环境,保证Java程序跨平台运行。

3. 请简述Java中的四种访问控制符及其作用。

解析:- public:表示公开的访问控制符,可以在任何地方访问。

- private:表示私有的访问控制符,只能在类内部访问。

- protected:表示受保护的访问控制符,可以在类内部和子类中访问。

- default(无修饰符):表示默认的访问控制符,只能在本包内访问。

4. 什么是封装?请举例说明。

解析:封装是将类的属性和行为封装在一起,对外只提供有限的接口。

例如,一个学生类,包含姓名、年龄、性别等属性,以及学习、休息等方法。

5. 什么是继承?请举例说明。

解析:继承是子类继承父类的方法和属性。

例如,一个动物类,包含行走、吃食等方法,一个猫类继承自动物类,则猫类具有行走、吃食等方法。

6. 什么是多态?请举例说明。

解析:多态是指同一个方法在不同对象上有不同的行为。

例如,一个形状类,包含计算面积的方法,一个圆形和正方形类继承自形状类,计算面积的方法在圆形和正方形类中有不同的实现。

7. 什么是接口?请举例说明。

解析:接口是一种规范,定义了类应该具有的方法,但不提供具体实现。

例如,一个Comparable接口,定义了compareTo方法,用于比较两个对象的大小。

8. 什么是泛型?请举例说明。

解析:泛型是一种类型参数化技术,可以在编译时进行类型检查,提高代码的安全性。

例如,一个List<T>泛型集合,可以存储任意类型的元素。

二、Java集合框架1. 请简述Java集合框架中的常用类及其特点。

100经典Java面试题及答案解析

100经典Java面试题及答案解析

面向对象编程(OOP)Java是一个支持并发、基于类和面向对象的计算机编程语言。

下面列出了面向对象软件开发的优点:代码开发模块化,更易维护和修改。

代码复用。

增强代码的可靠性和灵活性。

增加代码的可理解性。

面向对象编程有很多重要的特性,比如:封装,继承,多态和抽象。

下面的章节我们会逐个分析这些特性。

封装封装给对象提供了隐藏内部特性和行为的能力。

对象提供一些能被其他对象访问的方法来改变它内部的数据。

在Java当中,有3种修饰符:public,private 和protected。

每一种修饰符给其他的位于同一个包或者不同包下面对象赋予了不同的访问权限。

下面列出了使用封装的一些好处:通过隐藏对象的属性来保护对象内部的状态。

提高了代码的可用性和可维护性,因为对象的行为可以被单独的改变或者是扩展。

禁止对象之间的不良交互提高模块化。

参考这个文档获取更多关于封装的细节和示例。

多态多态是编程语言给不同的底层数据类型做相同的接口展示的一种能力。

一个多态类型上的操作可以应用到其他类型的值上面。

继承继承给对象提供了从基类获取字段和方法的能力。

继承提供了代码的重用行,也可以在不修改类的情况下给现存的类添加新特性。

抽象抽象是把想法从具体的实例中分离出来的步骤,因此,要根据他们的功能而不是实现细节来创建类。

Java支持创建只暴漏接口而不包含方法实现的抽象的类。

这种抽象技术的主要目的是把类的行为和实现细节分离开。

抽象和封装的不同点抽象和封装是互补的概念。

一方面,抽象关注对象的行为。

另一方面,封装关注对象行为的细节。

一般是通过隐藏对象内部状态信息做到封装,因此,封装可以看成是用来提供抽象的一种策略。

常见的Java问题1.什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?Java虚拟机是一个可以执行Java字节码的虚拟机进程。

Java源文件被编译成能被Java虚拟机执行的字节码文件。

Java被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译。

java2019面试题目100及最佳答案

java2019面试题目100及最佳答案

java2019面试题目100及最佳答案1. 什么是Java平台?请列举Java平台的三个主要组成部分。

答案:Java平台是指Java语言的运行环境,它包括Java虚拟机(JVM)、Java核心类库和Java编程语言本身。

三个主要组成部分包括Java运行时环境(JRE)、Java开发工具包(JDK)和Java应用程序接口(API)。

2. 解释Java中的异常处理机制。

答案:Java中的异常处理机制允许程序在运行时捕获和处理错误。

它使用try、catch和finally关键字来实现。

try块中包含可能抛出异常的代码,catch块用于捕获和处理异常,finally块中的代码无论是否发生异常都会执行。

3. Java中什么是多线程?请说明其优缺点。

答案:Java中的多线程是指在同一个进程中并行执行两个或多个线程的能力。

优点包括提高程序的响应性和效率,以及能够充分利用多核处理器。

缺点包括增加了程序的复杂性,可能导致资源竞争和死锁。

4. 解释Java中的垃圾回收机制。

答案:Java中的垃圾回收机制是指自动回收不再被引用的对象所占用的内存。

Java虚拟机(JVM)负责周期性地执行垃圾回收,以避免内存泄漏。

5. Java中的集合框架有哪些主要接口?答案:Java中的集合框架主要包括以下接口:List、Set、Map、Queue和Deque。

这些接口定义了集合的基本操作,如添加、删除、遍历等。

6. 什么是Java泛型?请举例说明其用途。

答案:Java泛型是指在定义类、接口、方法时使用类型参数,以支持编译时类型检查。

泛型可以提高代码的复用性和安全性。

例如,定义一个泛型类`List<T>`,其中T可以是任何类型的对象。

7. Java中什么是注解(Annotation)?请列举其主要用途。

答案:Java中的注解是一种特殊的接口,用于为代码提供元数据。

主要用途包括编译时处理、类和方法的标记、运行时处理等。

8. 解释Java反射机制及其应用场景。

珍藏Java岗位100道面试题及答案详解

珍藏Java岗位100道面试题及答案详解

珍藏Java岗位100道面试题及答案详解人帅话不多,社会我康哥,直接上车,以下为总结的100道面试题及答案详解,题比较多,建议先收藏。

目录1:Arraylist和Linkedlist的区别?2:重载与重写有什么区别?3:&和&&有什么区别?4:接口和抽象类有什么区别?5:写出JDBC操作数据库的步骤?6:HashTable和HashMap有什么区别?7:创建多线程的方式有几种?分别是什么?线程死锁是如何产生的?如何防止线程死锁现象?8:String, StringBuffer, StringBuilder 的区别?9:TCP和UDP的区别?哪个是三次握手协议?10:JSP的常用指令有哪些?11:DI有几种方式、分别是什么,你常用的是哪种方式?12:Mybatis中$和#在xml中取值有什么不同?13:Session和Cookie有什么区别?14:GET和POST请求的区别?15:转发(forward)和重定向(redirect)的区别?16:Hibernate与Mybatis区别?17:列举struts2常见的组件有哪些?常见的配置标签有哪些?返回值类型有哪些?18:用最有效率的方法算出2乘以8等于多少?19:Spring常见的注解有哪些?20:Debug模式下,快捷键有哪些,分别代表什么?21:Tomcat如何修改端口号,如何清除项目缓存,默认并发量是多少?22:final, finally, finalize的区别?23:一个汉字几个字节,一个char类型的变量,可以储存一个汉字吗,为什么可以或者不可以?24:谈谈Spring AOP的原理?25:简要说明SSH框架搭建步骤?26:简要说明SSM框架搭建步骤?27:多线程中run和start方法有什么区别?28:静态变量和实例变量有什么区别?29:前后台数据交互的方式有哪些?30:字节流和字符流有什么区别?31:Redis支持哪些数据类型的存储?32:Java如何调用Redis进行数据操作,并列举增删改查操作?33:Nosql主要支持哪两种数据存储系统?34:MongoDB的体系逻辑结构,主要有什么组成?35:Redis和MongoDB分别应用于哪些应用场景?36:Java如何链接MongoDB,写出逻辑代码?37:如何给一张表增加一个字段,写出sql语句?38:==与equals有什么区别?39:++i与i++的区别?40:List和Map有什么区别?41:Integer与int的区别?42:分别写出oracle、mysql的分页关键词?43:谈谈你对MVC的理解?44:如果equals方法比较为true,那么它们的Hashcode值一定相同吗?如果hashcode相同,那么equals方法比较一定为true吗?45:简述servlet 生命周期?46:进程和线程的区别是什么?47:进程的几种状态分别是什么?48:JDK和JRE的关系区别是什么?49:SpringMVC运行原理是什么?50:用户在浏览器中输入URL之后,发什么了什么?写出请求和响应的流程51:响应结果状态码有哪些,并给出中文含义?52:什么是ORM?53:什么是IOC?54:jsp的作用域有哪些?55:sleep 和 wait 有什么区别?56:Java 中的final关键字有哪些用法?57:Error和Exception有什么区别?什么时候需要捕获异常,什么时候需要抛出异常?58:写出冒泡排序的程序代码?59:数据库集群模式下,如何保证主从数据库的数据一致性?以mysql数据库为例进行说明配置步骤?60:简述JAVA中I/O和NIO的区别?61:简述单例模式的特征和应用场景?62:写出将1000个存在重复手机号的号码池去重的JAVA代码?63:Java接口的修饰符有哪些?64:Java支持的数据类型有哪些?什么是自动拆装65:Math.round(11.5)等于多少? Math.round(-11.5)等于多少?66:写一单实例类要求精简、清晰?(单例模式)67:构造器(constructor)是否可被重写(override)?是否可被重载?是否可被继承?68:JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么?69:简述synchronized和java.util.concurrent.locks.Lock的异同?70:解析xml和excel分别使用什么技术?71:如何发布spring boot项目,简述步骤?72:什么是java序列化,如何实现java序列化?73:在JAVA中,如何跳出当前的多重嵌套循环?74:面向对象的特征有哪些方面?75:Collection 和 Collections的区别?76:同步和异步有何异同,在什么情况下分别使用他们?举例说明。

Java面试题(带答案)

Java面试题(带答案)

湖南世杰Java工程师面试题选择题:单选题1,以下java程序代码,执行后的结果是( )java.util.HashMap map=newjava.util.HashMap();map.put("name",null);map.put("name","Jack");System.out.println(map.size());A: 0 B: null C: 1 D: 2答案:C2,执行以下程序后的输出结果是( )Public class Test {Public static void main(String[] args) {StringBuffer a = new StringBuffer("A");StringBuffer b = new StringBuffer("B");operator(a, b);System.out.println(a +","+ b);}Public static void operator(StringBuffer x, StringBuffer y) { x.append(y); y = x;}}A: A,A B: A,B C: B,B D: AB,B答案:D3,关于依赖注入,下列选项中说法错误的是( )A:依赖注入能够独立开发各组件,然后根据组件间关系进行组装B:依赖注入使组件之间相互依赖,相互制约C:依赖注入提供使用接口编程D:依赖注入指对象在使用时动态注入答案:B4,关于spring说法错误的是( )A: spring是一个轻量级JAVA EE的框架集合B: spring是“依赖注入”模式的实现C: 使用spring可以实现声明事务D: spring提供了AOP方式的日志系统答案:D5,要在session对象中保存属性,可以使用以下哪个语句( ) A: session.getAttribute(“key”,”value”)B: session.setAttribute(“key”,”value”)C: session.setAttribute(“key”)D: session.getAttribute(“key”)答案:B6,关于以下程序代码的说明正确的是?( )Public class HasStatic{Private static int x = 100;Public static void main(String args[]){HasStatic hs1= new HasStatic();hs1.x++;HasStatic hs2= new HasStatic();hs2.x++;hs1=new HasStatic();hs1.x++;HasStatic.x--;System.out.println("x="+x);}}A: 程序通过编译,输出结果为:x=103B: 10行不能通过编译,因为x是私有静态变量C: 5行不能通过编译,因为引用了私有静态变量D: 程序通过编译,输出结果为:x=102答案:D7,以下哪一项不是使用mvc模式设计的web应用程序所具有的优点( ) A:可维护行强B:可扩展性强C:代码重复少D:大大减少代码量答案:D8,在 myjsp.jsp 中,关于下面的代码说法错误的是: ( )<%@ page language="java" import="java.util.*" errorPage="error.jsp" isErrorPage="false" %>A: 该页面可以使用 exception 对象B: 该页面发生异常会转向 error.jspC: 存在 errorPage 属性时,isErrorPage 是默认为 falseD: error.jsp 页面一定要有isErrorPage 属性且值为 true答案:A9,关于Spring MVC的核心控制器DispatcherServlet的作用,以下说法错误的是()A:它负责接收HTTP请求B:加载配置文件C:实现业务操作D:初始化上下应用对象ApplicationContext答案:C10,下面的类图表示的是哪个设计模式?( )A:代理模式(Proxy)B:装饰模式(Decorator)C:桥接模式(Bridge)D:观察者模式(Observer)答案:D11,java如何接受request域中的参数? ( )A: request.getRequestURL()B: request. getAttribute()C: request.getParameter()D: request.getWriter()答案:C12,对下面Spring声明式事务的配置含义的说明错误的是( )<bean id="txProxyTemplate"abstract="true" class="org.springframework.transaction.interceptor.TransactionProxyFact oryBean"><property name="transactionManager"ref="myTransactionManager"/><property name="transactionAttributes"><props><prop key="get*">PROPAGATION_REQUIRED,readOnly</prop><prop key="*">PROPAGATION_REQUIRED</prop></props></property></bean>A:定义了声明式事务的配置模板B: 对get方法采用只读事务C: 缺少sessionFactory属性的注入D: 配置需要事务管理的bean的代理时,通过parent引用这个配置模板,代码如下:<bean id="petBiz" parent="txProxyTemplate"><property name="target" ref="petTarget"/></bean>答案:C13,下面的输出结果是什么?( )Public class Demo {Public static void main(String args[]){String str = new String("hello");if(str=="hello"){System.out.println("true");}else{System.out.println("false");}}}A: trueB: falseC:编译不通过D:执行报错答案:B14,下面属于java合法变量定义的是?( )A: finalB:1var1C: _var2D: var3&答案:C15,下面有关JSP内置对象的描述,说法错误的是?( )A: session对象:session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止B: request对象:客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应C: application对象:application对象实现了用户间数据的共享,可存放全局变量,可以有多个D: response对象:response对象包含了响应客户请求的有关信息答案:C16,Please choice the output result ( )public class Test{Public static void changeStr(String str){str ="welcome";}Public static void main(String[] args){String str ="1234";changeStr(str);System.out.println(str);}}A: 1234B: welcomeC: 空D: 不确定答案:A17,for(i=0;i<10;++i,sum+=i);i的最终结果是?( ) A: 10B: 9C: 11D: 以上答案都不正确答案:A18,对于下面这段代码,以下说法正确的是:( )Public class Test{Public int x;Public static void main(String args[]{System. out. println("Value is"+ x);}}A: 程序会打出 "Value is 0"B: 程序会抛出 NullPointerExceptionC: 非静态变量不能够被静态方法引用D: 编译器会抛出 "possible reference before assignment"的错误答案:C19,HashMap和HashTable的描述,错误的是? ( )A: 他们都实现了Map接口。

经典java面试题及答案详解

经典java面试题及答案详解

经典java面试题及答案详解参加面试前,很多人都希望能提前预知面试题目,最好的方法就是整理一些经典的面试题,java面试的专业性比较强,如果你的基础不够扎实,那么最好找些经典的java面试题及答案分析,提前参透一下吧!java面试题1、说说HashMap和Hashtable的差别答案分析:都属于Map接口的类,实现了将惟一键映射到特定的值上。

HashMap类没有分类或排序。

他允许一个null键和多个null值。

Hashtable类似于HashMap,不过不允许null键和null值。

他也比HashMap慢,因为他是同步的。

java面试题2、Anonymous Inner Class (匿名内部类)是否能extends(继承)其他类,是否implements(实现)interface(接口)?答案分析:匿名的内部类是没有名字的内部类。

不能extends(继承)其他类,但一个内部类能作为一个接口,由另一个内部类实现。

java面试题3、STRING与STRINGBUFFER的区别是什么?答案分析:STRING的长度是不可变的,STRINGBUFFER的长度是可变的。

如果你对字符串中的内容经常进行操作,特别是内容要修改时,那么使用StringBuffer,如果最后需要String,那么使用StringBuffer的toString()方法。

java面试题4、什么时候用assert答案分析:断言是个包含布尔表达式的语句,在执行这个语句时假定该表达式为true。

如果表达式计算为false,那么系统会报告一个AssertionError,他用于调试目的。

java面试题5、Set里的元素是不能重复的,那么用什么方法来区分重复和否呢?是用==还是equals()?他们有何差别?答案分析:Set里的元素是不能重复的,那么用iterator()方法来区分重复和否。

equals()是判读两个Set是否相等。

equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值。

Java经典面试题及答案(200题)

Java经典面试题及答案(200题)

Java经典面试题及答案(200题) Java经典面试题200道Java 基础1. JDK 和 JRE 有什么区别?JDK:Java Development Kit 的简称,Java 开发工具包,提供了Java 的开发环境和运行环境。

JRE:Java Runtime Environment 的简称,Java 运行环境,为 Java 的运行提供了所需环境。

具体来说 JDK 其实包含了 JRE,同时还包含了编译 Java 源码的编译器 Javac,还包含了很多 Java 程序调试和分析的工具。

简单来说:如果你需要运行 Java 程序,只需安装 JRE 就可以了,如果你需要编写 Java 程序,需要安装 JDK。

2. == 和 equals 的区别是什么?「== 解读」对于基本类型和引用类型 == 的作用效果是不同的,如下所示:基本类型:比较的是值是否相同;引用类型:比较的是引用是否相同;代码示例:String x = "string";String y = "string";String z = new String("string");System.out.println(x==y); // trueSystem.out.println(x==z); // falseSystem.out.println(x.equals(y)); // trueSystem.out.println(x.equals(z)); // true代码解读:因为 x 和 y 指向的是同一个引用,所以 == 也是 true,而 new String()方法则重写开辟了内存空间,所以 == 结果为 false,而 equals 比较的一直是值,所以结果都为 true。

「equals 解读」equals 本质上就是 ==,只不过 String 和 Integer 等重写了equals 方法,把它变成了值比较。

最新2020年JAVA程序员笔试面试测试题库300题(含参考答案)

最新2020年JAVA程序员笔试面试测试题库300题(含参考答案)

2020年JAVA程序员笔试面试题库300题[含答案]一、简答题1.下列关于java程序结果错误的是A. 源文件可以没有 import 语句B. Package语句必须放在源文件的第一句C. 一个源文件可以有多个类定义D. 一个源文件可以定义多个public类答案:D2."类Test定义如下:public abstract class Test{public abstract void m1();public abstract void m2(){System.out.println(“hello”);}}如果对这段程序进行修改,其中不会导致错误的修改是( )A. 将修饰m1()方法的 abstract关键字删除B. 将修饰Test类的abstrac关键字删除C. 用“;”替换第4~6行D. 为m1()方法添加一个方法体答案:D3."类A定义如下:class A {private int x=10;int getX() {return x;}}class B extends A {private int x=15;//需要覆盖getx()方法}在”//需要覆盖getx()方法”后应加上的函数是:A. int getX(float f) {…}B. double getx(float f){…}C. float getx(){…};D. int getx(){…}答案:D4.单选题:答案:5."public void test() {try {oneMethod();System.out.println(“condition 1”);} catch(ArrayIndexOutOfBoundsException e) {System.out.println(“condition 2”);} catch(Exception e) {System.out.println(“condition 3”);} finally {System.out.println(“finally”);}}在oneMethod()方法运行正常的情况下将显示什么?A.condition 2B.condition 3C.finallyD.condition 1答案:CD6.面向对象的特征答案:(抽象、继承、多态、封装)7.方法中的局部变量何时分配内存答案:在方法被调用时、静态变量在类被加载时分配内存8."指出下列程序运行的结果public class Example{String str=new String(“good );char[]ch={‘a’,’b’,’c’};public static void main(String args[]){Example ex=new Example();ex.change(ex.str,ex.ch);System.out.print(ex.str+ and );System.out.print(ex.ch);}public void change(String str,char ch[]){str= test okj ;ch[0]=’g’;}}""A. good and abcB. good and gbcC. test ok and abcD. test ok and gbc答案:9.String s1=”Hello”表达式s1==”Hello”返回true or false答案:TRUE10.如果你被要求写一段代码读取一个图片文件,那么一般使用哪种Stream?A. ObjectInputStreamB. FileInputStreamC. FileReaderD. DataInputStream答案:D11.将两个表连接在一起时,下面那一项通常是另外一个表的主键A. 外键B. 总控键C. 重复的组D. 主键答案:A12.下列哪些情况适合考虑使用有状态会话beanA. 实例化会话bean的时候,必须初始化会话bean的状态B. 在方法调用期间,会话bean需要维护成员变量的的数据C. 会话bean提供的服务不具体针对某种客户端D. 会话bean需要跨越多个方法调用,维护客户端的信息答案:AD13.容器Panel和applet缺省使用的布局编辑策略是答案:FlowLayout的布局管理器14.单选题答案:15.EJB2.0规范中定义了几种Enterprise Bean? A. TimerObjectB. Entity BeanC. MessageDrivenBeanD. SessionBean答案:CD16.下面哪些是合法的标识符?A. *point;B. _endline;C. $personC. const答案:BC17."下面语句输出的结果是什么?int score = 9;switch (score){case 0:System.out.println();default: System.out.println(""Error"");case 3: System.out.println(""Good"");break;case 2: System.out.println(""Best"");}A. Error Good BestB. Error goodC. ErrorD. 没有任何输出答案:B18."下面代码显示的结果是什么public class Test {static init arr[] = new int[0]public static void main(String [] arge) {System.out.print(arr[1]);}}答案:可编译通过,运行报异常19.保证在Java应用程序中,一个类Class只有一个内存实例存在该使用什么设计模式A. Builder模式B. Factory模式C. Singleton模式D. Composite模式答案:C20.换行符是哪个" A.\rB.\nC.\bD.\t答案:B21.下面哪一个primitive type 和对应的wrapper class 是错误的?ng.IntegerB.g ng.LongC.short ng.ShortD.void ng.V oidE.char[] ng.String答案:E22.如果你被要求写一段代码读取一个序列化的对象,那么一般使用哪种Stream?A. FileInputStreamB. FileReadeC. DataInputStreamD. ObjectInputStream答案:D23."下面的main方法执行到A时, str的值是?void main() {String str=”BEA”;This.modify(str);//A}void modify(String str) {str.replace(‘A’, ‘E’);str.toLowerCase();str+=”B”;}A. “BEEB. “BEAC. “beeBD. “bee答案:B24.以下标识符中()是不合法的A. 1sB. $1C. $1D. BigM答案:A25.以下的变量定义中,合法的语句是:A. double a=1+4e2.5;B. short do=15;C. int abc_21;D. float 1_variable=3.4;答案:26."下面程序执行代码到第5行时j的值是:1. public class test {2. public static void main(String args[]) {3. int i = OxFFFFFFF1;4. int j = -i;5.6. }7. }A. 14B. 15C. 0D. 1答案:B27.类的实例方法表示的是什么?( )A. 类的行为B. 父类对象的行为C. 类的属性D. 类对象的行为答案:D28.不同级别的用户对同一对象拥有不同的访问权限或某个客户端不能直接操作到某个对象,但又必须和那个对象有所互动,这种情况最好使用什么模式?A. Fasade模式B. Bridge模式C. Adapter模式D. Proxy模式答案:D29."假设test类运行于多线程环境下,那么关于A处的同步下面描述正确的是?public class Test {List list = new java.util.ArrayList();public void test() {synchronized(list) { // --Alist.add( String.valueOf(System.currentTimeMillis()));}}A. Test 类为singleton时也没有必要增加synchronizedB. Test方法中必须增加synchronizedC. Test类为singleton时有必要增加synchronizedD. Test 方法中没有必要增加synchronized答案:C30.栈和队列的共同特点是:A. 都是先进后出B. 只允许在端点处插入和删除元素C. 都是先进先出D. 没有共同点答案:B31.Oracle中数值1234567.89如果放入Number(9,3)类型的变量中,存储的值是:A. 1234567.890B. 1234567.9C. 1234567.89D. 会报Numberic error答案:32.PL/SQL中用来判断FETCH语句是否成功,并且在FETCH语句失败时返回逻辑真的属性是:A. %NOTFOUNDB. %FOUNDC. %ISOPEND. %ROWCOUNT答案:A33."运行以下程序段后,变量t1的值是:public static void exchange(int x, int y) {int temp=x;x=y;y=temp;}public static void main(String args[]) {int t1=2;int t2=3;exchange(t1, t2);}A. 3B. 2D. 7答案:B34."给出下面的不完整的类代码:class Person {String name, department;int age;public Person(String n) { name = n; }public Person(String n, int a) { name = n; age=a;}public Person(String n, String d, int a) {// doing the same as two arguments version of constructor// includeing assignment name=n, age=adepartment = d;}}下面的哪些的表达式可以加到构造方法中的”doing the same as…”处。

java常见的面试题及答案

java常见的面试题及答案

java常见的面试题及答案Java是一种广泛使用的编程语言,它以其跨平台的特性和面向对象的设计而受到程序员的青睐。

在Java面试中,面试官经常会问到一些基础和高级的问题来测试应聘者的编程能力和对Java的理解。

以下是一些常见的Java面试题及其答案:1. 什么是Java?- Java是一种面向对象的编程语言,由Sun Microsystems公司(现为Oracle公司的一部分)在1995年发布。

它设计为简单、健壮、安全,并且具有跨平台的特性。

2. Java与C++的区别是什么?- Java是一种纯面向对象的语言,而C++支持面向过程的编程。

- Java没有指针和内存管理,而C++有。

- Java有垃圾回收机制,而C++需要手动管理内存。

- Java代码在JVM上运行,而C++代码直接编译成机器码。

3. 什么是JVM?- JVM(Java虚拟机)是一个可以执行Java字节码的虚拟机。

它是一个平台无关的运行环境,允许Java程序在任何安装了JVM的设备上运行。

4. 什么是Java集合框架?- Java集合框架是Java提供的一个用于存储和处理对象集合的类库。

它包括List、Set、Map等接口和实现。

5. ArrayList和LinkedList的区别是什么?- ArrayList是基于动态数组实现的,适合随机访问。

- LinkedList是基于双向链表实现的,适合频繁的插入和删除操作。

6. 什么是多线程?- 多线程是程序设计中的一种技术,它允许同时执行多个线程,从而提高程序的执行效率。

7. 如何创建线程?- Java中可以通过继承Thread类并重写run方法,或者实现Runnable接口来创建线程。

8. 什么是死锁?如何避免死锁?- 死锁是指两个或多个线程在执行过程中,因争夺资源而造成的一种互相等待的状态,导致这些线程无法继续执行。

- 避免死锁的方法包括:确保资源的分配顺序一致、使用定时锁、避免嵌套锁等。

初级java面试题及答案整理

初级java面试题及答案整理

初级java面试题及答案整理1. 什么是Java虚拟机(JVM)?Java虚拟机(JVM)是一个可以执行Java字节码的虚拟计算机。

它是一个抽象计算机的概念,提供了Java程序运行的环境。

JVM负责加载字节码文件,提供运行时环境,执行字节码,并且管理程序执行过程中的内存分配。

2. 解释Java中的多态性。

多态性是指允许不同类的对象对同一消息做出响应的能力。

在Java中,多态性主要通过继承和接口实现。

例如,一个父类引用可以指向任何继承自该父类的子类对象,并且可以调用子类重写的方法。

3. Java中有哪些数据类型?Java中的数据类型分为两大类:基本数据类型和引用数据类型。

基本数据类型包括:- 整型:byte, short, int, long- 浮点型:float, double- 字符型:char- 布尔型:boolean引用数据类型包括:- 类- 接口- 数组4. 什么是Java中的集合框架?Java集合框架是一组用于存储和处理对象集合的接口和类。

它包括List、Set和Map三种主要的接口类型,以及它们的实现类,如ArrayList、HashSet、HashMap等。

5. 解释Java中的异常处理机制。

Java中的异常处理机制允许程序在遇到错误时,能够优雅地处理错误并继续执行。

它通过try、catch、finally和throw关键字实现。

try 块用于包围可能会抛出异常的代码,catch块用于捕获和处理异常,finally块用于执行清理工作,无论是否发生异常。

6. Java中如何实现线程同步?线程同步是通过同步方法或同步代码块来实现的。

同步方法使用synchronized关键字修饰,确保一次只有一个线程可以执行该方法。

同步代码块则使用synchronized关键字包围需要同步的代码段。

7. 什么是Java中的垃圾回收?垃圾回收是Java自动内存管理的一部分,它负责回收不再使用的对象所占用的内存。

java工程师面试题及答案

java工程师面试题及答案

java工程师面试题及答案Java工程师面试中,面试官通常会通过一系列技术问题来评估候选人的技术能力和经验。

以下是一些常见的Java面试题及答案,供参考:1. Java和C++的主要区别是什么?- Java是一种纯面向对象的语言,而C++支持面向过程和面向对象两种编程范式。

- Java不支持指针操作,而C++支持。

- Java有垃圾回收机制,而C++需要手动管理内存。

- Java是跨平台的,而C++不是。

2. 什么是JVM?- JVM(Java虚拟机)是一个可以执行Java字节码的虚拟计算机。

它将Java源代码编译成字节码,然后在JVM上运行。

3. 什么是多线程?- 多线程是程序设计中的一种方法,允许两个或多个线程同时执行。

Java通过`Thread`类和`Runnable`接口来实现多线程。

4. 同步和异步的区别是什么?- 同步是指多个线程访问共享资源时,一次只允许一个线程访问,这样可以防止数据不一致。

- 异步是指多个线程可以同时访问共享资源,但需要额外的机制来保证数据的一致性。

5. Java中的集合框架有哪些?- Java集合框架包括`List`、`Set`、`Map`等接口,以及它们的实现类如`ArrayList`、`HashSet`、`HashMap`等。

6. 什么是泛型?- 泛型是一种类型安全的特性,它允许在编译时检查类型,从而避免类型转换的错误。

泛型在Java 5中被引入。

7. Java中的异常处理机制是怎样的?- Java使用`try`、`catch`和`finally`块来处理异常。

`try`块包含可能会抛出异常的代码,`catch`块捕获并处理异常,`finally`块则无论是否发生异常都会执行。

8. 什么是Java反射?- 反射允许程序在运行时查询、访问和修改类和对象的属性和方法。

它在Java中是通过`ng.reflect`包实现的。

9. 什么是序列化?- 序列化是将对象的状态信息转换为可以存储或传输的格式的过程。

java应届生面试题目(3篇)

java应届生面试题目(3篇)

第1篇一、Java基础知识1. 请简述Java的基本特性和优势。

解析:Java具有简单性、面向对象、分布式、平台无关性、安全性、多线程、动态性、强类型、高效率、可移植性等特性。

其优势在于跨平台、安全性高、易于开发、有丰富的类库等。

2. 请解释Java中的基本数据类型和引用数据类型。

解析:基本数据类型包括byte、short、int、long、float、double、char、boolean;引用数据类型包括类、接口、数组等。

3. 请解释Java中的封装、继承、多态三个基本概念。

解析:封装是指将类的属性和方法封装在一个单元中,隐藏内部实现细节;继承是指子类继承父类的属性和方法,实现代码复用;多态是指同一方法在不同对象上表现不同的行为。

4. 请解释Java中的构造函数和析构函数。

解析:构造函数用于创建对象时初始化对象的属性,析构函数用于销毁对象时释放对象占用的资源。

5. 请解释Java中的static关键字。

解析:static关键字用于修饰成员变量和方法,表示该成员变量或方法属于类,而不是对象。

6. 请解释Java中的final关键字。

解析:final关键字用于修饰成员变量、方法和类,表示该成员变量、方法或类不可修改。

7. 请解释Java中的异常处理机制。

解析:Java中的异常处理机制包括try-catch-finally语句,用于捕获和处理程序中的异常。

8. 请解释Java中的泛型。

解析:泛型是一种参数化类型,允许在定义类、接口和泛型方法时指定类型参数,提高代码的复用性和安全性。

二、Java集合框架1. 请解释Java中的List、Set和Map接口。

解析:List接口表示有序集合,Set接口表示无序集合且元素不可重复,Map接口表示键值对映射。

2. 请解释Java中的ArrayList、LinkedList、HashSet、TreeSet、HashMap、TreeMap等常用集合类。

解析:ArrayList和LinkedList实现List接口,ArrayList基于数组实现,LinkedList基于链表实现;HashSet和TreeSet实现Set接口,HashSet基于哈希表实现,TreeSet基于红黑树实现;HashMap和TreeMap实现Map接口,HashMap基于哈希表实现,TreeMap基于红黑树实现。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

职业技能题库&在线云笔试平台 试卷名称:Java经典面试题带答案试卷描述:java笔试题目、招聘笔试、微信考试、在线考试试卷链接:/store/open/paperInfo/41651 试卷限时:50分一.单项选择题每题分值:2.5分是否题目乱序:是是否选项乱序:是是否可回溯:是难度:中1.[单选]Java是从()语言改进重新设计。

A.AdaB.C++C.PasacalD.BASIC答案:B2.[单选]下列语句哪一个正确()A.Java程序经编译后会产生machine codeB.Java程序经编译后会产生byte codeC.Java程序经编译后会产生DLLD.以上都不正确职业技能题库&在线云笔试平台 答案:B3.[单选]下列说法正确的有()A.class中的constructor不可省略B.constructor必须与class同名,但方法不能与class同名C.constructor在一个对象被new时执行D.一个class只能定义一个constructor答案:C4.[单选]提供Java存取数据库能力的包是()A.java.sqlB.java.awtC.ngD.java.swing答案:A5.[单选]下列运算符合法的是()A.&&B.<>C.ifD.:=答案:A6.[单选]执行如下程序代码a=0;c=0;职业技能题库&在线云笔试平台 do{--c;a=a-1;}while(a>0);后,C的值是()A.0B.1C.-1D.死循环答案:C7.[单选]下列哪一种叙述是正确的()A.abstract修饰符可修饰字段、方法和类B.抽象方法的body部分必须用一对大括号{}包住C.声明抽象方法,大括号可有可无D.声明抽象方法不可写出大括号答案:D8.[单选]下列语句正确的是()A.形式参数可被视为localvariableB.形式参数可被字段修饰符修饰C.形式参数为方法被调用时,真正被传递的参数D.形式参数不可以是对象职业技能题库&在线云笔试平台 答案:A9.[单选]下列哪种说法是正确的()A.实例方法可直接调用超类的实例方法B.实例方法可直接调用超类的类方法C.实例方法可直接调用其他类的实例方法D.实例方法可直接调用本类的类方法答案:D二.多项选择题每题分值:2.5分是否题目乱序:是是否选项乱序:是是否可回溯:是难度:中10.[多选]下列说法正确的有()A.环境变量可在编译sourcecode时指定B.在编译程序时,所能指定的环境变量不包括class pathC.javac一次可同时编译数个Java源文件D.javac.exe能指定编译结果要置于哪个目录(directory)答案:BCD11.[多选]下列标识符不合法的有()A.new职业技能题库&在线云笔试平台 B.$UsdollarsC.1234D.car.taxi答案:ACD12.[多选]下列说法错误的有()A.数组是一种对象B.数组属于一种原生类C.intnumber=[]={31,23,33,43,35,63}D.数组的大小可以任意改变答案:BCD13.[多选]不能用来修饰interface的有()A.privateB.publicC.protectedD.static答案:ACD14.[多选]下列正确的有()A.call byvalue不会改变实际参数的数值B.call by reference能改变实际参数的参考地址C.call byreference不能改变实际参数的参考地址D.call byreference能改变实际参数的内容职业技能题库&在线云笔试平台 答案:ACD15.[多选]下列说法错误的有()A.在类方法中可用this来调用本类的类方法B.在类方法中调用本类的类方法时可直接调用C.在类方法中只能调用本类中的类方法D.在类方法中绝对不能调用实例方法答案:ACD16.[多选]下列说法错误的有()A.Java面向对象语言容许单独的过程与函数存在B.Java面向对象语言容许单独的方法存在C.Java语言中的方法属于类中的成员(member)D.Java语言中的方法必定隶属于某一类(对象),调用方法与过程或函数相同答案:ABC17.[多选]下列说法错误的有()A.能被java.exe成功运行的javaclass文件必须有main()方法B.J2SDK就是Java APIC.Appletviewer.exe可利用jar选项运行.jar文件D.能被Appletviewer成功运行的javaclass文件必须有main()方法答案:BCD职业技能题库&在线云笔试平台 三.判断题每题分值:2.5分是否题目乱序:是是否选项乱序:是是否可回溯:是难度:中18.[判断]Java程序中的起始类名称必须与存放该类的文件名相同。

()A.正确B.错误答案:A19.[判断]Unicode是用16位来表示一个字的。

()A.正确B.错误答案:A20.[判断]原生类中的数据类型均可任意转换。

()A.正确B.错误答案:B四.编程题每题分值:5分是否题目乱序:是是否选项乱序:是是否可回溯:是职业技能题库&在线云笔试平台21.[编程]分别写出BOOL,int,float,指针类型的变量a 与“零”的比较语句。

参考答案:BOOL if ( !a ) orif(a)int : if ( a == 0)float :const EXPRESSION EXP = 0.000001if ( a< EXP && a >-EXP)pointer : if ( a !=NULL) or if(a == NULL)22.[编程]请说出const与#define 相比,有何优点?参考答案:1)const常量有数据类型,而宏常量没有数据类型。

编译器可以对前者进行类型安全检查。

而对后者只进行字符替换,没有类型安全检查,并且在字符替换可能会产生意料不到的错误。

2)有些集成化的调试工具可以对const常量进行调试,但是不能对宏常量进行调试。

23.[编程]简述数组与指针的区别?参考答案:数组要么在静态存储区被创建(如全局数组),要么在栈上被创建。

指针可以随时指向任意类型的内存块。

(1)修改内容上的差别char a[]= “hello”;a[0] = ‘X’;char *p = “world”;// 注意p 指向常量字符串p[0] = ‘X’;// 编译器不能发现该错误,运行时错误(2) 用运算符sizeof可以计算出数组的容量(字节数)。

sizeof(p),p为指针得到的是一个指针变量的字节数,而不是p 所指的内存容量。

C++/C语言没有办法知道指针所指的内存容量,除非在申请内存时记住它。

注意当数组作为函数的参数进行传递时,该数组自动退化为同类型的指针。

char a[] ="hello world";char *p = a;cout<<sizeof(a) <<endl; // 12字节cout<<sizeof(p) <<endl; // 4 字节职业技能题库&在线云笔试平台 计算数组和指针的内存容量voidFunc(char a[100]){cout<<sizeof(a) <<endl; // 4 字节而不是100字节}24.[编程]类成员函数的重载、覆盖和隐藏区别?参考答案:a.成员函数被重载的特征:(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual 关键字可有可无。

b.覆盖是指派生类函数覆盖基类函数,特征是:(1)不同的范围(分别位于派生类与基类);(2)函数名字相同;(3)参数相同;(4)基类函数必须有virtual 关键字。

c.“隐藏”是指派生类的函数屏蔽了与其同名的基类函数,规则如下:(1)如果派生类的函数与基类的函数同名,但是参数不同。

此时,不论有无virtual 关键字,基类的函数将被隐藏(注意别与重载混淆)。

(2)如果派生类的函数与基类的函数同名,并且参数也相同,但是基类函数没有virtual 关键字。

此时,基类的函数被隐藏(注意别与覆盖混淆)25.[编程] There are two int variables: a and b, don’t use “if”, “? :”, “switch”orother judgementstatements, find out the biggest one of the two numbers.参考答案:( ( a + b ) + abs( a - b ) ) / 226.[编程] 如何打印出当前源文件的文件名以及源文件的当前行号?参考答案:cout<< __FILE__ ;cout<<__LINE__ ;__FILE__和__LINE__是系统预定义宏,这种宏并不是在某个文件中定义的,而是由编译器定义的。

职业技能题库&在线云笔试平台 27.[编程] main主函数执行完毕后,是否可能会再执行一段代码,给出说明?参考答案:可以,可以用_onexit注册一个函数,它会在main 之后执行intfn1(void), fn2(void), fn3(void), fn4 (void);void main( void ){String str("zhanglin");_onexit( fn1 );_onexit( fn2 );_onexit(fn3 );_onexit( fn4 );printf( "This is executed first.\n" );}int fn1(){printf( "next.\n" );return 0;}int fn2(){printf( "executed " );return 0;职业技能题库&在线云笔试平台 }int fn3(){printf( "is " );return 0;}int fn4(){printf( "This ");return 0;}The _onexit function is passed the address of afunction (func) to be called when the program terminates normally. Successivecalls to _onexit create a register of functions that are executed in LIFO(last-in-first-out) order. The functions passed to _onexit cannot takeparameters.28.[编程] 如何判断一段程序是由C 编译程序还是由C++编译程序编译的?参考答案:#ifdef __cpluspluscout<<"c++";#elsecout<<"c";#endif29.[编程]文件中有一组整数,要求排序后输出到另一个文件中职业技能题库&在线云笔试平台 参考答案:#include#includeusing namespace std;void Order(vector& data)//bubble sort {int count = data.size() ;int tag = false ; //设置是否需要继续冒泡的标志位for ( inti = 0 ; i< count ; i++){for ( int j =0 ; j < count - i - 1 ; j++){if ( data[j] > data[j+1]){tag = true ;int temp = data[j] ;data[j] = data[j+1] ;data[j+1] = temp ;}}if ( !tag )break ;}}void main( void )职业技能题库&在线云笔试平台 {vectordata;ifstreamin("c:\\data.txt");if ( !in){cout<<"file error!";exit(1);}int temp;while (!in.eof()){in>>temp;data.push_back(temp);}in.close(); //关闭输入文件流Order(data);ofstream out("c:\\result.txt");if ( !out){cout<<"fileerror!";exit(1);职业技能题库&在线云笔试平台 }for ( i = 0 ; i<data.size() ; i++)out<<DATA[I]<<" ?;30.[编程] 链表题:一个链表的结点结构struct Node{intdata ;Node *next ;};typedefstruct Node Node ;已知链表的头结点head,写一个函数把这个链表逆序( Intel)参考答案:Node * ReverseList(Node*head) //链表逆序{if ( head == NULL || head->next == NULL )returnhead;Node *p1 = head ;Node *p2 = p1->next ;Node *p3 =p2->next ;p1->next = NULL ;while ( p3 != NULL ){职业技能题库&在线云笔试平台 p2->next = p1 ;p1 = p2 ;p2 = p3 ;p3 = p3->next ;}p2->next = p1 ;head = p2 ;return head ;}31.[编程]已知两个链表head1 和head2 各自有序,请把它们合并成一个链表依然有序。

相关文档
最新文档