2017年最新Java经典笔试面试题笔试题目及答案

合集下载

java中级面试题及答案2017

java中级面试题及答案2017

java中级面试题及答案2017Java舍弃了C++的指针对存储器地址的直接操作~程序运行时~内存由操作系统分配~这样可以避免病毒通过指针侵入系统。

下面是关于java中级面试题及答案~希望大家认真阅读!1、谈谈对面向对象的理解;以及三大特征;面向对象是基于万物皆对象这个观点.把一个对象抽象成类,具体上就是把一个对象的静态特征和动态特征抽象成属性和方法,也就是把一类事物的算法和数据结构封装在一个类之中,程序就是多个对象和互相之间恺的通信组成的。

比如把一个人看成一个对象~这个人就会有他的属性和行为;他渣有手、脚、嘴巴等就是他的属性~或者他庭会说话、会走路、会吃饭就是行为~同理饔我们也可以把这些都看成对象~所以一个艉对象是可以由多个对象组成的。

面向对煮象具有封装性、继承性、多态性。

封装就睾是隐蔽了对象内部不需要暴露的细节~使涝得内部细节的变动跟外界脱离~只依靠接瀑口进行通信;即不用管这个方法是怎么实惨现的~只要知道他可以实现这个功能。

封椒装性降低了编程的复杂性.通过继承使得冤新建一个类变得容易~一个类继承了父类砍~则父类所有的非私有的方法和公用属性词可以被这个类所调用。

而继承和实现接口镥所产生的多态~使得不同的类所产生的对蝉象能够对相同的消息作出不同的反应~即素在实现接口1 / 5的情况下~同一个方法里的行睡为不同~极大地提高了代码的通用性.。

总之~面向对象的特性提高了大型程序侈的重用性和可维护性。

2、Strin辙g、StringBuffer、Str构ingBuilder的区别;1.S恨tring对象是不可改变的。

2.如瘸果要修改字符串而不创建新的对象~则可以使用StringBuilder类。

蝣例如~当在一个循环中将许多字符串连接蘩在一起时~使用StringBuil削der类可以提升性能java中级面试氏题及答案2017。

3.由于Stri ng的值一旦创建就不能再修改~所以称缍它是恒定的。

看似能修改String的岘方法实际上只是返回一个包含修改内容的新String。

2017年Java面试笔试题目

2017年Java面试笔试题目

2017年Java面试笔试题目Java集合框架为Java编程语言的基础,也是Java面试中很重要的一个知识点。

下面CN人才网小编为大家带来的是,希望对大家有所帮助~1.Java集合框架是什么?说出一些集合框架的优点?每种编程语言中都有集合,最初的Java版本包含几种集合类:Vector、Stack、HashTable和Array。

随着集合的广泛使用,Java1.2提出了囊括所有集合接口、实现和算法的集合框架。

在保证线程安全的情况下使用泛型和并发集合类,Java已经经历了很久。

它还包括在Java并发包中,阻塞接口以及它们的实现。

集合框架的部分优点如下:(1)使用核心集合类降低开发成本,而非实现我们自己的集合类。

(2)随着使用经过严格测试的集合框架类,代码质量会得到提高。

(3)通过使用JDK附带的集合类,可以降低代码维护成本。

(4)复用性和可操作性。

2.集合框架中的泛型有什么优点?Java1.5引入了泛型,所有的集合接口和实现都大量地使用它。

泛型允许我们为集合提供一个可以容纳的对象类型,因此,如果你添加其它类型的任何元素,它会在编译时报错。

这避免了在运行时出现ClassCastException,因为你将会在编译时得到报错信息。

泛型也使得代码整洁,我们不需要使用显式转换和instanceOf操作符。

它也给运行时带来好处,因为不会产生类型检查的字节码指令。

3.Java集合框架的基础接口有哪些?Collection为集合层级的根接口。

一个集合代表一组对象,这些对象即为它的元素。

Java平台不提供这个接口任何直接的实现。

Set是一个不能包含重复元素的集合。

这个接口对数学集合抽象进行建模,被用来代表集合,就如一副牌。

List是一个有序集合,可以包含重复元素。

你可以通过它的索引来访问任何元素。

List更像长度动态变换的数组。

Map是一个将key映射到value的对象.一个Map不能包含重复的key:每个key最多只能映射一个value。

