黑马程序员技术交流社区

标题: 陕西晟茂华科广告文化传播有限公司面试总结 [打印本页]

作者: 就业高冷派    时间: 2019-3-20 18:52
标题: 陕西晟茂华科广告文化传播有限公司面试总结
公司名称:陕西晟茂华科广告文化传播有限公司
公司地址:陕西省西安市高新区丈八街办唐延路1号旺座国际城第1幢3单元C1902号房
公司规模:100-150
面试整体事项
.基础知识:
1)集合类:ListSet比较,各自的子类比较(ArrayListVectorLinkedListHashSetTreeSet);
2HashMap的底层实现,之后会问ConcurrentHashMap的底层实现;
3)如何实现HashMap顺序存储:可以参考LinkedHashMap的底层实现;
4HashTableConcurrentHashMap的区别;
相同点: Hashtable ConcurrentHashMap都是线程安全的,可以在多线程环境中运行; keyvalue都不能是null
区别: 两者主要是性能上的差异,Hashtable的所有操作都会锁住整个对象,虽然能够保证线程安全,但是性能较差; ConcurrentHashMap内部使用Segment数组,每个Segment类似于Hashtable,在“写”线程或者部分特殊的“读”线程中锁住的是某个Segment对象,其它的线程能够并发执行其它的Segment对象。
5String,StringBufferStringBuilder的区别;
1、在执行速度上:Stringbuilder->Stringbuffer->String
2String是字符串常量
      Stringbuffer是字符串变量线程安全
      Stringbuilder是字符串变量线程不安全
6Object的方法有哪些:比如有wait方法,为什么会有;
简单说:因为synchronized中的这把锁可以是任意对象,所以任意对象都可以调用wait()notify();所以waitnotify属于Object
专业说:因为这些方法在操作同步线程时,都必须要标识它们操作线程的锁,只有同一个锁上的被等待线程,可以被同一个锁上的notify唤醒,不可以对不同锁中的线程进行唤醒。
7waitsleep的区别,必须理解;
sleep()方法导致了程序暂停执行指定的时间,但是他的监控状态依然保持者,当指定的时间到了又会自动恢复运行状态。在调用sleep()方法的过程中,线程不会释放对象锁。而且sleep()只能自己到点了醒来,不能被唤醒。
wait()方法的时候,线程会放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象调用notify()方法后本线程才进入对象锁定池,准备获取对象锁进入运行状态。
8JVM的内存结构,JVM的算法;
JVM内存结构主要有三大块:堆内存、方法区和栈。堆内存是JVM中最大的一块由年轻代和老年代组成,而年轻代内存又被分成三部分,Eden空间、From Survivor空间、To Survivor空间,默认情况下年轻代按照8:1:1的比例来分配;
方法区存储类信息、常量、静态变量等数据,是线程共享的区域,为与Java堆区分,方法区还有一个别名Non-Heap(非堆);栈又分为java虚拟机栈和本地方法栈主要用于方法的执行。
9)强引用,软引用和弱引用的区别;
10)数组在内存中如何分配;
Java中的数组是用来存储同一种数据类型的数据结构,一旦初始化完成,即所占的空间就已固定下来,初始化的过程就是分配对应内存空间的过程。即使某个元素被清空,但其所在空间仍然保留,因此数组长度将不能被改变。
11)用过哪些设计模式,手写一个(除单例);
12springmvc的核心是什么,请求的流程是怎么处理的,控制反转怎么实现的;
1 首先用户发送请求到前端控制器DispatcherServlet,也是springmvc的核心控制器,前端控制器收到请求后自己不进行处理,而是委托给其他的解析器进行处理,作为统一访问点,进行全局的流程控制;
     2 DispatcherServlet调用HandlerMappingHandlerMapping将会把请求映射为HandlerExecutionChain对象(包含一个Handler处理器对象,也就是Controller层,多个 HandlerInterceptor拦截器)返回给DispatcherServlet
     3 DispatcherServlet根据得到的Handler,调用合适的HandlerAdapterHandlerAdapter将会把处理器       Handler 包装为适配器,从而支持多种类型的处理器,即适配器设计模式的应用,从而很容易支持很多类型的处        理器。
     4 HandlerAdapter会根据适配的结果调用真正的处理器(Handler)完成请求处理,并向DispatcherServlet返回一个           ModelAndView对象。
     5 根据返回的ModelAndView选择一个适合的ViewResolver(视图解析器)返回给DispatcherServlet
     6 ViewResolver根据view model 渲染视图
     7 将渲染结果返回给客户端。
