曾经总是看别人写的笔经面经。今天自己最终能够写自己亲身经历的一篇了

T-T。

前阵子去了唯品会的秋招宣讲会,华工场(如今才知道原来找家互联网公司工作的人好多)。副总裁介绍了VIP的商业模式是逛街式的购物,与京东和淘宝不同。

宣讲会之后还没有笔试。网上找了一些曾经的题目,当练练手。

2014校招的。

1.下列不可作为java语言修饰符的是(D)



 A. a1 B. $1

C. _1 D. 11

这题目有问题,修饰符是public这些,不能作为变量名才对。

2.整形数据类型中。须要内存空间最少的是(D)



 A. short B. long



 C. int D. byte

byte为8bit。long和double 64bit,int和float 32bit。char和short 16bit。

一个字节8个bit。

3.在java中。一个类可同一时候定义为很多同名的方法。这些方法的形式參数个数、类型或者顺序各不同样。传回的值也可能不同样。这样的面向对象的特性称为(C)



 A. 隐藏 B. 覆盖



 C. 重载 D. java不支持此特性

重载定义就如题目所讲。

覆盖就是重写,是子类重写父类方法,參数名和方法名要同样,返回类型和抛出异常比父类小(这里的小不是大小,是范围),訪问修饰符訪问权限大于等于父类。

当然这里有例外:

就是曾经在Java编程思想多态中提到的:

public class TV{
private void show(){
System.out.println("TV");
}
public static void main(String[] args) {
TV tv = new LeTV();
tv.show();
}
}
class LeTV extends TV{
public void show(){
System.out.println("LeTV");
}
}

尽管看起来像是“覆盖”,可是没有。private方法自己主动觉得是final方法。对导出类屏蔽,LeTV的show事实上是新的方法,main方法打印的也是TV。由于这不是覆盖。

假设private换成protected是能够的(訪问修饰符訪问权限大于等于父类)。

隐藏的话:

    public class TV{
public int price = 10;
public int getprice(){
return price;
}
public static String getString(){
return "tv";
}
}
class LeTV extends TV{
public int price = 20;
public int getprice(){
return price;
}
public int getsuperprice(){
return super.price;
} public static String getString(){
return "letv";
} public static void main(String[] args) {
TV tv = new LeTV();
System.out.println(tv.price+" getprice:"+tv.getprice()+tv.getString());
LeTV letv = new LeTV();
System.out.println(letv.price+" getprice:"+letv.getprice()+" getsuperprice:"+letv.getsuperprice()
+letv.getString());
}
}

本来会打印的10和LeTV都被隐藏了。事实上域的訪问是在编译期间解析,不是后期绑定,而后期绑定是执行期间,所以被隐藏了。

普通的方法才会覆盖,后面符合多态的特性,而静态方法仅仅和类有关。和详细的对象无关,所以LeTV被隐藏了。

简答:



 1.详述堆和栈,进程和线程的含义?

栈的话先进后出,好比先一个箱子,先放进去的东西压在以下,拿出来的时候先把后面放进去的东西拿开。

堆是先进先出。如购买基金,首先赎回的基金是自己最先买入的。

至于进程和线程,最能先说出的就是一个进程包括一个或多个线程。

事实上一个程序至少有一个进程。一个线程仅仅属于一个进程,整体看的话进程能够看成是程序的一次运行,线程是程序片段的一次运行。

差别:进程间相互独立,同一进程下的线程共享所有资源。

进程有自己独立的内存空间。线程共享所属进程的内存空间。

真的要像阮一峰那样类比也能够。CPU是工厂有非常多车间,单核心的CPU在一个时间内仅仅执行一个车间(进程),车间有多个工人工作(线程)。

2.有一个动态数据集(数据实时变化)。如今须要对该数据集用到多种视图进行展示。比方直方图,曲线图和饼图等,在这种应用场景下,使用哪几种设计模式比較合适?

这个不太会。





 第三部分:



 1.对一对扑克牌进行排序,时间复杂度尽可能小,请使用自然语言描写叙述算法核心思想。并指出使用算法的时间复杂度。使用java语言描写叙述详细算法的实现。



 (桶排序),这是师姐的方法。

2.在Linux操作系统下,有一个文本(文件名称为user).格式例如以下:



 Leo:456:7890:11



 Vincent:333:43434:2



 Rack:4343:4343:22



 Leo:444:33:4343



 Rack:1:1:1



 Tiger:1:32:4



 要求:



 1. 提取第二列的值,并对其进行排序.



 2. 计算第二列的总和。



 3. 找出第二,三和四之和的最大值。



 4. 假如有一百万个这种文本,每一个大小为500M,用最快的方式统计哪个用户(第一列)的后面三列之和最大。

