自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 收藏
  • 关注

原创 Java虚拟机——G1垃圾收集器

1:是什么G1是⼀款⾯向服务端应⽤的垃圾收集器,JDK1.7才正式引入,G1堆空间是一个被分成许多固定大小区域的内存块。 图片中的颜色表明了哪个区域被关联上什么角色。活跃对象从一个区域疏散(复制、移动)到另一个区域。区域被设计为并行的方式收集,可以暂停或者不暂停所有的其它用户线程。 明显的区域可以被分配成Eden、Survivor、Old区域。另外,有第四...

2019-10-03 19:13:50 164

原创 Java虚拟机——CMS收集器

1:是什么 CMS (Concurrent Mark Sweep)收集器是-种以获取最短回收停顿时间为⽬标的收集器。 ⽬前很⼤⼀部分的Java应⽤集中在互联⽹站或者B/S系统的服务端上,这类应⽤尤其重 视服务 的响应速度,希望系统停顿时间最短,以给⽤户带来较好的体验。CMS 收集器是基于“标记-清除”算法实现的,用户线程和垃圾线程同时执行。用户几乎感受用不到线程的暂停。也就是并发。...

2019-10-03 17:34:45 633

原创 Java虚拟机——Parallel Scavenge收集器

1:是什么Parallel Scavenge 收集器是⼀个新⽣代收集器,它也是使⽤复制算法的收集器,⼜是并⾏的 多线程收集器,由于与吞吐量关系密切,Parallel Scavenge 收集器也经常称为“吞吐量优先”收集器 吞吐量是什么?CPU⽤于运⾏⽤户代码的时间与CPU总时间的⽐值,99%时间执⾏⽤户线 程,1%时间回收垃圾 ,这时候吞吐量就是99%2:特点Paralle...

2019-10-03 17:17:19 377

原创 Java虚拟机——ParNew收集器

