常见问题总结
【aqy、vipkid】
1.自我介绍 介绍工作,介绍项目
2.找一个最有挑战性的项目介绍一下
3.处理过最棘手的问题,自己成长最大的问题。
4.a=a+b,a+=b有什么区别?
- 在java语言中,a+=b和a=a+b的主要区别是在运算的精度上。
public class TestDemo { public static void main(String[] args) { byte a=1; a=a+4; System.out.println(a); } }
- 在两个变量的数据类型一样时:a+=b 和a=a+b 是没有区别的。但是当两个变量的数据类型不同时,就需要考虑一下数据类型自动转换的问题了。也就是涉及到精度了。
5.linux 查找替换命令
6.数据库的主从复制原理,读写分离原理,如何实现?
8.系统扩展性如何设计
9.tcp三次握手过程
10.从request中能获哪些些信息?
-
getRequestURL方法返回客户端发出请求时的完整URL。
-
getRequestURI方法返回请求行中的资源名部分。
-
getQueryString 方法返回请求行中的参数部分。
-
getPathInfo方法返回请求URL中的额外路径信息。额外路径信息是请求URL中的位于Servlet的路径之后和查询参数之前的内容,它以“/”开头。
-
getRemoteAddr方法返回发出请求的客户机的IP地址。
-
getRemoteHost方法返回发出请求的客户机的完整主机名。
-
getRemotePort方法返回客户机所使用的网络端口号。
-
getLocalAddr方法返回WEB服务器的IP地址。
-
getLocalName方法返回WEB服务器的主机名。
-
getContextPath
-
getRemoteUser
-
getSession
-
getCookies
-
getHeader(请求头信息)
-
getParameter(获取自定义参数)
11.从浏览器输入一条网址,会经历怎样的流程?
1、解析
输入域名后会对域名进行解析,查找所对应的ip地址,访问域名,实际上是访问的域名所对应的ip,查找有一个顺序,当上一步没找到,才进行下一步
(1)查找浏览器dns缓存
(2)查找计算机dns缓存
(3)查找路由器dns缓存
(4)查找isp服务商dns缓存(联通,电信等等)
(5)从根域名服务器开始递归搜索,到顶级域名服务器,到你输入域名所在服务器
2、浏览器与服务器建立tcp连接(三次握手)在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接.
- 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认; SYN:同步序列编号(Synchronize Sequence Numbers)
- 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
- 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手.
3、浏览器向服务器端发送请求
4、服务器收到请求,进行响应的处理,将生成的html返回给客户端
5、客户端收到数据,浏览器对页面进行解析渲染,展示给用户。
12.为什么离职?
13.工作两年和工作5年的区别是什么?[普通开发和解决问题的关系,头三年开发,之后就需要理解问题出现的原因,理解底层原理,解决问题]
13.自定义注解的原理,如何实现自定义注解?
14.spring里边常见的注解及作用?
- @autowire 自动装配 (按类型进行装配)
- @resource 自动装配 (默认按照名称进行装配)
- @controller 标注改组件数据控制层
- @Service 如果一个类带了@Service注解,将自动注册到Spring容器,不需要再在applicationContext.xml文件定义bean了
- @Component 把普通pojo实例化到spring容器中,相当于配置文件中的 <bean id="" class=""/>泛指各种组件,就是说当我们的类不属于各种归类的时候(不属于@Controller、@Services等的时候),我们就可以使用@Component来标注这个类
- @Override 方法重写
- @Repository 用于标注数据访问组件,即DAO组件
- @ComponentScan注解 告诉Spring 哪个packages 的用注解标识的类 会被spring自动扫描并且装入bean容器
- @RequestMapping 是一个用来处理请求地址映射的注解,可用于类或方法上
- @responseBody 将方法返回的对象,转换诚json或者xml格式,放到body中进行返回
- @Bean 标识一个用于配置和初始化一个由SpringIoc容器管理的新对象的方法,类似于XML配置文件的<bean/>,一般与@Configration注解配合使用
- @Configuration 用于定义配置类,可替换xml配置文件
15.@autowire和@resource注解的区别?
-
@Autowire是Spring开发的,而@Resource是jdk开发的
- @Autowire是按照type来装配的,而@Resource是按照名称来装配的,如果名称找不到,那么就按照type。
16.synchronized锁的原理是什么?
synchronized可以保证方法或者代码块在运行时,同一时刻只有一个方法可以进入到临界区,同时它还可以保证共享变量的内存可见性
[http://www.importnew.com/23511.html]
16.为什么会产生浏览器跨域?如何解决?[使用注解解决,原理是什么]
【https://blog.csdn.net/u014752073/article/details/79388051】
17.cas和aba问题?
【https://www.cnblogs.com/exceptioneye/p/5373498.html】
18.单向链表和双向链表的区别
[https://blog.csdn.net/kangxidagege/article/details/80211225]
19.红黑树原理?B+Tree的原理?
【58】
- 有序数组的2分查找
- https调用时对参数是加密的么
- 创新索引的经验
- 画了下系统的架构图
- mysql的隔离级别,你们用的什么级别
- spring的事务传播
- 为什么项目要用redis
- redis成为瓶颈时怎么办