注:能够用java或者shel脚本实现以上功能。

以上试题来自:http://blog.csdn.net/aacm1992/article/details/14907315#comments

2015校招

后面网申后收到笔试通知

1.笔试

整体不是太难,考察方向全面。

(1) 5道选择题,比較基础。后面都是问答题。

(2) 数据库一题,二选一,一个是用group by和count查询出选修课程在2~3门之间的学生,还有一个是给出两个数据库表,让你对数据库模型进行优化。

(3) 操作系统一题。二选一,一个时间片的问题,这个不太会,挑了第二道题做。第二道题问的是进程间共享数据的方式。事实上就是进程间传播和交换信息。

1)共享内存,内存由一进程创建。其它进程共享。

2)信号量。计数器。控制资源訪问。

3)管道。在具有亲缘关系的进程中使用。通常指父子进程关系。

(4) 数据结构与算法,二选一,第一题忘了,第二题是给出一个时间段的股票价格趋势。问你何时买入何时卖出获取最大利润。

先说自己的土方法,鉴于算法是渣渣。然后写了两个for循环嵌套。就是每一个价格都去减。结果当然是对的,可是复杂度当然就弱爆了。

后面就去问人了。

事实上有这样一个窍门。先找出所有价格中的最低的价格,然后往后找到最高价格,相减。

再找出所有价格中的最高价格。往前找最低价格。相减。

两个中最大值便是最大利润,这是我后面问人的,绘图画了之后感觉是对的

原来,窍门是错的,5 10 2 8 1 3。

窍门的话得出结果是5。事实上8-2才是最大值。

后面去问了671coder。acmer就是不一样,给出了动态规划的方案,代码看到之后大吃一惊。

int max = -1;
int ans = -1;
for (int i=len-1; i>=0; i--)
if(num[i]>max)
max=num[i];
if(max- num[i] > ans)
ans = max- num[i];
return ans;

每次将最大值存进去,遇到更大的利润再替换。

复杂度才O(N)。

(5) 计算机网络。二选一,一道是子网掩码。一道是TCP与UDP差别:

TCP(TransmissionControlProtocol)和UDP(UserDatagramProtocol)协议属于传输层协议。

TCP可靠。相对负载比UDP大。

(6) 最后一道,附加题。

就是传说中的爱因斯坦出的推理题目。5个国家,5间房子。5种宠物啤酒那道题。之前推过。

不停如果推理依据条件推翻。得出答案。

2.一面

后面收到通知,非常是兴奋,第一次技术面试(好吧。别人已经拿到batoffer的时候,我才第一次技术面试)。

面试是在一间教室里面。教室有6,7个面试同一时候进行。我和面试官坐同一排椅子。隔了一个座位,我的面试官人非常nice。常常笑,还是头后仰哈哈大笑那种。总体和日常聊天一样。

可是因为第一次技术面试。刚開始有点紧张。

一面整体还是看你对基础的东西的了解,投的是Java方向的。

问我做的项目。

回答用了框架写的。然后各自大体有什么作用。框架搭了多久。

servlet了解吗?

servlet生命周期,再由doGet,dotPost方法联系到get和post的差别,之前简单的想到url地址后面跟不跟数据可不可靠(回去查了之后发现另一个大差别。get数据传输小,限制在2kb左右。可是速度快一些,所以数据小不在乎安全性,能够直接用get。post数据传输相对大,传文件用post)。

再由servlet跳到JSP。

jsp跳转的方式。糟了。直接更面试官说忘了。好久没写了,面试官说没关系。忘记的同学请脑补。

然后再拿笔试题进行询问。

问的还是思路多一些。

说完问了我打什么游戏——dota,然后又是扯了一大堆东西。

又谈回技术。

讲面向对象的三大特性。封装体如今哪,多态是什么。

这个放假看过编程思想,blabla讲出来,还比划样例。

了解设计模式吗?

单例。讲了使用方法,应用什么的。

最后面试官的总结,整体不错,可是人太多了,这句话的意思我也听懂了。

后面说了声谢谢离开了教室。

前前后后花了半个钟多一些,作为第一次面试。个人感觉还能够吧。面完继续參加其它的两场笔试。

希望自己早日找到一份好的实习,能够去公司见见很多其它的牛人。学到很多其它。也同其它的同学一起努力,不停地去尝试吧。

不试试怎么会知道呢?——Go桌面人力资源副总监,宣讲会说的一句话。

