
Java
文章平均质量分 71
Lemon丶code
这个作者很懒,什么都没留下…
展开
-
【Spring框架】Spring核心知识点剖析(一)之IOC
Spring核心知识点剖析(一)之ICO最近刚开始接触Spring框架部分,写此博客记录学习内容。Spring的基本概念Spring:不管学过没学过,大家对Spring都有所了解。Spring是一款开放源码的Java框架,它致力于代码之间的松耦合。Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建。简单来说,Spring是一个分层的JavaSE/...原创 2019-03-06 16:33:29 · 128 阅读 · 0 评论 -
【Java虚拟机】垃圾收集前的准备
一、概述在JVM所管理的内存区域中,有三块区域是不需要垃圾回收的,他们是本地方法栈,Java虚拟机栈,程序计数器。因为这三块内存区域是线程独立的,随着线程的创建而创建,线程执行完毕自然就随着线程灭亡。而且这三块区域的内存大小是可在编译器就确定下来的,他们的内存分配和回收都具备确定性,因此就不需要考虑垃圾回收的问题。而Java堆不一样,程序只有在运行的时候才能知道应该创建多少对象,分配多少内存,...原创 2019-05-18 10:19:32 · 129 阅读 · 0 评论 -
【SpringBoot】SpringBoot自动配置原理
SpingBoot 自动配置原理解析SpringBoot框架可以对Spring以及SpringMVC进行自动配置,十分方便。最近研究了一下自动配置的原理,记录一下1、SpringBoot启动类SpringBoot有一个主配置类,即AutoconfigApplication类。SpringBoot在启动时会加载主配置类,开启了一些自动配置功能。@SpringBootApplicationp...原创 2019-06-19 11:18:05 · 256 阅读 · 0 评论 -
【SpringBoot】SpringBoot 2.x.x 版本 与 旧版本的区别
SpringBoot 2.x.x 版本 与 旧版本的区别学习SpringBoot时,跟视频上的版本不一致,有几处地方不一样,特此记录1、WebMvcConfigurerAdapter已过时在新版本的SpringBoot中,WebMvcConfigurerAdapter这个抽象类已经过时。因为SpringBoot的 2.0 及其以上版本最低支持Java 8,而Java 8 中有个新特性就是...原创 2019-06-21 16:43:19 · 10458 阅读 · 1 评论 -
【SpringMVC】SpringMVC的工作流程详解
1、SpringMVC简介Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。2、SpringMVC的核心SpringMVC的核心是 DispatcherServlet 。正如它的名...原创 2019-06-22 11:23:22 · 413 阅读 · 0 评论 -
【Java虚拟机】七大垃圾回收器详解(优缺点,适用场景)
垃圾回收器的优缺点与适用场景阅读本文前需要了解的知识点:垃圾回收中的并行与并发GC Root Tracing(可达性分析算法)一、Serial收集器特点: Serial收集器是最基本,发展例是最悠久的收集器。它是一个单线程收集器,即Serial收集器在工作时,必须暂停其他所有正在工作的线程,直到它的垃圾收集工作结束(即Stop The World)。Serial收集器到目前为止仍是虚...原创 2019-06-23 16:30:25 · 1627 阅读 · 0 评论 -
【深入理解Java虚拟机 第2版】资料分享
网盘链接:https://pan.baidu.com/s/1oLlKsOvi4nu-Xu6JCEeyvQ提取码:38go原创 2019-06-23 16:35:16 · 154 阅读 · 0 评论 -
【面试题精选】线程池底层工作原理
首先先放两张图,图片素材摘选自网络因为此篇文章涉及到线程池的七大参数,如果有不了解的可以移步程池的类型及常用参数及其作用线程池的工作原理上面两张图结合起来看我们就可以知道线程池的工作原理:当调用线程池的 execute() 方法时,线程池会做出以下判断:如果当前运行的线程小于线程池的核心线程数,那么马上创建线程完成这个任务。如果运行中的线程数大于等于线程池的核心线程数,那么将线...原创 2019-06-26 19:27:08 · 1156 阅读 · 0 评论 -
【Java虚拟机】虚拟机的逃逸分析
引子在网上看过这么一个面试题:Java中的创建对象一定是在Java堆中分配内存么?为什么?看完一脸懵逼,对象不是都在Java堆中?秉着面向百度编程的原则,我发现了一个新奇的概念:逃逸分析。逃逸分析首先我们了解什么是逃逸分析:逃逸分析的基本行为就是分析对象的动态作用域:当一个对象在方法中被定义后,它可能被外部的方法所引用,例如作为方法返回值或者被当作调用参数传入其他方法中,称为方法逃...原创 2019-06-23 20:11:43 · 469 阅读 · 0 评论 -
【Java虚拟机】常见故障及故障原因
虚拟机中常见的故障及原因1、StackOverFlowError (栈溢出)当申请的栈的深度超过了虚拟机所允许的最大的栈的深度,就会报 StackOverFlowError。最常见的情况就是没有出口的递归:public static void main(String[] args) { stackOverFlow(); }public static void stackO...转载 2019-06-29 15:29:55 · 649 阅读 · 0 评论 -
【MyBatis框架】MyBatis底层原理----一次查询的工作流程
最近看了一些Mybatis的底层原理,特此记录总结。原文链接:https://blog.youkuaiyun.com/luanlouis/article/details/40422941MyBatis中相关的类及其职责类名职责SqlSession作为MyBatis工作的主要顶层API,表示和数据库交互的会话,完成必要数据库增删改查功能ExecutorMyBatis执行器,是...原创 2019-05-12 11:32:37 · 4053 阅读 · 0 评论 -
【Java虚拟机】垃圾回收算法
本文部分内容引用自 https://www.cnblogs.com/java-zhao/p/5183261.html1、三种垃圾回收算法标记-整理法(标记压缩)(老年代) 标记-清除法(老年代) 复制算法(新生代)1.1 标记-清除法原理:从根节点集合出发进行扫描,标记出存活的对象,最后扫描整个内存空间并清除没有标记的对象(即死亡对象)适用场景:对象存活比较多的情...原创 2019-05-20 21:07:31 · 441 阅读 · 1 评论 -
【Java虚拟机】Java内存模型
Java内存模型-JMM1、JMM的概念Java内存模型,即JMM(java memory model),它是JVM的内存规范,定义了JVM的内存模型,它是屏蔽了各种硬件和操作系统的访问差异性,保证了Java程序在各个平台下对内存的访问都能效果一致的一种规范及机制。简而言之,JMM定义了JVM的内存模型,屏蔽了不同硬件和操作系统的差异性,它的主要目的是解决多线程通过共享内存进行通讯时,本地内...原创 2019-05-15 11:21:46 · 171 阅读 · 0 评论 -
【面试题精选】TCP连接的三次握手和断开连接的四次挥手
今天大概看了一下这个知识点,用自己的语言来描述一下。TCP连接的三次握手准备:服务器首先创建一个传输控制块,并且使自己处于监听状态,等待客户端发来的请求第一次握手:客户端首先创建一个传输控制块TCB,然后向服务器发送一个连接请求报文段,这时报文段的SYN需要置为1,同时给自己分配一个序列号x,并且把seq置为x,同时ACK要置为1,ack要置为x+1,表示对客户端请求报文端的确认信息,发送给...原创 2019-03-09 15:55:28 · 436 阅读 · 0 评论 -
【面试题精选】Mysql数据库-事务
Mysql 中的事务,是面试官的考察点,下面让我们来详细了解一下事务。一、事务的基本概念事务:一个或一组sql语句组成的一个执行单元,这个执行单元要么全部执行,要么全部不执行。二、事务的四大特性(重点)1、原子性:事务是一个不可分割的单元,其中的操作要么全部执行,要么一个都不执行。2、隔离性:一个事务的执行不能被其他事务所干扰。3、一致性:事务必须使数据库从一个一致性状态变换成另一个一...原创 2019-03-09 16:23:36 · 528 阅读 · 0 评论 -
【面试题精选】Http与Https的区别及SSL安全协议解析
一、Http 和 Https 的相关概念Http: Hyper Text Transfer Protocol,即超文本传输协议。Http 协议是目前网络上应用最广泛的一种网络协议,所有的 www 文件都必须遵守这个协议,而Http在传输信息时,信息都是明文的格式,一些隐私信息很容易泄露,所以就有了Https。Https: Hyper Text Transfer Protocol Secure,...原创 2019-03-14 20:50:46 · 906 阅读 · 0 评论 -
【面试题精选】二叉搜索树详解
一、二叉搜索树的概念及特点二叉搜索树(BLT):Binary Search Tree,又名二叉排序树,二叉查找树,是一种常见的二叉树类型。它是一棵空树或具有以下特点的二叉树:若任意结点的左子树不为空,那么左子树的任意结点的值均小于当前节点的值。若任意结点的右子树不为空,那么右子树的任意结点的值均大于当前节点的值。它的左右子树也均为二叉搜索树。中序遍历可以得到一个有序序列。树的物理结...原创 2019-03-15 21:11:01 · 580 阅读 · 0 评论 -
【面试题精选】线程池的类型及常用参数及其作用
一、线程池的五种创建方式Executors目前提供了五种不同的线程池创建:类型描述new CachedThreadPool()它是一种用来处理大量短时间工作任务的线程池,具有几个鲜明特点:它会试图缓存线程并重用,当无缓存线程可用时,就会创建新的工作线程;如果线程闲置的时间超过60秒,则被终止并移出缓存;长时间闲置时,这种线程池并不会消耗什么资源,其内部使用Synchron...转载 2019-03-12 22:53:20 · 1697 阅读 · 0 评论 -
【面试题精选】创建线程的三种方式
Java使用Thread类代表线程,所有的线程对象都必须是Thread类或其子类的实例。Java可以用三种方式来创建线程,如下所示:1)继承Thread类创建线程2)实现Runnable接口创建线程3)使用Callable和Future创建线程下面让我们分别来看看这三种创建线程的方法。方法一:继承Thread类创建线程采用此方法创建线程有三个步骤:创建一个类继承Thread接口重...原创 2019-03-13 09:17:11 · 431 阅读 · 0 评论 -
【面试题精选】并发编程中可能存在的问题
并发编程中存在的问题在并发编程中,我们常常会遇到如下三个问题:原子性问题可见性问题有序性问题下面让我们先来了解一下这三个问题的基本概念。1、原子性: 一个操作或者一组操作(即一段代码)要么全部执行,并且执行过程中不会被其他因素打断,要么全部不执行。原子性的问题我们在MySQL的事务的四大特性里提到过,这里的概念跟MySQL的几乎相同。既然如此,我们就还拿常用的银行转账的实例来说明...原创 2019-03-13 20:46:35 · 228 阅读 · 0 评论 -
【Spring框架】Spring配置大全(供备忘)
一、IOC配置1、xml配置bean:(1)构造器配置<bean id=”xx” class=”x.x.y”> <construction-arg name=”” value=””><construction-arg> <construction-arg name=”” value=””><construction-arg> ...原创 2019-03-27 08:46:55 · 729 阅读 · 0 评论 -
【面试题精选】并发编程常见面试题
1、什么是线程,什么是进程线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。进程是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竞争计算机系统资源的基本单位。2、为什么会有线程?每个进程都有自己的地址空间,即进程空间,在网络或多用户换机下,一个服务器通常需要接收大量不确定数量用户的并发请求,为每一个请求都创建一个进程显然行不通(系统...原创 2019-04-15 19:41:24 · 438 阅读 · 0 评论 -
【Spring】事务的七大传播行为
1、 PROPAGATION_REQURED表示该方法必须运行在事务中,如果已经存在事务,就在当前事务中运行,如果没有事务,就开启一个新的事务。2、 PROPAGATION_SUPPORTS表示当前方法不需要运行在事务中,如果已经存在事务,就在当前事务中运行,如果没有事务,就非事务运行。3、 PROPAGATION_MANDATORY表示当前方法必须在事务中运行,如果已经存在事务,就在当...原创 2019-08-13 16:16:42 · 261 阅读 · 0 评论