自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 起飞:笔记目录

起飞:笔记目录

2021-11-01 18:57:36 142

原创 Kafka入门、实战和原理

Kafka入门、实战和原理

2021-12-26 20:31:56 119

原创 Spring和SpringBoot源码解析

SpringBoot源码解析

2021-12-03 19:59:07 681

原创 RocketMQ原理和实战

RocketMQ

2021-11-26 21:15:34 935

原创 Mysql优化和原理

Mysql优化和原理第一层为客户端的连接认证,C/S都有此架构 第二层为服务器层,包含MySQL的大多数核心服务功能 第三层包含了存储引擎,服务器通过API与其通信,API规避了不同存储引擎的差异,不同存储引擎也不会互相通信,另外存储引擎不会去解析SQL(InnoDB是例外,它会解析外键定义,因为服务器本身没有实现该功能)2.mysql性能监控...

2021-11-22 22:02:30 661

原创 JVM刨析

1.常见JVM实现Hotspot:目前使用的最多的 Java 虚拟机。Jrocket:原来属于BEA 公司,曾号称世界上最快的 JVM,后被 Oracle 公司收购,合并于 HotspotJ9: IBM 有自己的 java 虚拟机实现,它的名字叫做 J9. 主要是用在 IBM 产品(IBM WebSphere 和 IBM 的 AIX 平台上)TaobaoVM: 只有一定体量、一定规模的厂商才会开发自己的虚拟机,比如淘宝有自己的 VM,它实际上是 Hotspot 的定制版,专门为淘宝准备的,阿里、天

2021-11-13 19:33:48 798

原创 多线程和高并发线程池

1

2021-11-10 20:39:58 687

原创 多线程和高并发JUC-锁

JUC(java util cocurrent)ReentrantLock部分场合替代synchronized* 手工释放锁 * 标准写法:lock.lock();try { xxxxx} finally { lock.unlock();} 可以是公平锁 公平锁:线程抢锁先排队 非公平锁:线程到了就插队抢 可被打断的上锁过程 tryLock() lockInterruptibly() 锁上面的队列可以指定任意数量 区...

2021-11-08 21:52:11 98

原创 二、并发编程-线程的底层知识(可见性 有序性 原子性)

