2019-06-10 10:53:15
1 TCP和UDP区别,应用场景TCP:为应用层提供可靠的、面向连接的和基于流的服务。使用超时重传、数据确认等方式来确保数据包被正确地发送至目的端,因此服务是可靠的。使用TCP协议通信的双方必须先建立TCP连接,并在内核中为该连接维持一些必要的数据结构,比如连接的状态、读写缓冲区,以及诸多定时器等。当通信结束时,双方必须关闭连接以释放这些内核数据。TCP基于流。基于流的数据没有边界(长度)限制,它源源不断地从通信的一端流入另一端。发送端可以逐个地向数据流中写入数据,接收端也可以逐个地
2019-06-10 10:50:58
1、利用key的hashCode重新hash计算出当前对象的元素在数组中的下标2、存储时,如果出现hash值相同的key,此时有两种情况。(1)如果key相同,则覆盖原始值;(2)如果key不同(出现冲突),则将当前的key-value放入链表中3、获取时,直接找到hash值对应的下标,在进一步判断key是否相同,从而找到对应值。4、理解了以上过程就不难明白HashMap是如何解决hash冲突的问题,核心就是使用了数组的存储方式,然后将冲突的key的对象放入链表中,一旦发现冲突就在链表中做进一步
2019-06-10 10:48:27
一、Http和Https的基本概念Http:超文本传输协议(Http,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。设计Http最初的目的是为了提供一种发布和接收HTML页面的方法。它可以使浏览器更加高效。Http协议是以明文方式发送信息的,如果黑客截取了Web浏览器和服务器之间的传输报文,就可以直接获得其中的信息。Https:是以安全为目标的Http通道,是Http的安全版。Https的安全基础是SSL。SSL协议位于TCP/IP协议与各种应用层
2019-06-10 10:40:42
1、什么是Spring MVC ?简单介绍下你对springMVC的理解?Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。2、SpringMVC的流程?(1)用户发送请求至前端控制器DispatcherServlet;(2) DispatcherServlet收到请求后,调用Handle
2019-06-10 10:40:14
一、索引聚集索引、非聚集索引都是B+树。前者B+树叶子节点包含数据,后者叶子节点包含数据地址聚集索引优点:提升IO密集负载性能;缺点:插入代价高索引缺点:维护索引耗时;占用空间大建索引须知:建在where,group by,排序等列上;不建在性别等少数类别的列上建索引不一定加速:索引没有查询所需字段一年后DB变慢了:答题方向是cpu、磁盘、内存二、Nosql1、为什么有Nosql?增加字段需要-->无格式高并发需要-->转向内存横向拓展需要-->以前是分库分表关键:传统数据库需
2019-06-10 10:38:38
1、什么是Redis?简述它的优缺点?Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。Redis的出色之处不仅仅是性能,Redis最大的魅力是支持保存多种数据结构,此外单个value的最大限制是1GB,不像 memcached只能保存1MB的数据,因
2019-06-10 10:38:09
1、在表中建立索引,优先考虑where、group by使用到的字段。 2、尽量避免使用select *,返回无用的字段会降低查询效率。如下:SELECT * FROM t 优化方式:使用具体的字段代替*,只返回使用到的字段。 3、尽量避免使用in 和not in,会导致数据库引擎放弃索引进行全表扫描。如下:SELECT * FROM t WHERE id IN (2,3)SELECT * FROM t1 WHERE username IN (SELECT user
2019-06-10 10:37:19
比如在传统单体应用中,若有A、B、C三个服务需要更改,A依赖B,B依赖C。我们只需更改相应的模块,然后一次性部署即可。但是在微服务架构中,我们需要仔细规划和协调每个服务的变更部署。我们需要先更新C,然后更新B,最后更新A。
2019-06-10 10:36:17
微服务的分布式特点带来的复杂性。开发人员需要基于RPC或者消息实现微服务之间的调用和通信,而这就使得服务之间的发现、服务调用链的跟踪和质量问题变得的相当棘手。1.开发者需要应对创建分布式系统所产生的额外的复杂因素l 目前的IDE主要面对的是单体工程程序,无法显示支持分布式应用的开发l 测试工作更加困难l 需要采用服务间的通讯机制l 很难在不采用分布式事务的情况下跨服务实现功能l 跨服务实现要求功能要求团队之间的紧密协作2.部署复杂3.内
2019-06-10 10:35:59
封装:把描述一个对象的属性和行为封装成一个类,把具体的业务逻辑功能实现封装成一个方法,其次封装的意义还有效的保护属性通过访问修饰符私有化属性(成员变量),公有化方法。继承:实现代码的复用,所有的子类所共有的行为和属性抽取为一个父类,所有的子类继承该类可具备父类的属性和行为,继承具有单一性和传递性。多态:程序中定义的引用类型变量所指向的具体类型和调用的具体方法在程序编译阶段无法确定,而是在运行期才能确定该引用类型变量指向具体哪个对象而调用在哪个类中声明的方法。