自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 资源 (3)
  • 收藏
  • 关注

原创 Java面试知识点(六十二)socket、session、url、http、状态码

socketsocket 是通信的基石。支持 TCP/IP 等协议的基本操作单元。应用层通过传输层进行数据通信时,TCP 会遇到同时为多个应用程序进程提供并发服务的问题。多个 TCP 连接或多个应用程序进程可能需要通过同一个 TCP 协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与 TCP/IP 协议交互提供了套接字 (Socket) 接口。应用层可以和传输层...

2019-07-30 15:32:35 1613 4

原创 Java面试知识点(六十一)HTTP 和 HTTPS

梗概HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(HTTP 协议运行在 TCP 之上),用于从 WWW 服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。HTTPS:是以安全为目标的 HTTP 通道,简单讲是 HTTP 的安全版,即 HTTP 下加入 SSL 层,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要...

2019-07-26 19:42:29 1335 3

原创 Java面试知识点(六十)TCP协议 (可靠保证、TCP、UDP、拥塞、ARQ)

保证可靠的方式应用数据被分割成 TCP 认为最适合发送的数据块。TCP 给发送的每一个包进行编号,接收方对数据包进行排序,把有序数据传送给应用层。校验和: TCP 将保持它首部和数据的检验和。这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化。如果收到段的检验和有差错,TCP 将丢弃这个报文段和不确认收到此报文段。TCP 的接收端会丢弃重复的数据。流量控制: TCP 连接的每...

2019-07-26 19:02:47 1326 2

原创 Java面试知识点(五十九)TCP 三次握手和四次挥手协议

待续

2019-07-25 19:31:34 1648

原创 Java面试知识点(五十八)OSI七层模型和 五层体系结构

待续

2019-07-25 19:30:21 1524

原创 Java面试知识点(五十七)类加载器

类加载过程:加载 -> 连接 -> 初始化。连接过程又可分为三步: 验证 -> 准备 -> 解析。一个非数组类的加载阶段(加载阶段获取类的二进制字节流的动作)是可控性最强的阶段,这一步我们可以去完成还可以自定义类加载器去控制字节流的获取方式(重写一个类加载器的 loadClass() 方法)。数组类型不通过类加载器创建,它由 Java 虚拟机直接创建。所有的类都由类...

2019-07-25 18:58:43 1079

原创 Java面试知识点(五十六)JVM垃圾回收 常见面试题

1.Minor Gc 和 Full GC 有什么不同呢?目前主流的垃圾收集器都会采用分代回收算法,因此需要将堆内存分为新生代和老年代,这样我们就可以根据各个年代的特点选择合适的垃圾收集算法。新生代 GC(Minor GC): 指发生新生代的的垃圾收集动作,Minor GC 非常频繁,回收速度一般也比较快。老年代 GC(Major GC/Full GC): 指发生在老年代的 GC,出现了 M...

2019-07-25 15:34:17 1551

原创 Java面试知识点(五十五)JVM垃圾收集器

如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。并行和并发概念补充:并行(Parallel) :指多条垃圾收集线程并行工作,但此时用户线程仍然处于等待状态。并发(Concurrent):指用户线程与垃圾收集线程同时执行(但不一定是并行,可能会交替执行),用户程序在继续运行,而垃圾收集器运行在另一个 CPU 上。1.Serial 收集器Seria...

2019-07-25 15:33:12 1002

原创 Java面试知识点(五十四)JVM运行时数据区域

概览Java 虚拟机在执行 Java 程序的过程中会把它管理的内存划分成若干个不同的数据区域。JDK. 1.8 和之前的版本略有不同,JDK 1.8 之前:JDK 1.8 :线程私有的:程序计数器虚拟机栈本地方法栈线程共享的:堆方法区(1.8之后是元空间)直接内存 (非运行时数据区的一部分)程序计数器程序计数器是一块较小的内存空间,可以看作是当前线程所执行...

2019-07-24 19:26:49 1168

原创 Java面试知识点(五十三)垃圾回收算法