java笔试题及答案2017

java笔试题及答案2017

java笔试题及答案2017# Java笔试题及答案20171. 题目:请解释Java中的接口和抽象类的区别。

答案: Java中的接口和抽象类都是不能被实例化的抽象类型,但它们之间存在一些关键区别:- 接口:接口可以包含常量(public static final字段),抽象方法,以及默认方法(Java 8引入)。

接口中的所有字段默认都是public static final的,所有方法默认都是public abstract的。

接口可以被多实现,一个类可以实现多个接口。

- 抽象类:抽象类可以包含构造方法,非抽象方法,静态方法,常量。

抽象类中的字段可以是任意访问修饰符。

一个类只能继承一个抽象类。

2. 题目:解释Java中的垃圾回收机制。

答案: Java的垃圾回收机制是一种自动内存管理功能,用于自动回收不再使用的对象所占用的内存。

垃圾回收器主要通过以下步骤工作:- 标记:垃圾回收器遍历所有从根对象可达的对象,标记这些对象为“活动”。

- 清除:垃圾回收器遍历堆内存,清除所有未被标记的对象。

- 压缩:可选步骤,将存活的对象移动到堆的一端,减少内存碎片。

3. 题目:在Java中,如何实现多线程?答案: Java中实现多线程可以通过以下几种方式:- 继承Thread类:创建一个继承自Thread类的子类,并重写run方法。

- 实现Runnable接口:创建一个实现了Runnable接口的类,并将Runnable对象传递给Thread类的构造函数。

- 使用Executor框架:使用Java提供的线程池管理器来管理线程。

4. 题目:请解释Java中的异常处理机制。

答案: Java的异常处理机制包括try、catch、finally和throw关键字:- try:用于定义可能抛出异常的代码块。

- catch:用于捕获try块中抛出的异常,并进行处理。

- finally:无论是否发生异常,finally块中的代码都会被执行,常用于资源清理。

JAVA程序员笔试面试题汇总及答案

JAVA程序员笔试面试题汇总及答案

1. 【基础题】请描述访问控制符的各自作用域与区别答:√√√√√√√√√一、名词解释二、问答题1. 【中等题】请说出ArrayList和Vector的区别答:主要从二方面来说.同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的二.数据增长:当需要增长时,Vector 默认增长为原来一培,而ArrayList却是原来的一半2. 【中等题】请说出HashMap和Hashtable的区别答:HashMap与HashT able主要从三方面来说。

一.历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现二.同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的三.值:只有HashMap可以让你将空值作为一个表的条目的key或value3. 【基础题】Collection 和Collections的区别答:Collections是个java.util下的类,它包含有各种有关集合操作的静态方法。

Collection是个java.util下的接口,它是各种集合结构的父接口第十八章输入输出笔试题一、填空题1. 【基础题】File对象的isFile()方法作用是判断是否是文件,getAbsolutePath() 方法作用是获取文件或目录的绝对路径。

2. 【基础题】BufferedReader和BufferedWriter以字符流的方式读写文本文件,且效率更高。

3. 【基础题】FileInputStream和FileOutputStream以字节流的方式读写文本文件。

二、选择题1. 【基础题】下列哪个类是实体类(BC )A. InputStreamB. PrintStreamC. SocketD. ReaderE. DataInput2. 【提高题】请选择下列程序的运行结果(A)public class TestIOapp{public static void main(String [] args) throws IOException{StringReader stingin = new StringReader("test");LineNumberReader in = new LineNumberReader(stingin);PrintWriter out = new PrintWriter(System.out);out.println(in.readLine());out.flush();}}A. testB. test:1C. 1:testD. 1 test3. 【提高题】请选择下列程序的运行结果( B )public class TestIOapp{public static void main(String [] args) throws IOException{RandomAccessFile file = new RandomAccessFile("test.txt","rw");file.writeBoolean(true);file.writeInt(123456);file.writeInt(7890);file.writeLong(1000000);file.writeInt(777);file.writeFloat(.0001f);file.seek(5);System.out.println(file.readInt());}}A. 123456B. 7890C. 1000000D. 777E. 0001三、名词解释四、问答题1. 【中等题】请说出java.io.reader和java.io.inputstream的区别答:java.io.Reader 和java.io.InputStream 组成了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经典面试笔试题及答案

Java经典面试笔试题及答案

