全国服务热线:400-035-8011

位置:宁波达内IT教育培训学校 > 学校动态 > 关于名企中Java程序员的面试笔试题有哪些

关于名企中Java程序员的面试笔试题有哪些

来源:宁波达内IT教育培训学校时间:2019/12/5 8:40:49

人往高处走,水往低处流。我相信每一位Java程序员都有一个名企梦,不想一辈子在小公司里屈尊,这是因为名企自带光环,会不断地提高自己的技术能力和市场价格。


关于名企中Java程序员的面试笔试题有哪些


但想进名企,谈何容易,往往要过五关斩六将,一次面试、两次面试、三次面试,每一步都非常严格。

名企是如何进行面试的呢?他们一般会出什么题目呢?

以下都是本人在应聘名企过程中积累的一些经验和笔试过程中收集到的一些题目,希望能帮助到那些有名企情结的程序猿们。

一、简历撰写

想进名企,首先你得有一份拿得出手的简历。

简历一般包含三部分:

(1)教育经历,特别是与Java相关的教育经历。

2)做过哪些项目,自己的技术栈如何。重点写使用过的一些框架,以及自己的收获。

(3)个人总结:经验、知识、能力总结,这个非常重要。

内容一般要控制在A4纸2-3页。

二、简历投递

可以向大型招聘网投递,例如牛客网、BOSS直聘、智联招聘、拉勾、前程等等。注意要有针对性,确认用人单位的需求,好针对他们的需求对你的简历进行微调。

因为投递的公司太多,往往自己都记不清楚,建议大家把投递过的公司做一个列表,这样在接到面试通知的时候就不会很愕然。

三、面试

在收到面试邀请的时,要事先查询一下该公司的相关资料和经营范围,对公司有个大致的了解。

一般来说,面试流程都差不多。

首先自我介绍,重点介绍一下自己的一些工作经历,以及介绍了自己所做的项目背景,项目的整个流程,自己主要负责哪些内容,有什么收获等。这块要提前准备一下。

人力资源经理一般还会问你一些家庭、生活相关的东西,但是技术才是重点的。

一定要注意做一个充分的自我介绍,介绍过程中要突出你的技术亮点,哪些是你自己认为好的一定要说出来。介绍的时候语速要放慢一些,时间一定要超过5分钟,10分钟好。

一般来说,面试的时候你好不要问以下问题:公司会不会加班?加班有没有加班费?有没有带薪休假?诸如此类这些,因为这样让人感觉你不是一个专注于工作的人。

四、专业技术考核(笔试)

下面是本人对企业常见笔试考题的总结

(一)Java基础部分

1.Java 中的 Math.round(-1.5) 等于多少?

答:等于 -1,因为在数轴上取值时,中间值(0.5)向右取整,所以正 0.5 是往上取整,负 0.5 是直接舍弃。

2.java 中 IO 流分为几种?

答:按功能来分:输入流(input)、输出流(output)。

按类型来分:字节流和字符流。

3.字符串分割用什么方法?

答:用正则表达式,代码大概为:String[]result=orgStr. split(",")。

4.Java中的基本类型有哪些?String 是基本的数据类型吗?

答:Java中的基本数据类型只有8个:byte、short、int、long、float、double、char、boolean。

除了基本类型(primitive type),剩下的都是引用类型(reference type),Java 5以后引入的枚举类型也算是一种比较特殊的引用类型。

String不是基本数据类型,它定义的为对象。

(二)数据结构和算法

1、数组和链表的区别

答:从逻辑结构上来看,数组必须实现定于固定的长度,不能适应数据动态增减的情况,即数组的大小一旦定义就不能改变。当数据增加是,可能超过原先定义的元素的个数。

当数据减少时,造成内存浪费;链表动态进行存储分配,可以适应数据动态地增减的情况,且可以方便地插入、删除数据项。

从内存存储的角度看;数组从栈中分配空间(用new则在堆上创建),对程序员方便,但是自由度小;链表从堆中分配空间,自由度大但是申请管理比较麻烦。