标记-清除算法 Mark-Sweep这是一个非常基本的GC算法,它是现代GC算法的思想基础,分为标记和清除两个阶段:先把所有活动的对象标记出来,然后把没有被标记的对象统一清除掉。但是它有两个问题,一是效率问题,两个过程的效率都不高。二是空间问题,清除之后会产生大量不连续的内存。复制算法 Copying (新生代)复制算法是将原有的内存空间分成两块,每次只使用其中的一块。在GC时,将正在使用...

2019-07-24 18:52:00 1255

原创 Java面试知识点(五十二)虚拟机 分配内存

在类加载检查通过后,接下来虚拟机将为新生对象分配内存。对象所需的内存大小在类加载完成后便可确定,为对象分配空间的任务等同于把一块确定大小的内存从 Java 堆中划分出来。分配方式有 “指针碰撞” 和 “空闲列表” 两种,选择那种分配方式由 Java 堆是否规整决定,而 Java 堆是否规整又由所采用的垃圾收集器是否带有压缩整理功能决定。内存分配的两种方式:指针碰撞空闲列表选择以上两...

2019-07-23 20:29:22 907 3

原创 Java面试知识点(五十一)虚拟机中的对象

HotSpot虚拟机是java虚拟机中主要使用的一种,我们平时所说的java虚拟机是泛指,而Hotspot虚拟机就是其中使用最广泛的一种对象的创建Java 对象的创建过程类加载检查分配内存初始化零值设置对象头执行 init 方法类加载检查虚拟机遇到一条 new 指令时,首先将去检查这个指令的参数是否能在常量池中定位到这个类的符号引用,并且检查这个符号引用代表的类是...

2019-07-23 20:19:48 906

原创 Java面试知识点(五十)常见Java集合框架面试问题集锦

1.Arraylist 与 LinkedList 异同是否保证线程安全: ArrayList 和 LinkedList 都是不同步的,也就是不保证线程安全;底层数据结构: Arraylist 底层使用的是Object数组;LinkedList 底层使用的是双向循环链表数据结构;插入和删除是否受元素位置的影响: ① ArrayList 采用数组存储,所以插入和删除元素的时间复杂度受...

2019-07-23 17:14:07 2512

原创 Java面试知识点(四十九)Map集合 的遍历

第一种:KeySet()将 Map 中所有的键存入到 set 集合中。因为 set 具备迭代器。所有可以迭代方式取出所有的键,再根据 get 方法。获取每一个键对应的值。 keySet (): 迭代后只能通过 get () 取 key 。取到的结果会乱序,是因为取得数据行主键的时候,使用了 HashMap.keySet () 方法,而这个方法返回的 Set 结果,里面的数据是乱序排放的。典型...

2019-07-18 20:06:36 1384

转载 Java面试知识点(四十八)集合框架详解

一、集合与数组数组(可以存储基本数据类型)是用来存现对象的一种容器,但是数组的长度固定,不适合在对象数量未知的情况下使用。集合(只能存储对象,对象类型可以不一样)的长度可变,可在多数情况下使用。二、层次关系如图所示:图中,实线边框的是实现类,折线边框的是抽象类,而点线边框的是接口Collection 接口是集合类的根接口,Java 中没有提供这个接口的直接的实现类。但是却让其被继承产生...

2019-07-18 20:06:14 1677 1

原创 Java面试知识点(四十七)红黑树

红黑树红黑树就是一种平衡的二叉查找树,说他平衡的意思是他不会变成 “瘸子”,左腿特别长或者右腿特别长。除了符合二叉查找树的特性之外,还具体下列的特性:节点是红色或者黑色根节点是黑色每个叶子的节点都是黑色的空节点(NULL)每个红色节点的两个子节点都是黑色的。从任意节点到其每个叶子的所有路径都包含相同的黑色节点。插入数据可能会导致不符合红黑树规则的情况出现...

2019-07-18 18:14:17 1161

转载 Java面试知识点(四十六)HashMap源码解析

1.JDK1.8 引入红黑树在 JDK1.6,JDK1.7 中,HashMap 采用位桶 + 链表实现,即使用链表处理冲突,同一 hash 值的链表都存储在一个链表里。但是当位于一个桶中的元素较多,即 hash 值相等的元素较多时,通过 key 值依次查找的效率较低。而 JDK1.8 中,HashMap 采用位桶 + 链表 + 红黑树实现,当链表长度超过阈值(8)时,将链表转换为红黑树,这样...

