自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux下安装mysql

通过Xshell连接远程服务器和Xftp上传MySQL软件到远程。上传软件的方法在另一篇博客有写,可参考。CentOS下安装jdk及tomcat并配置环境变量1.解压mysql软件:[root@dbserver /]# tar -zxvf mysql-5.7.19-linux-glibc2.12-x86_64.tar.gz /usr/java/2.重命名:[root@d...

2023-02-17 16:42:49 152 1

原创 设计模型--创建型模型

文章目录设计模式摘要设计模式分类设计模式的六大原则单例模式什么是单例适用场景应用场景单例优缺点单例常见创建方式破坏单例模式的三种方式如何防止反射、克隆、序列化对单例模式的破坏开源项目应用实例工厂模式什么是工厂模式工厂模式分类简单工厂模式工厂方法模式抽象工厂模式简单工厂、工厂方法、抽象工厂小结开源项目应用实例建造者模式什么是建造者模式建造者模式通用组成建造者适用场景实际案例建造者模式与抽象工厂模式的...

2020-02-27 03:24:21 892

原创 Thymeleaf 基本用法

一、引用命名空间<html xmlns:th="http://www.thymeleaf.org"> 在html中引入此命名空间,可避免编辑器出现html验证错误,虽然加不加命名空间对Thymeleaf的功能没有任何影响。二、输出内容 2.1 <p th:text="#{home.welcome}">Welcome to ...

2019-01-16 13:48:44 410

原创 虚拟机类加载机制

在Java语言中,类型的加载、连接、初始化是在程序运行期间完成的,因此Java天生就具有动态扩展的特性。类加载的基本流程这七个阶段按序开始,但不意味着一个阶段结束另一个阶段才能开始。也就是说,不同的阶段往往是穿插着进行的,加载阶段中可能会激活验证的开始,而验证阶段又有可能激活准备阶段的赋值操作等,但整体的开始顺序是不会变的。而解析阶段则不一定:它在某些情况下可以在初始...

2019-01-14 01:53:16 182

原创 字节码指令简介

Java虚拟机的指令由一个字节长度的、 代表着某种特定操作含义的数字(称为操作码,Opcode)以及跟随其后的零至多个代表此操作所需参数(称为操作数,Operands)而构成。字节码指令集是一种具有鲜明特点、优劣势都很突出的指令集架构:由于限定了Java虚拟机操作码的长度为1个字节,指令集的操作码不能超过256条。 Class文件格式放弃了编译后代码中操作数长度对齐,这就意味者虚拟机处理...

2019-01-13 22:59:31 1021

原创 Class文件属性表集合详解

