JAVA
文章平均质量分 71
ma2676510956
这个作者很懒,什么都没留下…
展开
-
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 · 2239 阅读 · 0 评论 -
排序
/** * 冒泡排序 * * @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 · 126 阅读 · 0 评论 -
生产者和消费者
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 · 146 阅读 · 0 评论 -
数据库锁
悲观锁:总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。再比如Java里面的同步原语synchronized关键字的实现也是悲观锁。 乐观锁:顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改,所以不会上锁...原创 2019-11-29 17:31:16 · 240 阅读 · 0 评论 -
锁
不可重入锁所谓不可重入锁,即若当前线程执行某个方法已经获取了该锁,那么在方法中尝试再次获取锁时,就会获取不到被阻塞。可重入锁(ReenTrantLock和synchronized))一个线程可以进入任何一个 该线程 已经拥有的锁所同步着的代码块。ReenTrantLock独有的能力:1.ReenTrantLock可以指定是公平锁还是非公平锁。而synchronize...原创 2019-11-29 17:11:10 · 94 阅读 · 0 评论 -
http2.0
HTTP2.0TCP1.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 · 887 阅读 · 0 评论 -
JVM
1 JVM发展历史1.1Sun Classic VM 第一款商用Java虚拟机1996年1月,Sun公司发布JDK1.0,Java首次拥有了商用的正式运行环境——Sun Classic VM。这款虚拟机十分缓慢,原因是它不能是解释器和编译器混合工作,也就是要么只使用纯解释器,这样运行时速度会很慢,要么使用纯编译器,这样必须对每一个方法、每一行代码进行编译,编译耗时会很高。“Java语...原创 2019-03-21 16:09:56 · 146 阅读 · 0 评论 -
java修饰符
java的四个关键字:public、protected、default、private适用范围 访问权限 类 包 子类 其他包 public ∨ ∨ ∨ ∨ (对任何人都是可用的) protect ∨ ∨ ∨ × (继承的类可以访问以及和priv原创 2018-01-24 10:01:56 · 110 阅读 · 0 评论 -
克隆
【浅克隆】,通常只是对克隆的实例进行复制,但里面的其他子对象,都是共用的。【深克隆】,克隆的时候会复制它的子对象的引用,里面所有的变量和子对象都是又额外拷贝了一份。一、Cloneable接口实现深浅克隆class Professor implements Cloneable { String name; int age; Professor(String n原创 2017-01-19 14:47:12 · 215 阅读 · 0 评论 -
反射
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;public class原创 2017-01-18 16:08:02 · 258 阅读 · 0 评论 -
Stackoverflow OutOfMemoryError
java.lang.StackOverFlowError是由于java虚拟机栈内存不够所导致的,一般是由于大量的递归运算而导致栈内存不够java.lang.OutOfMemoryError: Java heap space是由于java虚拟机堆内存不够所导致的,一般是因为申请的数组或者ArrayList、HashMap之类的数据量太大所导致的。原创 2017-01-18 15:58:16 · 407 阅读 · 0 评论 -
ThreadLocal
Java中的ThreadLocal类允许我们创建只能被同一个线程读写的变量。因此,如果一段代码含有一个ThreadLocal变量的引用,即使两个线程同时执行这段代码,它们也无法访问到对方的ThreadLocal变量。ThreadLocal的应用场合,我觉得最适合的是多线程多实例(每个线程对应一个实例)的对象的访问,并且这个对象很多地方都要用到。 public class T原创 2017-01-18 15:37:33 · 180 阅读 · 0 评论 -
Volatile
可见性:可见性,是指线程之间的可见性,一个线程修改的状态对另一个线程是可见的。也就是一个线程修改的结果。另一个线程马上就能看到。比如:用volatile修饰的变量,就会具有可见性。volatile修饰的变量不允许线程内部缓存和重排序,即直接修改内存。所以对其他线程是可见的。但是这里需要注意一个问题,volatile只能让被他修饰内容具有可见性,但不能保证它具有原子性。比如 volatile原创 2017-01-18 15:28:38 · 450 阅读 · 0 评论 -
equals hashCode
equals()和hashCode()方法是用来在同一类中做比较用的,尤其是在容器里如set存放同一类对象时用来判断放入的对象是否重复。equals()相等的两个对象,hashcode()一定相等,equals()不相等的两个对象,却并不能证明他们的hashcode()不相等。换句话说,equals()方法不相等的两个对象,hashCode()有可能相等。(我的理解是由于哈希码在生成的时候原创 2017-01-18 15:12:39 · 234 阅读 · 0 评论 -
回调函数
所谓回调:就是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 · 155 阅读 · 0 评论 -
jvm工作原理
一、类加载器--Bootstrap class loader:当运行java虚拟机时,这个类加载器被创建,它加载一些基本的Java API,包括Object这个类。需要注意的是,这个类加载器不是用java语言写的,而是用C/C++写的。--Extension class loader:这个加载器加载出了基本API之外的一些拓展类,包括一些与安全性能相关的类。原创 2017-01-18 14:43:42 · 220 阅读 · 0 评论