JAVA
文章平均质量分 65
Aeolian钦
这个作者很懒,什么都没留下…
展开
-
Rocket单机启动
下载官方下载https://www.apache.org/dyn/closer.cgi?path=rocketmq/4.9.2/rocketmq-all-4.9.2-source-release.zip上传到Linux服务器unzip rocketmq-all-4.9.2-source-release.zipcd rocketmq-all-4.9.2/mvn -Prelease-all -DskipTests clean install -Ucd distribution/target/roc原创 2022-02-22 10:59:45 · 1604 阅读 · 0 评论 -
深拷贝和浅拷贝理解和代码实践
基本介绍浅拷贝:对于基本数据类型和字符串只是将值进行复制,对于引用类型只是指向同一片内存地址,所以在一个对象方式变化时,另外一个也会发生变化深拷贝:重新创建新的内存地址,存储对应的值代码浅拷贝ShallowTargetClass :目标对象ShallowClass:拷贝对象Client:客户端操作public class ShallowTargetClass implements Serializable,Cloneable { private String className;原创 2021-09-12 19:38:41 · 69 阅读 · 0 评论 -
Collection集合分析之LinkedList
LinkedList继承AbstractSequentialList实现List,Dueue,Cloneable,Serializable由链表实现三个变量transient int size = 0;transient Node<E> first;transient Node<E> last;size:节点个数first:头节点last:尾节点两个构造函数 public LinkedList() { } public LinkedList(Col原创 2021-06-06 17:28:45 · 173 阅读 · 0 评论 -
Collection集合分析之ArrayList
ArrayList基础自AbstractList实现了List,RandomAccess,Cloneable,Serializable接口四常量 private static final int DEFAULT_CAPACITY = 10; private static final Object[] EMPTY_ELEMENTDATA = {}; private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA原创 2021-06-05 23:38:15 · 150 阅读 · 0 评论 -
Collection集合分析(1)
前言集合是我们在日常开发中经常使用,它位于java.util包,顾名思义,他是java的工具类,帮助我们完成各种操作,他充分利用了java的继承来实现他的功能。以下是我画的一个集合的一个继承关系图,主要牵涉到是ArrayList,LinkedList,HashSet,TreeSet这几个集合类,我在这里也是通过这几个集合类来画他的基础关系,真实情况下,他的继承关系还要复杂的多。Collection在这一章中,我主要要说的就是这个接口Collection,他定义了集合必须要有的规范,我们可以通过IDE原创 2021-04-23 01:08:42 · 106 阅读 · 0 评论 -
StringBuffer方法分析
类结构原创 2021-04-21 14:44:21 · 198 阅读 · 0 评论 -
Activiti初始化创建表提示表不存在
问题出现背景在刚接触activiti时,使用ProcessEngineConfiguration的方式进行配置构建ProcessEngine对象时创建表是没问题的,但是在使用spring整合Activiti时,他出现了一个异常提示表不存在,一般情况下,spring启动时,创建ProcessEngine对象,如果表不存在的,它会出现自动创建表,但是这里直接提示表不存在就感觉很奇怪。问题解决方法在数据库url后面拼接nullCatalogMeansCurrent=true...原创 2021-04-13 21:32:25 · 587 阅读 · 1 评论 -
Springboot整合Redis
介绍springboot整合redis需要的是spring的另外一个项目 spring data ;他使用的是RedisTemplate这个类来进行操作导入依赖<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifact原创 2021-04-12 22:44:53 · 188 阅读 · 1 评论 -
String常用方法解析
String的常用方法解析String的方法很多,这里只列出常用的几种方法进行查看解析,研究底层 jdk的实现和他的代码编写。startsWith 和 endsWithstartsWith主要是为了判断该String a 对象是是 String b开头。例如String a = "ABCD";String b = "AB";System.out.println(a.startsWith(b));返回的一定是一个true,startsWith 还有一个重写的方法,加了一个int 参数,原创 2021-04-04 22:44:13 · 266 阅读 · 2 评论 -
String的创建方式
String概述String类型是java的一个最基本的对象,他底层是用char[]实现,是一个不可继承类,即final类。String是我们平时使用最多的,所以我们要深入理解String类他的实现和底层。前置:value是字符数组,而且是一个常量不可变,。hash 默认是0构造函数无参构造String类型的无参构造,他是将空字符串给了char[]public String() { this.value = "".value;}值得注意的是String new与不new的区别是什原创 2021-04-03 23:39:40 · 1367 阅读 · 1 评论 -
JUC理解(5)
读写锁ReadWriteLock我们经常会做种操作,在我们对数据进行读的时候,希望大家都能读,而我们对数据进行写的时候,我们希望只能有一个人写。这就是读写锁。介绍ReadWriteLock维护一对关联的locks ,一个用于只读操作,一个用于写入。 read lock可以由多个阅读器线程同时进行,只要没有作者。 write lock是独家的。所有ReadWriteLock实现必须保证的存储器同步效应writeLock操作(如在指定Lock接口)也保持相对于所述相关联的readLock 。 也就是说,原创 2020-12-27 11:31:13 · 134 阅读 · 1 评论 -
二叉排序树理解
什么是二叉树二叉树(Binary tree)是树型结构中一个非常重要的类型,许多问题抽象出来都是树的形式,二叉树是n个有限元素的集合,该集合或者为空、或者由一个称为根(root)的元素及两个不相交的、被分别称为左子树和右子树的二叉树组成。当集合为空时,称该二叉树为空二叉树。在二叉树中,一个元素也称作一个结点。什么是二叉排序树二叉排序树,是普通二叉树的有序形式特点:1.如果左子树不为空,左子树的所有节点都比根节点要小2.如果右子树不为空,右子树的所有节点都比根节点要大3.左右子树也分别为二叉排序原创 2020-12-26 17:44:37 · 482 阅读 · 0 评论 -
JUC理解(4)
辅助类JUC包下,三个辅助类, CountDownLatch, CyclicBarrier, SemaphoreCountDownLatch作用:允许一个或多个线程等待直到在其他线程中执行的一组操作完成的同步辅助。首先看看这个辅助类,从英文字母上理解,这就是一个减法,这个类只有一个有参构造器,就能得知,这就是个待减数值,根据官方的解释:CountDownLatch用给定的计数初始化。 await方法阻塞,直到由于countDown()方法的调用而导致当前计数达到零,之后所有等待线程被释放,并且任原创 2020-12-26 16:56:31 · 130 阅读 · 0 评论 -
JUC理解(3)
Callable的使用Callable 是JUC中存在的一个创建线程的接口,Callable接口类似于Runnable ,因为它们都是为其实例可能由另一个线程执行的类设计的。Runable和Callable的不同之处1、Runable没有返回值,Callable会定义一个泛型,即他的返回结果类型2、Runable没有抛出异常,而Callable在计算结果的时候,如果无法得出,会抛出异常3、方法不同,Runable使用的是run() 方法,而Callable定义的则是call方法怎么使用原创 2020-12-26 11:50:23 · 137 阅读 · 0 评论 -
JUC理解(2)
集合在高并发情况下,我们熟知的ArrayList,HashMap等集合类都是现场不安全的,代码测试: public static void main(String[] args) { List<String> list = new ArrayList<>(); for (int i=0;i <= 10; i++){ new Thread(()->{ list.add(UUID.rand.原创 2020-12-25 23:43:56 · 88 阅读 · 0 评论 -
JUC理解(1)
什么是JUCJUC是Java一个并发工具包,即java.unit.concurrent并发和并行说起并发就不可避免的说下并行,有些人可能还不清楚并发和并行在我看来并发:多线程操作同一个资源并行:多个线程一起跑在CPU的角度看并发:CPU一核,模拟出多条线程,快速交替并行:CPU多核,多个线程可以同时执行;线程池并发编程的本质充分利用CPU的资源线程和进程的区别进程:一个程序,程序的集合,一个进程往往包含多个线程(至少包含一个)线程:比如我们开启一个Typora,我们在原创 2020-12-25 20:35:31 · 165 阅读 · 0 评论