没有合适的资源?快使用搜索试试~ 我知道了~
首页JAVA软件开发工程师全国各地笔试面试题目
JAVA软件开发工程师全国各地笔试面试题目
需积分: 18 30 下载量 62 浏览量
更新于2023-03-03
评论
收藏 156KB DOC 举报
JAVA软件开发工程师全国各地笔试面试题目 (北京 上海 杭州 南京 武汉 广州 深圳 大连)
资源详情
资源评论
资源推荐
软件开发工程师全国各地笔试面试题目
(北京 上海 杭州 南京 武汉 广州 深圳 大连)
、里的元素是不能重复的,那么用什么方法来区分重复与否呢是用还是它们有何区
别
答:里的元素是不能重复的,那么用方法来区分重复与否。equals()是判读两个Set是否相等
equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的内容和
类型相配的话,返回真值
、和有什么区别
答:表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理
这样的情况
表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况
、是否继承自接口
答: ,是,不是
、!和"有什么区别
答:声明方法的存在而不去实现它的类被叫做抽象类(),它用于要创建一个体现某些基本行
为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建类的实例。然而可以创建
一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。
类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实
现该方法。知道其行为的其它类可以在类中实现这些方法
接口()是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获
得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义成员变量。接口的实现
与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所
有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许
使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,
运算符可以用来决定某对象的类是否实现了接口
#、!的$%&是否可同时是是否可同时是',是否可同时是(%)&
答:都不能
*、接口是否可继承接口抽象类是否可实现$$接口抽象类是否可继承实体类
答:接口可以继承接口。抽象类可以实现接口,抽象类是否可继承实体类,但前提是实体类必
须有明确的构造函数
+,、构造器是否可被'&
答:构造器不能被继承,因此不能重写,但可以被重载
+、是否可以继承-类
答:类是类故不可以继承
++、(./里有一个语句,那么紧跟在这个(后的0(./里的&会不会被执行,什么时候
被执行,在前还是后
答:会执行,在前执行
+、用最有效率的方法算出+乘以#等於几
答:
+1、两个对象值相同2(,但却可有不同的%%&,这句话对不对
答:不对,有相同的!!
+、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那
么这里到底是值传递还是引用传递
答:是值传递。"编程语言只有值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值
就是对该对象的引用。对象的内容可以在被调用的方法中改变,但对象的引用是永远不会改变的
+、3%是否能作用在!(上,是否能作用在-上,是否能作用在-上
答:#!($)中,$是一个整数表达式。因此传递给 #!和 语句的参数应该是 、
!、 !或者 %。&都不能作用于#!
+ 、(和的区别4%和4%!的区别
答:就%与'主要从二方面来说(
一(同步性)'是线程安全的,也就是说是同步的,而%是线程序不安全的,不是同步的
二(数据增长)当需要增长时&'默认增长为原来一培,而%却是原来的一半
就*!与*!+主要从三方面来说。
一(历史原因)*!是基于陈旧的,%类的,*!是"-$(引进的接口的一个实现
二(同步性)*!是线程安全的,也就是说是同步的,而*!是线程序不安全的,不是同步的
三(值:只有*!可以让你将空值作为一个表的条目的.%或-
+#、%型变量中能不能存贮一个中文汉字为什么
答:是能够定义成为一个中文的,因为/中以编码,一个!占$0个字节,所以放一个中文是没
问题的
29、5是什么6为什么要有5
答:GC是垃圾收集的意思(GabageCollection),内存处理是编程人员容易出现问题的地方,忘记或者错误
的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而
达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法。
,、7型7"21是否正确
答8不正确。精度不准确&应该用强制类型转换,如下所示:1-21 (3
、介绍中的9$:;包括如何写自己的数据结构
答:-45.如下:
6
76.
76%
78'
7 └.
8
6*!
6*!
85.*!
是最基本的集合接口,一个代表一组/,即的元素(9)
提供.%到的映射
+、抽象类与接口?
答:抽象类与接口都用于抽象,但是抽象类"'中可以有自己的部分实现,而接口则完全是一个标识同时
有多重继承的功能。
"'类实现序例化的方法是实现/((:接口
框架中实现比较要实现-接口和 -接口
、<=>?5与<=>?5@A99B=的区别。
答:+;<=>的长度是不可变的,+;<=>?@449;的长度是可变的。如果你对字符串中的内容经常进行操作,
特别是内容要修改时,那么使用?A,如果最后需要,那么使用?A的方
法
1、谈谈00(0)的区别
答:B修饰符(关键字)如果一个类被声明为,意味着它不能再派生出新的子类,不能作为父类被
继承。因此一个类不能既被声明为 的,又被声明为的。将变量或方法声明为,可以保证它
们在使用中不被改变。被声明为的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。
被声明为的方法也同样只能使用,不能重载
%B再异常处理时提供 %-块来执行任何清除操作。如果抛出一个异常,那么相匹配的 !-子句
就会执行,然后控制就会进入 %-块(如果有的话)
:B方法名。"-技术允许使用 :-方法在垃圾收集器将对象从内存中清除出去之前做必要的清
理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 /-类中定义
的,因此所有的类都继承了它。子类覆盖 :-方法以整理系统资源或者执行其他清理工作。:-
方法是在垃圾收集器删除对象之前对这个对象调用的
、面向对象的特征有哪些方面
答:主要有以下四方面:
1.抽象:
抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打
算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数
据抽象。
2.继承:
继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新
类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子
类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改
或增加新的方法使之更适合特殊的需要。
3.封装:
封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现
实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。
4.多态性:
多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有
灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。
、-是最基本的数据类型吗
答:基本数据类型包括%、、!、、1、、和!。
java.lang.String类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应
该用StringBuffer类
、6和 >-6有什么区别
答:Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原始数据类型,Integer是ja
va为int提供的封装类。Java为每个原始类型提供了封装类。
原始类型封装类,booleanBoolean,charCharacter,byteByte,shortShort,intInteger,longLong,floatFloat,doubleDou
ble
引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,
它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例
数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关
#、运行时异常与一般异常有何异同
答:异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,
是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛
出未被捕获的运行时异常。
*、说出(6;&的存储性能和特性
答:ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,
它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据
慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差,而LinkedList使用双向链表
实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插
入速度较快。
1,、4%和4%!的区别
答:HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于Hash
Map允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。
HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。
HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因为contains方法容易让人
引起误解。
Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Map interface的一个实现。
最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要
自己为它的方法实现同步,而HashMap 就必须为之提供外同步。
Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。
1、%和;有什么区别
答:栈是一种线形集合,其添加和删除元素的操作应在同一段完成。栈按照后进先出的方式进行处理。堆是栈
的一个组成元素
1+、'的接口和CC的虚类的相同和不同处
答:由于Java不支持多继承,而有可能某个类或对象要使用分别在几个类或对象里面的方法或属性,现有的单
继承机制就不能满足要求。与继承相比,接口有更高的灵活性,因为接口中没有任何实现代码。当一个类实现
了接口以后,该类要实现接口里面所有的方法和属性,并且接口里面的属性在默认状态下面都是public static,
所有方法默认情况下是public.一个类可以实现多个接口。
1、'中的异常处理机制的简单原理和应用
答:当JAVA程序违反了JAVA的语义规则时,JAVA虚拟机就会将发生的错误表示为一个异常。违反语义规则包
括2种情况。一种是JAVA类库内置的语义检查。例如数组下标越界,会引发IndexOutOfBoundsException;访问nul
l的对象时会引发NullPointerException。另一种情况就是JAVA允许程序员扩展这种语义检查,程序员可以创建
自己的异常,并自由选择在何时用throw关键字引发异常。所有的异常都是java.lang.Thowable的子类。
1、垃圾回收的优点和原理。并考虑+种回收机制
答:Java语言中一个显著的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的问题迎刃而解,
它使得Java程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,Java中的对象不再
有"作用域"的概念,只有对象的引用才有"作用域"。垃圾回收可以有效的防止内存泄露,有效的使用可以使用
的内存。垃圾回收器通常是作为一个单独的低级别的线程运行,不可预知的情况下对内存堆中已经死亡的或者
长时间没有使用的对象进行清楚和回收,程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回
收。回收机制有分代复制垃圾回收和标记垃圾回收,增量垃圾回收。
11、你所知道的集合类都有哪些?主要方法?
答:最常用的集合类是 和 。 的具体实现包括 %和 ',它们是可变大小的列表,
比较适合构建、存储和操作任何类型对象的元素列表。 List 适用于按数值索引访问元素的情形。
Map 提供了一个更通用的元素存储方法。 Map 集合类用于存储元素对(称作"键"和"值"),其中每个键映射
到一个值。
1、描述一下加载文件的原理机制
答:"'中类的装载是由和它的子类来实现的&"是一个重要的"运行时系
统组件。它负责在运行时查找和装入类文件的类。
1、排序都有哪几种方法?请列举
答:排序的方法有:插入排序(直接插入排序、希尔排序),交换排序(冒泡排序、快速排序),选择排序
(直接选择排序、堆排序),归并排序,分配排序(箱排序、基数排序)
快速排序的伪代码。
/ /使用快速排序方法对a[ 0 :n- 1 ]排序
从a[ 0 :n- 1 ]中选择一个元素作为m i d d l e,该元素为支点
把余下的元素分割为两段left 和r i g h t,使得l e f t中的元素都小于等于支点,而right 中的元素都大于等于支
点
递归地使用快速排序方法对left 进行排序
递归地使用快速排序方法对right 进行排序
所得结果为l e f t + m i d d l e + r i g h t
1 、语言如何进行异常处理,关键字:%3%3(%0(分别代表什么意义?在
(块中可以抛出异常吗?
答:Java通过面向对象的方法进行异常处理,把各种不同的异常进行分类,并提供了良好的接口。在Java中,
每个异常都是一个对象,它是Throwable类或其它子类的实例。当一个方法出现异常后便抛出一个异常对象,
该对象中包含有异常信息,调用这个对象的方法可以捕获到这个异常并进行处理。Java的异常处理是通过5个
关键词来实现的:try、catch、throw、throws和finally。一般情况下是用try来执行一段程序,如果出现异常,
系统会抛出(throws)一个异常,这时候你可以通过它的类型来捕捉(catch)它,或最后(finally)由缺省处
理器来处理。
用try来指定一块预防所有"异常"的程序。紧跟在try程序后面,应包含一个catch子句来指定你想要捕捉的"异
常"的类型。
throw语句用来明确地抛出一个"异常"。
throws用来标明一个成员函数可能抛出的各种"异常"。
Finally为确保一段代码不管发生什么"异常"都被执行一段代码。
可以在一个成员函数调用的外面写一个try语句,在这个成员函数内部写另一个try语句保护其他代码。每当遇
到一个try语句,"异常"的框架就放到堆栈上面,直到所有的try语句都完成。如果下一级的try语句没有对某
种"异常"进行处理,堆栈就会展开,直到遇到有处理这种"异常"的try语句。
1#、一个D2E'D源文件中是否可以包括多个类(不是内部类)?有什么限制?
答:可以。必须只有一个类名与文件名相同。
1*、E'中有几种类型的流?FG为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?
答:字节流,字符流。字节流继承于InputStream OutputStream,字符流继承于InputStreamReader OutputStr
eamWriter。在java.io包中还有许多其他的流,主要是为了提高性能和使用方便。
,、E'中会存在内存泄漏吗,请简单描述。
答:会。自己实现堆载的数据结构时有可能会出现内存泄露,可参看effective java.
、E'中实现多态的机制是什么?
答:方法的重写和重载是"多态性的不同表现。重写Overriding是父类与子类之间
多态性的一种表现,重载Overloading是一个类中多态性的一种表现。
+、垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾
回收
答:对于GC来说,当程序员创建对象时,GC就开始监控这个对象的地址、大小以及使用情况。通常,GC采用
有向图的方式记录和管理堆(heap)中的所有对象。通过这种方式确定哪些对象是"可达的",哪些对象是"不可
达的"。当GC确定一些对象为"不可达"时,GC就有责任回收这些内存空间。可以。程序员可以手动执行Syste
m.gc(),通知GC运行,但是Java语言规范并不保证GC一定会执行。
53、静态变量和实例变量的区别?
答:2$CDEE常量 D(2$CDEE可变
54、什么是java序列化,如何实现java序列化?
答:序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象
进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的
问题。
序列化的实现:将需要被序列化的类实现:接口,该接口没有需要实现的方法,
:只是为了标注该对象是可被序列化的,然后使用一个输出流如:4来构造一个
/对象流对象,接着,使用/对象的#///
方法就可以将参数为/的对象写出即保存其状态,要恢复的话则用输入流。
55、是否可以从一个static方法内部发出对非static方法的调用?
剩余23页未读,继续阅读
EmilyYangYang
- 粉丝: 1
- 资源: 13
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- stc12c5a60s2 例程
- Android通过全局变量传递数据
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0