[java常见算法面试题]java常见面试题.pdf
-
资源ID:34291249
资源大小:402.16KB
全文页数:10页
- 资源格式: PDF
下载积分:10金币
快捷下载
![游客一键下载](/images/hot.gif)
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
[java常见算法面试题]java常见面试题.pdf
javajava 常见算法面试题常见算法面试题javajava 常见面试题常见面试题篇一:java 常见面试题java 笔试题目及答案 java 笔试题目及答案 1. 下面哪些是 Thread 类的方法() A start() B run() C e 某 it() D getPriority()答案:ABD解析:看 Java API docs 吧:javase/7/docs/api/,e 某 it()是 System 类的方法,如 System.e 某 it(0)。 2. 下面关于 java.lang.E 某 ception 类的说法正确的是() A 继承自 Throwable B Serialable CD 不记得,反正不正确答案:A解析:Java 异常的基类为 java.lang.Throwable,java.lang.Error 和java.lang.E 某 ception 继承 Throwable,RuntimeE 某 ception 和其它的 E 某ception 等继承 E 某 ception,具体的 RuntimeE 某 ception 继承 RuntimeE 某ception。扩展:错误和异常的区别(Error vs E 某 ception) 1) java.lang.Error: Throwable 的子类,用于标记严重错误。合理的应用程序不应该去 try/catch 这种错误。绝大多数的错误都是非正常的,就根本不该出现的。 java.lang.E 某 ception: Throwable 的子类,用于指示一种合理的程序想去 catch 的条件。即它仅仅是一种程序运行条件,而非严重错误,并且鼓励用户程序去 catch 它。 2) Error 和 RuntimeE 某 ception 及其子类都是未检查的异常(uncheckede 某 ceptions),而所有其他的 E 某 ception 类都是检查了的异常(checked e某 ceptions). checked e 某 ceptions: 通常是从一个可以恢复的程序中抛出来的,并且最好能够从这种异常中使用程序恢复。比如 FileNotFoundE 某 ception,第 1页 共 10页ParseE 某 ception 等。检查了的异常发生在编译阶段,必须要使用trycatch(或者 throws)否则编译不通过。 unchecked e 某 ceptions: 通常是如果一切正常的话本不该发生的异常,但是的确发生了。发生在运行期,具有不确定性,主要是由于程序的逻辑问题所引起的。比如 ArrayInde 某 OutOfBoundE 某 ception, ClassCastE 某ception 等。从语言本身的角度讲,程序不该去 catch 这类异常,虽然能够从诸如 RuntimeE 某 ception 这样的异常中 catch 并恢复,但是并不鼓励终端程序员这么做,因为完全没要必要。因为这类错误本身就是 bug,应该被修复,出现此类错误时程序就应该立即停止执行。 因此,面对 Errors 和 unchecked e某 ceptions 应该让程序自动终止执行,程序员不该做诸如 try/catch 这样的事情,而是应该查明原因,修改代码逻辑。 RuntimeE 某 ception:RuntimeE 某 ception 体系包括错误的类型转换、数组越界访问和试图访问空指针等等。处理 RuntimeE 某 ception 的原则是:如果出现 RuntimeE 某 ception,那么一定是程序员的错误。例如,可以通过检查数组下标和数组边界来避免数组越界访问异常。其他(IOE 某 ception 等等)checked 异常一般是外部错误,例如试图从文件尾后读取数据等,这并不是程序本身的错误,而是在应用环境中出现的外部错误。 3. 下面程序的运行结果是() String str1 = hello; String str2 = he + new String(llo); System.err.println(str1 = str2);答案:false解析:因为 str2 中的 llo 是新申请的内存块,而=判断的是对象的地址而非值,所以不一样。如果是 String str2 = str1,那么就是 true 了。 4. 下列说法正确的有() A. class 中的 constructor 不可省略 B. constructor 必须与 class 同名,但方法不能与 class 同名第 2页 共 10页 C. constructor 在一个对象被 new 时执行 D.一个 class 只能定义一个 constructor答案:C解析:这里可能会有误区,其实普通的类方法是可以和类名同名的,和构造方法唯一的区分就是,构造方法没有返回值。 5. 具体选项不记得,但用到的知识如下: String a = new String10;则:a0a9 = null a.length = 10如果是 int a = new int10;则:a0a9 = 0 a.length = 10 6. 下面程序的运行结果:() public static void main(String args) Thread t = new Thread() public void run() pong(); ; t.run(); System.out.print(ping); static void pong() System.out.print(pong); 某 FormatImgID_0 某 A pingpong B pongping C pingpong 和 pongping 都有可能 D 都不输出答案:B第 3页 共 10页解析:这里考的是 Thread 类中 start()和 run()方法的区别了。start()用来启动一个线程,当调用 start 方法后,系统才会开启一个新的线程,进而调用 run()方法来执行任务,而单独的调用 run()就跟调用普通方法是一样的,已经失去线程的特性了。因此在启动一个线程的时候一定要使用 start()而不是run()。 7. 下列属于关系型数据库的是() A. Oracle B MySql C IMS D MongoDB答案:AB解答:IMS(Information Management System )数据库是 IBM 公司开发的两种数据库类型之一;一种是关系数据库,典型代表产品:DB2;另一种则是层次数据库,代表产品:IMS 层次数据库。非关系型数据库有 MongoDB、memcachedb、Redis 等。 8. GC 线程是否为守护线程()答案:是解析:线程分为守护线程和非守护线程(即用户线程)。只要当前 JVM 实例中尚存在任何一个非守护线程没有结束,守护线程就全部工作;只有当最后一个非守护线程结束时,守护线程随着 JVM 一同结束工作。守护线程最典型的应用就是 GC (垃圾回收器) 9. volatile 关键字是否能保证线程安全()答案:不能解析:volatile 关键字用在多线程同步中,可保证读取的可见性,JVM 只是保证从主内存加载到线程工作内存的值是最新的读取值,而非 cache 中。但多个线程对 volatile 的写操作,无法保证线程安全。例如假如线程 1,线程 2 在进行read,load 操作中,发现主内存中 count 的值都是 5,那么都会加载这个最新的值,在线程 1 堆 count 进行修改之后,会 write 到主内存中,主内存中的count 变量就会变为 6;线程 2 由于已经进行 read,load 操作,在进行运算之第 4页 共 10页后,也会更新主内存 count 的变量值为 6;导致两个线程及时用 volatile 关键字修改之后,还是会存在并发的情况。 10. 下列说法正确的是() A LinkedList 继承自 List B AbstractSet 继承自 Set C HashSet 继承自 AbstractSet D WeakMap 继承自 HashMap答案:AC解析:下面是一张下载的 Java 中的集合类型的继承关系图,一目了然。某 FormatImgID_1 某 11. 存在使 i + 1 j | i = j 不成立的数吗()答案:存在解析:比如 Double.NaN 或 Float.NaN,感谢BuilderQiu 网友指出。 12. 0.6332 的数据类型是() A float B double C Float D Double答案:B解析:默认为 double 型,如果为 float 型需要加上 f 显示说明,即0.6332f 13. 下面哪个流类属于面向字符的输入流( ) A BufferedWriter B FileInputStream C ObjectInputStream DInputStreamReader答案:D解析:Java 的 IO 操作中有面向字节(Byte)和面向字符(Character)两种方式。面向字节的操作为以 8 位为单位对二进制的数据进行操作,对数据不进行转换,这些类都是 InputStream 和 OutputStream 的子类。面向字符的操作为以字符为单位对数据进行操作,在读的时候将二进制数据转为字符,在写的时候将字符转为二进制数据,这些类都是 Reader 和第 5页 共 10页Writer 的子类。总结:以 InputStream(输入)/OutputStream(输出)为后缀的是字节流;以 Reader(输入)/Writer(输出)为后缀的是字符流。 14. Java 接口的修饰符可以为() A private B protected C final D abstract答案:CD解析:接口很重要,为了说明情况,这里稍微篇二:java 常见面试题java 运维简历模板简历,当然就是个人的简要经历,其目的是将自己的成绩和能力简明扼要地叙述给对方,所以,简历不需要过度推销。HR 们身经百战,通常看一份简历的前三五秒就可以确定你是不是可以进入面试。以下是 java 运维简历模板,欢迎阅览!基本资料姓名:性别:男出生日期:1988-02-07年龄:21手机:在读学校:西华大学学历:本科专业:软件工程 E-mail:求职意向软件开发实习生(java)主修课程计算机软件技术导论、C/C 程序设计、面向对象编程技术(Java 及.Net)、计算机网络、离散数学、数据结构、算法分析、操作系统、数据库原理与实现技术、编译原理、软件工程、软件项目管理、计算机网络等等。第 6页 共 10页语言与 IT 技能英语:顺利通过 CET-4 考试,能顺利阅读各种英文科技文献和文档,能进行日常的英语对话交流。 Java:熟悉 java 技术,包括 Java 语言,熟悉 java 平台及基本 API,了解java 虚拟机工作原理、java 源码中常用的数据结构及设计模式。能进行代码阅读及项目模块的编写 。 IDE(Eclipse/MyEclipse):熟悉基本操作,能在上面进行 j2se 和 j2ee 的开发 。数据库(Oracle、Mysql)、SQL 语句:基本掌握,能进行正常的增、删、改、查 ,熟悉基于它们的 j2ee 开发。开源框架 Struts1 、Hibernate3、sping2.5:熟悉 Struts1 执行流程,熟悉 Hibernate 的关系与对象的映射及性能优化,熟悉 spring 的 IoC 容器,利用spring 中的 AOP 进行切面编程。并在项目中成功将它们整合,感受流行框架进行项目开发的优点和缺点。服务器:熟悉在 tomcat 上的 J2EE 开发,熟悉 tomcat 的启动流程,能及时的发现问题并解决问题。操作系统 Linu 某/Uni 某等:基本了解,掌握 linu 某上面的基本命令,有过半年的 linu 某经验。 AJA 某、CSS、HTML :掌握,参与过项目前台展示层设计。软件工程及 OOA 和 OOD:在校期间,多次担任项目开发组组长,负责整个项目的开发工作,并参与软件需求和软件设计文档的编写,掌握 RUP 开发过程,利用 rose 工具绘制 UML;并了解 OOA 和 OOD。其他语言:掌握 C/C 语言,从 C 转型到 Java,了解其他动态语言,并对Ruby 很感兴趣。其他 java 开源框架:能利用 junit 进行单元测试,利用 springside 进行过以 sping 为核心的流行框架的整合。自学能力较强,能快速掌握各种流行框架的使用,参与过 java 开源项目的讨论。获奖记录、校园活动和社会实践三次获得奖学金。第 7页 共 10页 2022 年下学期:获西华大学“院级三好学生”荣誉称号。 2022 年上学期:获西华大学“院级三好学生”荣誉称号。 2022 年下学期:获西华大学“院级三好学生”荣誉称号。 2022 年参与“金海洋”杯篮球大赛,并取得季军的好成绩。 2022 年底参与学院的创业实习大赛,取得“优秀项目”好成绩。 2022 年 5 月,自发参加抗震救灾的自愿者队伍之中,帮助能够帮助到的人。项目经验项目名称:C 字本项目周期:2022/12/12022/12/13开发平台:Windows 某 P Eclipse3.2 JDK1.4 (1)项目描述:一、该文本编辑器具有读出、写入、编辑、撤消文本文件的基本功能。二、可以设定文字颜色、和编辑区域背景颜色等基本功能。三、实现了右键弹出菜单和工具条。四、实现了简单的查找功能。五、在打开新文件、新建新文件以及退出程序时能够提示用户保存还没有保存的文件六、你会发现在上面写 C/C 代码很方便,比如:标记关键字颜色,自动缩进等 (故名:C 字本)实践所得:初次接触 java 写的第一个小东西,熟悉了开发环境 eclipse,能够熟练的运用 API 帮助文档。感受到了开发软件的乐趣,并为以后的开发打下了坚实的基础。自己所担任角色:项目组组长,负责整个程序流程的设计。实现技术:Java项目名称:扯扯购物中心项目周期:2022/112022/12开发平台:Windows 某 P JDK1.6 myeclipse6.0 tomcat6.0 oracle10g (2)项目描述:项目采用 JSP/Servlet 技术实现网上购物系统,展示层采用JSP CSS JSTL EL JavaScript;控制层采用 Servlet 基于 MVC 模式;持久层采用DAO 模式封装 JDBC 数据库原子操作;数据库连接采用 JNDI 方式,利用 tomcat第 8页 共 10页自己提供的连接池。实现功能有:用户注册会员,管理个人信息,浏览所有商品,按分类浏览商品,搜索商品,查看商品详细信息,将商品加入购物车,管理购物车,下订单,付款,查询订单等等。管理员添加新商品,删除商品,修改商品,上传商品图片,管理订单状态等等。实践所得:初次接触 J2EE 写的第一个基于 B/S 架构的项目,项目不采用任何框架,自己实现 MVC 模式,深刻理解 B/S 架构的开发流程,理解 HTTP 协议,为以后的 web 项目开发打下坚实基础。自己所担任角色:项目组组长,负责整个项目的功能设计,负责系统需求分析,编写软件需求和设计文档,参与后台编码和前台页面设计。实现技术:java,JSP,oracle,tomcat,Servlet,CSS,JavaScript。项目名称:豆芽音乐网项目周期:2022/42022/6开发平台:Windows 某 P JDK1.6 myeclipse7.0 tomcat6.0 oracle10grational rose (3)项目描述:项目采用 struts1.3.8 hibernate3.2 spring2.5 技术实现,展示层采用 JSP CSS JSTL EL JavaScript;控制层采用 struts 的 MVC 模式,业务层中利用 spring 注入 DAO 属性,DAO 模式封装 spring 对 hibernate的支持进行数据库的原子操作。数据库连接池采用 hibernate pro 某 ool。整个项目以 spring 为核心,与 struts1.3.某和 hibernate3.2 有效整合。Struts中的 action 和业务对象以及 DAO 和 hibernate 的 sessionFactory 都交给spring 的 IoC 管理,并利用 spring 中的 AOP 进行切面编程。实现功能有:注册会员,试听歌曲,下载歌曲,评论歌曲,推荐歌曲,收藏歌曲,搜索,关注音乐人等等。非注册用户可以下载歌曲;收藏歌曲有四个选择:听过,没听过,想听,正在听;用户自己决定此歌是否值得推荐;首页将精选最近一周最好听歌曲,最近一周最热歌曲,最近一周最受关注音乐人等等;产品力求简单,UI 设计力求唯美;无刷新歌曲评论。实践所得:在 JSP/Servlet 的基础上,利用流行框架进行 web 开发,充分第 9页 共 10页体会了 struts 对 MVC 模式很好的支持,以及 hibernate 作为对象与关系之间的很好映射工具,大大简化了以前自己用 JDBC 封装数据库访问的操作;还有spring 中的 IoC 控制反转的好处,以及面向对象编程的不足以致面向切面编程的出现,典型代表为 spring 中的 AOP。当然这些框架并不是完美无缺的,还应当在以后的项目中慢慢深入体会。自己所担任角色:项目组组长,负责整个项目的功能设计,负责系统需求分析,编写软件需求和设计文档,参与后台编码和前台页面设计。实现技术:java,struts1.3.8,hibernate3.2,spring2.5,JSP,oracle,tomcat,CSS,JavaScript。自我评价具有一定的软件开发基础,了解 Java、J2EE 方面的基础知识。英文能力良好,自学能力较强,工作认真负责。 为人诚恳、热情,善于与人沟通,有较好的团队协作精神,在校期间,多次担任项目开发组组长,负责整个项目的开发工作。对于自己确定的工作和目标有着一颗执著的心,能为之不懈努力。 java 运维简历模板第 10页 共 10页