2016最新java面试题 详细版
java面试的题目及答案

java面试的题目及答案Java面试题目及答案(共计2000字)1. 介绍一下Java的特点及优点。
Java是一种通用、高级、面向对象的编程语言,具有以下特点和优点:- 简单性:Java相对于其他编程语言来说较为简单,容易学习和使用。
- 面向对象:Java是一种纯粹的面向对象编程语言,支持封装、继承和多态等面向对象的特性。
- 跨平台性:Java程序可以在不同的操作系统上运行,这是由于Java编译器将Java代码编译成字节码,并在Java虚拟机(JVM)上执行。
- 安全性:Java具有强大的安全特性,包括内存管理、异常处理和安全检查等,能够防止内存泄漏和崩溃等问题的发生。
- 多线程支持:Java提供了多线程编程的支持,使得程序可以并发执行,提高了程序的执行效率。
- 开源生态系统:Java拥有庞大的开源生态系统,包括许多优秀的开源框架和工具,方便开发人员快速构建应用程序。
2. 什么是Java虚拟机(JVM)?它的作用是什么?Java虚拟机(JVM)是Java的核心组件之一,它是一个可以执行Java字节码的虚拟机程序。
JVM主要有以下作用:- 平台无关性:JVM解释并执行Java字节码,使得Java程序可以在不同的操作系统上运行,大大提高了程序的可移植性和跨平台性。
- 内存管理:JVM负责Java的内存管理,包括堆、栈和方法区等,使用垃圾回收机制来自动管理内存,防止内存泄漏和崩溃等问题的发生。
- 虚拟化:JVM提供了对Java程序的虚拟化支持,允许使用多线程并发执行Java程序,提高程序的执行效率。
- 安全性:JVM提供了严格的安全检查机制,确保Java程序的安全性,避免恶意代码的执行。
- 动态扩展:JVM支持动态加载和链接Java类和库,使得Java程序能够在运行时根据需要加载和使用外部类和库。
3. 什么是面向对象编程(OOP)?Java是一种面向对象的编程语言吗?面向对象编程(OOP)是一种编程范式,以对象为中心,将数据和行为封装在一起,并通过对象之间的交互来完成任务。
2016java面试题含答案

2016java面试题含答案2016java面试题目答案为蓝色小五号字体,题目部分为黑色字体----道阻且长1.j2ee是什么?它包含哪些技术?从整体来讲,J2EE是使用java开发技术开发企业级应用的工业标准,它是java技术不断适应和醋精企业级应用过程的产物。
适用于企业级应用的j2ee,提供一个平台独立的、可移植的、多用户的、安全的和基于标注呢企业级平台,从而简化企0业应用的开发、管理和部署。
J2EE是一个标准,而不是一个现成的产品。
主要包括以下这些技术:(1)Servlet servlet是java平台上的CGI技术。
Servlet在服务器端运行,动态的生成web 页面。
与传统的CGI和其他类似CGI的技术相比,Java Servlet具有更高的效率并更容易使用。
对于Servlet,从夫的请求不会导致同一程序的多次转载,它是依靠线程的方式来支持并访问的。
(2)JSP Jsp(java server page)是一种是实现普通静态HTML和动态页面输出混合编码的技术。
从这一点看,非常类似Microsoft ASP、PHP等技术。
借助形式上的内容和外观表现的分离,web页面制作的任务可以比较方便的话费给页面设计人员和程序员,并方便的通过JSP 来合成。
在运行时态,JSP将会被首先转换成Servlet,并以Servlet 的形态编译运行,因此它的效率和功能与Servlet相比没有差别,一样具有很高的效率。
(3)EJB EJB定义了一组可充用的组件:Enterprise Beans。
开发人员可以利用这些组件,像搭积木一样建立分布式应用。
(4)JDBC JDBC(Java DataBase Connectivity,java数据库连接)API 是一个标准SQL(Structured Query Language,结构化查询语句)数据库访问接口,它使数据库开发人员能够使用标准Java API编写数据库应用程序。
2016年Java面试题及回答