2019-07-18 17:56:05 1421 4

转载 Java多线程 轻量级锁和锁的升级

偏向锁、轻量级锁、自旋锁、重量级锁悲观锁:重量锁(典型代表synchronized)乐观锁:偏向锁、轻量级锁、自旋锁自旋锁【定义】自旋锁原理非常简单,如果持有锁的线程能在很短时间内释放锁资源,那么那些等待竞争锁的线程就不需要做内核态和用户态之间的切换进入阻塞挂起状态,它们只需要等一等(自旋),等持有锁的线程释放锁后即可立即获取锁,这样就避免用户线程和内核的切换的消耗。但是线程...

2019-07-18 15:29:37 1184 1

原创 Java实现搜索回溯经典题目

前言搜索与回溯是计算机解题中常用的算法,很多问题无法根据某种确定的计算法则来求解,可以利用搜索与回溯的技术求解。回溯是搜索算法中的一种控制策略。它的基本思想是:为了求得问题的解,先选择某一种可能情况向前探索,在探索过程中,一旦发现原来的选择是错误的,就退回一步重新选择,继续向前探索,如此反复进行,直至得到解或证明无解。如迷宫问题:进入迷宫后,先随意选择一个前进方向,一步步向前试探前进,...

2019-07-18 12:01:44 1910 1

原创 生产者-消费者问题

生产者消费者问题是研究多线程程序时绕不开的经典问题之一,它描述是有一块缓冲区作为仓库,生产者可以将产品放入仓库,消费者则可以从仓库中取走产品。解决生产者 / 消费者问题的方法可分为两类:(1)采用某种机制保护生产者和消费者之间的同步;(2)在生产者和消费者之间建立一个管道。第一种方式有较高的效率,并且易于实现,代码的可控制性较好,属于常用的模式。第二种管道缓冲区不易控制,被传输数据对象不易于封装等...

2019-07-17 19:39:45 2699

原创 Java实现动态规划经典题目

动态规划入门请看:DP动态规划专题(一)动态规划基本模型前言【说明】关于动态规划的见解:动规和递归有很多相似的地方,最显著的特征可以说是阶段性,二者都有很明显的阶段划分,所以,声明好每一个阶段所需要做的事情以及阶段与阶段之间的转移可以说是重中之重了,这就涉及几个问题,第一,需要声明好方法(递归)或者数组(动规)具体的意义,所代表的作用;第二,需要说明好递归处理数据的方式(递归)或者是阶...

2019-07-17 15:29:47 3512

原创 java实现排序算法,比较时间复杂度

插入排序、冒泡排序、选择排序、快速排序、归并排序1.插入排序【定义】第一个元素自成一个有序数组A,从第二个元素开始,把每一个元素插入到有序数组A中合适的位置,满足有序的条件。直到最后元素,至此构建成一个有序数组。【时间复杂度】O(n2)【代码】...

2019-07-16 18:04:01 2203

转载 B树、B+树、B*树

B树及其变种是数据库存储主要数据形式之一二叉搜索树在说明B树之前,先说明一下B树的基础——二叉搜索树所有非叶子结点至多拥有两个儿子(Left 和 Right);所有结点存储一个关键字;非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树;如图所示:使用二叉搜索树的搜索,从根结点开始,如果查询的关键字与结点的关键字相等,那么就命中;否则,...

2019-07-16 10:34:52 994

原创 阻塞队列BlockingQueue

固定长度的队列往里放数据,如果放满了还要放,阻塞式队列就会等待,直到有数据取出,空出位置后才继续放;非阻塞式队列不能等待就只能报错了。多线程环境中,通过队列可以很容易实现数据共享,比如经典的 “生产者” 和 “消费者” 模型中,通过队列可以很便利地实现两者之间的数据共享。假设我们有若干生产者线程,另外又有若干个消费者线程。如果生产者线程需要把准备好的数据共享给消费者线程,利用队列的方式来传递...

2019-07-15 19:37:35 1232

转载 Java多线程中 的各种锁

