美文网首页
面试问题--持续更新

面试问题--持续更新

作者: 艾剪疏 | 来源:发表于2018-09-04 11:17 被阅读28次

    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常用的优化策略:

    1. 写出统一SQL语句:大小写不同,查询分析器就认为是两句不同的SQL语句,必须进行两次解析。
    2. 不要把SQL语句写得太长,太过冗余。
    3. 考虑使用“临时表”暂存中间结果。将临时结果暂存在临时表,后面的查询就在tempdb中了,这可以避免程序中多次扫描主表,也大大减少了程序执行中“共享锁”阻塞“更新锁”,减少了阻塞,提高了并发性能。
    4. 一次解析,多次重用,是提高数据库效率的原则。
    5. 聚集索引没有建在表的顺序字段上,该表容易发生页分裂。
    6. 合理使用like模糊查询。关键词 %yue%,由于yue前面用到了“%”,因此该查询必然走全表扫描,除非必要,否则不要在关键词前加%。
    7. 用PreparedStatement代替Statement。一般来说比用Statement性能高。
    8. 有外键约束会影响插入和删除性能,如果程序能够保证数据完整性,在设计数据库时就去掉外键。
    9. 表中允许适当冗余。
    10. sql语句全部大写,特别是列名和表名全部大写。特别是sql命令的缓存功能,更加需要统一大小写。例如Oracle数据库会将所有的SQL语句解析上大写字母在进行执行。
    11. 索引对查询性能的改进。
    12. https://blog.csdn.net/qq_25235807/article/details/71189110
    13. 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]

    根据左边的数组,输出右边的统计结果。

    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语句怎么写?
    image.png
    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
    

    涉及到的知识点:

    双击666

    关于值传递和引用传递。

    JAVA中值传递和引用传递的三种情况

    组合和继承的区别

    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

    设置session超时(失效)的时间

    https://www.cnblogs.com/diewufeixian/p/4221747.html

    相关文章

      网友评论

          本文标题:面试问题--持续更新

          本文链接:https://www.haomeiwen.com/subject/dbkgwftx.html