自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 mysql 删除表卡死,或是截断(truncate)卡死解决办法

中间还去mysql的数据存储位置,将这个表直接删除了。但是再去创建这个表的时候发现提示表已经存在。这里猜测是可能是因为事务还在运行,在某个地方还缓存着这个表。利用工具进行truncate表的时候,一直运行,运行了十几分钟也没有成功。但是删除表的数据以及查询表数据都是可以的。这里不建议修改mysql的一些参数,毕竟在公司的话,参数也都是经过DBA精心设计的。最终从别的地方又将这两个文件导入进来了,在进行drop,然后在create,解决完毕。最后将锁死解决之后,查询这个表已经不存在了。

2023-03-14 12:33:23 4516

原创 自动拆箱与装箱

装箱:将基本类型用它们对应的引用类型包装起来;拆箱:将包装类型转换为基本数据类型;举个例子: Integer i = 1; int a = i;上面代码的字节码为: 0 aload_0 1 invokespecial #1 <java/lang/Object.<init> : ()V> 4 aload_0 5 iconst_1 6 invokestatic #2 <java/lang/Integer.valueOf : (I)Ljava/l.

2022-01-08 17:25:58 405

原创 设计模式--访问者模式

访问者模式主要解决同一个事物,不同的来办不同的事,各自有各自所关心的角度,按需选择。对于访问者模式也有一个老生常谈的例子,就是学生与老师的例子;对于同样是学生和老师,在家长和校长之间所关心的角度是不同的,家长所关心的是学生的成绩和老师的能力,而校长所关心的是老师所在班级整体排名和升学率等等。这样看的话,对于学生和老师的信息是固定的,不同的人来取不同的信息。来个例子:来一个获取信息的抽象类:public abstract class Message { String name; //

2021-12-28 21:36:39 167

原创 设计模式--模版模式

模版模式是通过在抽象方法定义执行顺序,并将抽象方法设定为只有子类实现,但不设计独立访问的方法。简单说:提前安排了。其实很简单,看如下例子:定义一个抽象类public abstract class TemplateABS { public String operationSequence(){ return method1() +"\n" + method3() +"\n" + method2(); } protected abstract String

2021-12-27 21:58:11 187

原创 设计模式--策略模式

策略模式–行为模式它是替代if…else…的利器。直接上代码吧。。策略接口定义,这里入参可以使用范型。public interface IStrategy<T> { void doStrategy(T param);}策略实现类。/** * 第一个实现。。 */public class IStrategyImplOne implements IStrategy<Map<String,String>>{ @Override

2021-12-21 22:21:55 274

原创 设计模式--状态模式

状态模式的是一个行为下的多种状态的变更。比如我们请假申请,从开始到结束,中间是需要有领导审批的,审批之后页面以及状态都是会有变化的。下面模拟一下,系统上线的流程,具有多层级的审批。基础信息public class Result { private String code; // 编码 private String info; // 描述 public Result(String code, String info) { this.code = code;

2021-12-18 19:17:28 293

原创 设计模式--观察者模式

观察者模式:当一个行为发生时,一个用户传递信息,另一个用户接受信息并作出相应的处理,行为和接收者之间没有直接的耦合关联。看如下例子:// 模拟一个算法public class MinibusTargetService { public String lottery(String uId){ return Math.abs(uId.hashCode() % 2) == 0 ? "名称为:" + uId + ",你是幸运的。。" : "名称为:" + uId + ",对不起,你不

2021-12-16 22:14:22 204

原创 设计模式-- 备忘录模式

备忘录模式:(行为模式)是可以恢复或回滚配置、以版本为核心功能的设计模式;不破坏元对象为基础增加备忘录操作类,记录原对象的行为。其实这个没有啥可说的,就是记录版本号,记录时间操作人之类的。就不写代码了。没有意思。。...

2021-12-16 20:49:12 270

原创 设计模式--中介者模式(调停者模式)

作用:当复杂功能应用之间重复调用时,在中间添加一层中介者包装服务,对外提供简单、通用和易扩展的服务能力。比如“联合国” 就是中介者,各个国家可以通过“联合国”通信。接下来看代码:模拟人之间沟通,通过中介。1. 抽象中介者类public abstract class Mediator { abstract void send(String message , Colleague colleague);}2. 抽象同事类public abstract class Co..

2021-12-15 23:22:25 265

原创 设计模式--命令模式

命令模式是行为模式中的一种,以数据驱动的方式将命令对象用构造函数的方式传递给调用者。调用者再提供相应的实现为命令执行提供操作方法。命令模式的实现有以下重要的几点:抽象命令类:声明执行命令的接口和方法; 具体的命令实现类:接口类的具体实现可以是一组相似的行为逻辑; 实现者:给命令开发执行逻辑的具体实现类; 调用者:处理命令、实现的具体操作者,负责对外提供命令服务。接下来,看代码:1. 抽象命令的定义/** * 抽象命令定义 */public interface ICommon

2021-12-14 21:09:49 86

原创 设计模式---责任链模式

责任链模式的核心是解决一组服务中先后执行关系,就像出差借款需要审批。看例子吧:public abstract class AuthLink { protected String name; private AuthLink next; AuthLink (String name){ this.name = name; } public AuthLink next(){ return next; } publi

2021-12-02 23:11:54 249

原创 设计模式--代理模式

代理模式就是为了方便访问某些资源,使对象类更加易用,从而在操作上使用的代理服务。代理模式经常会出现在系统或组件中,它们提供一种非常简单易用的方法,控制原本需要编写很多代码才能实现的服务类。比如:常用的mybatis 基本功能是定义接口,不需要写实现类就可以对Mapper中的sql语句增删改查。下面看一个例子:(非常简单的例子)/*****定义一个接口,使 proxy 和 RealSubject 都同时实现,这样就可以使用 proxy 代理 RealSubject**/public interf

2021-12-01 22:15:23 166

原创 设计模式---享元模式

享元模式,其实就是有一些大量重复对象可重用的场景中,在服务端减少接口的调用,在客户端减少内存的占用。比如我们通过Map 进行存储,方便下一次进行调用。而且Map可以很大的减少if…else的使用。现如今大量公司都以使用springcloud 微服务开发。对于redis 也会有大量的使用。许多能够共享的并且不经常变化的对象都会放入redis里。可以减少对频繁调用数据库所带来的io开销。行了,享元模式就说这么多吧。...

2021-11-30 21:48:25 609

原创 设计模式---外观模式

外观模式也叫门面模式,主要是降低调用方使用接口时的复杂逻辑组合。其实外观模式说起来,大家肯定都不陌生,比如我们自定义的注解,这种就是属于外观模式。注解+aop 完美实现。这里说一下注解的声明/** * 1、访问修饰符必须为public , 不写默认为pulbic * 2、元素的类型包含基本数据类型、String、Class、枚举、注解类型(注解是可以嵌套的)、以上类型的数组 * 3、如果注解里面只有一个元素,可以将名字定义为value,这样后面使用会很便利 * 4、括号中 不能定义参数,这

2021-11-29 23:08:06 517

原创 设计模式--装饰器模式

装饰器模式是在不改变原有类的基础上给类新增功能。这种实现方式,可以避免继承导致的子类过多问题,也可以避免AOP模式带来的复杂性模拟一个给人装扮的程序首先 “人” 类public class Person { public Person(){} public Person(String name) { this.name = name; } private String name ; public String getName()

2021-11-28 22:53:05 199

原创 设计模式---组合模式

通过把相似的对象或方法组合成一组可被调用的结构树对象的设计思路,称为组合模式。类似于树的结构首先我们先写一个抽象类,定义抽象方法public abstract class Component { private String name; public String getName() { return name; } public Component setName(String name) { this.name = name;

2021-11-28 20:24:49 251

原创 设计模式---桥接模式

桥接模式主要是通过把抽象部分和实现部分分离,能够将多种可匹配的使用进行组合。主要能解决业务实现中多类接口同组等,比如手机蓝牙能够和电脑连,能够和音响连,能够和空调连等相当于接口A会用到接口B做一些事情直接看例子吧:public abstract class InterA { protected InterB interB; // 这个地方是桥接模式最重要的地方 public InterA(InterB interB){ // 这个地方是桥接模式最重要的地方 thi

2021-11-24 21:43:59 178

原创 设计模式--适配器模式

适配器模式的主要作用是把原本不兼容的接口统一,方便调用。前面的一篇文章也用到了设计模式设计模式–抽象工厂模式(其他工厂的工厂)

2021-11-23 21:55:14 179

原创 设计模式--单例模式

单例模式主要解决的是一个全局使用的类,被频繁的创建与销毁,从而提升代码整体的性能。静态类使用import java.util.Map;import java.util.concurrent.ConcurrentHashMap;public class s1 { public static Map<String , String> map = new ConcurrentHashMap<>();}第一次运行直接初始化。如果需要被继承可以使用这种方式。懒汉

2021-11-19 11:39:51 72

原创 设计模式--建造者模式

建造者模式:使用多个简单的对象构造复杂的对象比如装修,会有各种牌子的涂料、地砖等,他们不同的组合价格不同,且不同的风格用的都不太一样。这种不同组合可以使用建造者模式。这里以电脑为例:电脑包括:CPU、硬盘、屏幕CPU:i5、i7、M1硬盘:机械硬盘(512G)、ssd(512G)屏幕:2k、4k组建接口public interface Components { String ctype(); //类型:cpu,硬盘,屏幕 String model(); //型号

2021-11-17 20:54:41 58

原创 设计模式--抽象工厂模式(其他工厂的工厂)

创建型模式抽象工厂也可以称为其他工厂的工厂,也就是说这个抽象工厂可以创建其他工厂。模拟一个老的资源由于某种原因不太能使用了,此时需要升级,升级资源为多个,根据不同场景使用不同的资源。如下例子:模拟一个老的资源//接口public interface OldResourceService { String get(String key); String set(String key); String del(String key);}//实现类//因为老旧的实现类

2021-11-15 23:59:07 532

原创 设计模式--工厂模式(工厂方法模式)

这是一种创建型设计模式

2021-11-15 22:09:53 377

原创 设计模式第一篇

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2021-10-27 22:38:20 58

原创 sysnchronized 锁

sysnchronized 加在方法上的区别public synchronized void a(){ }这种锁的是 this 对象public synchronized static void b(){}这种锁的是 class 对象public class Test1 { public static void main(String[] args) { Test11 test11 = new Test11(); /**这两个用的不

2021-04-14 07:46:32 158

原创 线程状态

初始状态可运行状态运行状态阻塞状态终止状态#mermaid-svg-SZ1YTLCoLFCudiK1 .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-SZ1YTLCoLFCudiK1 .label text{fill:#333}#mermaid-svg-SZ1YTLCoLFCudiK1 .node .

2021-04-13 08:04:53 117

原创 两阶段阻止模式

#mermaid-svg-0N3hnKER5SGnaqpl .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-0N3hnKER5SGnaqpl .label text{fill:#333}#mermaid-svg-0N3hnKER5SGnaqpl .node rect,#mermaid-svg-0N3hnKER5S

2021-04-12 00:01:17 69

原创 线程上下文切换(Thread Context Switch)

以下原因会导致cpu不在执行当前的线程,转而执行另一个线程的代码。线程cpu时间片用完垃圾回收有更高优先级的线程需要运行线程自己调用了如下方法:sleep、yield、wait、join、park、synchronized、lock等当Context Switch发生时,需要由操作系统保存当前线程的状态,并恢复另一个线程的状态,java中对应的就是程序计数器(Program Counter Register),它的作用是记住下一条jvm指令的执行地址(线程私有的)。状态包括程序计数器、虚拟机

2021-04-07 22:35:19 240

原创 查看进程线程的方法

jps 命令查看所有java进程jstack 查看某个java进程(PID)的所有线程状态jconsole 来查看某个java进程中线程的运行情况(图形界面)jconsole 远程监控配置需要用以下方式运行java类java -Djava.rmi.server.hostname=`ip地址` -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=`链接端口` -Dcom.sun.management.jmxr.

2021-04-07 20:53:31 145 1

原创 JVM--方法区

栈、堆、方法区的交互关系

2020-12-17 21:27:07 70

原创 JVM 堆空间学习

堆空间:内存细分堆空间大小设置;设置jvm参数;老年代,新生代;jvm调优;TLAB

2020-11-12 21:26:13 123

转载 spring项目获取ApplicationContext方法

@ComponentPublic class ApplicationHolder implements ApplicationContextAware{ private static ApplicationContext applicationContext; /** * 服务器启动时会,初始化spring容器并注入到applicationContext */ @Override...

2019-10-15 19:49:14 237

原创 activiti监听器的使用总结

监听器listener监听器分为三种:JavaDelegate TaskListener ExecutionListener用户任务(UserTask)的监听器为TaskListenerJava服务任务(JavaServiceTask)的监听器为JavaDelegate其他的服务的监听器为ExecutionListenerTaskListener中参数(DelegateTask)是有...

2019-06-19 13:06:33 8975

原创 补偿事件与取消事件的使用

补偿事件与取消事件的使用注意:取消事件一定要包含补偿事件,否则无法运行。取消结束事件一般都是在‘事物子流程’中使用上图中补偿边界事件下的serviceTask 中属性‘Is for compensation’必须为true<serviceTask id="service_task_1" name="serviceTask" isForCompensation="true" a...

2019-06-19 13:06:22 958

原创 effective java 中的几点知识

文章目录effective java 中的几点知识创建和销毁对象1. 考虑用静态工厂方法代替构造器优点2. 遇到多个构造器参数时要考虑用构造器优点3. 用私有构造器或者枚举类型强化Singleton属性4. 通过私有构造器强化不可实例化的能力5. 避免创建不必要的对象所有对象都通用的方法(非final的Object方法)6. 覆盖equals时请遵守通用约定什么时候不需要覆盖object类的equ...

2018-10-27 15:21:12 229

原创 python学习之路(class)

class Role: a = 123 # 类变量 用途:大家共用的属性,不需要重复实例化;节省开销; name = 'abc' def __init__(self,name,role,weapon,life_value=100,money=15000): ''' --------------- 构造函数 ----------------

2017-12-31 22:37:37 612

原创 python学习之路(正则表达式)

[TOC] 先看以下代码: 需要先import re>>> re.search('^(tian)','tianrun') # 意义是匹配tianrun当中的tian开头0, 4), match='tian'>>>> re.search('^(tian1)','tianrun') # 这种就匹配不到,没有返回值。>>> 以下是正则表达式的符号意思'.' 默认匹配除\

2017-12-26 16:07:55 319

原创 python学习之路(hashlib模块----加密)

说明: hashlib是在python3.x 以后出现的。以前分为(md5,sha),主要提供SHA1,SHA224,SHA256,SHA384,SHA512,MD5算法 加密方式都不可逆MD5import hashlibm = hashlib.md5()m.update(b'hello-')print(m.hexdigest()) # 十六进制m.update(b'tianrun') # 这

2017-12-26 14:04:36 619

原创 python学习之路(configparser 配置文件)

首先先看一下configparser 配置文件[DEFAULT]ServerAliveInterval = 45Compression = yesCompressionLevel = 9ForwardX11 = yes[bitbucket.org]User = hg[topsecret.server.com]Port = 50022ForwardX11 = no生成configpars

2017-12-24 22:31:25 191

原创 python学习之路(shelve 模块 ---序列化,反序列化)

这个相当于json、pickle 基于pickle之上再次进行开发 很好用的模块,很方便序列化import shelve# -------------------定义几个变量--------------------------info = ''' a = b c = d'''a = [1,2,3,4]b = {'name':'tianrun','age':'24'}

2017-12-24 16:38:02 297

原创 python学习之路(常用系统模块4--shutil模块)

shutil以下方法需要import shutilshutil.copyfileobj(fsrc, fdst, length=16384) 将文件内容拷贝到另一个文件中,可以部分内容 例:import shutilwith open('a.txt','r',encoding='utf-8') as f1, open('copy_a','w',encoding='utf-8') as f2:

2017-12-23 18:50:00 336

空空如也

空空如也

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

TA关注的人

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