学习 java 多线程时,最头疼的知识点之一就是 java 中的锁了,什么互斥锁、排它锁、自旋锁、死锁、活锁等等,细分的话可以罗列出 20 种左右的锁,光是看着这些名字就足以让人望而却步了,更别说一个个去理解它们的含义了。其实我要在这里告诉大家,我们看到的其实只是假象,其实根本没有这么多锁,或者这样说,这里边有很多锁其实就是一个东西,当我们从不同的侧重点去看的时候,它们就会衍生出不同的名字。...

2019-07-15 16:48:33 2379 1

原创 刷题——[剑指 offer] JAVA 版题解

序号 题解 牛客 OJ 数据结构类型 03 [剑指 offer] 二维数组中的查找 二维数组中的查找 数组 04 [剑指 offer] 替换空格 替换空格 字符串 05 [剑指 offer] 从尾到头打印链表 从尾到头打印链表 链表 06 [剑指 offer] 重建二叉树 重建二叉树 ...

2019-07-15 10:25:09 2017

转载 Java面试知识点(四十一)I/O 模型 ——阻塞、非阻塞、多路复用、异步

正在执行的进程,由于期待的某些事件未发生,如请求系统资源失败、等待某种操作的完成、新数据尚未到达或无新工作做等,则由系统自动执行阻塞原语 (Block),使自己由运行状态变为阻塞状态。1.阻塞I/O通常 IO 操作都是阻塞 I/O 的,也就是说当你调用 read 时,如果没有数据收到,那么线程或者进程就会被挂起,直到收到数据。阻塞的意思,就是一直等着。阻塞 I/O 就是等着数据过来,进...

2019-07-15 10:15:26 1402

原创 Java面试知识点(四十)I/O 基本概念

1.I/O 框架图2.比特Bit、字节Byte、字符CharBit 最小的二进制单位 ,是计算机的操作部分 取值 0 或者 1Byte 是计算机操作数据的最小单位由 8 位 bit 组成 取值(-128-127)Char 是用户的可读写的最小单位,在 Java 里面由 16 位 bit 组成 取值(0-65535)3.java中流的种类字符流和字节流。所有的字节...

2019-07-15 09:51:14 1539 5

原创 Java设计模式(一)装饰者模式

一、基本概念1.定义装饰(Decorator)模式又叫做包装模式,其功能是动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活,是继承关系的一个替换方案。装饰模式可以在不创造更多子类的情况下,将对象的功能加以扩展。装饰模式把客户端的调用委派到被装饰类。装饰模式的关键在于这种扩展完全是透明的装饰模式的应用在 java 的 I/O 流中最为显著。2.适用环境...

2019-07-12 15:16:45 1197

原创 深入理解synchronized

1.synchronize关键字用于加锁,用来解决多线程中,多个线程对同一资源访问所造成的数据不安全的问题2.使用synchronized修饰,相当于加了一把锁,对于synchronized锁定的资源,同一时间,只能有一个线程访问,保证了原子性。线程不安全的代码示例:class Ticket implements Runnable { private int num; //...

2019-07-11 19:45:41 1453

原创 js获取数据传到后台,数据不完整

今天在做一个项目的时候,使用js从前端获取到一个数据,然后利用layui的open方法打开一个url,同时把数据作为url的一部分一起传递到后台,但是数据却丢失了一部分原数据:<1020588779.3.1562565595895@DESKTOP-5ATR426>传到后台的数据:<1020588779.3这个数据是String类型的,传递其他的字符串都没有问题,不知...

2019-07-11 17:08:59 1893

原创 实现线程自定义顺序执行——join()解析

【问题】现在有 T1、T2、T3 三个线程,你怎样保证 T2 在 T1 执行完后执行,T3 在 T2 执行完后执行?要保证 T1、T2、T3 三个线程顺序执行,可以利用 Thread 类的 join 方法。Thread 类中的 join 方法的主要作用就是同步,它可以使得线程之间的并行执行变为串行执行。当我们调用某个线程的这个方法时,这个方法会挂起调用线程,直到被调用线程结束执行,调用线程才会...

2019-07-10 17:09:13 2081

原创 多线程基本概念

基本概念进程 (Process):一个程序运行起来时在内存中开辟一段空间用来运行程序,这段空间包括 heap、stack、data segment 和 code segment。例如,开一个 QQ 就表明开了一个 QQ 进程。线程 (Thread):每一个进程中都至少有一个线程。线程是指程序中代码运行时的运行路径,一个线程表示一条路径。例如 QQ 进程中,发送消息、接收消息、接收文件、...

2019-07-10 15:31:05 3080 2

原创 计算机网络基础(一)通信的基础——IP、DNS、MAC地址

1.网络——以太网、局域网、互连网、因特网要形成互联就要用到网络,下面讲一下以太网与互联网的区别。先讲一下计算机网络(network),就是将一台以上的计算机互连起来,互连的计算机之间可以实现通信,实现信息共享,这就是网络。1)互联网的英文是 internet(inter- pref. 表示 “在一起,交互” 之义;),它的意思是 “网络的网络”,是一个通用名词,泛指有多个计算机网络互...