1.什么是对象序列化,为什么要使用?所谓对象序列化就是把一个对象以二进制流的方式保存到硬盘上。

好处:方便远程调用。

2.值传递与引用传递的区别?所谓值传递就是把一个对象的值传给一个新的变量,但是系统会给这个新的变量开辟一个新的内存空间。

不会改变原有的值所谓引用传递就是把一个对象在堆中保存的数据传递给一个变量,此时新的变量与原有的变量对应同一个内存存储空间,当新的变量修改对象的属性时,内存中的数据也会修改。

3.接口与抽象类的区别?1:接口里面不可以实现方法体,抽象类可以实现方法体。

2:接口可以多继承接口,抽象类不可以。

3:接口需要被子类实现,抽象类是要被子类继承(单一继承)。

4:接口中只能有公有的方法和属性而且必须赋初始值,抽象类中可以有私有方法和属性.5: 接口中不能存在静态方法,但属性可以和final,抽象类中方法中可以有静态方法,属性也可以。

4.谈谈继承,为什么要使用继承?所谓继承就是找出几个类中共同的部分,提取出来作为父类。

而子类只需要继承父类,就可以共享父类的方法。

使用继承能够减少重复的代码。

5.方法重载的好处?所谓重载就是在一个类中可以定义多个相同的方法,但是方法的参数类型和参数的个数以及顺序要不同。

重载的好处就是能够让我们很快的掌握该方法的功能,我们只要要记住该方法就能很快的理解该方法的参数以及参数的作用6.项目中印象最深的部分?我觉得在该项目中我体现到了反射技术的强大之处,原来我一直不清楚反射是一种什么样的技术,只知道一些概念上的知识,经过这个项目之后,终于知道该怎样灵活运用反射,以及在什么时候运用。

谈谈你对面向对象的理解与认识?我觉得使用面向对象这种思维的方式比较符合我们人类的思想,不需要去学习一些什么新的思考方式,就按照现实生活做的一些故事就能让人理解该内容的知识以及他们的作用。

我的看法就是:1:当加入新的功能的时候不会修改原有的代码。

(面向接口编程) 2: 当我们写的一个类可以重复的运用在其他项目中。

2017年Java经典面试题汇总

2017年Java经典面试题汇总

2017年Java经典面试题汇总1、面向对象的特征有哪些方面?答:面向对象的特征主要有以下几个方面:- 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。

抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。

- 继承:继承是从已有类得到继承信息创建新类的过程。

提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类)。

继承让变化中的软件系统有了一定的延续性,同时继承也是封装程序中可变因素的重要手段(如果不能理解请阅读阎宏博士的《Java与模式》或《设计模式精解》中关于桥梁模式的部分)。

- 封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。

面向对象的本质就是将现实世界描绘成一系列完全自治、封闭的对象。

我们在类中编写的方法就是对实现细节的一种封装;我们编写一个类就是对数据和数据操作的封装。

可以说,封装就是隐藏一切可隐藏的东西,只向外界提供最简单的编程接口(可以想想普通洗衣机和全自动洗衣机的差别,明显全自动洗衣机封装更好因此操作起来更简单;我们现在使用的智能手机也是封装得足够好的,因为几个按键就搞定了所有的事情)。

- 多态性:多态性是指允许不同子类型的对象对同一消息作出不同的响应。

简单的说就是用同样的对象引用调用同样的方法但是做了不同的事情。

多态性分为编译时的多态性和运行时的多态性。

如果将对象的方法视为对象向外界提供的服务,那么运行时的多态性可以解释为:当A系统访问B系统提供的服务时,B系统有多种提供服务的方式,但一切对A系统来说都是透明的(就像电动剃须刀是A系统,它的供电系统是B系统,B系统可以使用电池供电或者用交流电,甚至还有可能是太阳能,A系统只会通过B类对象调用供电的方法,但并不知道供电系统的底层实现是什么,究竟通过何种方式获得了动力)。

方法重载(overload)实现的是编译时的多态性(也称为前绑定),而方法重写(override)实现的是运行时的多态性(也称为后绑定)。

Java常见笔试题及答案

Java常见笔试题及答案

Java常见笔试题及答案一、单选择题(每小题2分,共10分)1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( B )。

A. .javaB. .classC. .htmlD. .exe2、设 x = 1 , y = 2 , z = 3,则表达式 y+=z--/++x 的值是( A )。

