Java笔试题解析(二)——2015届唯品会校招
曾经总是看别人写的笔经面经。今天自己最终能够写自己亲身经历的一篇了
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届唯品会校招的更多相关文章
- java笔试题(二)
1.写出一维数组初始化的两种方式 int[] arr={1,2,3}; String[] str=new String[2]; str[1]="23"; 2.写出二维数组初始化的两 ...
- java面试题—精选30道Java笔试题解答(二)
摘要: java面试题-精选30道Java笔试题解答(二) 19. 下面程序能正常运行吗() public class NULL { public static void haha(){ System ...
- Java中有关构造函数的一道笔试题解析
Java中有关构造函数的一道笔试题解析 1.详细题目例如以下 下列说法正确的有() A. class中的constructor不可省略 B. constructor必须与class同名,但方法不能与c ...
- 2016最新Java笔试题集锦
更新时间:2015-08-13 来源:网络 投诉删除 [看准网(Kanzhun.com)]笔试题目频道小编搜集的范文“2016最新Java笔试题集锦”,供大家阅读参考, ...
- 509道Java面试题解析:2020年最新Java面试题
<Java面试全解析>是我在 GitChat 发布的一门电子书,全书总共有 15 万字和 505 道 Java 面试题解析,目前来说应该是最实用和最全的 Java 面试题解析了. 我本人是 ...
- 2019年 Java 面试题解析
2019年 Java 面试题解析 转载地址:https://www.cnblogs.com/Zz-maker/p/11193930.html 作者: Zz_maker 包含的模块: 本文分为十九个模块 ...
- 华为Java笔试题
华为Java笔试题+数据库题 一. 单项选择题 1.Java是从( )语言改进重新设计. A.Ada B.C++ C.Pasacal D.BASIC 2.下列语句哪一个正确( ) A. Java程序经 ...
- Java笔试题集锦
Java笔试题集锦 1.MVC的各个部分都有那些技术来实现?怎样实现? 答:MVC是Model-View-Controller的简写."Model" 代表的是应用的业务逻辑(通过J ...
- 北京Java笔试题整理
北京Java笔试题整理 1.什么是java虚拟机?为什么ava被称作是"平台无关的编程语言? 答:Java虚拟机可以理解为一个特殊的"操作系统",只是它连接的不是硬件,而 ...
随机推荐
- 【c++错误】类的语法错误 error c2533:constructors not allowed a return type(构造函数不允许返回一个类型)
今天编写类的程序的时候不小心把类后的分号忘写了,就出现上面的错误提示. 顺便复习下类的正确格式: class 类名 { public: //习惯上将公有类型放在前面,便于阅读 ……(外部接口) pro ...
- Modernizing Business Process with Cloud and AI
The world is awash with digital transformation. Every customer and partner that I talk to, across ev ...
- Solr常用操作命令
1. 新建collection ./solr create_collection -c collection_vip -d /opt/lucidworks-hdpsearch/solr/server/ ...
- Flutter完整开发实战详解
Flutter完整开发实战详解(一.Dart语言和Flutter基础) Flutter完整开发实战详解(二. 快速开发实战篇) Flutter完整开发实战详解(三. 打包与填坑篇)
- Android如何使用WebView访问https的网站
Android中可以用WebView来访问http和https的网站,但是默认访问https网站时,假如证书不被Android承认,会出现空白页面,且不会有任何提示信息,这时我们必须加多一些配置. 此 ...
- unity3d中的自定义模型的顶点法线和建模软件中的术语“软硬边”和立方体
在unity3d中我是想用Mesh生成一个正方体,直到遇到了法线的问题. 我是想显示如下图所示的正方体,却发现法线设置上的问题. 这里我先使用了8个顶点 按照每个顶点一个法线的结果,只能是这样:(也就 ...
- mac os maverick下安装nginx+php-fpm via homebrew
自己虽然平时爱折腾,却很少有记下来的习惯,除非碰到特别多问题的部署才会有冲动.今天看同事折腾git,在旁边看着他mac上的evernote满满的记了好几篇,全是技术相关的记录,忽然很感慨.过去解决了很 ...
- Vue2学习笔记:数据交互vue-resource
基本语法 必须引入一个库:vue-resource github地址 // 基于全局Vue对象使用http Vue.http.get('/someUrl', [options]).then(succe ...
- Redis 处理客户端连接的一些内部实现机制
本文主要介绍了 Redis 处理客户端连接的一些内部实现机制,包括连接处理.超时.缓冲区等一系列内容. 注:本文所述内容基于 Redis2.6 及以上版本. 连接的建立 Redis 通过监听一个 TC ...
- .Oracle固定执行计划之SQL PROFILE概要文件
1. 引子Oracle系统为了合理分配和使用系统的资源提出了概要文件的概念.所谓概要文件,就是一份描述如何使用系统的资源(主要是CPU资源)的配置文件.将概要文件赋予某个数据库用户,在用户连接并访问 ...