- 博客(121)
- 资源 (7)
- 收藏
- 关注

原创 【二】深入理解Java虚拟机の虚拟机执行子系统
目录第三部分-虚拟机执行子系统6.类文件结构7.虚拟机类加载机制8.虚拟机字节码执行引擎8.1方法调用8.1.1解析调用8.1.2分派调用第四部分-程序编译与代码优化10.早期(编译期)优化javac编译器java语法糖11.晚期(运行期)优化6.类文件结构Java程序*.java —— Java编译器 —— 字节码*.class —— j...
2019-09-09 15:37:16
291

原创 【三】深入理解Java虚拟机の高效并发
目录12.java内存模型与线程12.1Java内存模型JMM主内存与工作内存volatile原子性可见性(Visibility):有序性(Ordering):先行发生原则12.2 java与线程Java线程调度13.线程安全与锁优化13.1线程安全1.不可变2.互斥同步(悲观锁)——加锁3.非阻塞同步(乐观锁)——CAS4.无同步方...
2019-09-09 15:36:06
706

原创 【一】深入理解Java虚拟机の内存与垃圾回收
[深入理解java虚拟机](https://www.zybuluo.com/Yano/note/321063)目录1.走进Java2.Java内存区域2.1 对象创建过程:2.2 对象的内存布局:2.3 对象的访问:2.4String 类和常量池2.5 Integer常量池3.垃圾收集器与内存分配策略对象存活判断3.1 垃圾回收3.1.1垃圾收集器...
2019-08-29 21:38:40
447

原创 MySQL 是怎样运行的:从根儿上理解 MySQL——简笔
MySQL的调控按钮 —— 启动选项和系统变量乱码的前世今生 —— 字符集和比较规则从一条记录说起—— InnoDB 记录结构盛放记录的大盒子 —— InnoDB 数据页结构快速查询的秘籍 —— B+ 树索引好东西也得先学会怎么用 —— B+ 树索引的使用数据的家 —— MySQL 的数据目录存放页面的大池子 —— InnoDB 的表空间条条大路通罗马 —— ...
2019-08-25 17:10:27
1361

原创 《并发编程的艺术》读书笔记
1.并发编程基础CPU:CPU是计算机的核心,其负责承担计算机的计算任务。这里我们比喻为一个工厂进程:学术上说,进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分配和调度的一个独立单位,是应用程序运行的载体。我们这里将进程比喻为工厂的车间,它代表CPU所能处理的单个任务。任一时刻,CPU总是运行一个进程,其他进程处于非运行状态。线程:在早期的操作系...
2019-08-06 22:24:55
633
原创 Linux命令
linux dump内存分析文件https://www.cnblogs.com/kongzhongqijing/articles/3621163.html#jmap -dump:live,format=b,file=heap.bin <pid>#线上用tomcat用户执行命令,然后导入MAT分析(该命令会暂停应用)sudo -u tomcat /home/q/java/default/bin/jmap -dump:live,format=b,file=/home/q/memdump/me
2021-06-09 22:43:20
487
原创 String转BigDecimal转Double
public static void main(String[] args) { String s = "123.94752719"; //String转BigDecimal BigDecimal big = new BigDecimal(s); System.out.println(big); //123.94752719 //BigDecimal转Double保留小数(几个0就是几位小数) Strin
2020-09-01 22:27:42
1131
原创 04Mybatis动态SQL
MyBatis 动态SQLifchoose (when, otherwise)trim (where, set)foreachif动态 SQL 通常要做的事情是有条件地包含 where 子句的一部分。比如:<select id="findActiveBlogWithTitleLike" resultType="Blog"> SELECT * FROM BLOG WHERE state = ‘ACTIVE’ <if test="title != null"&
2020-06-02 10:36:29
172
原创 03Mapper映射文件
MyBatis-映射文件SQL 映射文件有很少的几个顶级元素(按照它们应该被定义的顺序):cache – 给定命名空间的缓存配置。cache-ref – 其他命名空间缓存配置的引用。resultMap – 是最复杂也是最强大的元素,用来描述如何从数据库结果集中来加载对象。sql – 可被其他语句引用的可重用语句块。insert – 映射插入语句update – 映射更新语句delete – 映射删除语句select – 映射查询语句insert/update/delete<
2020-06-02 10:16:11
388
原创 02Mybatis全局配置文件
Mybatis全局配置文件MyBatis 的配置文件包含了影响 MyBatis 行为甚深的设置( settings)和属性( properties)信息。文档的顶层结构如下:configuration 配置properties 属性settings 设置typeAliases 类型命名typeHandlers 类型处理器objectFactory 对象工厂plugins 插件environments 环境environment 环境变量transactionManager 事务管
2020-06-02 09:44:38
168
原创 01Mybatis入门程序
Mybatis原理入门GitHub:https://github.com/mybatisweb项目:https://github.com/mybatis/jpetstore-6MyBatis中文官网Mybatis-Hello程序Mybatis–Hello-easy1、创建JavaBean实体类2、创建MyBatis全局配置文件MyBatis 的全局配置文件包含了影响 MyBatis 行为甚深的设置( settings)和属性( properties)信息、如数据库连接池、事务管理器信息等。指
2020-06-02 09:34:32
154
原创 SSM配置文件笔记
Spring:src目录下新建applicationContext.xml文件<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-inst...
2019-11-27 11:30:56
165
转载 Maven整合SSM框架相关的配置文件
关于Spring、SpringMVC、Mybatis三大框架各自所需要的框架配置文件有Spring的applicationContext、SpringMVC的Springmvc.xml以及Mybatis的mybatis.xml。本文讲述的SSM框架整合时,springmvc配置文件依然不变,而将mybatis配置文件整合到applicationContext.xml之中,这样可以节省配置文件,当然...
2019-11-26 11:51:08
211
原创 六、设计模式之Decorator装饰者模式
设计模式之Decorator装饰者模式1、解决问题定义:动态的给一个对象添加一些额外的功能职责,就增加功能来说,装饰者模式比生成子类更加灵活。解决问题的思路:如何透明的给一个对象增加功能,即给一个对象添加功能却不能让这个对象知道,也就是说不能修改这个对象通过定义一个抽象类,让这个类实现与被修饰对象相同的接口,然后在具体的实现类中转调被修饰的对象,在转调前后增添一些额外的功能UM...
2019-11-05 21:02:37
167
原创 五、设计模式之Builder建造者模式
设计模式之Builder建造者模式1、结构说明定义:将一个复杂对象的构建与他的表示分离,使得同样的构建过程可以创建不同的表示。解决问题的思路: 怎样实现同样的构建过程可以创建不同的表示?先将构建过程独立出来——Director:指导装配过程,但是不负责每一步的具体实现具体实现每一步的对象——Builder:负责每一步的具体实现UML图Builder:抽象的建造者接口,定义...
2019-11-05 11:20:30
120
原创 【秒杀】项目问题
【MYSQL】 3719warning(s): 3719 'utf8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous...
2019-10-27 10:46:20
359
转载 【四】算法入门分析----回溯
一、简单概述回溯法(back tracking)(探索与回溯法)是一种选优搜索法,又称为试探法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。==回溯法按深度优先策略搜索问题的解空间树。==首先从根节点出发搜索解空间树,当算法搜索至解空间树的某一节点时,先利...
2019-10-19 16:01:13
396
转载 【三】算法入门分析----贪心算法
一、基本概念:所谓贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。贪心算法没有固定的算法框架,算法设计的关键是贪心策略的选择。必须注意的是,贪心算法不是对所有问题都能得到整体最优解,选择的贪心策略必须具备无后效性,即某个状态以后的过程不会影响以前的状态,只与当前状态有关。所以对所采用的贪心策略一定要仔细分...
2019-10-19 14:40:25
170
转载 【二】算法入门分析----动态规划
一、基本概念动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划。二、基本思想与策略基本思想与分治法类似,也是将待求解的问题分解为若干个子问题(阶段),按顺序求解子阶段,前一子问题的解,为后一子问题的求解提供了有用的信息。在求解任一子问题时,列出各种可能的局部解,通过决策保留那些有可能达...
2019-10-19 11:49:15
133
转载 【一】算法入门分析----分治算法
分治算法一、基本概念字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)二、基本思想及策略分治法的设计思想是:将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各...
2019-10-18 21:35:21
231
原创 Redis学习笔记
一、什么是Redis?Redis 是一个使用 C 语言写成的,开源的 key-value 数据库。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set –有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都...
2019-09-18 11:02:38
222
转载 消息队列MQ-面试题
目录1.什么是消息队列?2.为什么要使用消息队列?1 解耦2 异步处理、3 削峰3.使用消息队列带来的一些问题4.JMS两种消息模型5.消息队列由哪些角色组成?6.常见消息中间件比较7.如何保证消息队列是高可用的?RocketMQkafka8.如何保证消息不被重复消费(幂等性)9.如何保证生产者的发送消息的可靠性?RabbitMQ1...
2019-09-18 10:53:15
5361
转载 【四】分布式の分布式session共享
分布式会话是什么?首先,我们知道浏览器有个cookie,在一段时间内这个cookie都存在,然后每次发请求过来都带上一个特殊的jsessionid cookie,就根据这个东西,在服务端可以维护一个对应的session域,里面可以放点儿数据。其次,单系统的时候session是不存在问题的。分布式系统出现session问题的场景:比如系统部署了3台机器,用户登录的时候,负载均衡到了其中的...
2019-09-17 16:06:02
184
转载 【三】分布式の负载均衡
什么是负载均衡我们一般会把多台机器组成一个集群对外提供服务。然而,我们的网站对外提供的访问入口都是一个,比如 www.taobao.com。那么当用户在浏览器输入 www.taobao.com 的时候如何将用户的请求分发到集群中不同的机器上呢,这就是负载均衡在做的事情。当前大多数的互联网系统都使用了服务器集群技术,集群即将相同服务部署在多台服务器上构成一个集群整体对外提供服务。这些集群可以...
2019-09-17 15:24:34
497
转载 【二】分布式の分布式锁
一、概述为什么需要在分布式环境下使用锁呢?传统的应用在单机的情况下直接用一个统一的线程进行管控就可以了,但是在分布式环境下情况又不一样了。如果每个人都只持有自己的锁,对于其他人不可见,并不是全局唯一的锁,这样的锁是没有意义的。所以也就会有了分布式架构下的锁。分布式锁有两层含义。第一层是在分布式的系统中用锁来保证业务的正确性。另外一层是用分布式的服务来保证锁的高可用性。实现一个分布式锁应...
2019-09-17 11:19:00
334
转载 【一】分布式の分布式事务
一、简介数据库本地事务1.在单个数据库的本地并且限制在单个进程内的事务2.本地事务不涉及多个数据来源事务的具体定义事务提供一种机制将一个活动涉及的所有操作纳入到一个不可分割的执行单元,组成事务的所有操作只有在所有操作均能正常执行的情况下方能提交,只要其中任一操作执行失败,都将导致整个事务的回滚。简单地说,事务提供一种“要么什么都不做,要么做全套(All or Nothing...
2019-09-17 10:20:16
201
原创 MySQL之事务の六
事务会把数据库从一种一致状态转换为另一种一致状态,在数据库提交工作时,可以确保其要么所有修改都已经保存了,要么所有修改都不保存。 ACID:原子性,一致性,隔离性,持久性 原子性:原子性是指整个数据库事务是不可分割的工作单位。只有使事务中所有的数据库操作执行都成功,才算整个事务成功。如果事务中任何一个sql语句执行失败,那么已经执行成功的sql语句也必须撤销,数据库状态应该退回到执行事...
2019-09-12 14:18:21
102
原创 MySQL之锁机制の五
并发事务解决方案脏读、不可重复读和幻读都是数据库读一致性问题,需要由数据库提供一定的事务隔离机制来解决。(1)锁机制锁机制用于管理对共享资源的并发访问。解决写-写冲突问题。在读取数据前,对其加锁,防止其它事务对该数据进行修改。 悲观锁:往往依靠数据库提供的锁机制。 乐观锁:大多是基于数据版本记录机制来实现。 (2)MVCC多版本并发控制解决读-写冲突问题。不用加...
2019-09-12 11:55:18
620
原创 MySQL索引与算法の四
1.索引概述数据库索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。1.简单来说,数据库索引就是数据库的数据结构!进一步说则是该数据结构中存储了一张表中某一列的所有值,也就是说索引是基于数据表中的某一列创建的。总而言之:一个索引是由表中某一列上的数据组成,并且这些数据存储在某个数据结构中。2.而数据库索引功能索引的最大作用就是加快查询速度,它...
2019-09-12 11:12:33
157
原创 MySQL表类型の三
1. InnoDB索引组织表在InnoDB存储引擎表中,每张表都有个主键,如果在创建表时没有显式地定义主键,则InnoDB存储引擎会按如下方式选择或创建主键:首先表中是否有非空的唯一索引,如果有,则该列即为主键。 不符合上述条件,InnoDB存储引擎自动创建一个6字节大小的指针。2. InnoDB逻辑存储结构:所有数据都被逻辑地存放在一个空间中,我们称之为表空间。表空间又由段(s...
2019-09-12 10:38:08
148
原创 MySQLInnoDB存储引擎の二
1. InnoDB体系架构: InnoDB有多个内存块,可以认为这些内存块组成了一个大的内存池,负责如下工作:维护所有进程/线程需要访问的多个内部数据结构。 缓存磁盘上的数据,方便快速地读取,并且对磁盘文件的数据进行修改之前在这里缓存。 重做日志缓冲。 ....1.后台线程后台线程的主要作用是负责刷新内存池中的数据,保证缓存池中的内存缓存的是最近的数据。除此之外,将已修改...
2019-09-12 10:23:54
153
原创 MySQL体系结构和存储引擎の一
1.定义数据库和实例在数据库领域中有两个词很容易混淆,这就是“数据库”(database)和“实例” (instance)。作为常见的数据库术语,这两个词的定义如下。数据库:物理操作系统文件或其他形式文件类型的集合。在MySQL数据库中,数据 库文件可以是rm、MYD、MYI、ibd结尾的文件。当使用NDB引擎时,数据库的 文件可能不是操作系统上的文件,而是存放于内存之中的文件,但是定义...
2019-09-12 09:31:33
116
原创 HashMap 源码详细分析(JDK1.8)
HashMap 源码详细分析(JDK1.8)https://segmentfault.com/a/1190000012926722HashMapHashMap 是应用更加广泛的哈希表实现,行为上大致上与 HashTable 一致,主要区别在于HashMap 不是同步的,支持 null 键和值等。通常情况下,HashMap 进行 put 或者 get 操作,可以达到常数时间的性能,所以它是绝大部...
2019-09-12 08:39:39
110
转载 面试!微服务
目录01微服务概况1什么是微服务?1微服务之间是如何独立通讯的3SpringCloud和dubbo 有哪些区别?4springboot和springcloud,请你谈谈对他们的理解?5微服务的优缺点分别是什么?02服务注册与发现1为什么要使用服务发现2Eureka3Eureka 如何实现集群?4聊聊 Eureka 缓存机制?5什么是 Eurek...
2019-09-08 17:28:31
975
转载 Spring Cloud一概述
尚硅谷周阳老师脑图一、微服务概述1、是什么?Martin Fowler关于微服务的原文中文翻译马丁.福勒对微服务概述:就目前而言,对于微服务业界并没有一个统一的、标准的定义(While there is no precise definition of this architectural style ) 。但通在其常而言,微服务架构是一种架构模式或者说是一种架构风格,它提倡将单一...
2019-09-08 09:43:31
361
原创 四、设计模式——原型模式
原型模式原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。例如,一个对象需要在一个高代价的数据库操作之后被创建。我们可以缓存该对象,在下一个请求时返回它的克隆,在需要的时候更新数据库,...
2019-08-29 10:59:05
120
原创 三、设计模式——三种工厂模式
目录1简单工厂模式简单工厂类图简单工厂分析2工厂方法模式工厂方法模式类图认识工厂方法模式工厂方法模式使用分析工厂方法模式与loC/DI3抽象工厂模式介绍类图认识抽象工厂模式4总结简单工厂模式工厂模式抽象工厂模式1简单工厂模式简单工厂的定义:提供一个创建对象实例的功能,而无须关心其具体实现。被创建实例的类型可以是接口、抽象类,也可以...
2019-08-28 22:44:07
345
原创 二、设计模式——单例模式
1单例设计模式介绍所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例, 并且该类只提供一个取得其对象实例的方法(静态方法)。单例模式有八种方式:1)饿汉式(静态常量)2)饿汉式(静态代码块)3)懒汉式(线程不安全)4)懒汉式(线程安全,同步方法)5)懒汉式(线程不安全,同步代码快)6)双重检查7)静态内部类8)枚举2实现2.1...
2019-08-28 16:28:47
122
《Spring5高级编程(第5版)》-中文清晰版.txt
2019-06-18
Hadoop实战-陆嘉恒(高清完整版)
2019-03-28
MapReduce2.0源码分析与实战编程
2019-03-28
emacs-26.1-x86_64.zip下载
2018-12-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人