
面试
lpq1201
这个作者很懒,什么都没留下…
展开
-
详解TCP三次握手四次挥手面试题
TCP(Transmission Control Protocol)传输控制协议。是面向连接的、全双工的协议。主要用来传输TCP报文的。而传输需要客户端client与服务器Server建立连接来完成(三次握手)。传输完成后需要释放链接(四次挥手) 建立连接—三次握手: 第一次握手:首先客户A主动打开连接,服务器B被动打开连接,双方都会先创建传输控制块TCP,此时客户A和服务器B都处于CLO...原创 2018-05-21 15:45:49 · 716 阅读 · 0 评论 -
http与https的区别?
http是长文本传输协议,采用的是明文的传输形式,对传输数据不加密,主要应用于web浏览器与网站服务器之间的信息传输,安全性没有保障,所以不适合支付、密码等信息的传输。https是就ssl协议的安全套接字超文本传输协议,有网景公司开发,在http协议的基础上加入了SSL协议,对客户端与服务器之间的数据传输进行加密,主要作用是:传输加密和身份认证。 区别: (1)http是明文传输,安全性低,h...原创 2018-08-09 15:10:56 · 184 阅读 · 0 评论 -
线程池有这一篇就够了
1.线程池ThreadPoolExecutor 线程池主要就是Executor接口,这个接口提供一些对于线程的操作的配置和方法,能对线程的性能带来较大提升。 线程池得好处: (1)降低了线程的创建和销毁的时间消耗,能够提升线程对系统资源的利用率,同时线程执行完后并不是直接销毁,而是回到线程池等待执行其他任务,这样提高了线程的复用率。 (2)对线程时可控的。相比于传统的多线程每个任务分配一个...原创 2018-08-06 20:22:52 · 379 阅读 · 0 评论 -
剑指Offer几个高频词总结
面试题2:单例模式: package recover; //单例模式–饿汉式 //1.构造器私有 2.在成员位置上创建一个对象(静态私有)3.提供一个静态的方法 public class Singleton { private Singleton(){} private static Singleton singleton=new Singleton(); p...原创 2018-08-16 11:33:39 · 296 阅读 · 0 评论 -
几个排序算法总结(高频)
(1)冒泡排序 最简单的冒泡排(有缺陷): //初始冒泡排序–有缺陷 public static void BubbleSort(int []arr){ for(int i=0;i原创 2018-08-16 11:35:17 · 236 阅读 · 0 评论 -
数据库事务及隔离级别
1数据库四大特性: 数据库具有事务安全性,同时也具有ACID四大特性:原子性、一致性、隔离性、持久性 ⑴ 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。 ⑵ 一致性(Consistency) 一致性是指事务必...原创 2018-08-16 20:58:06 · 190 阅读 · 0 评论 -
数据库事务及隔离级别
1数据库四大特性: 数据库具有事务安全性,同时也具有ACID四大特性:原子性、一致性、隔离性、持久性 ⑴ 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。 ⑵ 一致性(Consistency) 一致性是指事务必...原创 2018-08-16 20:58:11 · 184 阅读 · 0 评论 -
几个面试题总结
1.session和cookie的区别 (1)cookie存放在客户端的浏览器上,session则存放在服务器中 (2)Cookie是不安全的,别人可以通过分析本地的cookie进行cookie欺骗,考虑安全性的话应使用session (3)Session保存在服务器上的时间是有限制的,当服务器的session较多时,会给服务器造成很大压力,考虑减轻服务器压力可以使用cookie (4)C...原创 2018-08-26 16:36:29 · 263 阅读 · 0 评论 -
单例模式之饿汉式、懒汉式、双重校验
1.饿汉式ublic class singleton { //饿汉式 private static singleton instance=new singleton(); private singleton(){} public static singleton getInstance(){ return instance; }}...原创 2018-08-23 12:48:53 · 920 阅读 · 2 评论 -
设计模式--模板模式
模板模式:模板模式指的是定义一个算法骨架,将算法的实现延迟到子类中实现。 通俗理解:就是把一个业务流程中不变的功能写固定,只把变化不确定的那部分功能在骨架方法中抽象,并在继承我们的骨架,并实现在骨架类中的抽象方法。例如去银行办理业务,要经过3个流程:取号—–>办卡/存钱/取钱—–>对银行柜员进行评价,对于取号和评价来说在流程中时固定的,其中从取号到评价这个过程就是我们的骨架方法,办卡...原创 2018-08-09 15:10:28 · 112 阅读 · 0 评论 -
抽象类、接口及其区别?
(1)抽象类: 1)含有抽象方法的类一定是抽象类,抽象类和抽象方法用abstract修饰 2)抽象类中既可以有抽象方法也可以有非抽象方法 3)子类中实现抽象类的抽象方法时抽象方法必须全部实现 4)抽象类中的成员函数修饰符可以是private、protect、public 5)抽象类中可以包含构造方法,子类实现抽象类的构造方法时必须用super()来实现 6)抽象类不能实例化,但可以在抽...原创 2018-08-09 15:09:45 · 165 阅读 · 0 评论 -
斐波那契数列--递归与非递归实现
初识斐波那契数列: 斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:0,1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n&...原创 2018-06-03 11:17:26 · 16000 阅读 · 1 评论 -
static关键字解析
初识static是在刚学Java时,一个main方法的中是这样定义的:public static static void main(String[]args){ System.out.println("Hello World!");}随着一句“Hello World!”进入了Java的世界。同时也在想“static”是什么鬼?当时知道应该是静态的意思。也并没有在意,但随着最近...原创 2018-05-23 20:29:53 · 304 阅读 · 0 评论 -
递归应用之快速排序
递归应用1斐波那契数列斐波那契数列满足:1,1,2,3,5,8,13…… 从第三个位置起每个元素的值是前面元素的和代码实现:public class FeiBo{ public static void main(){ int num1=1; int num2=1; int n=6; int numn=0; ...原创 2018-05-30 21:49:52 · 191 阅读 · 0 评论 -
基于最大堆的堆排序算法
堆排序 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构。堆 堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。 同时,我们对堆中的结点按层进行编号,将这种逻辑结构映射到数组...原创 2018-06-14 11:20:49 · 1901 阅读 · 5 评论 -
几种经典的排序算法
1.冒泡排序 时间复杂度:O(n²) 冒泡排序算法的运作如下:(从后往前) 1)比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2)对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 3)针对所有的元素重复以上的步骤,除了最后一个。 4)持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需...原创 2018-05-31 15:37:57 · 20662 阅读 · 1 评论 -
简单排序之插入排序
一、算法原理插入排序法:所谓插入排序法乃是将一个数目插入该占据的位置。假设我们输入的是 “53,27,36,15,69, 42” 我们从第二个数字开始,这个数字是27,我们的任务只要看看27有没有正确的位置,我们的做法是和这个数字左边的数字来比,因此我们比较27和53,27比53小,所以我们就交换27和53,原来的排列就变成了“27, 53, 36, 15, 69, 42 ”接下来,...原创 2018-06-14 15:29:18 · 496 阅读 · 0 评论 -
JVM调优
1. 年轻代大小选择 (1) 响应时间优先的应用:尽可能设大,直到接近系统的最低响应时间限制(根据实际情况选择)。在此种情况下,年轻代收集发生的频率也是最小的。同时,减少到达年老代的对象。 (2)吞吐量优先的应用:尽可能的设置大,可能到达Gbit的程度。因为对响应时间没有要求,垃圾收集可以并行进行,一般适合8CPU以上的应用。 2.年老代大小选择 ...转载 2018-06-16 10:38:17 · 142 阅读 · 0 评论 -
HashMap实现原理分析(存储实现)
HashMap实现原理分析转载 2018-07-02 20:19:39 · 268 阅读 · 0 评论 -
判断一棵二叉树是否为完全二叉树
判断一棵二叉树是否为完全二叉树–采用广度优先遍历–利用队列 * 1。定义标志位flag=false表示没有遇到空的节点,count=0 * 2.只要树中节点的左右子树都不为空,那么就把该节点的所有左右孩子压入队列(包括null节点) * 压入队列3种情况: * (1)节点都有左右子节点—都压入 * (2)节点有一个左子节点右子节点为空或者节点有一个...原创 2018-08-21 17:31:44 · 1748 阅读 · 0 评论