- 博客(12)
- 资源 (1)
- 收藏
- 关注
原创 Confluence使用教程
目录一、Confluence简介1、基础概念1.1、空间(Space)1.2、Dashboard1.3、页面(Page)1.4、模板(template)1.5、权限(Permission)二、常见操作2.1、创建空间(Space)2.2、配置空间权限2.3、文档查看与操作2.4、添加文档2.5、编写文档2.6、移动文档2.7、创建目录三、发表评论四、上传文档附件五、导出六、文档权限管理一、Confluence简介 C.
2021-06-10 11:22:34
12900
原创 Linux 系统下安装JDK1.8和Tomcat
Linux 系统下安装JDK1.8的教程详解 一,安装前的清理工作rpm -qa | grep jdkrpm -qa | grep gcjyum -y remove java-xxx-xxx二 , 在线下载JDK命令:wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-p
2021-05-12 23:06:43
441
转载 MyBatis基本工作原理介绍
1、史上最透彻的MyBatis基本工作原理介绍计算机的基本工作就是存储和计算,而MyBatis是存储领域的利器。MyBatis的基本工作原理就是:先封装SQL,接着调用JDBC操作数据库,最后把数据库返回的表结果封装成Java类。2、MyBatis的核心流程介绍mybatis应用程序通过SqlSessionFactoryBuilder从mybatis-config.xml配置文件中构建出SqlSessionFactory,然后,SqlSessionFactory的实例直接开启一个SqlSessi
2021-05-11 13:54:56
185
原创 关键路径算法
package com.example.demo.util;import java.util.*;/** * 应用模块名称<p> * 代码描述<p> * Created by 002736 on 2021/3/23. * * @author 002736 * @version V1.0.0 * @since 2021/3/23 18:28 */public class Test { static Side[] lu; static int.
2021-05-11 13:51:39
74
原创 lock锁的condition原理
Condition维护了一个AQS单向链表,当调用await()时将当前线程加入到链表中,然后调用signal()会从链表头部拿出一个节点放到ReenTranLock维护的双向链表中,去抢锁,如果抢锁成功就执行,如果调用signalAll就是把所有的Condition链表节点都加入到ReenTranLock维护的双向链表中去抢锁。在并发编程中,每个Java对象都存在一组监视器方法,如wait()、notify()以及notifyAll()方法,通过这些方法,我们可以实现线程间通信与协作(也称为等待唤醒机
2021-03-15 17:24:05
789
原创 synchronized和lock的区别
synchronized实现原理见:https://mp.csdn.net/editor/html/114829524区别如下: 来源: lock是一个接口,而synchronized是java的一个关键字,synchronized是内置的语言实现; 异常是否释放锁: synchronized在发生异常时候会自动释放占有的锁,因此不会出现死锁;而lock发生异常时候,不会主动释放占有的锁,必须手动unlock来释放锁,可能引起死锁的发生。(所以最好将同步代码块用try catch包
2021-03-15 16:33:21
114
原创 怎么实现所有线程在等待某个事件的发生才会去执行
一、CountDownLatch用来解决线程之间通信的。CountDownLatch能够使一个线程在等待另外一些线程完成各自工作之后,再继续执行。使用一个计数器进行实现。计数器初始值为线程的数量。当每一个线程完成自己任务后,计数器的值就会减一。当计数器的值为0时,表示所有的线程都已经完成了任务,然后在CountDownLatch上等待的线程就可以恢复执行任务。(一般是主线程等待子线程执行完毕)CounDownLatch的不足是设置的计时器的数值只能在构造方法中初始化一次。package co
2021-03-15 15:54:24
624
转载 Volatile的作用以及底层实现原理
Volatile的作用以及底层实现原理先来看一段demo的代码:你会发现,永远都不会输出有点东西这一段代码,按道理线程改了flag变量,主线程也能访问到的呀?为会出现这个情况呢?那我们就需要聊一下另外一个东西了。JMM(JavaMemoryModel)JMM:Java内存模型,是java虚拟机规范中所定义的一种内存模型,Java内存模型是标准化的,屏蔽掉了底层不同计算机的区别(注意这个跟JVM完全不是一个东西,只有还有小伙伴搞错的)。那正式聊之前,丙丙先大概科普一下现代计算机的内
2021-03-15 15:11:28
210
原创 synchronized底层实现原理及锁优化
一、简述synchronized的作用①原子性:synchronized 保证语句块内操作是原子的。②可见性:synchronized 保证可见性(通过“在执行unlock之前,必须先把此变量同步回主内存”实现)。③有序性:synchronized 保证有序性(通过“一个变量在同一时刻只允许一条线程对其进行lock操作”)。synchronized的使用①修饰实例方法,对当前实例对象加锁。②修饰静态方法,对当前类的Class对象加锁。③修饰代码块,对 synchronized 括号内的对..
2021-03-15 13:58:07
246
原创 Java基础知识(一)
1、List和Set的区别List有两种List,一种是基本的ArrayList,其优点在于随机访问元素,另一种是更强大的LinkedList,它并不是为快熟访问十五级的,而是具有一套更通用的方法。SetSet具有与Collection完全一样的接口,因此没有任何额外的功能。实际上Set就是Collection,只 是行为不同。这是继承与多态思想的典型应用:表现不同的行为。Set不保存重复的元素(至于如何判断元素相同则较为负责)List和Set的区别1.List,Set都是继承自Co
2021-03-15 13:21:21
114
原创 SpringMVC 异步调用@Aysnc踩坑笔记
异步调用1、配置文件 applicationContext.xml<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/sc
2021-03-14 16:02:48
541
原创 JAVA实战-CPU占用过高问题排查
JAVA实战-CPU占用过高问题排查排查步骤1.使用top 定位到占用CPU高的进程PIDtop2.通过ps aux | grep PID命令获取线程信息,并找到占用CPU高的线程ps -mp pid -o THREAD,tid,time | sort -rn3.将需要的线程ID转换为16进制格式printf "%x\n" tid4.jvm打印线程的堆栈信息jstack pid |grep tid-A 30 -- 此处tid为16进制5.根据堆栈日志中的报错,...
2020-10-28 14:37:07
127
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人