1.code属性最常用的属性恐怕就是Code属性了,因为大多数的方法都会有编译后的字节码指令,这些指令就存储在方法表中的Code属性中。如果一个Java程序的信息可以分为代码(方法体中的代码)和元数据(包括类、字段、方法定义以及其它信息),那么Code属性存储的就是代码,其它所有的结构存储的都是元数据。不过并非所有的方法表都有这个Code属性,比如接口或抽象类中的方法表就不存在Code属性(J...

2019-01-05 17:32:14 1784

原创 Class类文件的结构

Class文件是一组以8位字节(8-bit  bytes)为基础的二进制流,各个数据项目严格按照顺序紧凑地排列在class文件中,中间没有任何分隔符,这点和png、jpg等图片文件格式类似。当遇到需要占用8位字节以上空间的数据项时,则会按照一定的字节顺序分隔为若干个8位字节进行存储。Java虚拟机规范规定Class文件格式采用一种类似于C语言结构体的伪结构来存储数据,这种伪结构只有两种数据类型...

2019-01-05 17:10:07 295

原创 年轻代,老年代,永久代

首相明确一点,年轻代和老年代属于堆;永久代属于在Hotspot虚拟机下对方法区的实现,并不存在于堆中。 在 Java 中,堆被划分成两个不同的区域:新生代 ( Young )、老年代 ( Old)。新生代 ( Young ,垃圾回收器都采用复制算法) 又被划分为三个区域:Eden和两块Survivor(S0、S1)。每次使用Eden和一块Survivor,当回收时将Eden和Survi...

2019-01-04 11:31:37 1672

原创 永久代和元空间

永久代“PermGen space”其实指的就是方法区。不过方法区和“PermGen space”又有着本质的区别。前者是 JVM 的规范,而后者则是 JVM 规范的一种实现,并且只有 HotSpot 才有 “PermGen space”,而对于其他类型的虚拟机,如 JRockit(Oracle)、J9(IBM) 并没有“PermGen space”。由于方法区主要存储类的相关信息,所以对于动...

2019-01-04 09:24:38 234

原创 内存分配与回收策略

Java技术体系中所提倡的自动内存管理最终可以归结为自动化地解决了两个问题:给对象分配内存以及回收分配给对象的内存。对象的内存分配,往大方向讲,就是在堆上分配,对象主要分配在新生代的Eden区上,如果启动了本地线程分配缓冲,将按线程优先在TLAB上分配。少数情况下也可能会直接分配在老年代中,分配的规则并不是百分之百固定的,其细节取决于当前使用的是哪一种垃圾收集器组合,还有虚拟机中与内存相关的参...

2019-01-03 18:57:15 148

原创 垃圾收集器参数总结

参数 描述 -XX:+UseSerialGC Jvm运行在Client模式下的默认值,打开此开关后,使用Serial + Serial Old的收集器组合进行内存回收 -XX:+UseParNewGC 打开此开关后,使用ParNew + Serial Old的收集器进行垃圾回收 -XX:+UseConcMarkSweepGC 使用ParNew +...

2019-01-03 17:18:06 169

原创 理解GC日志

33.125:[GC [DefNew:3324K->152K(3712K),0.0025925 secs]3324K->152K(11904K),0.0031680 secs]100.667:[Full GC [Tenured:0K->210K(10240K),0.0149142secs]4603K->210K(19456K),[Perm:2999K->2999K(21248K)],0.015...

2019-01-03 17:10:02 157

原创 垃圾收集器

如果说收集算法是内存回收的方法论,垃圾收集器就是内存回收的具体实现。 Serial 收集器 Serial 收集器是最基本、历史最悠久的收集器。这个收集器是一个单线程收集器,但它的 “单线程” 的意义并不仅仅是说明它只会使用一个 CPU 或者一条收集线程去完成垃圾收集工作,更重要的是在它进行垃圾收集时,必须暂停其他所有的工作线程(Sun 将这件事情称之为 “Stop The Wo...

2019-01-03 16:54:57 198

原创 HotSpot的算法实现

一、枚举根节点 从可达性分析中从GC Roots节点找引用链这个操作为例,可作为GC Roots的节点主要在全局性的引用(例如常量或类静态属性)与执行上下文(例如栈帧中的本地变量表)中,现在很多应用仅仅方法区就有数百兆,如果要逐个检查这里面的引用,那么必然会消耗很多时间。        另外,可达性分析对执行时间的敏感还体现在GC停顿上,因为这项分析工作在一个能确保一致性的快照中进行——这...

2019-01-03 14:29:39 165

原创 垃圾收集算法

标记-清除算法算法的执行过程与名字一样,先标记所有需要回收的对象,在标记完成后统一回收所有被标记的对象。该算法有两个问题:标记和清除过程效率不高。主要由于垃圾收集器需要从GC Roots根对象中遍历所有可达的对象,并给这些对象加上一个标记,表明此对象在清除的时候被跳过,然后在清除阶段,垃圾收集器会从Java堆中从头到尾进行遍历,如果有对象没有被打上标记,那么这个对象就会被清除。显然遍历的效率...

2019-01-02 22:30:18 124

原创 Java引用分类(强、软、弱、虚)

强引用就是指在程序代码之中普遍存在的,类似“Objcct obj = ncew Obicct()”这类的引用,只要强引用还存在,垃圾收集器永远不会回收掉被引用的对象。软引用是用来描述一些还有 用但并非必需的对象。对于软引用关联着的对象,在系统将要发生内存溢出异常之前, 将会把这些对象列进回收范围之中进行第二次回收。如果这次回收还没有足够的内存,才会抛出内存溢出异常。在JDK 1.2之后,提供了So...

2019-01-02 22:17:02 301

原创 判断Java对象是否存活

判断对象是否存活的算法包括:引用计数算法 可达性分析算法引用计数算法(Reference Counting)给对象中添加一个引用计数器,每当有一个地方引用它时,计数器加1;当引用失效时,计数器值减1;任何时刻计数器为0的对象就是不能再被引用的。例如Object-C,Python语音使用引用计数算法进行内存管理。Java虚拟机没有选用引用计数器算法来管理内存,其中最主要的原有是它很难解决...

2019-01-02 22:06:17 294

原创 HotSpot虚拟机对象探索

一、对象的创建1.检查虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程。2.分配内存在类加载检查通过后,接下来虚拟机将为新生对象分配内存。假设Java堆中内存是绝对规整的,所有用过的内存都放在一边,空闲的内存放在另一边,中间放着一个指针作为分界...

2019-01-02 20:57:09 140

原创 Java内存区域(运行时数据区域)

Java运行时数据区 1.程序计数器程序计数器(Program Counter Register)是一块较小的内存空间,它可以看做是当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里(仅是概念模型,各种虚拟机可能会通过一些更高效的方式去实现),字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令、分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数...

2019-01-02 20:22:27 142

原创 JVM中的直接引用和符号引用

类在虚拟机中的生命周期如下:加载、验证、准备、解析、初始化、使用和卸载7个阶段。在解析阶段Class文件中的符号引用被替换为运行时常量池中的直接引用。常量池(constant pool)指的是在编译期被确定,并被保存在已编译的.class文件中的一些数据。它包括了关于类、方法、接口等中的常量,也包括字符串常量。1.符号引用(Symbolic References):  符号引用以一...

2019-01-02 20:02:16 293

原创 一、走进Java

1.Java技术体系结构广义上讲,所有运行于java虚拟机上的语言和相关程序都属于Java技术体系结构的一员。传统意义上讲,Sun公司定义的Java技术体系包括以下几个组成部分:Java程序设计语言 Java虚拟机 Class文件格式 Java API 类库 第三方Java类库tips: JDK:Java程序设计语言、Java虚拟机、Java API 类库JRE...

2019-01-02 17:08:13 158

原创 CentOS下安装jdk及tomcat并配置环境变量

准备工具:                  Linux下的jdk 、Tomcat、MySQL软件;                  Xshell:通过互联网安全的连接到远程主机;                  Xftp:用于向远程主机传递安装程序。以上程序都可以通过我的百度云获取:链接:https://pan.baidu.com/s/1WXMvEd_e4xuA5KVdQq4...

2018-11-15 14:46:32 2153

原创 SpringMVC原理

2018-11-14 16:07:12 150

原创 接口和抽象类

接口和抽象类的概念不一样。接口是对动作的抽象,抽象类是对根源的抽象。抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么。比如,男人,女人,这两个类(如果是类的话……),他们的抽象类是人。说明,他们都是人。人可以吃东西,狗也可以吃东西,你可以把“吃东西”定义成一个接口,然后让这些类去实现它.所以,在高级语言上,一个类只能继承一个类(抽象类)(正如人不可能同时是生物和非生物),...

2018-11-13 16:07:00 110

原创 equals方法重写

==  判断的是两个对象是否具有相同引用要想判断两个对象是否相等,不能通过比较两个对象的引用是否相等,这是永远都得不到相等的结果的,因为两个对象的引用永远不会相等,所以正确的比较方法是直接比较这两个对象,比较这两个对象的实质是不是一样的,即这两个对象里面的内容是不是相同的,通过比较这两个对象的属性值是否相同而决定这两个对象是否相等,即可通过重写equals方法来实现这个功能。public...

2018-11-13 15:54:18 493

原创 内部类

⒈成员内部类⒉静态内部类⒊局部内部类⒋匿名内部类将一个类的定义放在另一个类的定义内部,这就是内部类public class Parcel { class Contents { private int i = 11; public int value() { return i; } } class Destination { pr...

2018-11-13 15:29:41 160

原创 普通代码块和静态代码块

代码块代码块分为普通代码块和构造代码块普通代码块:在方法或语句中出现的{},用的比较少。执行顺序是按声明顺序执行。eg: public static void main(String[] args) { { System.out.println("普通代码块-先声明"); } System.out.print...

2018-11-13 15:21:17 781 2

原创 static

static关键字是隶属于类而非对象。这也就意味着不管声明了几个对象,static关键字所修饰的空间只占用一份。改变了之后,所有的引用它的都会发生变化。静态成员变量为所有类的对象共享。不像对象之间的变量是无影响的。所以对于static修饰的成员变量或者静态代码块是在类加载的时候已经装载。这种特性可以做一些初始化的工作而且保证只初始化了一次。作用在包上 (import static(注意这里不是...

2018-11-13 15:09:40 107

原创 final类和方法

final类可以用于阻止继承,防止人们利用这个类的子类。标准形式如下:public final class Teacher extends Person{}类中特定方法也可以被声明为final,子类就不能覆盖这个方法(final中的所有方法自动地成为final方法)。public final class Teacher extends Person{ publ...

2018-11-13 13:27:08 1586

原创 URL中文编码乱码

解决方法:encodeURI()<script type="text/javascript"> //编码 var url = encodeURI("http://www.qcby.com/倾城教育"); document.write(url + "<br>"); //解码 var url = decodeURI(url); ...

2018-11-12 17:31:39 189

原创 ssm 模糊查询

BusinessMapper.xml <sql id="Base_Column_List" > name,pic </sql><select id="selectByNameBusiness" resultMap="BaseResultMap" > select <include refid="Base

2018-11-12 17:24:59 890

原创 Error configuring application listener of class org.springframework.web.context.ContextLoaderListene

Error configuring application listener of class org.springframework.web.context.ContextLoaderListener1.右击项目-->properties-->Add-->Java Build Path Entries-->选择Maven Dependencies...

2018-11-12 13:20:25 116

原创 ajax请求后台结果 后台处理成功了页面还报了404错误

注意添加@ResponseBody  

2018-11-12 11:58:13 674

原创 Error creating bean with name 'lhltest': Unsatisfied

严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListenerorg.springframework.beans.factory.UnsatisfiedDependencyException: Er...

2018-11-09 15:08:49 374

原创 JSP 语法

脚本程序脚本程序可以包含任意量的Java语句、变量、方法或表达式,只要它们在脚本语言中是有效的。脚本程序的语法格式:<% 代码片段 %><html><head><title>Hello World</title></head><body>Hello World!<br/&am

2018-11-07 10:34:54 137

原创 jsp处理过程

以下步骤表明了 Web 服务器是如何使用JSP来创建网页的: 就像其他普通的网页一样,您的浏览器发送一个 HTTP 请求给服务器。 Web 服务器识别出这是一个对 JSP 网页的请求,并且将该请求传递给 JSP 引擎。通过使用 URL或者 .jsp 文件来完成。 JSP 引擎从磁盘中载入 JSP 文件,然后将它们转化为 Servlet。这种转化只是简单地将所有模板文本改用...

2018-11-07 10:16:45 880

原创 jsp之jstl标签

一.在java项目中引入jstl:1.jar包的获取:首先通过 maven的pom文件将standard-1.1.2.jar和 jstl-1.2.jar这两个jar包加入项目: <dependency> <groupId>jstl</groupId> <artifactId>...

2018-11-06 13:00:34 170

原创 springMVC项目创建

结合maven一起使用,首先通过File-->new-->Maven Project创建maven项目,点击Finish完成创建。创建后目录结构如下:pom.xml中存储的是maven依赖,从而导入相关jar包。在src中建立如下目录结构:pom.xml文件内容如下:<project xmlns="http://maven.apache....

2018-10-31 21:43:14 1193

原创 java实现mysql数据库增删改查

1.连接数据库:import java.sql.Connection;import java.sql.DriverManager;public class DBConnection { static String driver = "com.mysql.jdbc.Driver"; static String url= "jdbc:mysql://localhost:3306/myd...

2018-10-30 13:44:34 1829

原创 Mysql Join语法解析与性能分析

部分内容采自:https://www.cnblogs.com/BeginMan/p/3754322.htmltable1:左表;table2:右表。JOIN 按照功能大致分为如下三类:INNER JOIN(内连接,或等值连接):取得两个表中存在连接匹配关系的记录。LEFT JOIN(左连接):取得左表(table1)完全记录,即是右表(table2)并无对应匹配记录。RIGHT...

2018-10-30 13:21:43 129

空空如也

空空如也

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

TA关注的人

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