自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 JVM(十)JVM类的加载过程

在讲JVM类的加载过程之前,我们要先来看一看什么是类的加载?什么是类的加载器,类的加载器有哪些?最后来看一看类的加载过程?类的加载: 定义:把类的.class文件加载到内存中的过程,就叫做类的加载。 我们可以看一下这幅架构图,红色的向下箭头就表示类的加载。这就是把类的.class文件加载到JVM内存中。类的加载器:背景: 前面我们看了类的加载是什么。那么在JVM中,我们要把文件加载到内存中需要怎么操作呢?这时类加载器...

2020-09-02 19:03:45 251

原创 JVM(九)有关JVM的调优的见解

背景: 这篇文章并不是仔细来详解有关JVM调优的方式,作为一个初学JVM的新手要做到如何如何精通各种调优规则对于我来说确实是太勉强了。那我为什么要写下这篇博客呢?对于个人而来主要是为了把知识体系先系统化,以后进行细枝末节的补充。而这篇文章记录的只是在视频学习中的一些理论上的调优规则,毕竟本人并没有任何实际实战经验。在日后发展学习中,会慢慢对内容进行补充和完善。---------------------------------------------------------------...

2020-08-26 16:37:41 217

转载 JVM(八)垃圾回收器

背景:本来还是想写一篇垃圾回收器的文章,但是看见一博主的文章把我想到内容都涉及并且进行补充,扩展,所以我想自己在做这件事是及其无聊,所以这里转载一篇好文,供大家分享与学习。一些需要注意的地方会用红色字体进行标记....-------------------------------------------------------------------------------------------------------------------------------------------------

2020-08-25 19:07:56 203

原创 JVM(七)垃圾回收算法

垃圾回收算法:标记清除 标记整理 复制算法 基于上面三种方式衍生的算法:分代垃圾回收算法标记清除算法:(有垃圾碎片) ()内容表示缺陷标记整理算法:(不会有内存碎片,整理过程中改变了原始对象的地址,导致效率下降)复制算法:(不会有内存碎片,需要占用双倍内存空间)...

2020-08-25 17:14:28 307

原创 JVM(六)垃圾回收机制