IOC控制反转的实现是基于springbean工厂,当你需要引用一个对象时,将本来应该由你控制的实例化对象的操作
交给配置好的xml来进行,然后再给你注入进去,从而降低代码间的耦合度
13spring里面的aop的原理是什么;
AOP的主要原理:动态代理
1.静态代理:
l 针对每个具体类分别编写代理类;
l 针对一个接口编写一个代理类;
2.动态代理:
针对一个方面编写一个InvocationHandler,然后借用JDK反射包中的Proxy类为各种接口动态生成相应的代理类
14mybatis如何处理结果集:反射,建议看看源码;
到此,Mybatis是怎么利用ResultSet生成对象的过程已经分析完毕。分为简单映射和复杂映射。
简单映射就是不包含内映射的resultMap
复杂映射就是包含内映射的resultMap
复杂映射的过程比较复杂,源代码也没有一行注释,本人是写了个实例,再通过eclipse中的debuger一步步来分析的。
15java的多态表现在哪里;
父类引用指向子类对象
16)接口有什么用;
一是实现多重继承,因为java是单根语言。
二是便于实现各种框架,java 的各种框架中,都是拿接口调来调去。一旦你实现了这个接口,你的代码就嵌入了框架。
三是为了实现前面各位说的规范。
17)说说http,https协议;
https协议需要到ca申请证书,一般免费证书很少,需要交费。
http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。
httphttps使用的是完全不同的连接方式用的端口也不一样,前者是80,后者是443
http的连接很简单,是无状态的。
HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议 要比http协议安全。
18tcp/ip协议簇;
TCP/IP由四个层次组成:1、网络接口层:这是TCP/IP软件的最低层,负责接收IP数据报并通过网络发送之,或者从网络上接收物理帧,抽出IP数据报,交给IP层。 2、网间网层:负责相邻计算机之间的通信。其功能包括三方面。1是处理来自传输层的分组发送请求,收到请求后,将分组装入IP数据报,填充报头,选择去往信宿机的路径,然后将数据报发往适当的网络接口。2是处理输入数据报:首先检查其合法性,然后进行寻径--假如该数据报已到达信宿机,则去掉报头,将剩下部分交给适当的传输协议;假如该数据报尚未到达信宿,则转发该数据报。3是处理路径、流控、拥塞等问题。 3、传输层:提供应用程序间的通信。其功能包括:格式化信息流;提供可靠传输。为实现后者,传输层协议规定接收端必须发回确认,并且假如分组丢失,必须重新发送。 4、应用层:向用户提供一组常用的应用程序,比如电子邮件、文件传输访问、远程登录等。
19osi五层网络协议;
应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTPHTTPSNMPFTPSMTPDNSTelnet
表示层 数据格式化,代码转换,数据加密 没有协议
会话层 解除或建立与别的接点的联系 没有协议
传输层 提供端对端的接口 TCPUDP
网络层 为数据包选择路由 IPICMPRIPOSPFBGPIGMP
数据链路层 传输有地址的帧以及错误检测功能 SLIPCSLIPPPPARPRARPMTU
物理层 以二进制数据形式在物理媒体上传输数据 ISO2110IEEE802IEEE802.2
20tcpudp区别;
1、基于连接与无连接。
2TCP要求系统资源较多,UDP较少。
3UDP程序结构较简单。
4、流模式(TCP)与数据报模式(UDP)
5TCP保证数据正确性,UDP可能丢包。
6TCP保证数据顺序,UDP不保证。
7TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接。
8TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付。
21)用过哪些加密算法:对称加密,非对称加密算法;
22)说说tcp三次握手,四次挥手;
23cookiesession的区别,分布式环境怎么保存用户状态;
1session保存在服务器,客户端不知道其中的信息;cookie保存在客户端,服务器能够知道其中的信息。   
   
  2session中保存的是对象,cookie中保存的是字符串。   
   
  3session不能区分路径,同一个用户在访问一个网站期间,所有的session在任何一个地方都可以访问到。而cookie中如果设置了路径参数,那么同一个网站中不同路径下的cookie互相是访问不到的。
24gitsvn区别;
1. Git是分布式的,SVN是集中式的,好处是跟其他同事不会有太多的冲突,自己写的代码放在自己电脑上,一段时间后再提交、合并,也可以不用联网在本地提交;
25)请写一段栈溢出、堆溢出的代码;
public class Test {  
  
    public void testHeap(){  
        for(;;){  
              ArrayList list = new ArrayList (2000);  
          }  
    }  
    int num=1;  
    public void testStack(){  
        num++;  
        this.testStack();  
     }  
      