1:是什么 ParNew 收集器其实就是 Serial 收集器的多线程版本,除了使⽤多条线程进⾏垃圾收集之 外,其余⾏为包括 Serial 收集器可⽤的所有控制参数(例如:-XX: SurvivorRatio、-XX: PretenureSize' Threshold、-XX: HandlePromotionFailure 等)、收集算法、Stop The World、对象分配规则...

2019-10-03 16:59:51 359

原创 Java虚拟机——serial垃圾收集器

1:是什么收集算法是内存收到的⽅法论,垃圾回收器是内存回收的具体实现。 Serial是⼀个单线程的垃圾收集器 Serial(串行)垃圾收集器是最基本、发展历史最悠久的收集器;2:特点针对新生代; 采用复制算法; 单线程收集; “Stop The World”,它进⾏垃圾收集时,必须暂停其他所有的⼯作线程,直到它收集结束。 在⽤户不可⻅的情况下把⽤户正常⼯作的线...

2019-10-03 16:48:50 242

原创 Java虚拟机——对象的创建、对象的内存布局、对象的访问定位 简述

1:Java对象的创建判断是否已经执行类加载 当虚拟机遇到一条new指令时 ,首先去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已经被加载、解析和初始化过,如果没有,那必须先执行相应的类加载过程。内存分配当已经执行过类加载过程后,会为新对象在Java堆中分配一个大小已经确定的内存,具体的内存分配规则有两种:指针碰撞...

2019-10-03 15:59:28 153

原创 Java虚拟机——⼤对象的分配和逃逸分析

大对象分配是什么?所谓的⼤对象是指,需要⼤量连续内存空间的 Java 对象,最典型的⼤对象就是那种很⻓的字符串以及数组 虚拟机提供了⼀个-XX: PretenureSizeThreshold 参数,令⼤于这个设置值的对象直接在⽼年 代分配。这样做的⽬的是避免在 Eden 区及两个 Survivor 区之间发⽣⼤量的内存复制实战代码演练public class A{ pub...

2019-10-02 17:17:46 124

原创 Java虚拟机——堆内存的分配

Java堆内存分配机制Java堆内存的分配整体可以概述为“自适应的,分代的,停止-复制,标记-清除”式的垃圾回收器。 分代指Java将堆内存划分为年轻代(Young Generation),年老代(Old Generation),永久代(Permannet Generation)三块大区域。新生代又再分为Eden区和Survivor区两部分,本文根据java堆的划分,描述hots...

2019-10-02 16:21:54 716

原创 Java虚拟机——Java内存区域程序计数器

1:是什么?程序计数器是⼀块较⼩的内存空间,它可以看作是当前线程所执⾏的字节码的⾏号指示器 线程是⼀个独⽴的执⾏单元,是由CPU控制执⾏的 字节码解释器⼯作时就是通过改变这个计数器的值来选取下⼀条需要执⾏的字节码指令,分⽀、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成2:为什么? 为了线程切换后能恢复到正确的执⾏位置,每条线程都需要有⼀个...

2019-09-27 12:36:48 108

原创 Java虚拟机——Java内存区域常量池

1:是什么 运⾏时常量池是⽅法区的⼀部分,Class⽂件除了有类的版本、字段、⽅法、接⼝等描述信息 外,还有⼀项信息是常量池,⽤于存放编译器⽣成的各种字⾯量和符号引⽤,这部分内容将 在类加载后进⼊⽅法区的运⾏时常量池中存放。2:模拟常量池程序运行的结果为 true,false,true, 第一个是true,原因是两个普通变量(不是通过new方式创建,所以不在堆...

2019-09-26 23:41:05 96

原创 Java虚拟机——Java内存区域⽅法区

1:是什么是各个线程共享的内存区域,它⽤于存储已被虚拟机加载的类信息、常量、静态变量、即时 编译器编译后的代码等数据 什么是类信息:类版本号、⽅法、接⼝方法区(Method Area)存储的类信息 对每个加载的类型(类class、接口interface、枚举enum、注解annotation),JVM必须在方法区中存储以下类型信息: 这个类型的完整有效名...

2019-09-26 23:08:41 203

原创 Java虚拟机——Java内存区域java堆

1:是什么?是Java内存区域中⼀块⽤来存放对象实例的区域,【⼏乎所有的对象实例都在这⾥分配内存】,堆中不存放基本类型和对象引用,只存放对象本身,几乎所有的对象实例和数组都在堆中分配。每个对象都包含一个与之对应的class的信息(class信息存放在方法区)。2:为什么此内存区域的唯⼀⽬的就是存放对象实例 Java 堆(Java Heap)是 Java 虚拟机所管理的内存中...

2019-09-26 12:38:23 84

原创 Java虚拟机——Java内存区域本地⽅法栈

1:是什么?⽤于作⽤于本地⽅法执⾏的⼀块Java内存区域,用来⽀持native⽅法执⾏,native关键字说明其⽅法是一个原⽣态方法,方法对应的实现不是在当前文件,⽽是在⽤其他语⾔(如C和C++)实现的文件中2:为什么? 与Java虚拟机栈类似,每个⽅法在执⾏的同时会(在本地方法栈,这个与Java虚拟机栈帧创建栈帧地方不同)创建⼀个栈帧(Stack Fram...

2019-09-26 12:20:10 249

原创 Java虚拟机——Java内存区域Java虚拟机栈

1:是什么⽤于作⽤于⽅法执⾏的⼀块Java内存区域2: 为什么每个⽅法在执⾏的同时都会创建⼀个栈帧(Stack Framel)⽤于存储局部变量表、操作数 栈、动态链接、⽅法出⼝等信息。每⼀个⽅法从调⽤直⾄执⾏完成的过程,就对应着⼀个栈 帧在虚拟机栈中⼊栈到出栈的过程怎么理解: 先看一张图片,当方法A在Java虚拟机中运行,方法A会在虚拟机栈创建栈帧,就是你看到的圆圈,方法A...

2019-09-17 22:58:04 103

转载 Redis——入门(一)知来处,明去处

1:redis定义Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多 种类型的数据结构,如 字符串(strings)、散列(hashes)、 列表(lists)、 集合(sets)、 有序集合(sorted sets)等。2:特点速度快 支持多种数据结构(string,list,hash,set,storted s...

2019-07-11 22:34:26 180

转载 springboot教程6——文件上传

Spring Boot 默认使用 springMVC 包装好的解析器进行上传 添加代码        index.ftl(当前模板引擎是freemarker)<!DOCTYPE html><html><head lang="en"> <title>Spring Boot Demo - FreeMarker</tit...

2018-08-29 23:10:50 164

转载 springboot教程5——Servlets, Filters, listeners

                        web 应用开发-Servlets, Filters, listeners在 spring boot 中的三种实现方式1 通过注册 ServletRegistrationBean、FilterRegistrationBean 和ServletListenerRegistrationBean 获得控制/*** 自定义 servlet**...

2018-08-29 22:31:34 199

转载 springboot教程4——错误处理

方法一:Spring Boot 将所有的错误默认映射到/error, 实现ErrorController        @Controller@RequestMapping(value = "error")public class BaseErrorController implements ErrorController {private static final Logge...

2018-08-28 23:10:50 111

转载 springboot教程3——模板引擎jsp

 1 将使用JSP作为模板引擎的Maven依赖导入进来<dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <scope>provided</scope&gt

2018-08-15 08:04:28 327

原创 springboot教程t2——thymeleaf模板

1 springboot项目默认文件位置/src/java/resources  Maven的资源文件目录 /src/java/resources/static /src/java/resources/public /src/java/resources/templates /src/java/resources/META-INF/resources2 springboot静态首页的...

2018-08-14 08:04:03 280

原创 springboot教程1——freeMarket模板

1 模板引擎的选择 FreeMarker Thymeleaf Velocity (1.4版本之后弃用,Spring Framework 4.3版本之后弃用) Groovy Mustache 注:jsp应该尽量避免使用,原因如下: jsp只能打包为:war格式,不支持jar格式,只能在标准的容器里面跑(tomcat,jetty都可以) 内嵌的Jetty目前不支持JSP...

2018-08-13 23:13:25 461

原创 OOP特征

1:特征抽象(abstract)封装(encapsulation)继承(inheritance)多态(polymorphism)关联(association)聚合(aggregation)组合(composition)内聚与耦合(cohesion & coupling)2-1 关联对象之间交互时的一种引用方式当一个对象通过对另一个对象的引用去使用另一个对象的服务或操作时,两个对象之间

2017-12-24 09:45:09 1304

原创 UML

1:概念 统一建模语言(UML)是一种图形化的语言,它可以帮助我们在OOAD过程中标识元素、构建模块、分析过程并可通过文档说明系统中的重要细节2:UML分类静态模型(static model)动态模型(dynamic model)4-1 静态模型 1 创建并记录一个系统的静态特征 2. 反映一个软件系统基础、固定的框架结构 3. 创建相关问题域主要元素的视图 4.

2017-12-24 08:32:36 184

原创 初识JVM(1)

java虚拟机 Java虚拟机的概念 :JVM是Java Virtual Machine的简称。意为Java虚拟机 虚拟机 :指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统 JVM使用软件模拟Java 字节码的指令集 使用最为广泛的JVM为HotSpotJVM规范整数的表达原码:第一位为符号位(0为正数,1为负数)一直除以2直到除不尽 反码:符号位不动

2017-12-07 18:31:02 164

原创 Java设计模式(6)——观察者模式

一、什么是观察者模式 Observer模式是行为模式之一,它的作用是当一个对象的状态发生变化时,能够自动通知其他关联对象,自动刷新对象状态。 Observer模式提供给关联对象一种同步通信的手段,使某个对象与依赖它的其他对象之间保持状态同步。二、观察者模式的结构三、观察者模式的角色和职责Subject(被观察者) 被观察的对象。当需要被观察的状态发生变化时,需要通知队列中所有观察者对象。S

2017-11-09 22:18:08 145

原创 Java设计模式(5)——策略模式

一、什么是策略模式 Strategy模式也叫策略模式是行为模式之一,它对一系列的算法加以封装,为所有算法定义一个抽象的算法接口,并通过继承该抽象算法接口对所有的算法加以封装和实现,具体的算法选择交由客户端决定(策略)。Strategy模式主要用来平滑地处理算法的切换 。二、策略模式的结构三、策略模式的角色和职责Strategy: 策略(算法)抽象。 ConcreteStrategy

2017-11-08 21:23:41 183

原创 java设计模式(4)——装饰模式

一、什么是装饰模式 装饰( Decorator )模式又叫做包装模式。通过一种对客户端透明的方式来扩展对象的功能,是继承关系的一个替换方案。 简单说:让我们来假设一下,你正在寻找一个女朋友。有很多来自不同国家的女孩,比如:美国,中国,日本,法国等等,他们每个人都有不一样的个性和兴趣爱好,如果需要在程序当中模拟这么一种情况的话,假设每一个女孩就是一个Java类的话,那么就会有成千上万的类,这样子就会

2017-11-07 21:39:36 156

原创 Java设计模型(3)——建造者模型

一、什么是建造者模式 Builder模式也叫建造者模式或者生成器模式,是由GoF提出的23种设计模式中的一种。Builder模式是一种对象创建型模式之一,用来隐藏复合对象的创建过程,它把复合对象的创建过程加以抽象,通过子类继承和重载的方式,动态地创建具有复合属性的对象。 简单一点就是: 将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。 [构建与表示分离,同构建不同表示]与抽

2017-11-06 19:01:10 1912

原创 java设计模式(2)——原型模式

一、什么是原型模式Prototype模式是一种对象创建型模式,它采取复制原型对象的方法来创建对象的实例。使用Prototype模式创建的实例,具有与原型一样的数据。二、原型模式的特点由原型对象自身创建目标对象。也就是说,对 象创建这一动作发自原型对象本身。目标对象是原型对象的一个克隆。也就是说, 通过Prototype模式创建的对象,不仅仅与原型 对象具有相同的结构,还与原型对象具有相同的 值

2017-11-06 17:04:59 176

转载 java栈堆(复杂版)

基础数据类型(Value type)直接在栈(stack)空间分配,方法的形式参数,直接在栈空间分配,当方法调用完成后从栈空间回收。引用数据类型,需要用new来创建,既在栈空间分配一个地址空间(reference),又在堆空间分配对象的类变量(object) 。方法的引用参数,在栈空间分配一个地址空间,并指向堆空间的对象区,当方法调用完成后从栈空间回收。局部变量 new 出来时,在栈空间和堆空间中分

2017-10-30 17:22:06 202

原创 java 栈和堆(简单版)

1:概念 栈:函数中定义的基本类型变量,对象的引用变量都在函数的栈内存中分配。栈内存特点,数据一执行完毕,变量会立即释放,节约内存空间。栈内存中的数据,没有默认初始化值,需要手动设置。存在栈中的数据可以共享,存放局部变量,基本类型变量,执行上下文,操作指令区,线程不共享 补充:通过诸如int a = 3; long b = 255L;的形式来定义的,称为自动变量。值得注意的是,自动变

2017-10-30 17:09:05 188

原创 抽象工厂方法

什么是抽象工厂模式 抽象工厂模式是所有形态的工厂模式中最为抽象和最其一般性的。抽象工厂模式可以向客户端提供一个接口,使得客户端在不必指定产品的具体类型的情况下,能够创建多个产品族的产品对象。产品族和产品等级结构模式中包含的角色及其职责1.抽象工厂(Creator)角色: 抽象工厂模式的核心,包含对多个产品结构的声明,任何工厂类都必须实现这个接口。2.具体工厂( Concrete Creator)

2017-10-26 22:33:59 143

原创 工厂方法模式

1:概念: 工厂方法模式同样属于类的创建型模式又被称为多态工厂模式 。工厂方法模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品。 模式中包含的角色及其职责1.抽象工厂(Creato

2017-10-26 22:01:07 396

原创 java设计模式(1)——简单工厂模式

简单工厂模式简单工厂模式属于类的创建型模式,又叫做静态工厂方法模式。通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类模式中包含的角色及其职责1.工厂(Creator)角色 :简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类可以被外界直接调用,创建所需的产品对象。 2.抽象(Product)角色 :简单工厂模式所创建的所有对象的父类,它负责描述所有实例所共有的公

2017-10-24 21:43:19 188

转载 Heibernate三种状态

总结: 临时状态(瞬时):没有被session管理,并且数据库中没有 持久状态:被session管理,但是数据库中有 游离状态(离线):没有被session管理,但是数据库中有临时状态 (Transient)当我们通过Java的new关键字来生成一个实体对象时,这时这个实体对象就处于自由状态,如下: User user = new User(1,“GD”,25);这时user对象就处

2017-08-30 19:50:05 1224

原创 数据库——触发器

1:定义 是一种特殊的存储过程。一般的存储过程是通过存储过程名直接调用,而触发器主要是通过事件(增、删、改)进行触发而被执行的。其在表中数据发生变化时自动强制执行。常见的触发器有两种:after(for)、instead of,用于insert、update、delete事件。  after(for) 表示执行代码后,执行触发器   instead of

2017-07-14 14:21:30 163

原创 数据库——事务处理

1:定义 事务处理就是将一系列操作当做一个原子操作,要么全部执行成功,如果执行失败则保留执行期的状态。通过提交和回滚机制来实现操作,如果全部执行成功通过提交执行commit结果就会记录到数据库中,如果执行失败通过回滚操作rollback将发生错误之前的所有错误消除,回退到原来状态。说白了要做到无可挑剔的完美成功否则出一点错误都恢复到原来的现状。2:四个特征原子性(Atom

2017-07-14 14:13:05 547

原创 Statement和PreparedStatement之间的区别

StatementStatement 对象表示基本语句,其中将单个方法应用于某一目标和一组参数,以返回结果.构造方法 public Statement(Object target,String methodName, Object[] arguments)按照所给参数创建一个新的 Statement 对象,使其具有 target、methodName 和 arguments。 参数:

2017-07-13 20:58:20 343

原创 数据库的约束

约束的简介数据的完整性是指数据的正确性和一致性,可以通过定义表时定义完整性约束,也可以通过规则,索引,触发器等。约束分为两类:行级和表级,处理机制是一样的。行级约束放在列后,表级约束放在表后,多个列共用的约束放在表后。完整性约束是一种规则,不占用任何数据库空间。完整性约束存在数据字典中,在执行SQL或PL/SQL期间使用。用户可以指明约束是启用的还是禁用的,当约束启用时,他增强了数据的完整性,否则,

2017-07-10 23:14:10 392

转载 execute、executeQuery和executeUpdate之间的区别

JDBCTM中Statement接口提供的execute、executeQuery和executeUpdate之间的区别 Statement 接口提供了三种执行 SQL 语句的方法:executeQuery、executeUpdate 和 execute。使用哪一个方法由 SQL 语句所产生的内容决定。 ResultSet executeQuery(String sql) throws SQLEx

2017-07-10 22:18:38 925

空空如也

空空如也

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

TA关注的人

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