2016网易春招Java在线笔试回忆录
别看是在线笔试,但是非常严格,全称窗口不得最小化和关闭,转移,全称需要打开摄像头监控,使用草稿纸需要摄像头对准……反正2个小时,题量在那儿摆着,有作弊的功夫不如好好做做最后的编程题呢……网易不让泄漏原题,但是我只是说了考察的知识点,不犯法吧……
3月初投了网易内推,当初以为有内推码的就免笔试了,最后空欢喜,有内推码也要在线笔试……先在线填写了简历,等了漫长的半个多月,开始就认为简历挂掉了,毕竟网易,周边的小伙伴,有挂掉的……我都等到上周了才来通知,说今天在线笔试……
总体感觉考察不算很难,但是很广,而且对JavaSE的知识点考察很深入,还不仅仅是考察Java,涉及了设计模式,Java语法,数据库SQL,Linux命令,Windows,数据结构,网络,算法,操作系统等领域,而且编码题不能在IDE上编码,导致很不适应,说明平时太依靠IDE了,也不是啥好事儿。
题型回忆:
- 设计模式就一道题,很浅显,应该是送分的,考察的观察者模式,题目把观察者模式的使用场景大概描述了下,让你选这应该使用哪个设计模式,so easy。
- 第二道正好是我之前总结过的JVM学习记录里的JVM的GC调优和堆区内存空间结构问题,给出了几个GC参数,让计算伊甸园的大小,好像我算错了, 妈蛋,什么东西不复习都不行啊!
JVM学习(4)——全面总结Java的GC算法和回收机制
- 还有一道考察Java语法基本功的,属于Java初始化的范畴,大概类似下面这几个,实在回忆不起100%原题了:
- 就是记住:Java程序并不是一开始就运行自己的构造方法而是先运行其父类的构造方法。注意:子类实例化的时候会先调用父类的构造,然后才调用子类的构造。所以一般在子类的构造中第一条语句就是调用父类构造不过如果没有在第一条语句显示地调用父类构造,那名JAVA会自动先调用父类的默认无参构造,当然这种情况下,你得保证父类必须有无参构造!
class SuperClass {
SuperClass(String str) {
System.out.println("Super with a string.");
}
}
publicclass SubClass extends SuperClass {
SubClass(String str) {
System.out.println("Sub with a string.");
}
publicstaticvoid main(String[] args) {
SubClass sub = new SubClass("sub");
}
}
程序在初始化子类时(没有显示调用父类的构造器)先要寻找其父类的默认无参构造方法,结果没找到那么编译自然不能通过。解决这个问题有两个办法:
1.在父类中增加一个默认无参构造方法。
2.在子类的构造方法中增加一条语句:super(str); 且必须在第一句。
class One {
One(String str) {
System.out.println(str);
}
}
class Two {
One one_1 = new One("one-1");
One one_2 = new One("one-2");
One one_3 = new One("one-3");
Two(String str) {
System.out.println(str);
}
}
publicclass Test {
publicstaticvoid main(String[] args) {
System.out.println("Test main() start ");
Two two = new Two("two");
}
}
- 从main()方法中实例化了一个Two类的对象,构造方法作用就是初始化。先初始化Two类的成员变量(即在创建对象时对象所在类的所有数据成员会先进行初始化),Two类有3个成员变量,都是One类的对象,那么要初始化这三个对象,就调用3次One类的相应的含参构造方法来初始化它们。最后在初始化Two类的对象。
class One {
One(String str) {
System.out.println(str);
}
}
class Two {
One one_1 = new One("one-1");
One one_2 = new One("one-2");
static One one_3 = new One("one-3");
Two(String str) {
System.out.println(str);
}
}
publicclass Test {
publicstaticvoid main(String[] args) {
System.out.println("Test main() start ");
Two two_1 = new Two("two-1");
System.out.println("------------");
Two two_2 = new Two("two-2");
}
}
- 含静态变量的情景,先初始化two类的static的变量,调用one的构造器初始化,打印one-3,再按顺序初始化two类的非static的成员变量,最后初始化two类的对象two_1,如果一个类中有静态对象,那么它会在非静态对象前初始化,但只初始化一次,非静态对象每次调用时都要按顺序初始化一次。
class One {
One(String str) {
System.out.println(str);
}
}
class Two {
One one_1 = new One("one-1");
One one_2 = new One("one-2");
static One one_3 = new One("one-3");
Two(String str) {
System.out.println(str);
}
}
publicclass Test {
static Two two_3 = new Two("two-3");
public static void main(String[] args) {
System.out.println("Test main() start ");
Two two_1 = new Two("two-1");
System.out.println("------------");
Two two_2 = new Two("two-2");
}
}
- 程序中主类的静态变量会在main()方法执行前初始化,之后和上个例子一样。
class One {
One(String str) {
System.out.println(str);
}
}
class Two {
static int i = 0;
One one_1 = new One("one-1");
static One one_2 = new One("one-2");
static One one_3 = new One("one-3");
Two(String str) {
System.out.println(str);
}
}
publicclass Test {//主类
public static void main(String[] args){
System.out.println("Test main() start ");
System.out.println("Two.i = " + Two.i);
}
}
- 首次访问主类中的静态变量(没有创建对象)时也要先初始化该静态变量,先初始化two类的静态成员(如果有的话),顺序初始,因为主类中,没有实例化新的对象,所以其余的普通成员变量不用管。
Test main() start
one-2
one-3
Two.i = 0
接下来的题顺序忘了,就大概回忆知识点有多少算多少了……
- 考察Java的异常体系,让解释ClassNotFoundException异常和NoClassDefFoundError异常,啥场景出现,如何解决。
- 考察了Java的锁的机制,主要是介绍下自旋锁和互斥锁的概念,区别和使用场景。
- 考察了JDK 5的 JUC 包,给了四个选项,好像有Future,Sephere等,让找出和其他三个区别最大的一个类。考察的是对JUC的熟练程度。
- 考察Java的类加载机制,回答如何卸载 Java 类。
- SQL中 where 后不能出现什么语句,考察的SQL的语法,比较投的Java Web开发……
- ping命令,对局域网内的主机ping通了,内网能上,但是连不上外网,可能是因为啥?
- windows下的exe和dll区别和概念?
- Linux下何时从用户态切换到内核态。考察的Linux的基础知识。
- Linux下的权限命令考察的挺多,出了两个类似的题。
- 一道操作系统进程调度的问题,主要考察短作业优先算法下,求平均周转时间。
- 数据结构的二叉树,已知前序,后序遍历,问该树有几个可能的画法。
- 考察树的叶子节点计算。
- 考察栈的特性,一个编程题,问如何匹配字符串的各种括号,编程实现,在线的,不能用IDE。
- 考察递归算法的时间复杂度和如何改进,我之前总结过,写的是尾递归和线性递归。
JVM学习(1)——通过实例总结Java虚拟机的运行机制
- 还有一个编程题,很遗憾,没做对,大概数据着急了,没咋记……
……
其他的小题忘了,就这样吧。再接再厉!
欢迎关注
dashuai的博客是终身学习践行者,大厂程序员,且专注于工作经验、学习笔记的分享和日常吐槽,包括但不限于互联网行业,附带分享一些PDF电子书,资料,帮忙内推,欢迎拍砖!