有关Java的一般问题1. 什么是JVM?为什么称Java为跨平台的编程语言Java虚拟机(Java Virtual Machine)是可以执行Java字节码的,每个Java源文件将被编译成文件,然后在JVM中执行。
Java之所以被设计成可以在任意的平台运行,而不需要重写或者在不同的平台下重新编译,这些都要归功于Java虚拟机(JVM),因为JVM非常了解特定的指令的长度以及底层硬件平台的特殊性。
2. JDK和JRE之间的差异是什么?Java运行环境(Java Runtime Enviroment) 是运行Java程序的基本的Java虚拟机,包括执行applet的浏览器插件。
JDK (Java Development Kit) 是为了开发,编译和执行Java应用程序,针对Java的全功能的软件开发包,包含了JRE,编译器和工具(比如说??和)。
3. “static” 关键字是什么意思?在Java里可以? override private 或static 的方法吗?keyword mean Can you override private or static method in Javastatic 关键字表示,访问这个成员变量或方法时,不必获取它属于的类的实例。
不能被override,因为override 的机制是运行时(runtime)的动态绑定,而static 方法是在编译时静态绑定的。
static 方法并不与任何类的具体实例有关,因此无法应用继承的概念。
4. 在静态方法里可以访问非静态变量吗Java?中的static 变量归相应的类所有,它的值对于类的所有实例都是相同的。
static 变量是在JVM 加载类的时候初始化的。
如果代码试图访问非静态的变量,而且不是通过类的实例去访问,编译器会报错,因为这些非静态变量还没有被创建呢,并且它们没有与实例相关联。
5. Java 支持哪些数据类型?什么是Autoboxing 和Unboxing?Java语言支持的8个基本数据类型如下:•byte•short•int•long•float•double•boolean•charAutoboxing 是指在基本数据类型和对应的包装(wrapper)类之间。
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跳槽面试题目(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集合框架中的常用类及其特点。
2016Java面试题精编版—类型转换
阅读使人快乐,成长需要时间2016Java面试题精编版—类型转换面试题Which of the following will compile correctly? ( D )A short myshort=99SB int t=”abc”.length()C float z =1.0D char c=17c解析:short myshort=99S这句要执行自动装箱,调用shortvalue方法,显然99S无法得到值。
将float z =1.0;改为float z.of;就行了,系统默认的浮点数是double型。
在Java中,length是属性,一般用来说明数组的长度;length()是方法,用来求数组中某个元素的字符串长度。
length()是字符串的方法,返回字符串的长度S[1].length()就是”sdfgs”.length()值为5Length是数组的属性,s.length的值为2扩展知识:Java的数据类转换Java的数据类分为三大类,即布尔型、字符型、和数值型,其中,数值型又分为整型和浮点型。
相对于数据类型,java的变量类型为布尔型boolean;字符型char;整型byte、short、int、long;浮点型float、double。
其中四种整型变量和两种浮点型变量分别对应于不同的精度和范围。
此外,编程时还经常用到两种类变量,即string和date.(1)数据类型转换的种类Java数据类型的转换一般分为三种,分别是简单数据类型之间的转换、字符串与其他数据类型的转换、其他实用数据类型的转换。
(2)简单数据类型之间的转换在Java中,整型、实型、字符型被视为简单数据类型,这些类型由第几道高级分别为(byte,short,char)—int—long—float—double。
简单数据类型之间的转换又可分为:低级到高级的自动类型转换、高级到低级的强制类型转换、包装类过度类型能够转换。
2016_常规java面试题综合版
选择题1:下列关于栈的描述中错误的是( )A. 栈是先进后出的线性表B 栈只能顺序存储C 栈具有记忆作用D 对栈的插入弓删除操作中,不需要改变栈底指针正确答案:B分析:栈是链式存储的2:对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是( )A 冒泡排序为n/2B 冒泡排序为nC 快速排序为nD 快速排序为n(n-l)/2正确答案:D分析:想想快速排序,每次都会选取线性表的轴值,随后以此轴值划分为两个子线性表再分别进行快排,在最坏情况下,也就是说每次选出的线性表轴值完全不能将这个线性表划分为两个子线性表。
那么此时快速排序退化为冒泡排序了。
那么第一趟排序时,轴值(线性表的中间位置)被选出,这个值绝对是这个线性表中最大的(不然也不能是最坏情况),其他值都比他小,那么线性表现在分为完全不对等的两段(一段是0,另一段是n - 1),一段是这个值,一段是其他值。
同样第二趟排序在刚才剩下的值中选中间值(剩余值中最大的那个),又分为不对等两段,依次递推。
也就是说每次都比较了N - 1个元素(轴值选出后都与它比较大小),那么肯定是比较了n - 1次(如第一次先挑了个轴值,然后剩下n - 1比较),n代表当前子线性表中元素个数由此最白痴的数列问题出现了,如下1 +2 +3 + .......... + n - 2 + n - 1 = n(n - 1) / 2还有一种投机取巧的方法,在最垃圾情况下既然快排变为冒泡,那由时间复杂度知其必为o(n ^ 2)的复杂度,答案中ABC都是线性时间复杂,显然错误3:下列对于线性链表的描述中正确的是( )A 存储空间间不一定是连续,且各元素的存储顺序是任意的B 存储空间不一定是连续,且前件元素一定存储在后件元素的前面C 存储定间必须连续,且前件元素一定存储在后件元素的前面D 存储空间必须连续,且各元素的存储顺序是任意的答案是A, 分析链接存储并不要求存储空间连续,存储位置也不用有序4:为了使模块爆可能独立,要求( )A 模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强B 模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱C 模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱D 模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强答案:B分析:高内聚,低耦合。
最新的java面试题目及参考答案(2)
最新的java面试题目及参考答案(2)最新的java面试题目及参考答案(2)时间:2016-12-23 09:27:04本文内容及图片来源于读者投稿,如有侵权请联系xuexila888@ 如英我要投稿forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。
redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以session,request参数都可以获取。
20、EJB与JAVA BEAN的区别?Java Bean 是可复用的组件,对Java Bean并没有严格的规范,理论上讲,任何一个Java类都可以是一个Bean。
但通常情况下,由于Java Bean是被容器所创建(如Tomcat)的,所以Java Bean应具有一个无参的构造器,另外,通常Java Bean还要实现Serializable 接口用于实现Bean的持久性。
Java Bean实际上相当于微软COM 模型中的本地进程内COM组件,它是不能被跨进程访问的。
Enterprise Java Bean 相当于DCOM,即分布式组件。
它是基于Java 的远程方法调用(RMI)技术的,所以EJB可以被远程访问(跨进程、跨计算机)。
但EJB必须被布署在诸如Webspere、WebLogic这样的容器中,EJB客户从不直接访问真正的EJB组件,而是通过其容器访问。
EJB容器是EJB组件的代理,EJB组件由容器所创建和管理。
客户通过容器来访问真正的EJB组件。
21、Static Nested Class 和Inner Class的不同。
Static Nested Class是被声明为静态(static)的内部类,它可以不依赖于外部类实例被实例化。
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 域时,能保证任何线程都能看到你写的值,同时,在写之前,也能保证任何数值的更新对所有线程是可见的,因为内存屏障会将其他所有写的值更新到缓存。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
详解笔试面试题集(1)下列各题ABCD四个选顼中,只有一个选项是正确的,请将正确选项填写在答题纸上(1)下列关于栈的描述中错误的是( )A. 栈是先进后出的线性表B 栈只能顺序存储C 栈具有记忆作用D 对栈的插入弓删除操作中,不需要改变栈底指针正确答案:B分析:栈是链式存储的(2)对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是( )A 冒泡排序为n/2B 冒泡排序为nC 快速排序为nD 快速排序为n(n-l)/2正确答案:D分析:想想快速排序,每次都会选取线性表的轴值,随后以此轴值划分为两个子线性表再分别进行快排,在最坏情况下,也就是说每次选出的线性表轴值完全不能将这个线性表划分为两个子线性表。
那么此时快速排序退化为冒泡排序了。
那么第一趟排序时,轴值(线性表的中间位置)被选出,这个值绝对是这个线性表中最大的(不然也不能是最坏情况),其他值都比他小,那么线性表现在分为完全不对等的两段(一段是0,另一段是n - 1),一段是这个值,一段是其他值。
同样第二趟排序在刚才剩下的值中选中间值(剩余值中最大的那个),又分为不对等两段,依次递推。
也就是说每次都比较了N - 1个元素(轴值选出后都与它比较大小),那么肯定是比较了n - 1次(如第一次先挑了个轴值,然后剩下n - 1比较),n代表当前子线性表中元素个数由此最白痴的数列问题出现了,如下1 +2 +3 + .......... + n - 2 + n - 1 = n(n - 1) / 2还有一种投机取巧的方法,在最垃圾情况下既然快排变为冒泡,那由时间复杂度知其必为o(n ^ 2)的复杂度,答案中ABC都是线性时间复杂,显然错误(3)下列对于线性链表的描述中正确的是( )A 存储空间间不一定是连续,且各元素的存储顺序是任意的B 存储空间不一定是连续,且前件元素一定存储在后件元素的前面C 存储定间必须连续,且前件元素一定存储在后件元素的前面D 存储空间必须连续,且各元素的存储顺序是任意的答案是A, 分析链接存储并不要求存储空间连续,存储位置也不用有序(4)为了使模块爆可能独立,要求( )A 模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强B 模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱C 模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱D 模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强答案:B分析:高内聚,低耦合。
5)下列叙述中,正确的是( )A Java语言的标识符是区分大小写的B 源文件名与public类名可以不相同C 源文件扩展名为.jarD 源文件中public类的数目不限答案:A6)下列属于合法的Java标识符是( )A _catB 5booksC +staticD -3.14159答案:A7) 在Java中,表示换行符的转义字符是( )A \nB \fC ‘n’D \dd答案:A( 8)扯Java中,所有类的根类是( )A. ng.ObjectB.ng.ClassC.java.applet.AppletD.java.awt.Frame答案:A(9).在Java+中,用Package语句说明一个包时,该包的层次结构必须是( )A 与文件的结构相同B 与文件目录的层次相同C 与文件类型相同D 与文件大小相同答案:A(10)在读字符文件Employee.dat时,使用该文件作为参数的类是( )。
A BufferReaderB DatalnputStreamC DataOutoutStreamD FileInputStream答案:D(11)在Java中,能实现多重继承效果的方式是( )。
A 内部类B 适配器C 接口D 同步答案:C(12) char类型的取值范围是( )。
A 2-7~27-1B 0~216-1C -215~215—1D 0~28-1答案:A(13)下列方法中可以用来创建一个新线程的是( )。
A 实现ng.Runnable接口并重写start0方法B 实现java.iang.Runnable接口并重写run0方法C 继承ng.Thread类并重写run0方法D 继承ng.Thread类并重写start0方法答案:C(14)下列关于线程优先级的说法中,正确的是( )。
A.线程的优先级是不能改变的B.线程的优先级是在创建线程时设置的C.在创建线程后的任何时候都可以设置D. B和C答案:C(15)下列代码中,将引起一个编译错误的行是( )。
1) public class Test{2) int m, n;3) public Test(){}4) public Test(int a){ m=a;)5) public static void main(String args0){6) Test t1, t2;7) int j, k;8) j=0; k=0;9) t1 = new Test();10) t2 = new Test(j,k);11) }12)}A.第3行B.第5行C.第6行D.第10行答案:D(16)阅读下列代码后public class Person{int arr[]=new int[10];public static void main(String args[ ]){System.out.println(arr[l]);})正确的说法是( )。
A 编译时将产生错误B 编译时正确,运行时将产生错误C 输出零D 输出空答案:A(17) AIDL支持以下哪种数据类型?l)string 2)list 3)map 4)All native java datatype( ){,A.1,2和3B.4C.以上所有D.都不支持答案:C分析:AIDL 服务只支持有限的数据类型,如果用AIDL服务传递一些复杂的数据就需要做更一步处理,AIDL 服务支持的数据类型如下:1. Java 的原生类型2. String 和CharSequence3. List 和Map ,List和Map 对象的元素必须是AIDL支持的数据类型;以上三种类型都不需要导入(import)4. AIDL 自动生成的接口需要导入(import)5. 实现android.os.Parcelable 接口的类. 需要导入(import)。
二、多项选择题下列各题A.、B.、C.、D.四个选项中,有一个或多个选项是正确的,(l)下列说法正确的有( )。
A. 环境变量可在编译source code时指定.B.在编译程序时,所能指定的环境变盛不包括class pathC.javac -次可同时编译数个Java源文件D. javac.exe能指定编译结果要置于哪个目录(directory)答案:BCD(2)不能用来修饰interface的有( )A. privateB.publicC.protectedD.static答案:ACD(3)下列说法错误的有( )A.在类方法中可用this来调用本类的类方法B。
在类方法中调用本类的类方法时可直接调用C.在类方法中只能调用本类中的类方法D.在类方法中绝对不能调用实例方法答案:ACD请将正确选项填写在答题纸上(4)下列说法错误的有( )A. Java面向对象语言容许单独的过程与函数存在B.Java面向对象语言容许单独的方法存在C.Java语亩中的方法属于类中的成员(member)D. Java语言中的方法必定隶属于某…类(对象),调用方法与过程或函数相同答案:ABC(5)下列说法错误的有( )。
A.能被java.exe成功运行的java class文件必须有main()方法B.J2SDK就是Java APIC. Appletviewer.exe可利用jar选项运行Jar文件D.能被Appletviewer成功运行的java class文件必须有main()方法答案:BCD三、判断题请将每空的正确答案写在答题纸上,答在试卷上不得分。
(1)Java程序中的起始类名称必须与存放该类的文件名相同。
(对)(2)Unicode是用16位来表示一个字的。
(对)(3)原生类中的数据类型均可任意转换。
(对)三、填空题请将每空的正确答案写在答题纸上【l】至【25】序号的横线上,答在试卷上不得分。
(l)某二叉树中度为2的结点有18个,则该二叉树中有【1】19 个叶子结点。
二叉树的终端结点(叶子结点)数等于双分支结点数加1。
(2)在面向对象方法中,类的实例称为【2】对象(3)诊断和改正程序中错误的工作通常称为【3】Debug(4)在关系数据库中,把数据表示成二维表,每一个二维表称为【4】关系(5)Java 源文件中最多只能有一个【5】public类,其他类的个数不限。
(6)线程在生命周期中要经历5中状态,分别是新建状态、可运行状态、运行状态。
【6】暂停状态和终止状态。
(7)FileInputStream 是字节流;BufferedWriter是字符流,ObjectOutputStream是【7】对象序列化流(8)当使用Thread t = new Thread(r)创建一个线程时,表达式r instance of Thread 的值为【8】false 。
r instanceOf Runnable1.抽象类和接口的区别?抽象类:1)抽象方法,只有行为的概念,没有具体的行为实现。
使用abstract关键字修饰,没有方法体。
子类必须重写这些抽象方法。
2)包含抽象方法的类,一定是抽象类。
3)抽象类只能被继承,一个类只能继承一个抽象类。
接口:1)全部的方法都是抽象方法,属型都是常量2)不能实例化,可以定义变量。
3)接口变量可以引用具体实现类的实例4)接口只能被实现,一个具体类实现接口,必须实现全部的抽象方法5)接口之间可以多实现6)一个具体类可以实现多个接口,实现多继承现象2.列举你所知道的线程同步的方法:1)wait():让线程等待。
将线程存储到一个线程池中。
2)notify():唤醒被等待的线程。
通常都唤醒线程池中的第一个。
让被唤醒的线程处于临时阻塞状态。
3)notifyAll(): 唤醒所有的等待线程。
将线程池中的所有线程都唤醒。
3.equals()方法和“==”操作符的区别是什么?重写equals()方法的时候,我们还需要重写哪些方法?为什么?“==”比较的是一个对象在内存中的地址值,栈中的内容是否相同equals()是针对引用的,比较的是引用类型的内容一样不一样,堆中的内容是否相同重写equals()方法的时候,需重写hashcode方法,这样比较的时候,比较的是两个对象的hash值,不同对象的hash值不同。
7.写一个函数计算但参数为n(n很大)时的值1-2+3-4+5-6+7……+n。