    public static void main(String[] args){  
        Test  t  = new Test ();  
        t.testHeap();  
        t.testStack();     
    }  
}  
26ThreadLocal可以用来共享数据吗;
.IO:
1bionioaio的区别;
2nio框架:dubbo的实现原理;
3)京东内部的jsf是使用的什么协议通讯:可参见dubbo的协议;
.算法:
1java中常说的堆和栈,分别是什么数据结构;另外,为什么要分为堆和栈来存储数据。
2TreeMap如何插入数据:二叉树的左旋,右旋,双旋;
3)一个排序之后的数组,插入数据,可以使用什么方法?答:二分法;问:时间复杂度是多少?
4)平衡二叉树的时间复杂度;
5Hash算法和二叉树算法分别什么时候用;
6)图的广度优先算法和深度优先算法:详见jvm中垃圾回收实现;
.多线程相关:
1)说说阻塞队列的实现:可以参考ArrayBlockingQueue的底层实现(锁和同步都行);
2)进程通讯的方式:消息队列,共享内存,信号量,socket通讯等;
3)用过并发包的哪些类;
4)什么地方用了多线程;
5Excutors可以产生哪些线程池;
6)为什么要用线程池;
7volatile关键字的用法:使多线程中的变量可见;
.数据库相关(mysql):
1msyql优化经验:
2mysql的语句优化,使用什么工具;
3mysql的索引分类:B+hash;什么情况用什么索引;
4mysql的存储引擎有哪些,区别是什么;
5)说说事务的特性和隔离级别;
6)悲观锁和乐观锁的区别,怎么实现;
.mq
1mq的原理是什么:有点大。。都可以说;
2mq如何保证实时性;
3mq的持久化是怎么做的;
.nosql相关(主要是redis:
1redismemcache的区别;
2)用redis做过什么;
3redis是如何持久化的:rdbaof
4redis集群如何同步;
5redis的数据添加过程是怎样的:哈希槽;
6redis的淘汰策略有哪些;
7redis有哪些数据结构;
.zookeeper:
1zookeeper是什么;
2zookeeper哪里用到;
3zookeeper的选主过程;
4zookeeper集群之间如何通讯;
5)你们的zookeeper的节点加密是用的什么方式;
6)分布式锁的实现过程;
.linux相关:
1linux常用的命令有哪些;
2)如何获取java进程的pid
3)如何获取某个进程的网络端口号;
4)如何实时打印日志;
5)如何统计某个字符串行数;
.设计与思想:
1)重构过代码没有?说说经验;
2)一千万的用户实时排名如何实现;
3)五万人并发抢票怎么实现;

微信图片_20190222140007.jpg (91.27 KB, 下载次数: 7)

微信图片_20190222140007.jpg

作者: 李娟玲老师    时间: 2019-4-8 17:22
加油!厉害厉害!
作者: 温柔一刀!喵!    时间: 2019-4-8 17:24

作者: zhuyanting    时间: 2019-4-8 17:28
乐于分享的人最可爱呦。。。。
作者: 多喝点热水~    时间: 2019-4-8 17:46
                                       
作者: 殷凯老师    时间: 2019-4-8 18:35
6666666666666666
作者: manyihang    时间: 2019-4-8 19:37
分享的不错!!!
作者: fujiangbo    时间: 2019-4-8 21:42
不错不错加油.............
作者: 耙丫丫    时间: 2019-4-8 21:47
6666666666666666666666666666
作者: 黑马程序员啊    时间: 2019-4-8 22:24
谢谢楼主,辛苦了...........
作者: zplxwl    时间: 2019-4-8 22:39
八千里路的云与月,全部在阅读中走进了我心灵的深处
作者: little_superman    时间: 2019-4-8 22:50

66666666666666666
作者: 谢先森    时间: 2019-4-8 23:20
6666666666666666666666
作者: 小公举    时间: 2019-4-9 09:34
问的问题,看来我需要多多学习好好的复习,同志们一起加油啊
作者: ouweina    时间: 2019-4-9 09:45
666666666666666666666666666666666
作者: 小黑马王子abc    时间: 2019-4-9 10:07
66666666666666
作者: hello!!!    时间: 2019-4-9 10:39
感谢分享
作者: zhanghua342    时间: 2019-4-9 10:41
66666666666
作者: 逆风TO    时间: 2019-4-9 11:07

加油,大家都是最棒哒!
作者: yy1134787753    时间: 2019-4-9 11:16
感谢分享
作者: 逆风TO    时间: 2019-4-9 11:16

加油,大家都是最棒哒!
作者: daoqin    时间: 2019-4-9 11:22