A. 3B. 3. 5C. 4D. 53、在Java Applet程序用户自定义的Applet子类中,一般需要重载父类的( D )方法来完成一些画图操作。

A. start( )B. stop( )C. init( )D. paint( )4、不允许作为类及类成员的访问控制符的是( C )。

A. publicB. privateC. staticD. protected5、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( A )。

A. static void method( )B. public void method( )C. final void method( )D. abstract void method( )二、填空题(每空格1分,共20分)1、开发与运行Java程序需要经过的三个主要步骤为编辑源程序、编译生成字节码、和解释运行字节码。

2、如果一个Java Applet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是 Applet、类的子类并且存储该源程序文件的文件名为MyApplet。

13、如果一个Java Applet程序文件中定义有3个类,则使用Sun公司的JDK编译器javac.exe 编译该源程序文件将产生 3 个文件名与类名相同而扩展名为 . class 的字节码文件。

4、在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占用2 字节内存空间,这样,无论是中文字符还是英文字符,都是占用2 字节内存空间。

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

2017年最新Java经典笔试面试题2017年最新Java经典笔试面试题想要成为java程序员可不是容易的事情,下面YJBYS小编为大家精心搜集了关于Java 经典笔试的面试题,欢迎大家参考借鉴,希望可以帮助到大家!一.选择题(共50题,每题1.5分,共75分。

多选题选不全或选错都不得分。

)1. 以下属于面向对象的特征的是(C,D)。

