1 南京航天宏图信息技术有限公司
自我介绍
做的项目那些是成功上线运行的
集合框架HashMap和HashTable的区别(Java基础)
https://www.cnblogs.com/beatIteWeNerverGiveUp/p/5709841.html
同步和异步是在读还是在写上有差异
https://blog.csdn.net/u011033906/article/details/53840525
红黑树实现原理
https://www.cnblogs.com/skywang12345/p/3245399.html
细说一下Object的Equals和Hashcode方法
https://www.jianshu.com/p/2b9c00e9c056
JVM有了解过吗,说一下
https://blog.csdn.net/u013142781/article/details/50830754
设计模式有哪些,细说一下
https://www.jianshu.com/p/93f2202b405f
SpringMVC的处理流程
https://www.jianshu.com/p/b5e8716e6552
为什么前后端分离?前后端分离的好处和坏处
从总体上来看前端和后端基于服务化的方式进行交互,通过Json进行数据传递。前端做到组件化、后端实现模块化。
https://www.cnblogs.com/zyx-blog/p/9052233.html
前后端分离的例子就是SPA(Single-page application),所有用到的展现数据都是后端通过异步接口(AJAX/JSONP)的方式提供的,前端只管展现。
- 前端:负责View和Controller层。
- 后端:只负责Model层,业务处理/数据等。
WEB 前后端分离三个最大的优点在于
- 1:最大的好处就是前端JS可以做很大部分的数据处理工作,对服务器的压力减小到最小;
- 2:后台错误不会直接反映到前台,错误接秒较为友好;
- 3:由于后台是很难去探知前台页面的分布情况,而这又是JS的强项,而JS又是无法独立和服务器进行通讯的。
http://itindex.net/detail/55771
为什么要用Nginx
https://www.jianshu.com/p/cbf06e139a88
JSP的内置对象有几种
https://blog.csdn.net/bighuan/article/details/68925746
Nginx动态静态分离的好处
Mybatis的#和$的区别
https://www.cnblogs.com/luohanguo/p/9122398.html
大数据量中间件MQ,爬虫每天爬的数据量
https://blog.csdn.net/luckyzhoustar/article/details/50411500
https://blog.csdn.net/DuMeiLin1/article/details/79413031
数据库索引
https://www.cnblogs.com/aspwebchh/p/6652855.html
平时项目中用过数据库的优化吗,举例说明。
SQL常用的优化策略:
- 写出统一SQL语句:大小写不同,查询分析器就认为是两句不同的SQL语句,必须进行两次解析。
- 不要把SQL语句写得太长,太过冗余。
- 考虑使用“临时表”暂存中间结果。将临时结果暂存在临时表,后面的查询就在tempdb中了,这可以避免程序中多次扫描主表,也大大减少了程序执行中“共享锁”阻塞“更新锁”,减少了阻塞,提高了并发性能。
- 一次解析,多次重用,是提高数据库效率的原则。
- 聚集索引没有建在表的顺序字段上,该表容易发生页分裂。
- 合理使用like模糊查询。关键词 %yue%,由于yue前面用到了“%”,因此该查询必然走全表扫描,除非必要,否则不要在关键词前加%。
- 用PreparedStatement代替Statement。一般来说比用Statement性能高。
- 有外键约束会影响插入和删除性能,如果程序能够保证数据完整性,在设计数据库时就去掉外键。
- 表中允许适当冗余。
- sql语句全部大写,特别是列名和表名全部大写。特别是sql命令的缓存功能,更加需要统一大小写。例如Oracle数据库会将所有的SQL语句解析上大写字母在进行执行。
- 索引对查询性能的改进。
- https://blog.csdn.net/qq_25235807/article/details/71189110
- https://www.cnblogs.com/exe19/p/5786806.html
定时器Quartz是用什么语言编写的,说说你是如何使用的
https://blog.csdn.net/yulei_qq/article/details/52430690
https://www.cnblogs.com/kangyun/p/5616106.html
你常用的设计模式有哪些?单例设计模式,好处?
https://www.jianshu.com/p/93f2202b405f
https://www.cnblogs.com/ILoke-Yang/p/8054466.html
通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。
SpringMVC的IOC的原理,Controller是单例管理的吗
https://www.cnblogs.com/angelye/p/7506566.html
https://blog.csdn.net/qq_39470733/article/details/77709607
https://www.cnblogs.com/1123-wyl/p/8565288.html
https://blog.csdn.net/hrbeuwhw/article/details/79476988
2 享物说(面试官是卡耐基梅隆大学的,第一次见到学历这么高的大牛,感觉人很好,情商智商都很高)
先谈谈个人情况,闲聊一下,缓解紧张的气氛。
主要问了下Android端的负责情况,以及办公室小组的人员的分工。
进入正题,就问了一个问题,直接在纸上写代码,face to face的。
问题是:
[1] [1,1]
[2,1,2] [2 2,1 1]
[3,2,1,2,1][1 3,2 2,2 1]
根据左边的数组,输出右边的统计结果。
public static void main(String[] args)
{
ArrayList<ArrayList<Integer>> res = new ArrayList<>();
res.add(new ArrayList<Integer>()
{{
add(1);
}});
res.add(new ArrayList<Integer>()
{{
add(2);
add(1);
add(2);
}});
res.add(new ArrayList<Integer>()
{{
add(3);
add(2);
add(1);
add(2);
add(1);
}});
ArrayList<ArrayList<Integer>> arrayLists = calArr(res);
for (ArrayList<Integer> li :
arrayLists)
{
for (int i = 0; i < li.size(); i++)
{
System.out.print(li.get(i)+" ");
}
System.out.println();
}
}
public static ArrayList<ArrayList<Integer>> calArr(ArrayList<ArrayList<Integer>> list)
{
ArrayList<ArrayList<Integer>> res = new ArrayList<>();
for (ArrayList<Integer> li :
list)
{
Collections.sort(li);
int arr[] = new int[li.get(li.size() - 1) + 1];
for (int i = 0; i < li.size(); i++)
{
arr[li.get(i)]++;
}
ArrayList<Integer> tmp = new ArrayList<>();
for (int i = arr.length - 1; i > 0; i--)
{
if (arr[i] != 0)
{
tmp.add(i);
tmp.add(arr[i]);
}
}
res.add(tmp);
}
return res;
}
3 美亚柏科(问了大概有40分钟的样子,很多问题,节选我还有印象的)
Lucene索引的实现原理
http://www.cnblogs.com/forfuture1978/archive/2009/12/14/1623594.html
https://www.cnblogs.com/forfuture1978/p/3945755.html
Lucene常用的Query
https://www.jianshu.com/p/fce245e02d5e
Java几种常见的编码方式
https://www.cnblogs.com/yaya-yaya/p/5768616.html
Stringbuilder、String、StringBuffer的区别
https://blog.csdn.net/weixin_41101173/article/details/79677982
https://blog.csdn.net/chenliguan/article/details/51911906
获奖的APP的亮点和技术难点,是怎么实现的
现场写算法,常用的排序算法,复杂度
二叉树、平衡二叉树
1 平衡二叉树的概念
https://www.cnblogs.com/zhujunxxxxx/p/3348798.html
2 平衡二叉树的平衡因子
https://blog.csdn.net/travelerwz/article/details/52186357
3 平衡二叉树的旋转
https://www.cnblogs.com/PerkinsZhu/p/5824015.html
4 平衡二叉树整个排序过程
http://lib.csdn.net/article/datastructure/9204
常用的树结构有那些?说明其不同?
1 二叉树
https://blog.csdn.net/hero_myself/article/details/52080969
https://blog.csdn.net/misayaaaaa/article/details/68941912
https://blog.csdn.net/xiazdong/article/details/7296257
http://blog.51cto.com/9291927/2068745
http://blog.jobbole.com/111680/
2 满二叉树
3 完全二叉树
4 二叉排序树
5 平衡二叉树
见上面分析
6 B树
https://www.cnblogs.com/vincently/p/4526560.html
https://blog.csdn.net/jacke121/article/details/78268602
7 B+树
https://blog.csdn.net/yang_yulei/article/details/26066409
https://blog.csdn.net/yang_yulei/article/details/26104921
8 红黑树
9 键树
10 字典树
.....
https://blog.csdn.net/hero_myself/article/details/52080969
https://www.jianshu.com/p/ffe11ce52bf8
Mysql为什么比Sql Sever速度快,做过对比吗?
https://blog.csdn.net/zhangguofengqiang/article/details/52666199
https://blog.csdn.net/kasama1953/article/details/51488468
北京华宇信息技术有限公司
分别描述树、栈、队列、数组的理解
https://blog.csdn.net/amork/article/details/7258216
Java - 数组拷贝有几种方式
https://blog.csdn.net/u011669700/article/details/79323251
怎么判断一个有序数组中一个数字重复出现的次数(快速)
https://blog.csdn.net/nwpubear/article/details/81915247
https://blog.csdn.net/battle29/article/details/52454425
SEE小程序开发公司(红杉资本)
线程和进程的区别
进程:是执行中一段程序,即一旦程序被载入到内存中并准备执行,它就是一个进程。进程是表示资源分配的的基本概念,又是调度运行的基本单位,是系统中的并发执行的单位。
线程:单个进程中执行中每个任务就是一个线程。线程是进程中执行运算的最小单位。
一个线程只能属于一个进程,但是一个进程可以拥有多个线程。多线程处理就是允许一个进程中在同一时刻执行多个任务。
线程是一种轻量级的进程,与进程相比,线程给操作系统带来侧创建、维护、和管理的负担要轻,线程的代价或开销比较小。
线程没有地址空间,线程包含在进程的地址空间中。线程上下文只包含一个堆栈、一个寄存器、一个优先权,线程文本包含在他的进程 的文本片段中,进程拥有的所有资源都属于线程。
如何优化快速排序和冒泡排序
https://www.cnblogs.com/c4isr/p/4603980.html
https://blog.csdn.net/daigualu/article/details/78372376
C和Java都有volatile,说说你对这个关键字的理解
http://www.importnew.com/24082.html
https://blog.csdn.net/feier7501/article/details/20001083
如何从100亿个数中找出最大的10000个整数,考虑查找效率和成本。
分布式 + 最小堆
https://blog.csdn.net/zyq522376829/article/details/47686867
说说分治法的思想
https://blog.csdn.net/disparity_cjk/article/details/64127892
说说对TCP/HTTP/HTTPS的理解
https://blog.csdn.net/whb20081815/article/details/67640804
https://blog.csdn.net/sinat_31057219/article/details/72872359
https://www.cnblogs.com/yzjT-mac/p/6126772.html
https://blog.csdn.net/Li_Ning_/article/details/52117463
说说对RSA、SSL加密过程,公钥和私钥各有什么作用
https://blog.csdn.net/yi_zz32/article/details/50097325
https://blog.csdn.net/21aspnet/article/details/7249401
http://www.cnblogs.com/P_Chou/archive/2010/12/27/https-ssl-certification.html
25匹马,5个赛道,请问要找出跑的最快的3匹马,最少需要赛几场。
https://blog.csdn.net/cmsbupt/article/details/17404183
长连接转换需求,怎么设计合理的逻辑来解决该问题
https://www.cnblogs.com/xujiming/p/5448721.html
https://blog.csdn.net/crazy123456789/article/details/25054705
顺丰同城科技
后缀表达式转中缀表达式,并计算结果(实现代码在github上的面试代码中)
中缀表达式转换为后缀表达式
https://blog.csdn.net/sgbfblog/article/details/8001651
后缀表达式的求值的算法
https://blog.csdn.net/xiaoniba1024/article/details/6575523
java中int和char的转化方法
https://blog.csdn.net/GreyBearChao/article/details/78121448
进制之间的转换。原码、反码和补码的区别。
https://jingyan.baidu.com/article/495ba84109665338b30ede98.html
https://blog.csdn.net/xdd19910505/article/details/40424533
原码:原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值。
[+1]原 = 0000 0001
[-1]原 = 1000 0001
反码:正数的反码是其本身。负数的反码是在其原码的基础上, 符号位不变,其余各个位取反。
[+1] = [00000001]原 = [00000001]反
[-1] = [10000001]原 = [11111110]反
补码
正数的补码就是其本身
负数的补码是在反码的基础上+1
[+1] = [00000001]原 = [00000001]反 = [00000001]补
[-1] = [10000001]原 = [11111110]反 = [11111111]补
按位与、或、异或等运算方法
https://blog.csdn.net/forrest_gao/article/details/51493045
简单说说数据库索引、触发器、存储过程、视图
https://www.jianshu.com/p/ad03a41ed006
简历中涉及项目
1 水利委项目
SpringMVC
https://www.jianshu.com/p/b5e8716e6552
https://www.cnblogs.com/angelye/p/7506566.html
React
https://www.jianshu.com/p/31973575d8fe
Ant Design
https://ant-design.gitee.io/docs/react/introduce-cn
Nginx + Tomcat
https://www.jianshu.com/p/cbf06e139a88
https://www.jianshu.com/p/cbf06e139a88
Linux,常用的命令,部署的过程
http://gywbd.github.io/posts/2014/8/50-linux-commands.html
https://blog.csdn.net/qq_23994787/article/details/78086623
Maven和Git管理
react部署腾讯云上首屏加载速度慢
https://www.jianshu.com/p/0064580adf8a
https://www.jianshu.com/p/5fbf22ee973e
webpack,axios获取后台数据,上传图片
https://blog.csdn.net/sinat_17775997/article/details/78122999
https://blog.csdn.net/wandoumm/article/details/80251043
ES6
https://www.cnblogs.com/fengxiongZz/p/8191503.html
https://blog.csdn.net/u011135887/article/details/79199798
2 小桔灯APP,油讯通APP
油讯通APP的难点,特点
RecycleView自定义多种布局
https://blog.csdn.net/zhumintao/article/details/53023920
Viewpager切换,上拉,下拉刷新
https://blog.csdn.net/Mr_LiaBill/article/details/48749807
https://blog.csdn.net/wenxiang423/article/details/50463983
自定义控件
https://www.jianshu.com/p/a3014f8442b0
聊天功能
https://blog.csdn.net/bskfnvjtlyzmv867/article/details/71308343/
3 油气资源行业信息网
SSH、SSH和SSM的对比、Hibernate和Mybatis的对比
https://blog.csdn.net/W_Q_Q_/article/details/79032062
https://blog.csdn.net/firejuly/article/details/8190229
POI
https://www.jianshu.com/p/0a32d8bd6878
Lucene(索引重构)、索引建立的原理
http://www.cnblogs.com/forfuture1978/archive/2009/12/14/1623594.html
https://www.cnblogs.com/forfuture1978/p/3945755.html
https://www.jianshu.com/p/fce245e02d5e
Solr
https://www.jianshu.com/p/b296694e3228
搜索引擎的建立
4 采集系统
Heritrix、WebCollector爬虫的使用,优化
https://www.jianshu.com/p/4473273a5a77
https://www.jianshu.com/p/d523f03e760e
正文抽取算法,文本标签路径比算法
https://www.jianshu.com/p/b330015d6a04
C-value算法
https://www.jianshu.com/p/b330015d6a04
Quartz
https://blog.csdn.net/yulei_qq/article/details/52430690
https://www.cnblogs.com/kangyun/p/5616106.html
Struct2
https://www.cnblogs.com/zhanglizhi/p/5250887.html
c3p0 连接池
https://www.cnblogs.com/zou90512/p/5559357.html
https://blog.csdn.net/opzoonzhuzhengke/article/details/8473979
深圳智莱科技股份有限公司
说说SpringMVC的AOP
https://www.cnblogs.com/qinglangyijiu/p/8425653.html
https://www.cnblogs.com/qinglangyijiu/p/8430144.html
Mysql数据库索引、聚集索引、非聚集索引
https://www.cnblogs.com/s-b-b/p/8334593.html
https://blog.csdn.net/u011120720/article/details/51787672
在性别列建立索引是否合适
http://www.cnblogs.com/xwdreamer/archive/2012/07/06/2579504.html
对多列进行索引(组合索引)。假设存在组合索引t1c1c2(c1,c2),查询c1会用到c2吗,查询c2会用到c1吗?
如果对多列进行索引(组合索引),列的顺序非常重要,MySQL仅能对索引最左边的前缀进行有效的查找。例如:
假设存在组合索引it1c1c2(c1,c2),查询语句select * from t1 where c1=1 and c2=2能够使用该索引。查询语句select * from t1 where c1=1也能够使用该索引。但是,查询语句select * from t1 where c2=2不能够使用该索引,因为没有组合索引的引导列,即,要想使用c2列进行查找,必需出现c1等于某值。
https://www.cnblogs.com/weizhixiang/p/5914120.html
Java代码的编译过程
https://blog.csdn.net/wangyongxia921/article/details/28117155
https://blog.csdn.net/youngogo/article/details/81106275
JAVA中子类与父类相互转换
- 可以将子孙类强制转换成祖先类。因为祖先有的行为子孙类示例都有了(重新定义的或者是默认的)
- 当将祖先类示例强制转换成子孙类示例的时候,一些子孙类有的行为祖先是没有的(即使的是默认的实现也没有)。
//编译时错误
Parent p = new Child();
Child c = p;//此处错误
c.m();
//运行时错误
Parent p = new Child();
Child c = (Parent ) p;
c.m();
// 正确
Parent p = new Child();
Child c = (Child) p;
c.m();
public class Parent {
protected void method(){
System.out.println("parent");
}
public void m(){
this.method();
}
}
public class Child extends Parent{
protected void method(){
System.out.println("child");
}
}
北京睿呈
你如何看待面向对象
首先,万物皆对象。在现实生活中的任何物体都可以归为一类事物,而每一个个体都是一类事物的实例。面向对象的编程是以对象为中心,以消息为驱动,所以程序=对象+消息。
面向对象有三大特性,封装、继承和多态。
封装就是将一类事物的属性和行为抽象成一个类,使其属性私有化,行为公开化,提高了数据的隐秘性的同时,使代码模块化。这样做使得代码的复用性更高。
继承则是进一步将一类事物共有的属性和行为抽象成一个父类,而每一个子类是一个特殊的父类--有父类的行为和属性,也有自己特有的行为和属性。这样做扩展了已存在的代码块,进一步提高了代码的复用性。
多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。因为在程序运行时才确定具体的类,这样,不用修改源程序代码,就可以让引用变量绑定到各种不同的类实现上,从而导致该引用调用的具体方法随之改变,即不修改程序代码就可以改变程序运行时所绑定的具体代码,让程序可以选择多个运行状态,这就是多态性。
https://www.cnblogs.com/chenssy/p/3372798.html
总结一下,如果说封装和继承是面向对象的基础,那么多态则是面向对象最精髓的理论。掌握多态必先了解接口,只有充分理解接口才能更好的应用多态。
group by函数的含义,group by后面能接多个字段吗?
https://blog.csdn.net/liu_shi_jun/article/details/51329472
https://blog.csdn.net/yanyu529584640/article/details/50616053
地图SDK的调用过程
Map有几种遍历方式,如何遍历JSON数据
https://blog.csdn.net/moxiaoya1314/article/details/78629025
https://www.cnblogs.com/qingqingzou-143/p/7079725.html
使用JQuery隐藏一个DOM
https://blog.csdn.net/ryelqy/article/details/79726792
SpringMVC如何分层
https://blog.csdn.net/qq_32223565/article/details/77603078
Git如何创建一个分支,stash是什么用?
https://blog.csdn.net/gao_chun/article/details/72499890
https://blog.csdn.net/wh_19910525/article/details/7784901
项目中是否用到多线程数据同步,举例说明
https://www.cnblogs.com/jycboy/p/5620691.html
Map如何实现数据的同步
https://blog.csdn.net/xkx_1223_xkx/article/details/77865669
深圳有为
用最有效率的方法算出2乘以8
因为将一个数左移n 位,就相当于乘以了2 的n 次方,那么,一个数乘以8 只要将其左移3 位即可,而位运算cpu 直接支持的,效率最高,所以,2 乘以8 等於几的最效率的方法是2 << 3。
判断单链表中是否有环,找到环的入口节点
static int id = 1;
public Node EnteyNodeOfLoop(Node head){
Node fast = head;
Node slow = head;
while (fast!=null && fast.next != null){
fast = fast.next.next;
slow = slow.next;
if(fast == slow){
int len = 1;
fast = fast.next.next;
slow = slow.next;
while (fast != slow){
len++;
fast = fast.next.next;
slow = slow.next;
}
}
fast = head;
while (fast != slow){
fast = fast.next;
slow = slow.next;
id++;
}
return slow;
}
return null;
}
https://blog.csdn.net/y999666/article/details/51444504
https://blog.csdn.net/u010983881/article/details/78896293
servlet和CGI的区别,servlet的生命周期
https://blog.csdn.net/zdwzzu2006/article/details/5945635
武汉量投公司
说说Mybatis和Hibernate的区别
https://blog.csdn.net/W_Q_Q_/article/details/79032062
https://blog.csdn.net/firejuly/article/details/8190229
get请求和post请求有什么区别。(这个区别还蛮大的,下面的文章写的好)
https://www.cnblogs.com/logsharing/p/8448446.html
用户线程和守护线程有什么区别?
当时回答这个问题时,将其和join()方法搞混了。答的是用户线程运行完毕之后守护线程才会继续运行。(呃。。。)
我回答的是A.join(B)
https://www.cnblogs.com/aboutblank/p/3631453.html
而真正的答案是:
https://www.cnblogs.com/shangxiaofei/p/8118813.html
React中state和props分别是什么?
https://segmentfault.com/a/1190000011184076
用过分布式缓存吗?
没有,我们项目都是独立的一个服务器。
Mybatis的缓存原理知道吗?
用过Redis吗?
下面的sql语句怎么写?
SELECT N.e_date'日期',N.胜,M.负 FROM
(SELECT e_date,COUNT(*)'胜' FROM ews_grade WHERE e_result = '胜' GROUP BY e_date) N,
(SELECT e_date,COUNT(*)'负' FROM ews_grade WHERE e_result = '负' GROUP BY e_date) M
WHERE N.e_date = M.e_date
涉及到的知识点:
- group by可以和where连用
- select查询结果的拼接
https://www.cnblogs.com/jasondan/p/3490470.html
双击666
关于值传递和引用传递。
组合和继承的区别
https://blog.csdn.net/ycjnx/article/details/40952969
Java的异常处理机制
Java面试宝典 4.6.3
java异常处理中捕获多个异常时为什么习惯于将Exception的子类放在前面而父类放在后面?同时出现父类和子类异常的捕获?
https://www.jianshu.com/p/09e596e268d9
https://blog.csdn.net/hd243608836/article/details/80073180
数据库事务的四大特性
https://www.cnblogs.com/fjdingsd/p/5273008.html
浙江科澜
Lucene、Solr、优劣势
http://www.sohu.com/a/253623318_100212268
js中如何实现跨域
https://www.cnblogs.com/2050/p/3191744.html
Socket
https://www.jianshu.com/p/45201ca5caee
你知道的多线程之间的通信方案
http://www.importnew.com/26850.html