导航:首页 > 程序命令 > java程序员面试

java程序员面试

发布时间:2022-01-29 11:28:08

java程序员面试

项目开发的一般流程:
1.需求分析
a) 参考以前的成功项目
b) 实地考查
c) 向专家请教

然后产生需要分析文档
2.概要设计
a) 分析文档,对整个项目模块进行划分

根据需求分析说明书进行概要设计,为将来详细设计提供文档支持
总体设计 (设计理念/软硬件环境/约束)
用例设计 (需求用例/系统框架)
接口与类设计 (分层设计/类图)
出错处理设计 (异常设计)
维护设计 (系统还原与备份)

概要设计说明书

3.详细设计
a) 对概述设计中的模块进行细化,使用数据结构和算法进行描述
根据概要设计进行详细设计,为将来程序员编码提供文档支持
模块设计
模块功能清单
IPO图
模块开发优先级
界面设计
数据库设计 (表/视图/存储过程/触发器/约束)

详细设计说明书

4.编码和测试
a) 采用你所熟悉的编程语言(客户要求)进行实现
b) 测试分类:单元测试(Junit),集成测试,系统上线

编码与测试
根据详细设计说明书进行编码和测试
程序员/软件开发工程师/高级软件开发工程师

项目整合与联合测试
项目子模块之间的拼接
系统整体测试
测试计划/测试报告
5.交互和维护

⑵ java程序员面试题