从访问方式类看,数组在内存中是连续的存储,因此可以利用下标索引进行访问;链表是链式存储结构,在访问元素时候只能够通过线性方式由前到后顺序的访问,所以访问效率比数组要低。

2.说说&和&&的区别

注意事项:这道题先说两者的共同点,再说出&&和&的特殊之处,并列举一些经典的例子来表明自己理解透彻深入、实际经验丰富。

答:&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为 true 时,整个运算结果才为 true,否则,只要有一方为 false,则结果为 false。

&&还具有短路的功能,即如果个表达式为 false,则不再计算第二个表达式,例如,对于 if(str != null && !str.equals(“”))表达式,当 str 为 null 时,后面的表达式不会执行。

所以不会出现 NullPointerException 如果将&&改为&,则会抛出 NullPointerException 异常。If(x==33 & ++y>0) y 会增长,If(x==33 && ++y>0)不会增长。

&还可以用作位运算符,当&操作符两边的表达式不是 boolean 类型时,&表示按位与操作,我们通常使用 0x0f 来与一个整数进行&运算,来获取该整数的低 4 个 bit 位,例如,0x31 & 0x0f 的结果为 0x01。

3.算法部分:

排序可以算是基本,常用的算法,也是笔试面试中常被考的算法,需要熟悉的常用排序算法的时间复杂度和空间复杂度,各种排序算法的使用范围。

例如:给定一数组,其大小为8个元素,数组内的数据无序。

6 3 5 7 0 4 1 2

答:冒泡排序:两两比较,将两者较少的升上去,次比较空间为0-(N-1)直到后一轮比较空间为0-1

选择排序:在趟遍历N个数据,找出其中小的数值与个元素交换,第二趟遍历剩下的N-1个数据,找出其中小的数值与第二个元素交换……第N-1趟遍历剩下的2个数据,找出其中小的数值与第N-1个元素交换,至此选择排序完成。

插入排序:对于未排序数据,在已排序序列中从后向前扫描,找到相应的位置并插入。

(三)JVM

1.JVM常用参数

答:JVM主要参数:堆设置、回收器选择(串行、并行、并发收集器)

2. volatile的语义,它修饰的变量一定线程安全吗 ?

答:一个变量被定义为volatile之后,具备两重语义:①增加此变量对所有线程的可见性,即当一条线程修改了这个值,新值对于其他所有线程来说是立即得知的,普通变量需要通过主内存传递。②禁止指令重排序优化。

Volatile修饰的变量不一定是线程安全的,eg非原子操作a++等。

3.说一说你对环境变量classpath的理解?如果一个类不在classpath下,为什么会抛出ClassNotFoundException异常,如果在不改变这个类路径的前期下,怎样才能正确加载这个类?

答:classpath是javac编译器的一个环境变量。它的作用与import、package关键字有关

package的所在位置,就是设置CLASSPATH当编译器面对import packag这个语句时,它先会查找CLASSPATH所指定的目录,并检视子目录java/util是否存在,然后找出名称吻合的已编译文件(.class文件)。如果没有找到就会报错!

4.触发器的作用?

答:触发器是一中特殊的存储过程,主要是通过事件来触发而被执行的。它可以强化约束,来维护数据的完整性和一致性,可以跟踪数据库内的操作从而不允许未经许可的更新和变化。

可以联级运算。如,某表上的触发器上包含对另一个表的数据操作,而该操作又会导致该表触发器被触发。

5.存储过程的优缺点?

答:优点: (1)存储过程是预编译过的,执行效率高。 (2)存储过程的代码直接存放于数据库中,通过存储过程名直接调用,减少网络通讯。 

(3)安全性高,执行存储过程需要有一定权限的用户。 

 (4)存储过程可以重复使用,可减少数据库开发人员的工作量。 缺点:移植性差

(四)设计模式

不管是参加Java面试还是C#面试,设计模式和软件设计都是任何编程面试中的必问的问题。实际上,编程能力和设计技巧是对彼此很好的补充。一个好的程序员通常都是一个好的软件设计人员。

