corejava-day04-面试笔试题
D.None of the above statements will compile
练习14
Given the following:
class X{ void do(){} }
class Y extends X{ void do2(){} }
class Chrome {
F.It is unlikely that changes made to one class will require any changes in another.
练习9
Given:
class Plant {
String getName(){
return "plant";
}
Plant getType(){
D.Woop has-a Hmpf and Woop is-a Zing.
E.Zing has-a Hmpf and Zing is-a Woop.
练习11
Given:
class Programmer {
Programmer debug(){
return this;
}
}
class SCJP extends Programmer{
}
}
class Tulip extends Flower{ }
Which statement(s),inserted at line x,will compile?(Choose all that apply.)
A.Flower getType(){
return this;
}
B.String getType(){
乐器类(Instrument),是所有乐器的父类,有一个演奏的方法play,参数是Note类型
风管乐器(Wind),是Instrument的子类
弦乐器(Stringed),是Instrument的子类
扩展其他的类型
写Music类,有一个演奏的方法tune,接收Instrument的类型,创建几个种乐器对象,然后演奏出来
写一个程序,把若干各种类型的员工放在一个Employee数组里,写一个函数,打印出某月每个员工的工资数额。注意:要求把每个类都做成完全封装,不允许非私有化属性。
练习5、Which statement(s) are true?(Choose all that apply.)
A. Has-a relationships always rely on inheritance.
A.The attributes of the class are all private .
B.The class refers to a small number of other objects.
C.The object contains only a small number of variables.
public Top (String s) { System.out.print("B"); }
}
public class Bottom2 extends Top {
public Bottom2(String s) { System.out.print("D"); }
public static void main( String[] args ){
return "this";
}
C.Plant getType(){
return this;
}
D.Tulip getType(){
return new Tulip();
}
练习10
Given:
class Zing {
protected Hmpf h;
}
class Woop extends Zing{ }
练习4
某公司的雇员分为以下若干类:
Employee:这是所有员工总的父类,属性:员工的姓名,员工的生日月份。方法:getSalary(int month)根据参数月份来确定工资,如果该月员工过生日,则公司会额外奖励100元。
SalariedEmployee:Employee的子类,拿固定工资的员工。属性:月薪
Uber(int x){
this();
y = y*2;
}
Uber(){
y++;
}
}
class Minor extends Uber {
Minor(){
super(y);
y = y + 3;
}
public static void main(String[] args) {
new Minor();
System.out.println(y);
// line x: insert code here
}
Which, inserted at line x, will compile?(Choose all that apply.)
A.Programmer debug(){
return this;} NhomakorabeaB.SCJP debug(){
return this;
}
C.Object debug(){
return this;
}
D.int debug(){
return 1;
}
E.int debug(int x){
return 1;
}
F.Object debug(int x){
return this;
}
练习12
Given:
class Uber{
static int y = 2;
练习1
使用extends写出下列类的继承体系代码
练习2练习多态
创建一个AutoCAD画图软件,各创建3个Circle和2个Rect,用一个数组保存,遍历数组,将每种形状画出来
Shape(形状)
draw()
Circle(圆形)
draw()
Rect(矩形)
draw()
练习3练习多态
音符类(Note),里面有一些常量,比如Do、Le
HourlyEmployee:Employee的子类,按小时拿工资的员工,每月工作超出160小时的部分按照1.5倍工资发放。属性:每小时的工资、每月工作的小时数
SalesEmployee:Employee的子类,销售人员,工资由月销售额和提成率决定。属性:月销售额、提成率
BasePlusSalesEmployee:SalesEmployee的子类,有固定底薪的销售人员,工资由底薪加上销售提成部分。属性:底薪。
E. Has-a relationships are always tightly couped.
练习6、Given:
class Cliders {
public final void flipper () {
System.out.println("Flip a Clidder");
}
}
public class Clidlets extends Cliders {
new Bottom2("C");
System.out.println(" ");
}
}
What is the result?
A.BD
B.DB
C.BDC
D.DBC
pilation fails.
练习8
Select the two statements that best indicate a situation with low coupling.(Choose two.)
return this;
}
}
class Flower extends Plant{
// line x: insert code here
public static void main(String[] args){
Flower f = new Flower();
System.out.println(f.getType());
class Hmpf {}
Which is true?(Choose all that apply.)
A.Woop is-a Hmpf and has-a Hmpf.
B.Zing is-a Woop and has-a Hmpf.
C.Hmpf has-a Woop and Woop is-a Zing.
Dog dog2 = bl;
// line x :insert code here
}
}
Which, inserted at line x, will compile?(Choose all that apply.)
A.Beagle b2 = (Beagle) dog1;
B.Beagle b3 = (Beagle) dog2;
public void flipper () {
Sysetm.out.println("Flip a Clidlet.");
super.flipper ();
}
public static void main (String [] args) {
new Cliders().flipper();
}
}
What is the result?
D.The object is referred to using an anonymous variable, not directly.
E.The reference variable is declared for an interface type, not a class. The interface provides a small number of methods.
java笔试面试题目(3篇)
第1篇一、选择题(每题2分,共20分)1. 下列关于Java虚拟机(JVM)的说法,正确的是()。
A. JVM是Java程序的运行环境B. JVM是Java程序的编写环境C. JVM是Java程序的调试环境D. JVM是Java程序的编译环境解析:A。
JVM是Java程序的运行环境,负责将字节码转换为机器码执行。
2. 下列关于Java数据类型的说法,正确的是()。
A. Java中所有数据类型都是引用类型B. Java中基本数据类型包括int、float、char等C. Java中所有数据类型都是基本数据类型D. Java中基本数据类型包括int、float、char等,引用数据类型包括String、Object等解析:D。
Java中基本数据类型包括int、float、char等,引用数据类型包括String、Object等。
3. 下列关于Java面向对象的说法,正确的是()。
A. Java不支持面向对象编程B. Java支持面向对象编程,但不支持继承和多态C. Java支持面向对象编程,包括继承、多态、封装等特性D. Java支持面向对象编程,但封装不是Java面向对象的核心特性解析:C。
Java支持面向对象编程,包括继承、多态、封装等特性。
4. 下列关于Java异常处理的说法,正确的是()。
A. Java异常处理可以通过try-catch语句实现B. Java异常处理可以通过finally语句实现C. Java异常处理可以通过throw语句实现D. 以上说法都不正确解析:A。
Java异常处理可以通过try-catch语句实现。
5. 下列关于Java集合框架的说法,正确的是()。
A. Java集合框架包括List、Set、Map等接口B. Java集合框架包括List、Set、Map等类C. Java集合框架包括List、Set、Map等接口和类D. 以上说法都不正确解析:C。
Java集合框架包括List、Set、Map等接口和类。
Java经典面试笔试题及答案
1.什么是对象序列化,为什么要使用?所谓对象序列化就是把一个对象以二进制流的方式保存到硬盘上。
好处:方便远程调用。
2.值传递与引用传递的区别?所谓值传递就是把一个对象的值传给一个新的变量,但是系统会给这个新的变量开辟一个新的内存空间。
不会改变原有的值所谓引用传递就是把一个对象在堆中保存的数据传递给一个变量,此时新的变量与原有的变量对应同一个内存存储空间,当新的变量修改对象的属性时,内存中的数据也会修改。
3.接口与抽象类的区别?1:接口里面不可以实现方法体,抽象类可以实现方法体。
2:接口可以多继承接口,抽象类不可以。
3:接口需要被子类实现,抽象类是要被子类继承(单一继承)。
4:接口中只能有公有的方法和属性而且必须赋初始值,抽象类中可以有私有方法和属性.5: 接口中不能存在静态方法,但属性可以和final,抽象类中方法中可以有静态方法,属性也可以。
4.谈谈继承,为什么要使用继承?所谓继承就是找出几个类中共同的部分,提取出来作为父类。
而子类只需要继承父类,就可以共享父类的方法。
使用继承能够减少重复的代码。
5.方法重载的好处?所谓重载就是在一个类中可以定义多个相同的方法,但是方法的参数类型和参数的个数以及顺序要不同。
重载的好处就是能够让我们很快的掌握该方法的功能,我们只要要记住该方法就能很快的理解该方法的参数以及参数的作用6.项目中印象最深的部分?我觉得在该项目中我体现到了反射技术的强大之处,原来我一直不清楚反射是一种什么样的技术,只知道一些概念上的知识,经过这个项目之后,终于知道该怎样灵活运用反射,以及在什么时候运用。
谈谈你对面向对象的理解与认识?我觉得使用面向对象这种思维的方式比较符合我们人类的思想,不需要去学习一些什么新的思考方式,就按照现实生活做的一些故事就能让人理解该内容的知识以及他们的作用。
我的看法就是:1:当加入新的功能的时候不会修改原有的代码。
(面向接口编程) 2: 当我们写的一个类可以重复的运用在其他项目中。
COREJAVA部分面试题
第一部分Java的类1.请解释Java语言的跨平台特性。
解析:虽然不知道什么是跨平台也可以使用Java语言进行编程,但是对于一个Java编程员来说,理解跨平台特性能够更深入掌握Java语言,所以企业中往往要求应聘者至少理解这个特性。
参考答案:Java的跨平台特性也被称为可移植性、平台无关性,或者一次编写处处运行。
他的意思就是如果用Java语言编写一个应用,那么就可以在不同平台上运行,而不需要为不同平台单独运行开发。
之所以能实现跨平台的特性。
主要得益于Java虚拟机(JVM),JVM解释器在运行Java应用时根据当前平台进行解释,解释成符合当前平台规范的机器码,所以可以实现同样的应用在不同平台上都能运行。
2.请列举JAVA语言的主要特点解析:了解一门语言,往往从熟悉该语言的主要特点开始入手,所以企业也常常通过应聘者对JAVA语言特点的掌握程度而判断其语言基础是否扎实。
参考答案:JAVA语言有很多特点,主要包括①跨平台性:一个应用可以不经过修改直接运行到不同的平台上。
②面向对象:JAVA语言是一门面向对面的语言,可以使用对象的属性和行为,可以使用面向对象的思想进行分析设计,并实现整个应用。
③解释执行JAVA应用时,JVM中的解释器将解释类文件,生成符合当前平台的字节码。
④自动回收:JAVA应用中的垃圾回收是自动进行的,JVM中的后台线程将监视内存中数据的使用,当内存中的数据不再被引用时,将被作为垃圾回收,而不需要程序员动手回收。
3.请说明一个JAVA类中主要包含哪几个元素?并说明每种元素的作用。
解析:无论简单还是复杂的JAVA应用,都是由若干个类组成,所以类是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开发工程师招聘笔试题及解答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面试题目及答案(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篇)
第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是一种广泛使用的编程语言,特别适用于网络环境中的应用程序开发。
在面试过程中,面试官可能会提问一些Java方面的问题,以了解你的编程能力和对Java语言的理解。
本文将向你介绍一些常见的Java笔试面试题目。
二、Java基础知识1. Java语言的特点是什么?Java语言具有简单、面向对象、与平台无关、高性能、安全和多线程等特点。
2. 解释一下Java中的四种访问修饰符。
Java中的四种访问修饰符分别为:public、protected、default、private。
它们用于控制类、方法和成员变量的访问权限。
3. 什么是Java中的重载和重写?重载(Overloading)是指在一个类中可以定义多个同名的方法,但参数列表必须不同。
重写(Overriding)是指子类可以使用与父类同名的方法,但是方法体的实现可以不同。
4. 什么是静态变量和静态方法?静态变量(Static Variable)是指被声明为静态的变量,它属于类而不是属于对象。
静态变量在类加载时被创建,在整个程序运行过程中都存在。
静态方法(Static Method)是指被声明为静态的方法,它属于类而不是属于对象。
静态方法可以被类直接调用,无需创建对象。
5. 什么是Java中的包(Package)?包(Package)是一种用于组织类的机制,它可以将相关的类放在同一个包中。
包可以解决类名冲突的问题,并且提供了一种良好的代码管理方式。
三、Java面向对象1. 什么是面向对象?面向对象(Object-Oriented)是一种编程范式,它将程序组织为对象的集合,而不是按照功能来组织。
2. 什么是类(Class)和对象(Object)?类是一种用户自定义的数据类型,它是对象的模板,定义了对象的属性和行为。
对象是类的实例,它具有类的属性和行为。
3. 什么是继承(Inheritance)?继承是指一个类可以从另一个类中继承属性和方法。
Core Java面试题
JAVA面试题-CORE JAVA部分1.在main(String[] args)方法内是否可以调用一个非静态方法?答案:不能2.同一个文件里是否可以有两个public类?答案:不能3.方法名是否可以与构造器的名字相同?答案:可以。
public class T est{public T est(String iceboy){System.out.println(iceboy);}public void T est(String iceboy){System.out.println(iceboy);}public static void main(String[] args){T est a = new T est("abc");//输出“abc”a.T est("iceboy");//输出“iceboy”}}4. 初始化了一个没有run()方法的线程类,是否会出错?答案:不会。
第一种方法:直接继承Thread类。
public class T est{public static void main(String[] args){ThreadClass t = new ThreadClass();t.start();System.out.println("end");//输出“end”}}class ThreadClass extends Thread //Thread类已经实现了空的run()方法。
{}第二种方法:实现Runnable接口public class T est{public static void main(String[] args){ThreadClass t = new ThreadClass();Thread thread = new Thread(t);thread.start();System.out.println("end");}}class ThreadClass implements Runnable{public void run() //必须有此方法否则编译报错。
java面试问题及答案
java面试问题及答案java面试问题及答案「篇一」1)Java 中能创建 volatile 数组吗?能,Java 中可以创建 volatile 类型数组,不过只是一个指向数组的引用,而不是整个数组。
我的意思是,如果改变引用指向的数组,将会受到 volatile 的保护,但是如果多个线程同时改变数组的元素,volatile 标示符就不能起到之前的保护作用了。
2)volatile 能使得一个非原子操作变成原子操作吗?一个典型的例子是在类中有一个 long 类型的成员变量。
如果你知道该成员变量会被多个线程访问,如计数器、价格等,你最好是将其设置为 volatile。
为什么?因为 Java 中读取 long 类型变量不是原子的,需要分成两步,如果一个线程正在修改该 long 变量的值,另一个线程可能只能看到该值的一半(前 32 位)。
但是对一个 volatile 型的 long 或 double 变量的读写是原子。
3)volatile 修饰符的有过什么实践?一种实践是用 volatile 修饰 long 和 double 变量,使其能按原子类型来读写。
double 和 long 都是64位宽,因此对这两种类型的读是分为两部分的,第一次读取第一个 32 位,然后再读剩下的 32 位,这个过程不是原子的,但 Java 中volatile 型的 long 或 double 变量的读写是原子的。
volatile 修复符的另一个作用是提供内存屏障(memory barrier),例如在分布式框架中的'应用。
简单的说,就是当你写一个 volatile 变量之前,Java 内存模型会插入一个写屏障(write barrier),读一个 volatile 变量之前,会插入一个读屏障(read barrier)。
意思就是说,在你写一个 volatile 域时,能保证任何线程都能看到你写的值,同时,在写之前,也能保证任何数值的更新对所有线程是可见的,因为内存屏障会将其他所有写的值更新到缓存。
