别看是在线笔试,但是非常严格,全称窗口不得最小化和关闭,转移,全称需要打开摄像头监控,使用草稿纸需要摄像头对准……反正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在线笔试回忆录的更多相关文章

  1. 链家2018春招Java工程师编程题题解

    Light 题目描述 在小红家里面,有n组开关,触摸每个开关,可以使得一组灯泡点亮.现在问你,使用这n组开关,最多能够使得多少个灯泡点亮呢? 输入 第一行一个n,表示有n组开关.接下来n行,每行第一个 ...

  2. 京东2019春招Java工程师编程题题解

    生成回文串 题目描述 对于一个字符串,从前开始读和从后开始读是一样的,我们就称这个字符串是回文串. 例如"ABCBA","AA","A"是回 ...

  3. 爱奇艺2018春招Java工程师编程题题解

    字典序最大子序列 题目描述 对于字符串a和b,如果移除字符串a中的一些字母(可以全部移除,也可以一个都不移除)就能够得到字符串b我们就称b是a的子序列. 例如."heo"是&quo ...

  4. hihocoder 1288 : Font Size (微软2016校园招聘4月在线笔试)

    hihocoder 1288 笔试第一道..wa了好几次,也是无语..hihocoder错了不会告诉你失败的时候的测试集,这样有时候就很烦.. 遍历所有的字体,从min(w,h)开始逐渐变小开始遍历. ...

  5. 微软2016校园招聘4月在线笔试 A FontSize

    题目链接:http://hihocoder.com/problemset/problem/1288 分析:题目中所求的是最大的FontSize(记为S),其应该满足P*[W/S]*[H/S] > ...

  6. 微软2016校园招聘4月在线笔试 ABC

    题目链接:http://hihocoder.com/contest/mstest2016april1/problems 第一题:输入N,P,W,H,代表有N段文字,每段有ai个字,每行有⌊W/S⌋个字 ...

  7. 微软2016校园招聘4月在线笔试 hihocoder 1289 403 Forbidden

    时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描写叙述 Little Hi runs a web server. Sometimes he has to deny acces ...

  8. [Hihocoder 1289] 403 Forbidden (微软2016校园招聘4月在线笔试)

    传送门 #1289 : 403 Forbidden 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Little Hi runs a web server. Someti ...

  9. 【第二十三期】春招实习阶段性总结(阿里云已OC)

    本人算是一个半路出家找工作的菜鸡了,现在手中阿里云云原生offer.百度度小满offer.腾讯PCG二面环节.美团点评等offer环节.希望我的经历分享能对各位或之后准备春招的同学有帮助. 个人背景 ...

随机推荐

  1. 移动站应该尝试百度MIP的五个原因

    MIP是什么?MIP是百度在2016年提出的移动网页加速器项目. MIP能做什么?MIP能帮助站长和网站开发者快速搭建移动端页面. MIP怎么加速?MIP从前端渲染和页面网络传输两方面进行优化,杜绝页 ...

  2. 学习AOP之认识一下Spring AOP

    心碎之事 要说知道AOP这个词倒是很久很久以前了,但是直到今天我也不敢说非常的理解它,其中的各种概念即抽象又太拗口. 在几次面试中都被问及AOP,但是真的没有答上来,或者都在面上,这给面试官的感觉就是 ...

  3. .NET Core中间件的注册和管道的构建(2)---- 用UseMiddleware扩展方法注册中间件类

    .NET Core中间件的注册和管道的构建(2)---- 用UseMiddleware扩展方法注册中间件类 0x00 为什么要引入扩展方法 有的中间件功能比较简单,有的则比较复杂,并且依赖其它组件.除 ...

  4. 菜鸟学Struts2——Interceptors

    昨天学习Struts2的Convention plugin,今天利用Convention plugin进行Interceptor学习,虽然是使用Convention plugin进行零配置开发,这只是 ...

  5. OVS 中的各种网络设备 - 每天5分钟玩转 OpenStack(128)

    上一节我们启用了 Open vSwitch,本节将查看当前的网络状态并介绍 Open vSwitch 涉及的各种网络设备 初始网络状态 查看一下当前的网络状态. 控制节点 ifconfig 显示控制节 ...

  6. CRL快速开发框架系列教程十三(嵌套查询)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

  7. asp.net core 负载均衡集群搭建(centos7+nginx+supervisor+kestrel)

    概述 本文目的是搭建三台asp.net core 集群, 并配上 nginx做负载均衡   首先准备要运行的源码 http://pan.baidu.com/s/1c20x0bA 准备三台服务器(或则虚 ...

  8. 编写简单的Makefile文件

    makefile中的编写内容如下: www:hello.c x.h gcc hello.c -o hello clean: rm hello www:hello.c  x.h 表示生成www这个文件需 ...

  9. Ubuntu1604下安装Liggghts及CFDEM Coupling

    部分内容参考http://www.linuxdiyf.com/linux/16315.html LIGGGHTS是一款开源的DEM软件,来自于著名的分子动力学软件LAMMPS,目前借助于CFDEM C ...

  10. Struts2.5需要的最少jar文件

    以Struts2.5.2为例 从官网上下载“struts-2.5.2-min-lib.zip”,里面有7个jar文件: commons-fileupload-1.3.2.jarcommons-io-2 ...