什么是垃圾?没有任何引用指向的对象或者多个对象(循环引用)就叫做垃圾。不同语言对对象的处理是什么?c语言申请删除内存:malloc freec++语言申请删除内存:new deletejava语言申请删除内存:new 自动回收/也可以通过finalize方法收回,但是不推荐使用如何定位垃圾:引用技术算法 可达性分析算法引用技术算法图:每个对象都会有保存一个计数的值,当计数的值为0时,说明该对象可以被回收。引用计数算法的缺点:(...

2020-08-25 16:12:48 154

原创 JVM(四)堆

我们已经知道了JVM的架构主要分为三部分:类加载器,JVM内存结构,执行引擎。JVM内存结构又分为五部分,这节来简单的看看有关栈知识点。虚拟机栈: 定义:通过new关键字,创建的对象都会保存在堆中。 特点:堆空间是线程共享的,堆中对象使用要考虑到多线程并发安全问题 有垃圾回收机制。既然通过new关键字创建的对象都会保存在堆内存中,那么这是不是就意味着堆中只有new创建的对象呢?答案显然是错误的,我们看下图:new的对象一般来说会放置在堆内存的新生代中,当...

2020-08-18 09:26:06 110

原创 JVM(三)虚拟机栈

我们已经知道了JVM的架构主要分为三部分:类加载器,JVM内存结构,执行引擎。JVM内存结构又分为五部分,这节来简单的看看有关虚拟机栈知识点。虚拟机栈: 定义:JAVA中线程的运行需要被分配内存空间,而这个内存空间就叫做栈。 特点:线程私有的 没有垃圾回收机制。 栈区是由一个个单独的栈(线程栈)组成的。 JVM为每个线程都会创建一个栈(线程栈),用于存放该线程执行的信息(实际参数,局部变量)。 JVM中线程栈的每个方法被调用都会创建一个栈帧(存储局部变量,操作...

2020-08-17 11:35:38 212

原创 JVM(二)程序计数器

我们已经知道了JVM的架构主要分为三部分:类加载器,JVM内存结构,执行引擎。JVM内存结构又分为五部分,这节来简单的看看有关程序计算器知识点。程序计数器: 定义:是用来保存下一条指令执行的地址。 特点:线程私有,不存在内存溢出问题。简要的看下程序计数器的执行: 这是一段class字节码文件,它是由一条一条的指令构成的。指令前面的0 3 4等等数字表示一个虚拟的地址,当class字节码被类加载器加载到JVM内存后每一个虚拟地址会...

2020-08-17 10:02:49 243

原创 JVM(一)JVM架构简介

首先,要学习JVM,我们需要先从JVM的整体架构来观察。由整体到局部,做到心中有数。正在上传…重新上传取消正在上传…重新上传取消由JVM的架构图可知,JVM的学习主要分成三块:类加载器,JVM内存结构,执行引擎。这三块也就是我们学习的重中之重。类加载器的作用:把class文件加载到JVM内存当中。(class是字节码文件,是编译器把.java文件编译生成的.class文件)JVM内存结构:把字节码中信息的存放分为5块区域。堆区,栈区,本地方法区,程序计数器区和方法区。执行引擎的作用:

2020-08-17 09:29:57 457

原创 JAVA中math类的几个方法

说一下Java的math类中几个常见的方法:1.Math.random() 返回一个[0.0,1.0)之间的伪随机数 ,左开右闭.2.Math.round() 四舍五入 Math.round(2.6) ----> 结果为3 Math.round(-1.5) ----> 结果为-13.Math.pow(x...

2019-11-11 19:51:43 397

原创 JAVA中字符串常见方法

1.equals() ---->比较两个字符串2.length() ---->获取字符串长度3.indexOf() ---->由字符串找索引位置4.charAt() ---->由索引定位字符5.split() ----&...

2019-11-09 19:44:33 100

原创 JAVA中类型转换方法

1、Obejct---->String类型String a=ob.toString()2. String ----> Int类型方法一:int i = Integer.parseInt(str); 方法二:int i = Integer.valueOf(str).intValue();3. Int ----> String类型方法一:...

2019-11-09 19:44:05 290

原创 mybatis学习(五)

第四天类型转换器 自定义类型转换器 整合log 4j日志 缓存--------------------------------------------------------------------------------------------------------------------类型转换器在mybatis框架中,我们可以对实体类中的属性和数据表中的字段进行自动映射...

2019-10-24 11:50:21 244

原创 mybatis学习(四)

第四天Mapper动态代理 动态sql语句 自定义类转换器Mappe动态代理(本质用接口去操作代替直接进行内部方法的操作方式,和dao层差不多)mapper接口代理实现编写规则:映射文件中namespace要等于接口的全路径名称 映射文件中sql语句id要等于接口的方法名称 映射文件中传入参数类型要等于接口方法的传入参数类型 映射文件中返回结果集类型要等于接口方法的返回...

2019-10-22 17:41:26 265

原创 mybatis学习(三)

第三天:Mybatis的crud操作 配置文件常用标签和属性 事务操作 #{} ${}占位符区别Mybatis的crud操作<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://myba...

2019-10-22 12:22:48 226

转载 mybatis学习(二)

第二天:执行过程(工作原理) 功能架构 底层实现执行过程第一步: InputStream is = Resources.class.getResourceAsStream("/mybatis.xml"); 加载mybatis.xml核心配置文件,得到一个流对象 is ..第二步: SqlSessionFactor...

2019-10-21 20:33:18 114

原创 mybatis学习(一)

思維导图:第一天:概念 底层框架 环境配置 入门案例概念: mybatis和hibernate一样,都是作用在j2ee三层架构Dao/数据持久层上的一个框架。它的底层对jdbc的操作进行了封装,使得开发者只需要关注sql语句,而不用花时间去处理注册驱动,创建连接,创建statement等过程,属于apache公司。底层思想 mybatis和hi...

2019-10-21 19:18:29 138

原创 三层架构和mvc设计模式的区别

网上很多文章都一大段一大段解释三层架构和mvc设计模式的区别,总是理论理论,还有一些人甚至自己都无法理解两者区别就照搬别人的帖子.......这里我用通俗的语言解释一下:j2ee三层架构和mvc设计模式的区别:在做企业应用开发项目时候,采用三层架构:表示层,业务逻辑层,数据持久层。表示层负责接收用户请求、转发请求、显示数据等;业务层负责组织业务逻辑;持久层负责持久化业务对象。补充...

2019-10-13 11:54:23 757 1

原创 (五)mysql索引优化--explain详解

首先:索引优化和sql语句优化不是同一级别的概念,系统性能优化和sql语句优化也不是同一级别的概念。SQL语句的优化主要包括三个问题,即如何发现有问题的SQL、如何分析SQL的执行计划以及如何优化SQL 怎么发现有问题的SQL?通过MySQL慢查询日志对有效率问题的SQL进行监控 如何分析SQL的执行计划?通过explain分析SQL的执行计划 如何优...

2019-10-10 11:10:06 151

原创 mysql随机生成 姓名+电话

/**随机姓名**/drop function if exists generateusername;delimiter //create function generateusername() returns varchar(255) charset utf8 deterministicbegin declare xing varchar(2056) default '...

2019-10-09 22:45:52 743

转载 (四)mysql的优化--索引

一、索引在之前,我对索引有以下的认知:索引可以加快数据库的检索速度 表经常进行INSERT/UPDATE/DELETE操作就不要建立索引了,换言之:索引会降低插入、删除、修改等维护任务的速度。 索引需要占物理和数据空间。 了解过索引的最左匹配原则 知道索引的分类:聚集索引和非聚集索引 Mysql支持Hash索引和B+树索引两种看起来好像啥都知道,但面试让你说的时候可能就GG了:...

2019-10-09 19:37:13 257

转载 (三)mysql的优化

实践中如何优化MySQL实践中,MySQL的优化主要涉及SQL语句及索引的优化、数据表结构的优化、系统配置的优化和硬件的优化四个方面,如下图所示:SQL语句及索引的优化SQL语句的优化SQL语句的优化主要包括三个问题,即如何发现有问题的SQL、如何分析SQL的执行计划以及如何优化SQL,下面将逐一解释。怎么发现有问题的SQL?(通过MySQL慢查询日志对有效率问题的SQL进...

2019-10-09 17:10:41 148 1

原创 (二)Mylsam和Innodb底层的区别

相同:都是mysql自带的存储引擎。区别:myisam支持全文索引,快速处理语句,不支持事务,表锁。 innodb支持事务高并发操作,外键,行级锁,早期不支持全文索引,后来mysql5.6后全面支持。底层: 两者底层都采用的数据结构是B+树,但是实现方式又略有不同。MyIsam的B+树采用的是非聚集索引(辅助索引),INNODB的B+树采用的聚集索引。MyISA...

2019-10-09 14:08:22 292

原创 数据结构之B+树

B+树也是B树的一种,也是多叉树。相同点:根结点的至少有1个元素 每个结点元素数:m/2 <= k <= m-1 /** m是树的深度 **/不同点:B+树有三种结点:根结点 内部结点 叶子结点 内部结点存储索引,不存储数据。 叶子结点存储数据 内部结点中的key都按照从小到大的顺序排列,对于内部结点中的一个key,左树中的所有key都小于它,右子树...

2019-10-09 11:27:02 394

原创 数据结构之B-树

首先:在讲B树之前先要明确一个信息,B-树叫B树,不是叫B减树,没有B减树这种数据结构。只有B+树(B加树)这种数据结构。一.二叉树二叉树是n(n>=0)个结点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根结点和两棵互不相交的、分别称为根结点的左子树和右子树组成。图展示了一棵普通二叉树:二.二叉排序树二叉排序树(Binary Sort Tree)又称二叉查...

2019-10-07 22:14:32 356

原创 (一)Mysql底层架构(工作原理)

mysql底层结构用户:进行数据库连接的人。支持接口:是第三方语言提供和数据库连接的接口,常见的有jdbc,odbc,c的标准api函数等等。连接层:提供与用户的连接服务,用于验证登录服务。服务层:完成大多数的核心服务功能。有sql接口,解析器parser,优化器optimizer,查询缓存 cache/buffer 。 服务层执行过程:sql语句通过sql接口,服务...

2019-10-07 18:19:55 2485 1

原创 mysql学习笔记(十一)外键

一:外键概念:外键是为了加强两个表数据之间联系而引入的一种约束。把一张A表的一列字段或多列字段作B表的主键,那么该字段就称为A表的外键。 外键实现:键的作用是维护两表之间数据的完整性,但是如果要目标表中的字段在源表中显示要用到多表的连接.二:简单实例--student表--create table `stu` ( `stu_id` int(11) not null au...

2019-10-04 17:14:26 145

原创 mysql学习笔记(十)索引

索引:一个索引是存储的表中一个特定列的值数据结构(最常见的是B-Tree)。索引是在表的列上创建。所以,要记住的关键点是索引包含一个表中列的值,并且这些值存储在一个数据结构中,索引是一种数据结构,一般是B-TREE 。MySQL索引方法有几种:MySQL目前主要有以下几种索引方法:B-Tree,Hash,R-Tree。唯一索引: index 可以为空,可以不唯一普通索引:unique...

2019-09-30 22:32:19 109

原创 mysql学习笔记(九)函数和存储过程

一.函数和存储过程函数和存储过程本质上没有区别,都是先定义一些sql语句将其存储起来,然后在外部对其进行调用。区别: 函数必须有1个返回值(因为函数名称定义时候returns关键字),存储过程可以不需要返回值,也可以返回多个值。类似于java中int类型函数只有一个返回值,void函数不需要返回值,但存储过程是一个特别的“void",因为它还能进行多个值返回 。存储过程的返回值是通过参...

2019-09-30 20:58:41 185

原创 mysql学习笔记(八)事务管理

1.什么是事务(AICD)?事务通俗的说就是数据库中一系列sql操作,如果操作成功,就进行提交,如果操作失败,就回滚至sql语句操作前的状态。2.事务的特征原子性:数据库的操作要么全部操作完成,要么不操作,不能停留在中间的某个环节。 一致性:事务执行的结果必须是使数据库从一个一致性状态转变到另一个一致性状态,因此当数据库只包含成功事务提交的结果时,就能说数据库处于一致性状态。 持...

2019-09-29 22:49:34 193

原创 mysql学习笔记(八)mysql中的int(n) ,char(n),varchar(n)

一. int(n): int(n)的n是显示宽度,默认为11,而不是我们直觉上认为的数长度。比如:很多人,认为int(5)是指储存的数不能超过99999,但实际上存储数可以大于99999,这个5只是显示的宽度。在比如:申明 id int(5) 存储数字10。select id 会显示10,只是机器帮我们自动省略前面的0位。如果声明写成 id1 int(5) zer...

2019-09-29 11:53:38 295

原创 mysql学习笔记(七)字符集编码

一.基本概念位:数据存储的最小单位,二进制的0或1就是1个位。字节:8位等于一个字节。字符集(又名字符):字符集是各种符号的集合,比如数字1,2,3 ,字母a,b,c,d等等。校对集:校对集是字母和符号的校对标准。校对集影响着字符的排序和搜索。字节和字符区别:字节是数据存储的单位,而字符是各种符合的集合。编码:将“字符”变为1个或多个"字节"的过程。解码:与编码的过程相...

2019-09-29 11:28:53 98

原创 mysql学习笔记(六) mysql的搜索引擎

一:mysql常见引擎: Myisam , Innodb, Memory, CSV 。二:常用mysql两个搜索引擎的区别:1、MyISAM:它是基于传统的ISAM类型,ISAM是Indexed Sequential Access Method (有索引的顺序访问方法) 的缩写,它是存储记录和文件的标准方法。支持全文索引,不支持事务,表锁。2、Inno...

2019-09-29 07:57:15 137

原创 java中int和Integer的转化

自动装箱:基本数据类型--->引用类型int--->Integerint a=10;Integer A=new Integer(a); //编译器会自动调用Integer.valueOf(a);或:Integer A=Integer.valueOf(a); //这种方法是本质自动拆箱:引用类型--->基本数据类型int--...

2019-09-28 05:19:07 354

转载 Java的碎片知识点

1.执行下面两条语句System.out.println(1+2+"b"); // 3bSystem.out.println("b"+1+2); // b+121.第一条输出3b 。原因是java中低类型遇到高类型向上自动转型为高类型。int < String类型,所以int自动强转为String. 先执行 1+2=3,3遇到"b", 强转为"3b"。...

2019-09-28 04:43:38 110

原创 mysql学习笔记(五) 数据库表的查询基本操作

数据库表的查询基本操作DQL(Data Query Language): 查询操作。一.单表查询:一.普通查询--查询student表中的所有数据select *from student --查询student表中指定字段select id, name from student --查询student表中指定数据select id,name from student...

2019-09-28 00:20:58 246

原创 mysql学习笔记(四) 数据库表的增删改基本操作

数据库表的增删改基本操作DML:增删改基本一.插入数据:create table student(id int auto_increment primary key ,name varchar(10),sex varchar(10));-- 插入数据insert into student(id,name) values(1,'lilei'); -...

2019-09-27 20:15:03 143

原创 mysql学习笔记(三)SQL介绍和表级的操作

一:SQL的分类SQL(Structure Query language)分为:DCL(Data Control Language) 数据控制语言:用于创建用户,授予用户权限,删除用户权限等等。 DDL (Data Define Language)数据定义语言:用户创建数据库,表。对表字段的修改,删除等等。 DML(Data Manipulate Language) 数据操...

2019-09-27 19:52:21 93

原创 使用DBUtils报错connot create bean 错误解决的办法

public class c3p0_connection { public static void main(String[] args) throws Exception { ComboPooledDataSource source = new ComboPooledDataSource();//创建对象 String sql="select * from ...

2019-09-26 10:29:17 1020

原创 Navicat工具如何将Excel文档导入?

1.如果安装的office是64位的,Navicat也要64位才行,32位的也是一样。2.在导入的时候要保持excel必须是打开的状态。另外补充:1:栏位名行:是指excel表中字段(列的标题)是第几行2.第一个数据行:从excel第几行开始导入数据3.最后一个数据行:在exceld第几行停止导入数据...

2019-09-25 12:00:22 254

c3p0 jar+mysql 8.0.15+dbutils.rar

c3p0 jar+mysql 8.0.15+dbutils 三个jar工具类一同打包下载。

2019-05-15

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

TA关注的人

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