Java笔试题解析(二)——2015届唯品会校招的更多相关文章

  1. java笔试题(二)

    1.写出一维数组初始化的两种方式 int[] arr={1,2,3}; String[] str=new String[2]; str[1]="23"; 2.写出二维数组初始化的两 ...

  2. java面试题—精选30道Java笔试题解答(二)

    摘要: java面试题-精选30道Java笔试题解答(二) 19. 下面程序能正常运行吗() public class NULL { public static void haha(){ System ...

  3. Java中有关构造函数的一道笔试题解析

    Java中有关构造函数的一道笔试题解析 1.详细题目例如以下 下列说法正确的有() A. class中的constructor不可省略 B. constructor必须与class同名,但方法不能与c ...

  4. 2016最新Java笔试题集锦

    更新时间:2015-08-13         来源:网络         投诉删除 [看准网(Kanzhun.com)]笔试题目频道小编搜集的范文“2016最新Java笔试题集锦”,供大家阅读参考, ...

  5. 509道Java面试题解析:2020年最新Java面试题

    <Java面试全解析>是我在 GitChat 发布的一门电子书,全书总共有 15 万字和 505 道 Java 面试题解析,目前来说应该是最实用和最全的 Java 面试题解析了. 我本人是 ...

  6. 2019年 Java 面试题解析

    2019年 Java 面试题解析 转载地址:https://www.cnblogs.com/Zz-maker/p/11193930.html 作者: Zz_maker 包含的模块: 本文分为十九个模块 ...

  7. 华为Java笔试题

    华为Java笔试题+数据库题 一. 单项选择题 1.Java是从( )语言改进重新设计. A.Ada B.C++ C.Pasacal D.BASIC 2.下列语句哪一个正确( ) A. Java程序经 ...

  8. Java笔试题集锦

    Java笔试题集锦 1.MVC的各个部分都有那些技术来实现?怎样实现? 答:MVC是Model-View-Controller的简写."Model" 代表的是应用的业务逻辑(通过J ...

  9. 北京Java笔试题整理

    北京Java笔试题整理 1.什么是java虚拟机?为什么ava被称作是"平台无关的编程语言? 答:Java虚拟机可以理解为一个特殊的"操作系统",只是它连接的不是硬件,而 ...

随机推荐

  1. python之迭代

    1.何为迭代: 对于给定list或者tuple,通过for循环来遍历这个list或tuple,这种遍历我们称之为迭代(Iteration). 2.python中利用for...in语句来完成迭代语句: ...

  2. arcgis10.3下载,arcgis pro的下载地址

    链接:http://pan.baidu.com/s/1eQ2BkCM 密码:fmkh

  3. AR中的SLAM(二)

    写在前面 本文想讨论一下AR的架构和SLAM在其中的作用. AR AR的框架可以简单划分为感知和交互两部分. 感知部分主要负责信息的收集和处理.信息主要通过不同的传感器收集,包括图像.设备加速度.距离 ...

  4. springCloud微服务入门

    目录 前言 Eureka 注册中心server 新建 配置 服务提供者service 新建 配置 服务消费者controller 新建 配置 使用 Feign负载均衡 前言 springCloud是一 ...

  5. Aheadof Time Compilation(AOT) vs (JIT)Just In Time compilation approach

    像java这样的高级语言,往往先做好部分编译,在运行时,再使用JIT将前面编译的中间件输出编译为机器语言,放到机器上运行.这可能会影响到运行的性能. 再比如,像angular的web 应用,angul ...

  6. mysql(5.7.17)字符集设置(character_set/collation)

    0 查看字符集(character_set/collation) use information_schema;desc tables;    --一定记住tables表,information_sc ...

  7. C# 希尔排序

    引用:对于大规模乱序数组插入排序很慢,因为它只会交换相邻的元素,因此元素只能一点一点的从数组的一端移动到另一端.例如,如果主键最小的元素正好在数组的尽头,要将它挪到正确的位置就需要N-1次移动.希尔排 ...

  8. print(dir(...)) 打印对象或者类中的方法和函数

  9. ArcGIS Engine开发基础总结(一)

    标准Engine功能 地图浏览    地图制作 数据查询 数据分析 及 所有的开发控件 —MapControl, PageLayout, Toolbar, TOC, ArcReader 对所有矢量和栅 ...

  10. 新锤子驾到,通通闪开—Service Mesh

    微服务方兴未艾如火如荼之际,除 Spring cloud 等经典框架之外,新一代的微服务开发技术正在悄然兴起,那就是Service Mesh(服务网格).2018 年是Service Mesh 元年, ...