Java开发工程师——校园招聘经验

来源:互联网 发布:手机淘宝热卖在哪里 编辑:程序博客网 时间:2024/05/29 08:39

人生第一次工作面试,过程虽然比较艰辛,但是还是收货很多,所以想把过程写下来,分享给大家。希望对你们有所帮助。
面试的流程是这样的:
宣讲会
笔试
面试
复试
谈offer

宣讲会

三个人。第一个是部门HR,简单对公司介绍了一下,然后放了两个视频,一个是公司发展的介绍,一个是公司最新情况。完了以后另外一个hr可能觉得有些枯燥,就又放了一个视频,是他们公司年会上一个程序员做的视频,一个新人的成长史,辛酸史,励志史,还是挺感人的。
完了之后,一个技术的大咖上来介绍了技术方面的。
过程大约1个小时

笔试

心里话,这是我遇到比较难的笔试题了。很有区分性。

一、选择题
1.下列说法不正确的是()
A.jdk是java语言的软件开发工具包
B.jre运行java程序所必须的环境集合,包含JVM标准实现java核心类库
C.JVM是一种用于计算机设备的规范,是由SUN公司实现的,通过在实际的计算机上模拟各种计算机功能
D.java是先编译后解释,java源码先通过编译生成一种特殊的.class的中间字节码文件,然后得由JVM进行解释进行

2.下列代码输出的结果是()

double a =2.0,b=1.1,c=0.9;if(){         Sytem.out.println("ok");}else{        Sytem.out.println("不ok");}

A.ok
B.不ok

3.下面输出的结果是()

String src = new String ("Hello Word!"):    Sytem.out.println(src);enjoy(src);    Sytem.out.println(src);private void enjoy(String src){    src="Enjoy Life!";}

A.java.lang.String@21780f30java.lang.String@512d297a
B.Hello Word! Enjoy Life!
C.Enjoy Life! Hello Word!
D.java.lang.String@21780f30Enjoy Life!

4.下列代码输出的内容是( )

List<integer> list = new ArrayList<>();for(int i = 0; i < 5; i++){    list.add(i);}for(int k = 0; k < list.size(); k++){    Sytem.out.println(list.remove(k));}

A.01234
B.0135
C.013
D.024
E.运行异常

5.给定一下代码片段,程序将()

class SuperClass{    public int scale=20;    public SuperClass(){        Sytem.out.println("Super");    }}class SubClass extends SuperClass{    public int scale=40;    public SuperClass(){        Sytem.out.println("Sub");    }}    public static void main(String[] arg){        SuperClass sup = new SubClass();        Sytem.out.println("Sub.scale");    }

A.通过编译,输出SuperSub20
B.通过编译,输出SuperSub40
C.通过编译,输出SubSuper20
D.通过编译,输出SubSuper40
E.运行失败

6.在java中,以下代码()正确的创建了一个InputStreamReader对象
A.new InputStreamReader(new BufferReader(“1.dat”));
B.new InputStreamReader(new FileReader(“1.dat”));
C.new InputStreamReader(new FileInputStream(“1.dat”));
D.new InputStreamReader(“1.dat”);

7.下列方法中哪一个是启动一个新的Thread( )
A.start()
B.run()
C.notify
D.yield

8.在 java web 开发中,如果某个数据需要跨多个请求存在,则数据应该存储在()中
A.request
B.page
C.session
D.response

9.以下哪个代码段会得到一个输出流,可用于输出响应文本内容()
A.ServletOutputStream out =response.getOutputStream();
B.java.io.Printwriter out =response.getWriter();
C.OutputStream out =response.geBinaryStream();
D.java.io.Printwriter out =new PrintWriter(response.getReader());

10.下列哪种数据库约束不能定义为表记约束()
A.主键约束
B.唯一性约束
C.检查约束
D.非空约束

