- 博客(17)
- 收藏
- 关注
原创 seata-server+apollo配置不生效
seata+apollp配置时,本地apollo配置不生效,测试环境环境生效,最终发现版本不一致,1.2版本存在bug导致registry.conf的apollo配置不生效。 seata-server1.2和1.1之前的APP_ID、APOLLO_META不一致,1.2采用驼峰命名。 ApolloConfiguration在初始化配置的时候会将apollo相关配置放入环境变量中,由于1.1和1.2版本的apollo key值不相同,导致1.2版本从环境变量中无法获取相关配置,从而使regist
2020-07-10 20:22:13 2203
转载 排序
/** * 冒泡排序 * * @param array * @return */ public static int[] bubbleSort(int[] array) { if (array.length == 0) return array; for (int i = 0; i &...
2019-12-12 17:15:24 109
转载 生产者和消费者
1. wait() / notify()方法 import java.util.LinkedList; public class Storage { // 仓库容量 private final int MAX_SIZE = 10; // 仓库存储的载体 private LinkedList<Object> list = new LinkedList...
2019-12-11 14:41:12 135
原创 数据库锁
悲观锁:总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。再比如Java里面的同步原语synchronized关键字的实现也是悲观锁。 乐观锁:顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改,所以不会上锁...
2019-11-29 17:31:16 226
原创 锁
不可重入锁 所谓不可重入锁,即若当前线程执行某个方法已经获取了该锁,那么在方法中尝试再次获取锁时,就会获取不到被阻塞。 可重入锁(ReenTrantLock和synchronized)) 一个线程可以进入任何一个 该线程 已经拥有的锁所同步着的代码块。 ReenTrantLock独有的能力: 1.ReenTrantLock可以指定是公平锁还是非公平锁。而synchronize...
2019-11-29 17:11:10 78
原创 http2.0
HTTP2.0 TCP 1.1TCP/IP协议关系 TCP工作过程 1.2.1TCP报文格式 序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。 确认序号:Ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,Ack=Seq+1。 1.2.2 TCP标志位 SYN(synchronous),建立联机。 A...
2019-03-21 16:23:05 871
原创 JVM
1 JVM发展历史 1.1Sun Classic VM 第一款商用Java虚拟机 1996年1月,Sun公司发布JDK1.0,Java首次拥有了商用的正式运行环境——Sun Classic VM。 这款虚拟机十分缓慢,原因是它不能是解释器和编译器混合工作,也就是要么只使用纯解释器,这样运行时速度会很慢,要么使用纯编译器,这样必须对每一个方法、每一行代码进行编译,编译耗时会很高。“Java语...
2019-03-21 16:09:56 120
原创 java修饰符
java的四个关键字:public、protected、default、private适用范围 访问权限 类 包 子类 其他包 public ∨ ∨ ∨ ∨ (对任何人都是可用的) protect ∨ ∨ ∨ × (继承的类可以访问以及和priv
2018-01-24 10:01:56 102
原创 Elasticsearch
Elasticsearch 1.Elasticsearch简介 1.1什么是elasticsearch ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。 1.2Elsaticsearch应用场景 站
2018-01-12 17:27:53 260
原创 克隆
【浅克隆】,通常只是对克隆的实例进行复制,但里面的其他子对象,都是共用的。 【深克隆】,克隆的时候会复制它的子对象的引用,里面所有的变量和子对象都是又额外拷贝了一份。 一、Cloneable接口实现深浅克隆 class Professor implements Cloneable { String name; int age; Professor(String n
2017-01-19 14:47:12 202
原创 反射
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性 import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; public class
2017-01-18 16:08:02 249
原创 Stackoverflow OutOfMemoryError
java.lang.StackOverFlowError是由于java虚拟机栈内存不够所导致的,一般是由于大量的递归运算而导致栈内存不够 java.lang.OutOfMemoryError: Java heap space是由于java虚拟机堆内存不够所导致的,一般是因为申请的数组或者ArrayList、HashMap之类的数据量太大所导致的。
2017-01-18 15:58:16 389
原创 ThreadLocal
Java中的ThreadLocal类允许我们创建只能被同一个线程读写的变量。因此,如果一段代码含有一个ThreadLocal变量的引用,即使两个线程同时执行这段代码,它们也无法访问到对方的ThreadLocal变量。 ThreadLocal的应用场合,我觉得最适合的是多线程多实例(每个线程对应一个实例)的对象的访问,并且这个对象很多地方都要用到。 public class T
2017-01-18 15:37:33 171
原创 Volatile
可见性: 可见性,是指线程之间的可见性,一个线程修改的状态对另一个线程是可见的。也就是一个线程修改的结果。另一个线程马上就能看到。比如:用volatile修饰的变量,就会具有可见性。volatile修饰的变量不允许线程内部缓存和重排序,即直接修改内存。所以对其他线程是可见的。但是这里需要注意一个问题,volatile只能让被他修饰内容具有可见性,但不能保证它具有原子性。比如 volatile
2017-01-18 15:28:38 426
原创 equals hashCode
equals()和hashCode()方法是用来在同一类中做比较用的,尤其是在容器里如set存放同一类对象时用来判断放入的对象是否重复。 equals()相等的两个对象,hashcode()一定相等,equals()不相等的两个对象,却并不能证明他们的hashcode()不相等。换句话说,equals()方法不相等的两个对象,hashCode()有可能相等。(我的理解是由于哈希码在生成的时候
2017-01-18 15:12:39 225
原创 回调函数
所谓回调:就是A类中调用B类中的某个方法C,然后B类中反过来调用A类中的方法D,D这个方法就叫回调方法。 Class A实现接口CallBack callback-----------------背景一 Class A中含一个class B的引用b----------------背景二 class B有一个参数为callback的方法f(CallBack callback)---
2017-01-18 15:10:12 143
原创 jvm工作原理
一、类加载器 --Bootstrap class loader: 当运行java虚拟机时,这个类加载器被创建,它加载一些基本的Java API,包括Object这个类。需要注意的是,这个类加载器不是用java语言写的,而是用C/C++写的。 --Extension class loader: 这个加载器加载出了基本API之外的一些拓展类,包括一些与安全性能相关的类。
2017-01-18 14:43:42 207
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人