1. 你可以说出几个在JDK库中使用的设计模式吗?

答:装饰器设计模式(Decorator design pattern)被用于多个Java IO类中。单例模式(Singleton pattern)用于Runtime,Calendar和其他的一些类中。

工厂模式(Factory pattern)被用于各种不可变的类如Boolean,像Boolean.valueOf,观察者模式(Observer pattern)被用于Swing和很多的事件监听中。

2. Java中什么是单例设计模式?用Java写出线程安全的单例

答:单例模式重点在于在整个系统上共享一些创建时较耗资源的对象。整个应用中只维护一个特定类实例,它被所有组件共同使用。Java.lang.Runtime是单例模式的经典例子。

3. 使用工厂模式主要的好处是什么?

答:工厂模式的大好处是增加了创建对象时的封装层次。如果 你使用工厂来创建对象,之后你可以使用更和更高性能的实现来替换原始的产品实现或类,这不需要在调用层做任何修改。

4.你正在写一些类提供市场数据,你知道你可以不定时切换不同的厂商如Reuters、wombat或者直接的批发商,你会如何设计你的市场数据系统。

这是一个非常有趣的设计面试问题,如果你是用Java编码的话这是一个相当平常的场景。

主要的一点是你要有一个MarketData接口,它会有调用端需要的方法如:getBid()、getPrice()、getLevel()等等,而MarketData应该由一个MarketDataProvider通过依赖注入(dependency injection)组成。

因此,当你修改你的MarketData提供器(MarketDataProvider)时,调用端不会受影响,因为它们是通过MarketData接口或类的方法来访问的。

(五)框架

1.Arraylist 与Vector 区别?

答:就ArrayList 与Vector 主要从二方面来说:

(1)同步性:Vector 是线程安全的(同步),而ArrayList 是线程序不安全的;

(2)数据增长:当需要增长时,Vector 默认增长一倍,而ArrayList 却是一半。

2.List,Set,Map 是否继承自Collection 接口?

答:List,Set 是;Map 不是。

3.你所知道的集合类都有哪些?主要方法?

答:常用的集合类是List 和Map。List 的具体实现包括ArrayList 和Vector,它们是可变大小的列表,比较适合构建、存储和操作任何类型对象的元素列表。

List 适用于按数值索引访问元素的情形。Map 提供了一个更通用的元素存储方法。Map 集合类用于存储元素对(称作“键”和“值”),其中每个键映射到一个值。

4、Spring常用注解有哪些?

(1)@Required 注释应用于 bean 属性的 setter 方法,它表明受影响的 bean 属性在配置时必须放在 XML 配置文件中,否则容器就会抛出一个 BeanInitializationException 异常。

(2)@Autowired 注解提供了更细粒度的控制,包括在何处以及如何完成自动装配。它的用法和@Required一样,修饰setter方法、构造器、属性或者具有任意名称和/或多个参数的PN方法。

(3)@Qualifier 注解当有多个相同类型的bean却只有一个需要自动装配时,将@Qualifier 注解和@Autowire 注解结合使用以消除这种混淆,指定需要装配的确切的bean。

我觉得,无论写简历或是面试,重要是实事求是,千万不能夸大事实,因为名企的招聘一般都比较谨慎,人家深入问一下,你就露馅了。

还有,面试之定要做好充分的准备,对专业的基础内容要熟悉,同时要对自己以往的工作做一个总结,找出自己的亮点所在,有了亮点,在面试的过程中,你就能掌握一定的主动权。

好了,我的介绍就到这里,祝你好运!

领取试听课
每天限量名额,先到先得

尊重原创文章,转载请注明出处与链接:http://www.peixun360.com/1840/news/119436/违者必究! 以上就是宁波达内IT教育培训学校 小编为您整理 关于名企中Java程序员的面试笔试题有哪些的全部内容。

温馨提示:提交留言后老师会第一时间与您联系!热线电话:400-035-8011