- 博客(13)
- 收藏
- 关注
原创 JAVA设计模式之观察者模式
JAVA设计模式之观察者模式1、初步认识观察者模式的定义: 在对象之间定义了一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象会收到通知并自动更新。大白话: 其实就是发布订阅模式,发布者发布信息,订阅者获取信息,订阅了就能收到信息,没订阅就收不到信息。2、这个模式的结构图3、可以看到,该模式包含四个角色抽象被观察者角色:也就是一个抽象主题,它把所有对观...
2019-08-27 14:50:20
99
原创 设计模式---代理模式
什么是代理模式? 代理模式的定义:代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。通俗的来讲代理模式就是我们生活中常见的中介。举个例子来说明:假如说我现在想买一辆二手车,虽然我可以自己去找车源,做质量检测等一系列的车辆过户流程,但是这确实太浪费我得时间和精力了。我只是想买一辆车而已为什么我还要额外做这么多事呢?于是我就通过中介公司来买车,他们来给我找车源,...
2019-08-20 15:25:23
91
原创 Mysql 性能优化
Mysql优化方案1、mysql的优化点a、sql语句优化b、索引优化c、数据库结构优化d、理解查询执行计划[即EXPLAIN分析sql语句后的结果集分析]e、缓冲与缓存[缓存,如果是更新不频繁的系统,建议开启;但如果是更新频繁的系统建议关闭]f、锁优化[用innodb自己的锁机制,不用自己操作锁,但我们可以查看锁]g、mysql服务器优化2、关于sql语...
2019-08-06 16:01:13
196
原创 MYSQL MVCC 实现机制
1. MVCC简介1.1 什么是MVCCMVCC是一种多版本并发控制机制。1.2 MVCC是为了解决什么问题?大多数的MYSQL事务型存储引擎,如,InnoDB,Falcon以及PBXT都不使用一种简单的行锁机制.事实上,他们都和MVCC–多版本并发控制来一起使用. 大家都应该知道,锁机制可以控制并发操作,但是其系统开销较大,而MVCC可以在大多数情况下代替行级锁,使用MVCC,...
2019-07-30 16:49:12
222
原创 Mysql 事务和锁
什么是事务(Transaction)?是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。一个逻辑工作单元要成为事务,必须满足所谓的ACID(原子性、一致性、隔离性和持久性)属性。事务是...
2019-07-23 15:05:03
90
原创 MySQL索引及其实现原理
1 数据结构及算法基础1.1 索引的本质官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构本质:索引是数据结构查询是数据库的最主要功能之一。我们都希望查询速度能尽可能快,因此数据库系统的设计者会从查询算法角度优化最基本的查询算法当然是顺序查找(linear search),这种复杂度为O(n)的算法在数据量很大时显然是糟糕的好在CS的发展提供了很多...
2019-07-16 14:40:49
162
原创 JVM类加载器机制与类加载过程
0、前言读完本文,你将了解到:一、为什么说Jabalpur语言是跨平台的二、Java虚拟机启动、加载类过程分析三、类加载器有哪些?其组织结构是怎样的?四、双亲加载模型的逻辑和底层代码实现是怎样的?五、类加载器与Class<T> 实例的关系六、线程上下文加载器一、为什么说Java语言是跨平台的?Java语言之所以说它是跨平台的、可以在当前绝大部分...
2019-07-09 11:10:13
95
原创 多态
1 多态概述多态是继封装、继承之后,面向对象的第三大特性。现实事物经常会体现出多种形态,如学生,学生是人的一种,则一个具体的同学张三既是学生也是人,即出现两种形态。Java 作为面向对象的语言,同样可以描述一个事物的多种形态。如 Student 类继承了 Person 类,一个 Student 的对象便既是 Student,又是 Person。2 多态的定义与使用格式多态的定义...
2019-07-02 15:32:37
77
转载 策略模式
策略模式在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。介绍意图:定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。主要解决:在有多种算法相似的情况...
2019-07-02 14:58:04
86
原创 java 深克隆(深拷贝)与浅克隆(拷贝)详解
java深克隆和浅克隆基本概念浅复制(浅克隆)被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。换言之,浅复制仅仅复制所拷贝的对象,而不复制它所引用的对象。 深复制(深克隆) 被复制对象的所有变量都含有与原来的对象相同的值,除去那些引用其他对象的变量。那些引用其他对象的变量将指向被复制过的新对象,而不再是原有的那些被引用的对象。...
2019-06-25 16:13:55
150
原创 java序列化详解
一、序列化与反序列化序列化:指堆内存中的java对象数据,通过某种方式把对存储到磁盘文件中,或者传递给其他网络节点(网络传输)。这个过程称为序列化,通常是指将数据结构或对象转化成二进制的过程。即将对象转化为二进制,用于保存,或者网络传输。 反序列化:把磁盘文件中的对象数据或者把网络节点上的对象数据,恢复成Java对象模型的过程。也就是将在序列化过程中所生成的二进制串转换成数据结构或者对...
2019-06-25 09:23:45
172
转载 HashMap 原理深入理解
hashing(散列法或哈希法)的概念散列法(Hashing)是一种将字符组成的字符串转换为固定长度(一般是更短长度)的数值或索引值的方法,称为散列法,也叫哈希法。由于通过更短的哈希值比用原始值进行数据库搜索更快,这种方法一般用来在数据库中建立索引并进行搜索,同时还用在各种解密算法中。HashMap概念和底层结构HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映...
2019-06-18 11:04:32
207
原创 MAVEN 用Tamcat插件启动
最近搭建一个用maven分模块运行的项目 war 包用Tamcat插件就会出现如下问题十二月 28, 2017 4:36:28 下午 org.apache.catalina.core.ContainerBase startInternal严重: A child container failed during startjava.util.concurrent.Executi
2017-12-28 16:37:08
201
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人