java异常机制的原理与应用
答:每当程序出现异常之后,如果程序没有进行相应的处理,则程序会出现中断现象。
实际上,产生了异常之后,JVM会抛出一个异常类的实例化对象,如果此时使用了try语句捕获的话,则可以进行异常的处理,否则,交给JVM进行处理。当try语句捕获异常之后,将与catch语句的异常类型进行匹配,如果匹配成功则执行catch内的语句。简单的应用:在所以throws语句的地方加入try-catch。标准应用:try-catch-finally-throw-throws一起使用。
2. 垃圾回收机制的优点
答:释放无用的对象所占用的空间。方式:自动回收,手动回收。使用System.gc(),实际上调用Runtime.getRuntime().gc()
3. Error与Exception区别
答:Error是jvm进行处理,是jvm出错
exception是可以由程序处理的,可以用try-catch捕获的
4. final,finally,finallize
答:final定义的变量的值不能改变,定义的方法不能被覆盖,定义的类不能被继承
finally是异常的统一出口,finallize是垃圾回收前的收尾工作,是Object类定义的
5. Anonymous Inner Class是否可以extends,是否可以implements Interface
答:允许继承和实现,因为匿名内部类就是在抽象类和接口的基础上发展起来的
6. Static Nested Class 与Inner Class的区别
答:使用Static定义的Class就是外部类,可以通过外部类. 内部类直接访问
而Inner Class是不能被外部访问的,只能通过外部类的实例再找到内部类实例。
7. HashMap and HashTable?
答:HashMap:1) released in jdk 1.2,new Class 2)采用异步处理方式,性能较高,是非线程安全的 3)允许null
HashTable:1)released in jdk 1.0 ,old Class 2)采用同步处理方式,性能低,是线程安全的3)不允许null
8. assert代表什么?
答:asserts是jdk 1.4之后发布的新关键字,表示断言,即程序执行到某个地方肯定是预计的值,一般开发很少使用。要使用assert,必须加上 -ea参数
9. gc是什么?
答:gc是garbage collection,垃圾回收,使用gc可以进行垃圾空间的释放
10. String s = new String("xyz")产生了几个对象?
答:一个匿名对象xyz,在栈空间内。一个new实例化的对象,在堆空间内。
11. sleep() and wait()?
答:sleep()是Thread类定义方法,表示线程的休眠,可以自动唤醒
wait()方法是Object类定义的方法,需要手动notify()和notifyAll()//sleep()不释放资源,wait()释放资源
12. java中存在goto,但不能使用
13.数组有没有length(),String有没有length()?
答:数组有length属性,String有length()
14. Overload与Override的区别
答:Overload:重载
|- 在一个类中定义的若干方法
|- 所有的方法名相同,但参数类型或个数不同
|- 只有参数有关,与返回类型无关
Override:覆写
|- 在继承的关系中
|- 子类定义了父类同名的方法,参数类型或个数最好完全一样。
|- 访问权限不能更严格
15. Set里的元素不能重复,用什么方法区分?==与equals()方法的区别
答:set里的元素是不能重复的,用iterator()方法来区分重复与否,==属于地址比较,
==用于比较引用和比较基本数据类型时具有不同的功能:
比较基本数据类型,如果两个值相同,则结果为true
而在比较引用时,如果引用指向内存中的同一对象,结果为true
16. 列出常见的 runtime exception
答:NumberFormatException/ArrayOutIndexofBoundException/NullPointerException/ClassCastException
17. abstract class 和 interface有什么区别?
答:抽象类:
|-由抽象方法和常量、变量、全局常量、构造方法、普通方法组成
|-使用abstract声明
|-子类要通过extends继承抽象类,子类如果不是抽象类,则必须覆写抽象类的全部抽象方法
|-存在单继承的局限
|-抽象类可以实现若干个接口
接口:
|-由抽象方法和全局常量组成
|-使用interface关键字
|-子类要通过implements实现接口,子类如果不是抽象类,则必须覆写抽象类的全部抽象方法
|-一个子类可以实现多个接口
|-接口不能继承一个抽象类,但允许继承多个接口
18. 启动一个线程要用start(),因为要通知jvm进行cpu资源的分配
19. try{}里面有一个return,问finally{}里面的代码是否执行,在什么时机执行?
答:finally{}里面的代码执行,在return之前。
20. 写一个singleton
答:singleton的核心就是构造方法私有化,Class,Runtime都采用单例
package com.leongod.demo;
public class Singleton(){
private static final sin = new Singleton();
private Singleton(){}
public static Singleton getInstance(){
return sin;
}
}
21. 程序设计:输入一组数字,然后排序输出
答:package com.leongod.demo;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;
public class IO {
public static void main(String[] args) throws Exception {
BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入一组数字,中间用空格分割:");
String str = buf.readLine();
Set<Integer> set = new TreeSet<Integer>();
String[] arr = str.split(" ");

for(String s : arr) {
if (s.matches("\\d+")) {
set.add(Integer.parseInt(s));
}
}

Iterator<Integer> it = set.iterator();
System.out.println("排序后的结果:");
while (it.hasNext()) {
System.out.print(it.next() + ",");
}
}
}
22.列出目录内的文件
package com.leongod.demo;
import java.io.File;
import com.sun.org.apache.xpath.internal.functions.FuncBoolean;
public class FileDemo {
public static void main(String[] args) {
?? File file = new File("D:" + File.separator + "kongkong");
?? fun(file);
}

public static void fun(File file) {
if (file.isDirectory()) {
File[] lf = file.listFiles();
if (lf != null) {
for(File f : lf) {
fun(f);
}
}
}else {
System.out.println(file.toString());
}
}
}
23. char可以存一个中文汉字吗?
答:可以,使用了unicode编码
24.多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么?
答:两种多线程方法,继承Thread类,实现Runnable接口
|-Thread类是Runnable接口的子类
|-使用Runnable接口可以实现资源共享的目的
|-所有线程操作都必须通过Thread类的start()方法启动
两种实现同步的方法:
|-同步代码块:Synchronized(this)
|-同步方法
25.f=3.4是不对的,3.4默认是double类型的
26.String and StringBuffer?
答:String 不可以修改,StringBuffer可以修改
27.Class.forname向容器中加载驱动程序
28.int与Integer有什么区别?
答:int是基本数据类型,Integer是包装类
在jdk1.5以后,可以实现自动装箱和拆箱
29.2*8有效的方法是移位操作:2<<3
30.请说出类集框架的完整结构
答:类级框架的最大接口:Collection、Map、Iterator、Enumeration
Collection:存放单值
|-List:允许有重复内容
|-ArrayList:异步处理,新的操作类,非线程安全
|-Vector:同步处理,旧的操作类,线程安全,支持Enumeration
|-Set:不允许有重复的内容,依靠hashCode()和equals()进行重复的验证
|-HashSet:无序存放
|-TreeSet:有序存放,按Comparable排序
|-Map:存放一对值
|-HashMap:新的类,异步处理,非线程安全,允许有null
|-HashTable:旧的类,同步处理,线程安全,不允许有null
|-TreeMap:有序排列,按key配需
|-Iterator:迭代输出,依靠collection接口中的iterator方法输出,是新的输出标准
31.是否可以继承String类?答:不可以,因为使用了final关键字

小弟,没分啊

⑶ Java程序员人事面试的时候该注意什么