(两项)A) 重载B) 重写C) 封装D) 继承2. 以下代码运行输出是(C)public class Person{private String name=”Person”;int age=0;}public class Child extends Person{public String grade;public static void main(String[] args){Person p = new Child();System.out.println();}}A) 输出:PersonB) 没有输出C) 编译出错D) 运行出错3. 在使用super 和this关键字时,以下描述正确的是(A)A) 在子类构造方法中使用super()显示调用父类的构造方法,super()必须写在子类构造方法的第一行,否则编译不通过B) super()和this()不一定要放在构造方法内第一行C) this()和super()可以同时出现在一个构造函数中D) this()和super()可以在static环境中使用,包括static方法和static语句块4. 以下对封装的描述正确的是(D)A) 只能对一个类中的方法进行封装,不能对属性进行封装B) 如果子类继承了父类,对于父类中进行封装的方法,子类仍然可以直接调用C) 封装的意义不大,因此在编码时尽量不要使用D) 封装的主要作用在于对外隐藏内部实现细节,增强程序的安全性5. 以下对继承的描述错误的是(A)A) Java中的继承允许一个子类继承多个父类B) 父类更具有通用性,子类更具体C) Java中的继承存在着传递性D) 当实例化子类时会递归调用父类中的构造方法6. 以下程序的运行结果是(D)class Person{public Person(){System.out.println(“this is a Person”);}}public class Teacher extends Person{private String name=”tom”;public Teacher(){System.out.println(“this is a teacher”); super();}public static void main(String[] args){Teacher teacher = new Teacher();System.out.println();}}A) this is a Personthis is a teachertomB) this is a teacherthis is a PersontomC) 运行出错D) 编译有两处错误7. 以下说法错误的是()A) super.方法()可以调用父类的所有非私有方法B) super()可以调用父类的所有非私有构造函数C) super.属性可以调用父类的所有非私有属性D) this和super关键字可以出现在同一个构造函数中8. 以下关于final关键字说法错误的是(A,C)(两项)A) final是java中的修饰符,可以修饰类、接口、抽象类、方法和属性B) final修饰的类肯定不能被继承C) final修饰的方法不能被重载D) final修饰的变量不允许被再次赋值9. 访问修饰符作用范围由大到小是(D)A) private-default-protected-publicB) public-default-protected-privateC) private-protected-default-publicD) public-protected-default-private10. 以下(D)不是Object类的方法A) clone()B) finalize()C) toString()D) hasNext()11. 多态的表现形式有(A)A) 重写B) 抽象C) 继承D) 封装12. 以下对重载描述错误的是(B)A) 方法重载只能发生在一个类的内部B) 构造方法不能重载C) 重载要求方法名相同,参数列表不同D) 方法的返回值类型不是区分方法重载的条件13. 以下(D)添加到ComputerBook中不会出错class Book{protected int getPrice(){return 30;}}public class ComputerBook extends Book{}A) protected float getPrice(){}B) protected int getPrice(int page){}C) int getPrice(){}D) public int getPrice(){return 10;}14. 以下对抽象类的描述正确的是(C)A) 抽象类没有构造方法B) 抽象类必须提供抽象方法C) 有抽象方法的类一定是抽象类D) 抽象类可以通过new关键字直接实例化15. 以下对接口描述错误的有(D)A) 接口没有提供构造方法B) 接口中的方法默认使用public、abstract修饰C) 接口中的属性默认使用public、static、final修饰D) 接口不允许多继承16. 以下代码,描述正确的有(A)interface IDemo{public static final String name;1void print();2public void getInfo();3}abstract class Person implements IDemo{4 public void print(){}}A) 第1行错误,没有给变量赋值B) 第2行错误,方法没有修饰符C) 第4行错误,没有实现接口的全部方法D) 第3行错误,没有方法的实现17. 接口和抽象类描述正确的有(B,C)(两项)A) 抽象类没有构造函数B) 接口没有构造函数C) 抽象类不允许多继承D) 接口中的方法可以有方法体18. 以下描述错误的有(C)A) abstract 可以修饰类、接口、方法B) abstract修饰的类主要用于被继承C) abstract 可以修饰变量D) abstract修饰的类,其子类也可以是abstract修饰的19. 以下描述正确的有(B)A) 方法的重写应用在一个类的内部B) 方法的重载与返回值类型无关C) 构造方法不能重载D) 构造方法可以重写更多相关java笔试题目分享:2014最新Java笔试题集锦吉联JAVA笔试题2014巨人网络java笔试题大唐电信java 笔试题目华为Java笔试题2015校园招聘JAVA笔试题JAVA常见面试笔试题及解答(精华) 关于Javascript之AJAX的基础知识笔试题目中兴软件笔试题及答案java基础笔试题Java面试题集20. 以下程序运行结果是(A)public class Test extends Father{private String name=”test”;public static void main(String[] args){Test test = new Test();System.out.println(test.getName());}}class Father{private String name=”father”;public String getName() {return name;}}A) fatherB) testC) 编译出错D) 运行出错,无输出21. 以下对异常的描述不正确的有(C)A) 异常分为Error和ExceptionB) Throwable是所有异常类的父类C) Exception是所有异常类父类D) Exception包括RuntimeException和RuntimeException之外的异常22. 在try-catch-finally语句块中,以下可以单独与finally一起使用的是(B)A) catchB) tryC) throwsD) throw23. 下面代码运行结果是(B)public class Demo{public int add(int a,int b){try{return a+b;}catch(Exception e){System.out.println(“catch 语句块”); }finally{System.out.println(“finally 语句块”); }return 0;}public static void main(String[] args){Demo demo = new Demo();System.out.println(“和是:”+demo.add(9,34)); }}A) 编译异常B) finally语句块和是:43C) 和是:43 finally语句块D) catch语句块和是:4324. 以下描述不正确的有(D)A) try块不可以省略B) 可以使用多重catch块C) finally块可以省略D) catch块和finally块可以同时省略25. 以下对自定义异常描述正确的是(C)A) 自定义异常必须继承ExceptionB) 自定义异常可以继承自ErrorC) 自定义异常可以更加明确定位异常出错的位置和给出详细出错信息D) 程序中已经提供了丰富的异常类,使用自定义异常没有意义26. 以下程序运行结果是(D)public class Test {public int div(int a,int b) {try {return a / b;}catch(Exception e){System.out.println(“Exception”);}catch(NullPointerException e){System.out.println(“ArithmeticException”);}catch (ArithmeticException e) {System.out.println(“ArithmeticException”);} finally {System.out.println(“finally”);}return 0;}public static void main(String[] args) {Test demo = new Test();System.out.println(“商是:” + demo.div(9,0)); }}A) Exception finally 商是:0B) ArithmeticException finally 商是:0C) finally商是:0D) 编译报错27. 以下对TCP和UDP描述正确的是(D)A) TCP不能提供数据的可靠性B) UDP能够保证数据库的可靠性C) TCP数据传输效率高于UDPD) UDP数据传输效率高于TCP28. 在Java中,下面对于构造函数的描述正确的是(D)。

相关文档
最新文档