没有合适的资源?快使用搜索试试~ 我知道了~
首页Java面试宝典:技术实力与求职策略
Java面试宝典:技术实力与求职策略
需积分: 1 0 下载量 16 浏览量
更新于2024-07-26
收藏 388KB PDF 举报
Java_面试题总结(2011版)是一份面向寻求Java软件开发职位但缺乏实际经验者的面试指南。这份题库旨在帮助求职者提升在笔试和面试中的表现,强调了理解和掌握基础知识的重要性。面试过程中,不仅考察技术能力,还包括答题的逻辑清晰度、表达能力和沟通技巧。 题目的解答要求深入解析概念,解释技术的作用,并分享个人的理解和思考过程,这有助于展示候选人的思维深度和解决问题的能力。面试官更关注应聘者的实际编程技术,而非与应聘岗位直接相关的项目经历,因为公司更希望找到能够快速适应新项目并独立解决问题的专业技术人才。即使有过相关项目经验,如果没有扎实的编码技术基础,可能不会被优先考虑。 对于应届毕业生,面试时应保持合理的职业期待,避免过度要求高薪,除非个人确有出色的技术能力和显著的项目成果。招聘单位更关心候选人在编码技术上的熟练程度,以及他们能否迅速融入团队,共同开发新的项目。因此,应聘者在面试前应确保对Java基础有深入理解,包括数据结构、算法、类和对象、异常处理等方面,并通过持续学习和练习来提升自己的技术水平。 总结来说,Java面试题总结(2011版)提供了一个全面的学习框架,帮助求职者提升技术素养,掌握有效的面试策略,以便在激烈的竞争中脱颖而出。同时,它也提醒求职者要保持谦虚,敢于表达自己的观点,并明确表明自己的技术实力和学习能力,这样才能在面试中取得成功。
资源详情
资源推荐
public void add(Object obj){
for(int i=0; i<datas.size() ; i++) {
if(obj.compareTo(datas.get(i) != 1){
datas.add(i,obj);
}
}
}
}
26.分层设计的好处?
把各个功能按调用流程进行了模块化,模块化带来的好处就是可以随意组合,举例说明:如果要注册一个
用户,流程为显示界面并通过界面接收用户的输入,接着进行业务逻辑处理,在处理业务逻辑又访问数据库,
如果我们将这些步骤全部按流水帐的方式放在一个方法中编写,这也是可以的,但这其中的坏处就是,当界面
要修改时,由于代码全在一个方法内,可能会碰坏业务逻辑和数据库访问的码,同样,当修改业务逻辑或数据
库访问的代码时,也会碰坏其他部分的代码。分层就是要把界面部分、业务逻辑部分、数据库访问部分的代码
放在各自独立的方法或类中编写,这样就不会出现牵一发而动全身的问题了。这样分层后,还可以方便切换各
层,譬如原来的界面是 Swing,现在要改成 BS 界面,如果最初是按分层设计的,这时候不需要涉及业务和数
据访问的代码,只需编写一条 web 界面就可以了。
下面的仅供参考,不建议照搬照套,一定要改成自己的语言,发现内心的感受:
分层的好处:
1.实现了软件之间的解耦;
2.便于进行分工
3.便于维护
4.提高软件组件的重用
5.便于替换某种产品,比如持久层用的是 hibernate,需要更换产品用 toplink,就不用该其他业务代码,直
接把配置一改。
6.便于产品功能的扩展。
7.便于适用用户需求的不断变化
27. 序列化接口的 id 有什么用?
答: 对象经常要通过 IO 进行传送,让你写程序传递对象,你会怎么做?把对象的状态数据用某种格式写入
到硬盘,Person->“zxx,male,28,30000”Person,既然大家都要这么干,并且没有个统一的干法,于是,sun
公司就提出一种统一的解决方案,它会把对象变成某个格式进行输入和输出,这种格式对程序员来说是透明
(transparent)的,但是,我们的某个类要想能被 sun 的这种方案处理,必须实现 Serializable 接口。
ObjectOutputStream.writeObject(obj);
Object obj = ObjectInputStream.readObject();
假设两年前我保存了某个类的一个对象,这两年来,我修改该类,删除了某个属性和增加了另外一个
属性,两年后,我又去读取那个保存的对象,或有什么结果?未知!sun 的 jdk 就会蒙了。为此,一个解决办
法就是在类中增加版本后,每一次类的属性修改,都应该把版本号升级一下,这样,在读取时,比较存储对象
时的版本号与当前类的版本号,如果不一致,则直接报版本号不同的错!
28. hashCode 方法的作用?
答: (网友提供的一段,待改进:hashcode 这个方法是用来鉴定 2 个对象是否相等的。那你会说,不是还
有 equals 这个方法吗?不错,这 2 个方法都是用来判断 2 个对象是否相等的。但是他们是有区别的。
一般来讲,equals 这个方法是给用户调用的,如果你想判断 2 个对象是否相等,你可以重写 equals 方法,然
后在代码中调用,就可以判断他们是否相等了。简单来讲,equals 方法主要是用来判断从表面上看或者从内容
上看,2 个对象是不是相等。举个例子,有个学生类,属性只有姓名和性别,那么我们可以认为只要姓名和性
别相等,那么就说这 2 个对象是相等的。
hashcode 方法一般用户不会去调用,比如在 hashmap 中,由于 key 是不可以重复的,他在判断 key 是不
是重复的时候就判断了 hashcode 这个方法,而且也用到了 equals 方法。这里不可以重复是说 equals 和
hashcode 只要有一个不等就可以了!所以简单来讲,hashcode 相当于是一个对象的编码,就好像文件中的
md5,他 和 equals 不同就在于他返回的是 int 型的,比较起来不直观。我们一般在覆盖 equals 的同时也要覆盖
hashcode,让他们的逻辑一致。举个例子,还是刚刚的例子,如果姓名和性别相等就算 2 个对象相等的话,那
么 hashcode 的方法也要返回姓名的 hashcode 值加上性别的 hashcode 值,这样从逻辑上,他们就一致了。
要从物理上判断 2 个对象是否相等,用==就可以了。)
29. 编写一个函数将一个十六进制数的字符串参数转换成整数返回。
String str = “13abf”;
int len = str.length;
int sum = 0;
for(int i=0;i<len;i++){
char c = str.charAt(len-1-i);
int n = Character.digit(c,16);
sum += n * (1<<(4*i));
}
其实,也可以用 Integer.parseInt(str,16),但面试官很可能是想考我们的编码基本功。
30、 银行贷款的还款方式中最常用的是一种叫“等额本息”,还款法,即借款人在约定还款期限内的每一期
(月)归还的金额(产生的利息+部分本金)都是相等的,现有一笔总额为 T 元的 N 年期住房贷款,年利率为
R,要求算出每一期的还款的本金和利息总额,请写出解决思路和任意一种编程语言实现的主要代码。
思路:既然是按月还款,那我就要将 N 年按月来计算,即要还 N*12 个月,这样就可以求出每月要还的本
金。由于每月要还的那部分本金所欠的时间不同,所以,它们所产生的利息是不同的,该部分本金的利息为:
部分本金额*所欠月数*月利率。应该是这么个算法,如果利息还计利息,如果月还款不按年利率来算,老百姓
算不明白的。
int monthMoney = T/N/12;
float monthRate = R/12;
int totalMonth = N * 12;
float totalRate = 0;
for(int i=1;i<=totalMonth;i++){
totalRate += monthMoney * monthRate * i;
}
int result = monthMoney + totalRate/N/12;
31、 *任意数字序列“123456”之类,输出它们所有的排列组合
String str = “xafdvs”;
char[] arr1 = str.toCharArray();
char[] arr2 = Arrays.copyOf(arr1,arr1.length);
for(int i=0;i<arr1.length-1;i++)
{
for(int j = i+1;j<arr2.length;j++){
syso: arr1[i] + “,” + arr2[j];
}
}
33、构造器 Constructor 是否可被 override?
答: 构造器 Constructor 不能被继承,因此不能重写 Override,但可以被重载 Overload。
34、接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可
继承具体类(concrete class)? 抽象类中是否可以有静态的 main 方法?
答: 接口可以继承接口。抽象类可以实现(implements)接口,抽象类是否可继承具体类。抽象类中可以有
静态的 main 方法。
备注:只要明白了接口和抽象类的本质和作用,这些问题都很好回答,你想想,如果你是 java 语言的设计
者,你是否会提供这样的支持,如果不提供的话,有什么理由吗?如果你没有道理不提供,那答案就是肯定的
只有记住抽象类与普通类的唯一区别就是不能创建实例对象和允许有 abstract 方法。
35、写 clone()方法时,通常都有一行代码,是什么?
clone 有缺省行为,super.clone(); 因为首先要把父类中的成员复制到位,然后才是复制自己的成员。
36、面向对象的特征有哪些方面
答:计算机软件系统是现实生活中的业务在计算机中的映射,而现实生活中的业务其实就是一个个对象协
作的过程。面向对象编程就是按现实业务一样的方式将程序代码按一个个对象进行组织和编写,让计算机系统
能够识别和理解用对象方式组织和编写的程序代码,这样就可以把现实生活中的业务对象映射到计算机系统
中。
面向对象的编程语言有封装、继承 、抽象、多态等 4 个主要的特征。
1 封装:
封装是保证软件部件具有优良的模块性的基础,封装的目标就是要实现软件部件的“高内聚、低耦合”,
防止程序相互依赖性而带来的变动影响。在面向对象的编程语言中,对象是封装的最基本单位,面向对象的封
装比传统语言的封装更为清晰、更为有力。面向对象的封装就是把描述一个对象的属性和行为的代码封装在一
剩余61页未读,继续阅读
xiaoxi7179
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 高效办公必备:可易文件夹批量生成器
- 吉林大学图形学与人机交互课程作业解析
- 8086与8255打造简易乒乓球游戏机教程
- Win10下C++开发工具包:Bongo Cat Mver、GLEW、GLFW
- Bootstrap前端开发:六页果蔬展示页面
- MacOS兼容版VSCode 1.85.1:最后支持10.13.x版本
- 掌握cpp2uml工具及其使用方法指南
- C51单片机星形流水灯设计与Proteus仿真教程
- 深度远程启动管理器使用教程与工具包
- SAAS云建站平台,一台服务器支持数万独立网站
- Java开发的博客API系统:完整功能与接口文档
- 掌握SecureCRT:打造高效SSH超级终端
- JAVA飞机大战游戏实现与源码分享
- SSM框架开发的在线考试系统设计与实现
- MEMS捷联惯导解算与MATLAB仿真指南
- Java实现的学生考试系统开发实战教程
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功