常见问题总结

【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】

  1. 有序数组的2分查找
  2. https调用时对参数是加密的么
  3. 创新索引的经验
  4. 画了下系统的架构图
  5. mysql的隔离级别,你们用的什么级别
  6. spring的事务传播
  7. 为什么项目要用redis
  8. redis成为瓶颈时怎么办
posted @ 2019-03-29 17:05  二叉树的博客  阅读(131)  评论(0)    收藏  举报