2016网易春招Java在线笔试回忆录的更多相关文章
- 链家2018春招Java工程师编程题题解
Light 题目描述 在小红家里面,有n组开关,触摸每个开关,可以使得一组灯泡点亮.现在问你,使用这n组开关,最多能够使得多少个灯泡点亮呢? 输入 第一行一个n,表示有n组开关.接下来n行,每行第一个 ...
- 京东2019春招Java工程师编程题题解
生成回文串 题目描述 对于一个字符串,从前开始读和从后开始读是一样的,我们就称这个字符串是回文串. 例如"ABCBA","AA","A"是回 ...
- 爱奇艺2018春招Java工程师编程题题解
字典序最大子序列 题目描述 对于字符串a和b,如果移除字符串a中的一些字母(可以全部移除,也可以一个都不移除)就能够得到字符串b我们就称b是a的子序列. 例如."heo"是&quo ...
- hihocoder 1288 : Font Size (微软2016校园招聘4月在线笔试)
hihocoder 1288 笔试第一道..wa了好几次,也是无语..hihocoder错了不会告诉你失败的时候的测试集,这样有时候就很烦.. 遍历所有的字体,从min(w,h)开始逐渐变小开始遍历. ...
- 微软2016校园招聘4月在线笔试 A FontSize
题目链接:http://hihocoder.com/problemset/problem/1288 分析:题目中所求的是最大的FontSize(记为S),其应该满足P*[W/S]*[H/S] > ...
- 微软2016校园招聘4月在线笔试 ABC
题目链接:http://hihocoder.com/contest/mstest2016april1/problems 第一题:输入N,P,W,H,代表有N段文字,每段有ai个字,每行有⌊W/S⌋个字 ...
- 微软2016校园招聘4月在线笔试 hihocoder 1289 403 Forbidden
时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描写叙述 Little Hi runs a web server. Sometimes he has to deny acces ...
- [Hihocoder 1289] 403 Forbidden (微软2016校园招聘4月在线笔试)
传送门 #1289 : 403 Forbidden 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Little Hi runs a web server. Someti ...
- 【第二十三期】春招实习阶段性总结(阿里云已OC)
本人算是一个半路出家找工作的菜鸡了,现在手中阿里云云原生offer.百度度小满offer.腾讯PCG二面环节.美团点评等offer环节.希望我的经历分享能对各位或之后准备春招的同学有帮助. 个人背景 ...
随机推荐
- 采用EntityFramework.Extended 对EF进行扩展(Entity Framework 延伸系列2)
前言 Entity Framework 延伸系列目录 今天我们来讲讲EntityFramework.Extended 首先科普一下这个EntityFramework.Extended是什么,如下: 这 ...
- rnandroid环境搭建
react-native 环境搭建具体步骤这个大家已经玩烂了,这个主要是记录下来自己做win7系统遇到的坑 1.com.android.ddmlib.installexception 遇到这个问题,在 ...
- Java 8五大主要功能为开发者提供了哪些便利?
两年前当Java 8发布后,立即受到了业界的欢迎,因为它大大提高了Java的性能.它独特的卖点是,顾及了编程语言的每一个方面,包括JVM(Java虚拟机)和编译器,并且改良了其它帮助系统. Java是 ...
- [C#] 进阶 - LINQ 标准查询操作概述
LINQ 标准查询操作概述 序 “标准查询运算符”是组成语言集成查询 (LINQ) 模式的方法.大多数这些方法都在序列上运行,其中的序列是一个对象,其类型实现了IEnumerable<T> ...
- Javascript实现HashTable类
散列算法可以尽快在数据结构中找出指定的一个值,因为可以通过Hash算法求出值的所在位置,存储和插入的时候都按照Hash算法放到指定位置. <script> function HashTab ...
- 解构C#游戏框架uFrame兼谈游戏架构设计
1.概览 uFrame是提供给Unity3D开发者使用的一个框架插件,它本身模仿了MVVM这种架构模式(事实上并不包含Model部分,且多出了Controller部分).因为用于Unity3D,所以它 ...
- IL异常处理
异常处理在程序中也算是比较重要的一部分了,IL异常处理在C#里面实现会用到一些新的方法 1.BeginExceptionBlock:异常块代码开始,相当于try,但是感觉又不太像 2.EndExcep ...
- nginx启动报错:/usr/local/nginx/sbin/nginx: error while loading shared libraries: libcrypto.so.1.1: cannot open shared object file: No such file or directory
查看依赖库:
- 基于AngularJs的上传控件-angular-file-upload
今天跟大家分享的是一个依赖于angular的上传控件. 前段时间做项目遇到一个需求是上传文件,大概需要实现的样式是这样子的,见下图: 需要同时上传两个文件.并且规定文件格式和文件大小.因为前端框架使用 ...
- js常用工具类.
一些js的工具类 复制代码 /** * Created by sevennight on 15-1-31. * js常用工具类 */ /** * 方法作用:[格式化时间] * 使用方法 * 示例: * ...