很多用这个.1. 问:怎样用 Win95 的记事本 (Notepad) 来编辑 Java源程序? 答:记得存档时扩展名要加上".java",文件类型改成:“所有的文件(*.*)”。 2. 问:到底 Java 是如何传递参数的?是by value或by reference? 答:All parameters (values of primitive types, and values that are references to objects) are passed by value [JLS sect 8.4.1]。根据以上 Java规格文件的说法, 所有参数应该都是传值的(by value)。但实际上, 实际经验却告诉我们所有 Java 的对象都是传址的(by reference)。因此我们可以这样解释: 基本类型(如int, float, char等)是by value,而所谓“对象”(Object)则是by value of reference to object。 3. 问:String这个类型的class为何定义成final? 答: 主要是为了“效率” 和 “安全性” 的缘故。若 String允许被继承, 由于它的高度被使用率, 可能会降低程序的性能,所以String被定义成final。 4. 问:finalizers和C++ 的 destructors有何差异? 答:Java内部具有“内存使用回收” 的机制, 虽然它也提供了类似 (C++ 的) destructors的 finalize(),每个对象都可以使用这个方法 method,但必须冒着破坏原先回收机制的危险。所以建议尽量避免使用finalize(),不妨考虑多使用 null 及 dispose() 来释出资源会好一些。 5. 问:继承了一个class叫做 Frotz,编译器却给我“No constuctor Frotz() in the class”这样的错误提示,为什么呢? 答:记住每当您定义了一个 class的constructor,除非您一开始就去call 这个constructor,否则 Java 会自动引入superclass原先不含参数的 constructor, 如果superclass的 constructor都是有参数的,那么问题中的错误提示便出现了。 解决的方法很简单, 找一找 API文件,加上正确的参数就得了。 6. 问:怎样让char类型的东西转换成int类型? 答: char c = 'A'; int i = c; //反过来只要作强制类型转换就行了 c = (char) I; 7. 问:我的applet原先好好的, 一放到web server就会有问题,为什么? 答:一般来说,从以下方向试试: 确定class文件的格式没错——已经编译过,也没有损坏的情形; 确定所有用到的class文件放到web server上,少一个都不行; 确定所有的文件名和class名称一致,特别检查大小写有无差错; 如果程序中用到package,web server上的目录就要当心了。譬如您在class中宣告了一个叫COM.foo.util的package,那么web server的applet codebase目录底下就非得有 COM/foo/util这个子目录不可。(注意目录名称也有大小写之分); web server上的文件档案应该事先设定好。(尤其是search,read和execute权限) 8. 问:怎样在 Applet中用某个图形涂满整个背景? 答:在背景建立 Panel 或 Canvas, 然后用图形填满它。

⑷ 我想问一下大家,就是java程序员面试怎么准备

1、首先,应当不断思考三个问题:
我到底适不适合当一名程序员?
我到底应不应该一辈子以程序员为职业?
我对编程到底持有的是一种什么样的态度,是够用就好呢还是不断研究?
最终,明确自己的职业规划,对自己的规划负责并为之努力。
2、项目经验
明确你的项目到底是做什么的,有哪些功能。
明确你的项目的整体架构,在面试的时候能够清楚地画给面试官看并且清楚地指出从哪里调用到哪里、使用什么方式调用。
明确你的模块在整个项目中所处的位置及作用。
明确你的模块用到了哪些技术,更好一些的可以再了解一下整个项目用到了哪些技术。
3、专业技能
集合、设计模式、多线程、JDK源码、框架、数据库、数据结构和算法分析、Java虚拟机、
Web方面的一些问题也是要有所准备的。

⑸ JAVA程序员面试一般问那些问题

一把是做一张试卷,然后问话,试卷可以网络java面试题,
差不多的问题,专业问题的话,问你用过的工具啊,数据库啊,然后算法啊
然后根据题问一问啊,根据你的简历问问啊,项目经验啊,当然不同的企业问题不太相同,但是这些都是基本的,问的细一点的话,就要看你自己专业知识了,比如:你说你会DB2数据库,然后他就接问一句,配过DB2的参数吗?大概说一说,面试嘛差不多聊天,一问一答他再一反问,大多都是这样?因为这一反问就是核实你是知道一点,还是比较熟悉,HR就是这样来对一个面试者作基本判断的

⑹ java程序员面试需要注意什么要准备什么

  1. 作为java程序员面试应该有信心。

  2. Java面试一般他们会首先通过电话面试,看你对Java知识掌握情况。可以就会在公司面试。

  3. 有些公司还会出面试题来做笔试,笔试+面试。

  4. 沉着冷静面对面试,你一个好的面试,工资就可能很高。