2019-07-09 13:59:51 4724 1

原创 数据库面试知识点(三)事务

1.什么是事务?事务是对数据库中一系列操作进行统一的回滚或者提交的操作,主要用来保证数据的完整性和一致性。2.事务的四大特性ACID原子性(Atomicity):原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。一致性(Consistency):事务开始前和结束后,数据库的完整性约束...

2019-07-09 10:54:14 1773

原创 数据库面试知识点(二)索引

待续

2019-07-09 09:27:48 1833 1

原创 数据库面试知识点(一)基本概念

待续

2019-07-09 09:27:00 1938

原创 Java 多线程关键字 synchronized和lock

一、什么是可重入锁Lcok 在 Java 中是一个接口,一般在面试问题中问到的可能是 ReentrantLock 与 synchronized 的区别。ReentrantLock 是 Lock 的一个实现类,字面意思的话就是可重入锁,那么什么是可重入锁呢。可重入锁是锁的一个相关概念,并不是特指我们的 ReentrantLock,而是如果一个锁具备可重入性,那我们就说这是一个可重入锁。Reent...

2019-07-08 19:27:57 1836 3

原创 Java面试知识点(一)(补充)如何让HashMap线程安全

Java HashMap 是非线程安全的。在多线程条件下,容易导致死循环,具体表现为 CPU 使用率 100%。因此多线程环境下保证 HashMap 的线程安全性,主要有如下几种方法:使用 java.util.Hashtable 类,此类是线程安全的。使用 java.util.concurrent.ConcurrentHashMap,此类是线程安全的。使用 java.util.Collect...

2019-07-08 17:17:54 3676 1

原创 Java面试知识点(一)(补充)ConcurrentHashMap深度理解

在 hashMap 的基础上,ConcurrentHashMap 将数据分为多个 segment,默认 16 个(concurrency level),然后每次操作对一个 segment 加锁,避免多线程锁得几率,提高并发效率。ConcurrentHashMap不是对全局加锁,每次只是对一个segment加锁既然不能全锁 (HashTable) 又不能不锁 (HashMap), 所以就搞个部分...

2019-07-08 16:19:58 1578 1

cglib相关jar包.zip

cglib代理模式所需要的jar吧,包括cglib3.1.jar和字节码asm4.0.jar;并且经过代码测试,直接可用

2019-10-23

精通 Spring Boot 42 讲(PDF版附源码下载地址).zip

AVA 学习热情不减,有不少求 springboot 课程《精通 Spring Boot 42 讲》这篇文章的童鞋。 求一下这门课程的内容,那我就无私的分享给大家一起学习吧。 首先表明 课程是我自己买的,分享大家一起学习, 其次大家觉得课程好,有能力的,就多多支持作者吧。

2019-06-03

zabbix设备监控项目

zabbix已经在服务器搭建好了,只是需要远程调用zabbix的监控数据。通过php调用访问配置zabbix的服务器,获取监控数据,PHP在于Js交互(jQuery框架),将监控的数据显示在网页之上,网页已经写好,只需要修改部分Js文件以及编写php文件即可。获取要监控的设备是通过配置文件的方式,配置文件中写的是要监控的主机名

2019-04-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除