面试遇到的问题
jiangjunlanzhoulan
这个作者很懒,什么都没留下…
展开
-
从输入URL到浏览器显示页面发生了什么
当在浏览器地址栏输入网址,如:www.baidu.com后浏览器是怎么把最终的页面呈现出来的呢?这个过程可以大致分为两个部分:网络通信和页面渲染。一、网络通信 互联网内各网络设备间的通信都遵循TCP/IP协议,利用TCP/IP协议族进行网络通信时,会通过分层顺序与对方进行通信。分层由高到低分别为:应用层、传输层、网络层、数据链路层。发送端从应用层往下走,接收端从数据链路层网上走。如图...原创 2018-07-28 15:16:39 · 1374 阅读 · 0 评论 -
Spring bean生命周期
Spring中Bean的管理是其最基本的功能,根据下面的图来了解Spring中Bean的生命周期:(1)BeanFactoryPostProcessor的postProcessorBeanFactory()方法:若某个IoC容器内添加了实现了BeanFactoryPostProcessor接口的实现类Bean,那么在该容器中实例化任何其他Bean之前可以回调该Bean中的postPrces...原创 2018-07-28 11:49:05 · 113 阅读 · 0 评论 -
Spring之AOP由浅入深
1.AOP的作用 在OOP中,正是这种分散在各处且与对象核心功能无关的代码(横切代码)的存在,使得模块复用难度增加。AOP则将封装好的对象剖开,找出其中对多个对象产生影响的公共行为,并将其封装为一个可重用的模块,这个模块被命名为“切面”(Aspect),切面将那些与业务无关,却被业务模块共同调用的逻辑提取并封装起来,减少了系统中的重复代码,降低了模块间的耦合度,同时提高了系统的可维护...原创 2018-07-28 10:42:31 · 84 阅读 · 0 评论 -
Spring IOC
IOC(DI):java程序中的每个业务逻辑至少需要两个或以上的对象来协作完成。通常,每个对象在使用他的合作对象时,自己均要使用像new object() 这样的语法来完成合作对象的申请工作。你会发现:对象间的耦合度高了。而IOC的思想是:Spring容器来实现这些相互依赖对象的创建、协调工作。对象只需要关系业务逻辑本身就可以了。从这方面来说,对象如何得到他的协作对象的责任被反转了(IOC、D...转载 2018-07-27 17:37:21 · 83 阅读 · 0 评论 -
HashMap中是如何形成环形链表的
导读:经过前面的博客总结,可以知道的是,HashMap是有一个一维数组和一个链表组成,从而得知,在解决冲突问题时,hashmap选择的是链地址法。为什么HashMap会用一个数组这链表组成,当时给出的答案是从那几种解决冲突的算法中推论的,这里给出一个正面的理由:1,为什么用了一维数组:数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:...原创 2018-07-27 16:46:11 · 7894 阅读 · 14 评论 -
谈谈数据库的ACID
https://blog.csdn.net/shuaihj/article/details/14163713 谈谈数据库的ACID一.事务 定义:所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。准备工作:为了说明事务的ACID原理,我们使用银行账户及资金管理的案例进行分析。二.ACID...原创 2018-07-27 14:57:04 · 172 阅读 · 0 评论 -
Java并发编程:线程池的使用
Java并发编程:线程池的使用 在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会...原创 2018-07-27 12:52:46 · 109 阅读 · 0 评论 -
cookie 和session 的区别:
1、cookie数据存放在客户的浏览器上,session数据放在服务器上。2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗 考虑到安全应当使用session。3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能 考虑到减轻服务器性能方面,应当使用COOKIE。4、单个cookie保存的数据不能超过4K,很...原创 2018-07-30 10:45:36 · 89 阅读 · 0 评论 -
MySQL B+树索引和Hash索引的区别
B+树是一个平衡的多叉树。B+树从根节点到叶子节点的搜索效率基本相当,不会出现大幅波动。哈希索引采用一定的哈希算法,把键值换成新的哈希值,检索时不需要类似B+树那样从根节点逐级查找,只需一次哈希算法即可立刻定位到相应的位置。两者的区别:哈希索引的优势:(1)等值查询。哈希索引具有绝对优势(前提是:没有大量重复键值,如果大量重复键值时,哈希索引的效率很低,因为存在所谓的哈希碰撞问题。...原创 2018-07-29 21:53:54 · 274 阅读 · 0 评论 -
抽象类接口区别和相同点
接口和抽象类都不能实例化 抽象类可以有构造方法,接口中不能有构造方法。 抽象类中可以有普通成员变量,接口中没有普通成员变量 抽象类中可以包含非抽象的普通方法 抽象类中的抽象方法的访问类型可以是public,protected,但接口中的抽象方法只能是public类型的,并且默认即为public abstract类型。 抽象类中可以包含静态方法,接口中不能包含静态方法 抽象类和接口中都可...原创 2018-07-29 21:12:48 · 299 阅读 · 0 评论 -
什么对象可以作为根节点
Java通过可达性分析来判断对象是否存活。基本思想是通过一系列称为“GC roots”的对象作为起始点,可以作为根节点的是: 虚拟机栈(栈帧中的本地变量表)中引用的对象 本地方法栈中JNI(即一般说的Native方法)引用的对象 方法区中类静态属性引用的对象 方法区中常量引用的对象作为GC Roots的节点主要在全局性的引用(例如常量或类静态属性)与执行上下文(例如栈帧...原创 2018-07-29 21:02:17 · 1543 阅读 · 0 评论 -
数据库创建索引有什么优点和缺点
数据库中索引的优缺点为什么要创建索引呢?这是因为,创建索引可以大大提高系统的性能,优点:第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。第二,可以大大加快数据的检索速度,这也是创建索引的最主要的原因。第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。第四,在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。第五,...原创 2018-07-29 14:50:07 · 225 阅读 · 0 评论 -
局域网内与局域网间主机间通信
个人理解,要理解主机之间通信原理 就是理解 数据包在两台主机之间的封装和解封装过程 一.局域网间主机通信(1)源主机在发起通信之前,将自己的IP地址与目的主机的IP地址进行比较,如果源主机判断目的主机与自己位于不同网段时,它需要通过网关来递交报文的,所以它首先需要通过一个ARP请求报文获取网关的MAC地址(在源主机不知道网关MAC地址的情形下),即源主机先发送ARP请求帧以获取网关IP地址...原创 2018-07-28 16:48:56 · 3235 阅读 · 0 评论 -
什么是WEB服务器? 常用的WEB服务器有哪些?
一、什么是WEB服务器 Web服务器可以解析HTTP协议。当Web服务器接收到一个HTTP请求,会返回一个HTTP响应,例如送回一个HTML页面。为了处理一个请求Web服务器可以响应一个静态页面或图片,进行页面跳转或者把动态响应的产生委托给一些其它的程序例如CGI脚本,JSP脚本,servlets,ASP脚本,服务器端JavaScript,或者一些其它的服务器端技术。无论它们(译者注:脚...原创 2018-07-28 15:55:23 · 13603 阅读 · 0 评论 -
Spring常用的三种注入方式+{集合注入(set注入一种)}
Spring通过DI(依赖注入)实现IOC(控制反转),常用的注入方式主要有三种:构造方法注入,setter注入,基于注解的注入。构造方法注入先简单看一下测试项目的结构,用maven构建的,四个包:entity:存储实体,里面只有一个User类dao:数据访问,一个接口,两个实现类service:服务层,一个接口,一个实现类,实现类依赖于IUserDaotest:测试包 在...原创 2018-07-28 14:09:47 · 15354 阅读 · 3 评论