加油,大家都是最棒哒!
作者: 疯子小花花    时间: 2019-4-9 11:28

作者: 专找bug    时间: 2019-4-9 11:33

辛苦分享~
作者: hongping    时间: 2019-4-9 13:49

不错不错加油.............
作者: 淡写薰衣草的香    时间: 2019-4-9 14:13

作者: 1467584    时间: 2019-4-9 14:13

作者: kdhdjdj    时间: 2019-4-9 14:14
66666666666666666666666666666666666
作者: 张莫名    时间: 2019-4-9 14:28
66666666666666666666666666
作者: 从容微笑    时间: 2019-4-9 14:32

作者: 曹阳茜    时间: 2019-4-9 15:06
啦啦啦啦啦啦啦啦,厉害,牛逼

作者: yujq    时间: 2019-4-9 18:26
谢谢楼主,辛苦了...........
作者: json0314    时间: 2019-4-9 18:30
谢谢楼主,辛苦了...........
作者: so//sweet    时间: 2019-4-9 18:31
66666666666666666666666
作者: JavaEE风清扬    时间: 2019-4-9 18:37
666666666666666666666
作者: jsnoob    时间: 2019-4-9 21:10
点赞点赞点赞点赞!!!
作者: #风萧萧#    时间: 2019-4-9 21:11
谢谢楼主,辛苦了...........
作者: 零度☆黎明    时间: 2019-4-10 00:41
6666666666666666666666666666666
作者: superbaby    时间: 2019-4-10 06:53
6666666666666666666666666
作者: duanshaobo    时间: 2019-4-10 22:31
桃叶那尖上尖,柳叶儿遮满了天
作者: xiaoheizi    时间: 2019-4-11 11:30
66666666666666666666666666666666
作者: 竹竹竹竹    时间: 2019-4-11 14:30
感谢分享
作者: 二郎显圣真君    时间: 2019-4-11 15:55
666666666666666
作者: 致橡树    时间: 2019-4-11 16:24
6696999999999
作者: ruoquan    时间: 2019-4-11 16:28
66666666
作者: py@py    时间: 2019-4-11 16:54
学习到很多
作者: zhaosongzhi    时间: 2019-4-11 17:23
学习到很多
作者: hello!!!    时间: 2019-4-11 17:42
学习到很多
作者: 大智叔叔    时间: 2019-4-11 18:25
感谢感谢,收藏了
作者: 同心筑梦1    时间: 2019-4-12 09:14
66666666666666666666666666666666666666666666666666666666666666
作者: 独上兰舟    时间: 2019-4-12 09:45
感谢分享66666666666666666666
作者: 梅优良    时间: 2019-4-12 10:25
6666666666666
作者: 哦嗨呦    时间: 2019-4-12 10:39
顶!!!!!!!!!
作者: 大安    时间: 2019-4-12 10:51

乐于分享的人最可爱呦。。。。
作者: 小西西哦    时间: 2019-4-12 11:06
66666666666666666666666666666666666666
作者: 鲁小妮87128    时间: 2019-4-12 11:54
感谢分享
作者: yangyifen    时间: 2019-4-12 12:11
666666666666666666666666666666666
作者: 茶包哥    时间: 2019-4-12 13:27
学习到很多
作者: 你不爱我    时间: 2019-4-12 13:39
厉害                                      
作者: 你不爱我    时间: 2019-4-12 13:39
感谢                                 
作者: 小伙啊    时间: 2019-4-12 13:48
666666666666666666666
作者: 举个栗子    时间: 2019-4-12 14:02
666666666666666666666
作者: dendi    时间: 2019-4-12 14:25
不错不错!!!谢谢分享。。。。。
作者: 章鱼顶呱呱    时间: 2019-4-12 15:25
感谢分享............................................
作者: 就业高冷派    时间: 2019-4-12 16:14
11111111111111111111111111111111
作者: 致橡树    时间: 2019-4-12 16:31
1111111111111111111111111111
作者: 致橡树    时间: 2019-4-12 16:47
2222222222222222222222222222
作者: 致橡树    时间: 2019-4-12 16:49
2222222222222222222222222222
作者: 致橡树    时间: 2019-4-12 16:49
33333333333333333333333
作者: 致橡树    时间: 2019-4-12 16:52
33333333333333333333333
作者: 致橡树    时间: 2019-4-12 17:04
33333333333333333333333
作者: 致橡树    时间: 2019-4-12 17:08
555555555555555555555555
作者: 就业高冷派    时间: 2019-4-15 15:03
李娟玲老师 发表于 2019-4-8 17:22
加油!厉害厉害!