⑺ java程序员人事面试

  1. 这方面的问题回答,越简单越好,言多必失。官话么,说的冠冕堂皇就好了,但是要是积极的,乐观的。

  2. 问这种问题,要么是很N的公司,要么是很垃圾的公司。技术方面的可以多回答点

  3. 你为什么要应聘这个职位呢?

要对这个职位有浓厚的兴趣,目前的经验、能力,可以胜任

4. 你为什么选择来我们公司工作?

对贵公司非常感兴趣,也比较关注贵公司,愿意在这个优秀的平台上,展示我的梦想。


面试时平等的,要不卑不亢,你也可以反问他:

  1. 贵公司未来发展趋势是什么?

  2. 贵公司与同等行业的优势是什么?

  3. 如果很荣幸,我能来到贵公司,那我的工作职责是什么?

  4. 公司是否愿意培养新人?未来上升空间有多大?

  5. 项目进展状态?

  6. 合作团队规模?与我同等级别员工有多少人?

  7. 我今天的表现怎么样?(自己衡量下,如果自我感觉还不错,感觉面试官对你也比较满意。在问这个问题)



以上就是说个方向,具体的语言还要你自己组织下,面试前,做好充分的准备。我和你一样,JAVA WEB,不过我现在做管理,也招人,上面的问题我是不问,我只关新员工来了,能不能干活,是否稳定。技术差点没关系,大家可以交流。关键是要有想法,有思路。光说不做的,我也不要。一般都是通过面试的交流,能感觉到的。面试的时候,你要表现的积极点、主动点。分析面试官的问题,给出画龙点睛的回答,不会就是不会,不要装会,可以简单说说自己的理解,但是不能乱说,否则可能会起到相反的作用。


⑻ 请问java程序员面试涉及哪些知识面---紧急

看了你的问题,你现在已经倾向J2EE这边了,
不过现在做JAVA 大部份在做J2EE
面试,各间公司都不同可以说是五花八门的。
当然首先最基本的当然是基础了,很多人觉得自己基础很好,
但在面试管一问,就什么都暴露出来了,
我问你几个问题,看你能回答几个
就String类
String 类有length 属性吗?
String 类能继承吗?
一个长度为2的字符串,调用getBytes()方法得到的数组长度是多少?
。。。
前二个问题,可以说大家都好熟了,如果这两个问题都不能一下答出,那都是新手了。
第三个问题就很少人知道了,大家都知道字符串是一个字符序列,
而在JAVA 中 一个char 二个字节,那么很容易得出这个byte 数组长度应该是四,而事实是这样吗?不是的,它的长度是六,那么这多出的两位是哪两位呢?它在数组的前面还是后面呢?
当然公司对刚毕业生都不会要求太苛刻的,很多公司招初级程序员都会先让应聘人做一些逻辑题,毕竟基础可以补回来,IQ可不能一下就能提高。
只要你能随手写出一些简单的算法,如冒泡排序,链表等。SQL 会多表连接 包括左连,右连,全连最好还能做一些优化,会做一些统计。想找份初级程序员的工作不难的。
关于SSH,这也是很多公司必问的,问的得多的会是Spring 和Hibernate ,像会问Spring 的优点是什么,缺点是什么,这一个问题就能问出你对Spring 的熟悉程度,像IOC 这些介绍,按网上的那些介绍千篇一律的回答是很难令面试官满意的。。。

⑼ Java程序员面试一般要面试多久

这个没有一个具体时间,通常面试官会和你先谈谈你简历上写的一些项目或工作经验,如果觉得你比较适合他们的工作岗位,就会继续深入,如果觉得差距还很大,可能就会收尾了,不过这是小公司的面试,大公司会比这复杂一些,有的一个笔试都要1小时。。。

阅读全文

与java程序员面试相关的资料

热点内容
pcl源码目录 浏览:964
python分类数据转换 浏览:103
wordpdf不能复制 浏览:958
快捷方式参数命令 浏览:109
cmd命令复制粘贴文件 浏览:580
ug实体快速修剪的命令是什么 浏览:118
软件工程对算法的要求 浏览:931
元史pdf 浏览:93
如何让服务器卡爆不用tnt 浏览:797
兵器pdf 浏览:923
云服务器怎么限制cpu 浏览:166
学信网用的什么app 浏览:876
linux重启命令apache 浏览:753
半夜解压有什么坏处 浏览:426
linux代理命令 浏览:639
调用tasking的编译器编译 浏览:294
青柠app是什么 浏览:868
linuxapachephp56 浏览:397
安卓手机如何打开eng文件 浏览:24
看拉丁电视都用什么app好 浏览:781