本帖最后由 就业高冷派 于 2019-2-22 14:28 编辑
公司名称:卡漠网络科技股份有限公司
公司地址:西安国际港务区港务大道9号新丝路产业园C座8层05室
公司规模:100-150人
面试整体事项
1)、String类都有那些常用的方法。
length(); split(); replace();
equals(); subString(); charAt();
concat(); 大小写转换; indexOf();
trim(); isEmpty(); contains();
startWith()
补充:Object类方法
clone、 equals finalize getClass
hashCode notify notifyAll toString
wait
补充:异常分类
算数异常 类型转换异常 非法参数异常
下标越界异常 空指针异常 安全性检查异常
2)、StringBuilder和StringBuffer区别
根本区别就是StringBuilder是线程不安全的,而StringBuffer是线程安全的。
速度,StringBuilder > StringBuffer > String
String是不可变的,其他两个是可变的
按照性能排序 String(大姐,jdk1.0) < StringBuffer(二姐,jdk1.0) <StringBuilder(小妹,jdk1.5).
StringBuffer很多方法都被synchronized修饰了,而StringBuilder没有,所以StringBuilder速度比StringBuffer快。建议用StringBuilder。
JVM运行程序主要时间都是浪费在创建对象和回收对象上。
eg:String s = “this is”+“only”“simple test”;等同于 String s = “this is only simple test”。
3)、Map和List的遍历区别
List:增强的for循环(最差)、for(int i=0;i<list.length;i++) 、Interator
List:对越arrayList、Vector遍历应该采用随机访问get
LinkedList:采用迭代器
关于Map<K,V>能不能存储null情况
4)springmvc的核心是什么,请求的流程是怎么处理的,控制反转怎么实现的;
1 首先用户发送请求到前端控制器DispatcherServlet,也是springmvc的核心控制器,前端控制器收到请求后自己不进行处理,而是委托给其他的解析器进行处理,作为统一访问点,进行全局的流程控制;
2 DispatcherServlet调用HandlerMapping,HandlerMapping将会把请求映射为HandlerExecutionChain对象(包含一个Handler处理器对象,也就是Controller层,多个 HandlerInterceptor拦截器)返回给DispatcherServlet;
3 DispatcherServlet根据得到的Handler,调用合适的HandlerAdapter,HandlerAdapter将会把处理器 (Handler) 包装为适配器,从而支持多种类型的处理器,即适配器设计模式的应用,从而很容易支持很多类型的处 理器。
4 HandlerAdapter会根据适配的结果调用真正的处理器(Handler)完成请求处理,并向DispatcherServlet返回一个 ModelAndView对象。
5 根据返回的ModelAndView选择一个适合的ViewResolver(视图解析器)返回给DispatcherServlet
6 ViewResolver根据view 和 model 渲染视图
7 将渲染结果返回给客户端。
IOC控制反转的实现是基于spring的bean工厂,当你需要引用一个对象时,将本来应该由你控制的实例化对象的操作
交给配置好的xml来进行,然后再给你注入进去,从而降低代码间的耦合度
5)spring里面的aop的原理是什么;
AOP的主要原理:动态代理
1.静态代理:
针对每个具体类分别编写代理类;
针对一个接口编写一个代理类;
2.动态代理:
针对一个方面编写一个InvocationHandler,然后借用JDK反射包中的Proxy类为各种接口动态生成相应的代理类
6)mybatis如何处理结果集:反射,建议看看源码;
到此,Mybatis是怎么利用ResultSet生成对象的过程已经分析完毕。分为简单映射和复杂映射。
简单映射就是不包含内映射的resultMap
复杂映射就是包含内映射的resultMap。
复杂映射的过程比较复杂,源代码也没有一行注释,本人是写了个实例,再通过eclipse中的debuger一步步来分析的。
7)java的多态表现在哪里;
父类引用指向子类对象
8)接口有什么用;
一是实现多重继承,因为java是单根语言。
二是便于实现各种框架,java 的各种框架中,都是拿接口调来调去。一旦你实现了这个接口,你的代码就嵌入了框架。
三是为了实现前面各位说的规范。
9)说说http,https协议;
https协议需要到ca申请证书,一般免费证书很少,需要交费。
http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。
http和https使用的是完全不同的连接方式用的端口也不一样,前者是80,后者是443。
http的连接很简单,是无状态的。
HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议 要比http协议安全。
10)tcp/ip协议簇;
TCP/IP由四个层次组成:1、网络接口层:这是TCP/IP软件的最低层,负责接收IP数据报并通过网络发送之,或者从网络上接收物理帧,抽出IP数据报,交给IP层。 2、网间网层:负责相邻计算机之间的通信。其功能包括三方面。1是处理来自传输层的分组发送请求,收到请求后,将分组装入IP数据报,填充报头,选择去往信宿机的路径,然后将数据报发往适当的网络接口。2是处理输入数据报:首先检查其合法性,然后进行寻径--假如该数据报已到达信宿机,则去掉报头,将剩下部分交给适当的传输协议;假如该数据报尚未到达信宿,则转发该数据报。3是处理路径、流控、拥塞等问题。 3、传输层:提供应用程序间的通信。其功能包括:格式化信息流;提供可靠传输。为实现后者,传输层协议规定接收端必须发回确认,并且假如分组丢失,必须重新发送。 4、应用层:向用户提供一组常用的应用程序,比如电子邮件、文件传输访问、远程登录等。
11)osi五层网络协议;
应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet
表示层 数据格式化,代码转换,数据加密 没有协议
会话层 解除或建立与别的接点的联系 没有协议
传输层 提供端对端的接口 TCP,UDP
网络层 为数据包选择路由 IP,ICMP,RIP,OSPF,BGP,IGMP
数据链路层 传输有地址的帧以及错误检测功能 SLIP,CSLIP,PPP,ARP,RARP,MTU
物理层 以二进制数据形式在物理媒体上传输数据 ISO2110,IEEE802,IEEE802.2
12)tcp,udp区别;
1、基于连接与无连接。
2、TCP要求系统资源较多,UDP较少。
3、UDP程序结构较简单。
4、流模式(TCP)与数据报模式(UDP)。
5、TCP保证数据正确性,UDP可能丢包。
6、TCP保证数据顺序,UDP不保证。
7、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接。
8、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付。
13)用过哪些加密算法:对称加密,非对称加密算法;
14)说说tcp三次握手,四次挥手;
15)cookie和session的区别,分布式环境怎么保存用户状态;
1、session保存在服务器,客户端不知道其中的信息;cookie保存在客户端,服务器能够知道其中的信息。
2、session中保存的是对象,cookie中保存的是字符串。
3、session不能区分路径,同一个用户在访问一个网站期间,所有的session在任何一个地方都可以访问到。而cookie中如果设置了路径参数,那么同一个网站中不同路径下的cookie互相是访问不到的。
16)git,svn区别;
1. Git是分布式的,SVN是集中式的,好处是跟其他同事不会有太多的冲突,自己写的代码放在自己电脑上,一段时间后再提交、合并,也可以不用联网在本地提交;
|
-
-
|