感谢支持,加油~
作者: 就业高冷派    时间: 2019-4-15 15:03
温柔一刀!喵! 发表于 2019-4-8 17:24

感谢支持,加油~
作者: 就业高冷派    时间: 2019-4-15 15:03
zhuyanting 发表于 2019-4-8 17:28
乐于分享的人最可爱呦。。。。

感谢支持,加油~
作者: 就业高冷派    时间: 2019-4-15 15:03
多喝点热水~ 发表于 2019-4-8 17:46

感谢支持,加油~
作者: 就业高冷派    时间: 2019-4-15 15:03
殷凯老师 发表于 2019-4-8 18:35
6666666666666666

感谢支持,加油~
作者: 就业高冷派    时间: 2019-4-15 15:03
manyihang 发表于 2019-4-8 19:37
分享的不错!!!

感谢支持,加油~
作者: 就业高冷派    时间: 2019-4-15 15:03
fujiangbo 发表于 2019-4-8 21:42
不错不错加油.............

感谢支持,加油~
作者: 就业高冷派    时间: 2019-4-15 15:03
耙丫丫 发表于 2019-4-8 21:47
6666666666666666666666666666

感谢支持,加油~
作者: 就业高冷派    时间: 2019-4-15 15:03
黑马程序员啊 发表于 2019-4-8 22:24
谢谢楼主,辛苦了...........

感谢支持,加油~
作者: 就业高冷派    时间: 2019-4-15 15:03
zplxwl 发表于 2019-4-8 22:39
八千里路的云与月,全部在阅读中走进了我心灵的深处

感谢支持,加油~
作者: 就业高冷派    时间: 2019-4-15 15:04
little_superman 发表于 2019-4-8 22:50
66666666666666666

感谢支持,加油~
作者: 就业高冷派    时间: 2019-4-15 15:06
谢先森 发表于 2019-4-8 23:20
6666666666666666666666

感谢支持,加油~
作者: 就业高冷派    时间: 2019-4-15 15:06
小公举 发表于 2019-4-9 09:34
问的问题,看来我需要多多学习好好的复习,同志们一起加油啊

感谢支持,加油~
作者: 就业高冷派    时间: 2019-4-15 15:06
ouweina 发表于 2019-4-9 09:45
666666666666666666666666666666666

感谢支持,加油~
作者: 就业高冷派    时间: 2019-4-15 15:06
小黑马王子abc 发表于 2019-4-9 10:07
66666666666666

感谢支持,加油~
作者: 就业高冷派    时间: 2019-4-15 15:06
hello!!! 发表于 2019-4-9 10:39
感谢分享

感谢支持,加油~
作者: 就业高冷派    时间: 2019-4-15 15:06
zhanghua342 发表于 2019-4-9 10:41
66666666666

感谢支持,加油~
作者: 就业高冷派    时间: 2019-4-15 15:06
逆风TO 发表于 2019-4-9 11:07
加油,大家都是最棒哒!

感谢支持,加油~
作者: 就业高冷派    时间: 2019-4-15 15:07
yy1134787753 发表于 2019-4-9 11:16
感谢分享

感谢支持,加油~
作者: 就业高冷派    时间: 2019-4-15 15:08
daoqin 发表于 2019-4-9 11:22
加油,大家都是最棒哒!

谢谢支持
加油~
作者: 就业高冷派    时间: 2019-4-15 15:08
daoqin 发表于 2019-4-9 11:22
加油,大家都是最棒哒!

谢谢支持
加油~
作者: 就业高冷派    时间: 2019-4-15 15:08
疯子小花花 发表于 2019-4-9 11:28

谢谢支持
加油~
作者: 就业高冷派    时间: 2019-4-15 15:08
专找bug 发表于 2019-4-9 11:33
辛苦分享~

谢谢支持
加油~
作者: 就业高冷派    时间: 2019-4-15 15:08
hongping 发表于 2019-4-9 13:49
不错不错加油.............

谢谢支持
加油~
作者: 就业高冷派    时间: 2019-4-15 15:08
淡写薰衣草的香 发表于 2019-4-9 14:13

谢谢支持
加油~
作者: 就业高冷派    时间: 2019-4-15 15:09
1467584 发表于 2019-4-9 14:13

谢谢支持
加油~
作者: 就业高冷派    时间: 2019-4-15 15:09
kdhdjdj 发表于 2019-4-9 14:14
66666666666666666666666666666666666

谢谢支持
加油~
作者: 就业高冷派    时间: 2019-4-15 15:09
张莫名 发表于 2019-4-9 14:28
66666666666666666666666666

谢谢支持
加油~




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2