1.线程间的可见性多线程提高效率,本地缓存数据,造成数据修改不可见,要想保证可见,要么触发同步指令,要么加上volatile,被修饰的内存,只要有修改,马上同步涉及到的每个线程/** * volatile 关键字,使一个变量在多个线程间可见 * A B线程都用到一个变量,java默认是A线程中保留一份copy,这样如果B线程修改了该变量,则A线程未必知道 * 使用volatile关键字,会让所有线程都会读到变量的修改值 * * 在下面的代码中,running是存在于堆内存的t对象中

2021-11-06 19:56:57 190

原创 模板模式-Template

主要解决:一些方法通用,却在每一个子类都重新写了这一方法。钩子函数public class Main { public static void main(String[] args) { F f = new C1(); f.m(); }}abstract class F { public void m() { op1(); op2(); } abstract void op1();

2021-11-06 12:12:04 59

原创 备忘录模式-Memento

主要解决:所谓备忘录模式就是在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。public class Client { public static void main(String[] args) { Originator originator = new Originator(); originator.setState("On"); //Originator初始状态

2021-11-06 12:07:40 68

原创 原型模式-Prototype

主要解决:在运行期建立和删除原型。Object.clone()/** * String需要进一步深克隆吗? */public class Test { public static void main(String[] args) throws Exception { Person p1 = new Person(); Person p2 = (Person)p1.clone(); System.out.println("p1.loc ==

2021-11-06 11:59:26 54

原创 命令模式-Command

主要解决:在软件系统中,行为请求者与行为实现者通常是一种紧耦合的关系,但某些场合,比如需要对行为进行记录、撤销或重做、事务等处理时,这种无法抵御变化的紧耦合的设计就不太合适。对行为进行"记录、撤销/重做、事务"等处理public class Main { public static void main(String[] args) { Content c = new Content(); Command insertCommand = new InsertCo

2021-11-06 11:16:07 306

原创 一、线程基本知识

一、计算机底层层面是逻辑图,然后再深刻理解:程序、进程、线程、纤程进程(重)->线程(普通)->纤程(轻)进程:是操作系统资源分配的基本单位,比如内存、打开文件、网络IO,分配了独立的内存空间 线程:是操作系统资源调度的基本单位,cpu分配的基本单位 纤程:是用户态的线程,是线程中的线程,切换和调度不需要经过OS(操作系统)。;轻量级的线程 - 线程// 进程:是操作系统资源分配的基本单位,比如内存、打开文件、网络IO,分配了独立的内存空间public class..

2021-11-05 22:12:18 372

原创 桥接模式-Bridge

主要解决:在有多种可能会变化的情况下,用继承会造成类爆炸问题,扩展起来不灵活。public class GG { public void chase(MM mm) { Gift g = new WarmGift(new Flower()); give(mm, g); } public void give(MM mm, Gift g) { System.out.println(g + "gived!"); }.

2021-11-05 21:53:46 47

原创 适配器模式-Adapter

主要解决:主要解决在软件系统中,常常要将一些"现存的对象"放到新的环境中,而新环境要求的接口是现对象不能满足的。public class Main { public static void main(String[] args) throws Exception { FileInputStream fis = new FileInputStream("c:/test.text"); InputStreamReader isr = new InputStream

2021-11-05 21:35:47 60

原创 建造者模式-Builder

主要解决:主要解决在软件系统中,有时候面临着"一个复杂对象"的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法却相对稳定。public class Main { public static void main(String[] args) { //Effective Java Person p = new Person.PersonBuilder()

2021-11-05 21:33:35 64

原创 访问者模式-Visitor

主要解决:稳定的数据结构和易变的操作耦合问题。典型应用:编译器 Abstract Syntax Tree 抽象语法树public class Computer { ComputerPart cpu = new CPU(); ComputerPart memory = new Memory(); ComputerPart board = new Board(); public void acccept(Visitor v) { this.cpu...

2021-11-05 20:43:12 58

原创 多线程和高并发

1

2021-11-03 21:42:06 130

原创 迭代器模式-Iterator

主要解决:不同的方式来遍历整个整合对象。/** * 相比数组,这个容器不用考虑边界问题,可以动态扩展 */class ArrayList_<E> implements Collection_<E> { E[] objects = (E[])new Object[10]; //objects中下一个空的位置在哪儿,或者说,目前容器中有多少个元素 private int index = 0; public void add(E o) {

2021-11-03 21:36:46 60

原创 代理模式-Proxy

主要解决:在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些操作需要安全控制,或者需要进程外的访问),直接访问会给使用者或者系统结构带来很多麻烦,我们可以在访问此对象时加上一个对此对象的访问层。/** * v05:使用代理 * v06:代理有各种类型 * 问题:如何实现代理的各种组合?继承?Decorator? * v07:代理的对象改成Movable类型-越来越像decorator了 * v08:如果有

2021-11-03 20:42:29 101

原创 享元模式-Flyweight

主要解决:在有大量对象时,有可能会造成内存溢出,我们把其中共同的部分抽象出来,如果有相同的业务请求,直接返回在内存中已有的对象,避免重新创建。池技术

2021-11-02 22:20:50 47

原创 组合模式-Composite

主要解决:它在我们树型结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以像处理简单元素一样来处理复杂元素,从而使得客户程序与复杂元素的内部结构解耦。abstract class Node { abstract public void p();}class LeafNode extends Node { String content; public LeafNode(String content) {this.content = content;} @Ov

2021-11-02 21:57:31 50

原创 观察者模式-Observer

主要解决:一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协作。/** * 有很多时候,观察者需要根据事件的具体情况来进行处理 * 大多数时候,我们处理事件的时候,需要事件源对象 * 事件也可以形成继承体系 */class Child { private boolean cry = false; private List<Observer> observers = new ArrayList<>(); {

2021-11-02 21:46:22 77

原创 责任链模式-Chain of Responsibility

主要解决:职责链上的处理者负责处理请求,客户只需要将请求发送到职责链上即可,无须关心请求的处理细节和请求的传递,所以职责链将请求的发送者和请求的处理者解耦了。public class Servlet_Main { public static void main(String[] args) { Request request = new Request(); request.str = "大家好:),<script>,欢迎访问 mashibing

2021-11-02 21:05:26 63

原创 装饰器模式-Decorator

主要解决:一般的,我们为了扩展一个类经常使用继承方式实现,由于继承为类引入静态特征,并且随着扩展功能的增多,子类会很膨胀。public interface Sourceable { public void method();}//被装饰类public class Source implements Sourceable { @Override public void method() { System.out.println("the original method.

2021-11-02 20:06:20 62

原创 外观模式-Facade/中介者模式-Mediator

外观模式主要解决:降低访问复杂系统的内部子系统时的复杂度,简化客户端之间的接口。中介者模式主要解决:对象与对象之间存在大量的关联关系,这样势必会导致系统的结构变得很复杂,同时若一个对象发生改变,我们也需要跟踪与之相关联的对象,同时做出相应的处理。外观模式public class CPU { public void startup(){ System.out.println("cpu startup!"); } public void shutdown(){ Syst.

2021-11-01 22:35:48 189

原创 工厂模式-Factory

2021-11-01 20:53:41 58

原创 策略模式-Strategy

例如 Comparator实现1.Context2.Strategy3.ConreteStrategyA4.main

2021-11-01 20:47:32 44

原创 单例模式-Singleton

1、饿汉式(线程安全,调用效率高,但是不能延时加载) 简单实用public class Singleton{ private static final Singleton singleton = new Singleton(); private Singleton(){} public static Singleton getInstance(){ return singleton;...

2021-11-01 20:37:59 63

原创 设计模式目录

一、单例模式-singleton1、饿汉式(线程安全,调用效率高,但是不能延时加载) 简单实用public class Singleton{ private static final Singleton singleton = new Singleton(); private Singleton(){} public static Singleton getInstance(){ retur...

2021-11-01 18:56:53 67

JAVA核心面试知识整理.rar

JVM、JAVA多线程并发、Spring原理、微服务、netty和rpc、网络、zk、kafka、MQ、HBase、MongoDB、设计模式、负载均衡、数据库、算法、大数据、云计算。。。

2021-12-06

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

TA关注的人

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