11.下面哪个代码片段将可获得可滚动可更新的结果集数据()
A.pst=con.prepareStreament(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
B.pst=con.prepareStreament(sql,ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
C.pst=con.prepareStreament(sql,ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
D.pst=con.prepareStreament(sql,ResultSet.CONCUR_UPDATABLE);

12.MVC设计模式包括模型层、视图层和控制层,在下列组件扮演控制器角色的是()
A.html
B.jsp
C.Servlet
D.javaBean

13.下列设计模式哪个是将抽象部分与它的实现部分想分离的()
A.Proxy
B.Bridge
C.Composite
D.Facade

14.下列程序运行结果?

public ststic void main(String[] arg) throws InterruptedException{    Thread t = new Thread(){        public void run(){            pong();        }    };    t.start();    System.out.print("ping");    t.join}static void pong(){    System.out.print("pong");}

A.pingpong
B.pongping
C.pingpong和pongping都有可能
D.都不输出

15.如果希望监听TCP端口9000,应该怎样创建socket?
A.new Socket(“localhost”,9000);
B.new ServletSocket(,9000);
C.new Socket(9000);
D.new Socket(“localhost”,9000);

二、多选题

1.下列变量定义正确的是()
A.byte b1 = 314;
B.int in1 = -0314;
C.float f1 = 3.14;
D.double d1 = +314

2.下列哪些方法是Object中的()
A.getClass()
B.finalize()
C.clone()
D.wait()

3.下列API线程安全的是
A.Vector
B.SimpleDateFormat
C.HashTable
D.stack

4.下列对final修饰符的说法正确的有()
A.final用来修饰class以防该class被扩展
B.final用来修饰method防止子类重写父类方法
C.final修饰的变量必须在定义时就赋值
D.final不能修饰局部变量

5.关于异常,下列说法正确的是()
A.java中所有的异常类都是Throwable的子类
B.java Exception 大体分为两类,编译时异常和运行时异常
C.在catch异常时,catch父类在先,子类在后
D.可以在方法中抛出一个运行异常,即使该方法未声明抛出异常

6.下列关于java内存管理说法正确的有()
A.由于java有自动释放内存的机制,所以运行java程序时无须担心分配的内存不够的问题。
B.java内存区可分为内存堆、方法区、java栈、本地方法栈、pc寄存器
C.当垃圾回收器开始释放java对象的内存时,JVM会调用他们的finalize()方法
D.当一个java对象“不可达”,即未被任何其他对象引用时,就会被垃圾回收器立即回收

7.以下关于对象序列化描述正确的是()
A.使用FileOutputStream可以将对象传输
B.使用PrintWriter可以将对象进行传输
C.使用ObjectOutputStream类完成对象存储,使用ObjectIntputStream类完成对象读取
D.对象序列化的所属类需要实现Serializable接口

8.下列哪些数据库属于关系型数据库()
A.MySql
B.Sybase
C.Oracle
D.MongoDB

9.下列哪些sql语句属于DDL命令()
A.insert
B.truncate
C.delete
D.drop

10.关于会话属性,以下说法正确的是()
A.HttpSession.getAttribute(String)的返回类型是Object
B.HttpSession.getAttribute(String)的返回类型是String
C.只要关闭浏览器,当前的session就会被销毁
D.执行session.invaliidate(),会立即销毁session

三、填空题
1.java类中,可以用__关键字调用另一个重载构造方法;
可以用__关键字调用父类指定的构造方法;
2.数据库事务的隔离级别分为哪4级_、__、_
3.请写出vi中删除当前行的命令__
4.请写出vi中拷贝当前行开始三行数据的命令__
5.shell中如何获取最后一条命令的执行结果__

面试

刚进来,两个面试官,一个是技术经理,一个是hr。
技术经理部分:

自我介绍部分
两分钟自我介绍,突出获奖情况,优势,有关计算机比赛经历。

问问题部分
良好的代码风格有哪些?
注解
数据结构
tomcat端口号在哪配置
设计模式都有哪些
需求文档的理解 pd图
一个项目的宏观思路
流程图
用例图给谁看
linux系统,常用命令
JavaScript
jquery
MyEclipse和eclipse区别
优化sql语句
socket通讯
网络编程

hr问的部分
四级过了么?
说一下你的大学生活
适应出差么?
英语水平?
有女朋友么,为啥分手?
什么时候入职?
三方协议

最后一句话
再见

复试

因为子公司的人招满了,我的简历被送到总部。科研组的HR觉得我还可以,给我打了电话问了我的意向。详细的了解了他们的部门,以及简单的介绍了我自己,相互认识了一下。
等到了技术经理的面试。电话。本以为会问到底层的知识,结果也是简单的聊天,沟通中我知道了这个部门在做这个公司的生态。心里话,还是很想进这家公司的,难得得到这样的机会,难得是研发组。虽然表现的不是很好。但是我觉得我做到我的水平了,剩下的看机遇。

谈offer

等待的过程是最痛苦的,HR说之后会跟我谈offer,又是一下午。仔细冷静下来,这十多天虽然身心疲惫,但是收货还是很大的。想着把这个经历写下来,第一篇博客,也算有纪念意义。这个过程我知道了自己基础的欠缺。也知道了下个阶段努力的方向,加油吧,毕竟这么年轻。

我还是相信,只肯努力,定有回报!