自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

永远向前

聚沙成塔 集腋成裘

  • 博客(27)
  • 收藏
  • 关注

原创 类加载过程

面试准备,干脆写些东西,总结下吧1、加载通过类全限定名获得类的二进制字节流;将类的字节流所代表的静态存储结构转化为方法区的运行时数据结构;在内存中生成类的Class对象,作为方法区该类的各种数据的访问入口。2、校验数据格式元数据字节码符号引用验证3、准备准备内存,用来存储类的static成员,并设置初始值。4、解析将类相关的符号引用替换为直接引用,包括类,方法,成员。5...

2020-02-28 13:55:04 123

原创 Mysql主从备份记录

master在192.168.140.123上,slave在124上//第一部分、先配置master1、安装#先删除默认安装的 mysql lib 库。yum remove mysql*yum remove mariadb*#通过 RPM 命令进行安装unzip MySQL-5.6.28-1.el6.x86_64.ziprpm -ivh MySQL-server-5.6.28-1....

2019-02-20 15:32:18 402

原创 ConcurrentHashMap 原理

HashMap在多线程中可能会出现死循环的问题,因而再多线程情况下需要使用其他替代方案。 1、选择 HashTable是一个方案,不过HashTable会对整个结构加锁(synchronized),在高并发访问情况下,效率很低,因而基本被废弃。 另一个就是ConcurrentHashMap了。 2、简述 ConcurrentHashMap的的实现在JDK1.8有较大的更改。JDK1....

2018-06-10 21:42:39 200

原创 LockSupport原理

1、使用 LockSupport和CAS操作是java并发包中很多控制机制的基础,都是通过UNSAFE来实现的。 LockSupport是基本的线程阻塞的原语,通过park和unpark来实现线程的阻塞和唤醒。LockSupport的每个使用它的线程都与一个许可(permit)有关,permit是一个0,1的开关,默认是0,unpark会将permit变为1。park会消耗permit,变为0...

2018-06-09 10:09:35 754

原创 循环栅栏CyclicBarrier的使用及原理

1、使用 直接await即可。//指定等待数量public CyclicBarrier(int parties)//等待,触发归0则往下走int await()2、原理 使用ReentrantLock及相应Condition实现等待/阻塞/唤醒。 主要实现方法为private int dowait(boolean timed, long nanos) ...

2018-06-09 09:51:42 958

原创 CountDownLatch原理及使用

1、使用 通常用于多线程之间的等待 常用函数//用于state-1 void countDown() //主线程等待子线程做事情。 void await() throws InterruptedException2、原理 原理就是借助AQS的等待队列,代码很简单,这里不赘述。不过这里特意提一点,可以多个线程进行await,countDown将state减为0时,会唤醒所有的...

2018-06-09 09:45:20 407

原创 ReentrantReadWriteLock详解

1、用法//初始化读锁和写锁ReentrantReadWriteLock rwl = new ReentrantReadWriteLock(); ReentrantReadWriteLock.ReadLock rlock = rwl.readLock();ReentrantReadWriteLock.WriteLock wlock = rwl.writeLock();//加解锁r...

2018-06-09 09:37:47 261

原创 Semaphore详解

1、方法public void acquire()public void acquireUninterruptibly()public void release() public boolean tryAcquire(int permits)2、原理 Semaphore原理比较简单,类似ReentrantLock,使用AQS的模板模式来进行实现。//Semaphore....

2018-06-05 22:10:53 423

原创 ReentrantLock使用和原理(AQS简述)

在开发过程中,synchronized是最简单的同步控制方法,在通常情况下是够用的,但synchronized时不响应中断,而且有时候,我们需要灵活的来控制加解锁。这时候可以使用ReentrantLock。 在以前的版本中,synchronized效率是远远低于ReentrantLock,后来经过优化,两者性能差距不大了。但ReentrantLock有一些新特性,是synchronized所不具...

2018-06-03 21:56:00 1327

原创 ThreadLocal

所谓ThreadLocal,就是每个线程人手一只笔,线程本地存储。 1、使用 ThreadLocal的常规用法是get和set方法,比如可能这样用static ThreadLocal<Object> tlObj = new ThreadLocal<>(); //如下使用方法 if(tlObj .get() == nu...

2018-05-05 09:13:56 177

转载 logback总结

spring-boot集成logback非常简单,只写一个logback.xml即可。1、根节点configuration<configuration debug="false" scan="true" scanPeriod="10 seconds">有3个属性 - scan,为true,表示如果配置文件发生更改,重新加载配置文件。默认为true。 - scan...

2018-04-24 20:01:18 223

原创 设计模式一览

最近总有想写点东西的冲动,想来想去,总结下设计模式吧,自己写一下,不容易忘掉。 1、策略模式 所谓策略模式,是将算法和策略进行分割的一种模式。之所以这样,其实是基于一种思想,将变化的部分和不变的部分分割开来,如果以后需要修改程序,或者需求变更,只需要修改这部分变化的部分即可,如果有多种算法,相互替换即可。 典型举例: 我有前n个月份的销售记录,希望预测下一个月的销量。这...

2018-04-05 12:17:34 202

原创 synchronized总结

用法: a、指定加锁对象,对给定对象加锁;synchronized(a){ ...}b、直接作用于实例函数,对指定实例加锁;public synchronized void f(){ ...}c、直接作用于静态函数,对当前类加锁;public static synchronized void f(){ ...}原理: 1、synch

2018-01-07 12:59:50 246

原创 线程详解

线程状态public enum State { // 刚创建线程.还未执行 NEW, //线程已启动,或在等待分配cpu时间片 RUNNABLE, //线程阻塞状态,等待进入临界区,通过synchronized等待监视器锁 BLOCKED, //线程等待状态,通过Objec...

2018-01-07 11:32:40 180

原创 HashMap总结

本文所使用的源码来自jdk1.8 1、存储 HashMap之所以访问很快,内部机制是通过数组+链表(链表长度大于8则转为红黑树)来实现的。 HashMap中最顶层的结构是哈希桶数组:transient Node<K,V>[] table;其中,Node即表示数组的一个元素,也是一个单向链表,结构如下: static class Node<K,V> implements Map.Entry

2017-10-08 20:01:14 320

原创 webpack细节点记录

1、 __dirname 获得当前文件所在目录的完整目录名 __filename 当前模块文件的带有完整绝对路径的文件名2、path.joinpath.join('/foo', 'bar', 'baz/asdf', 'quux', '..')// returns '/foo/bar/baz/asdf'path.join('foo', {}, 'bar')// throws exception

2017-06-29 16:53:41 188

原创 MySQL提示密码过期

java连接mysql(5.6),提示如下Caused by: org.mariadb.jdbc.internal.util.dao.QueryException: Could not connect: Your password has expired. To log in you must change it using a client that supports expired passwo

2017-06-28 14:34:15 1112

原创 swagger2

swagger需要导入swagger相关页面,比较麻烦。 swagger2更近一步,只需要做几个配置即可,更简单,更易用。项目基于spring-boot实现,下面指定配置点pom.xml依赖 <!-- swagger 框架依赖 --> <dependency> <groupId>io.springfox</groupId>

2017-06-27 20:19:47 1258

原创 swagger

swagger集成

2017-04-26 20:31:50 1066

原创 获取Connection的方法

1、实际项目用的spring-mvc + jpa + hibernate,有需求来读取表名和列名。 方法一://有效,不过getConnectionProvider()是@Deprecated的,不建议用Session session = (Session)em.getDelegate();SessionFactoryImplementor sf = (SessionFactoryImplem

2017-04-26 16:45:24 2707

原创 systemctl开启启动redis

redis.service[Unit]Description=redis serviceAfter=network.target[Service]Type=forking //不加这句回一直重启ExecStart=/root/redis-start.shRestart=alwaysEnvironment=PATH=/usr/local/bin:/sbin:/usr/bin:/bin[

2017-03-21 14:16:41 2890

转载 redis搭建集群

用两台虚拟机模拟6个节点,一台机器3个节点,创建出3 master、3 salve 环境。redis 采用 redis-3.2.4 版本。两台虚拟机都是 CentOS ,一台 CentOS6.5 (IP:192.168.31.245),一台 CentOS7(IP:192.168.31.210) 。安装过程下载并解压cd /root/software wget http://download.r

2017-03-21 14:10:59 396

原创 围圈报数

public class spaceX { private static long n = 100; private static long k = 7; public static void main(String[] args){ if((args != null)&&(args.length != 0)){ n = Long.par

2016-11-03 19:49:59 440

原创 JAVA读写文件方法总结

ava.io下面有两个抽象类:InputStream和Reader InputStream是表示字节输入流的所有类的超类 Reader是用于读取字符流的抽象类 InputStream提供的是字节流的读取,而非文本读取,这是和Reader类的根本区别。 即用Reader读取出来的是char数组或者String ,使用InputStream读取出来的是byte数组。 弄清了两个超类的根本区别,

2016-06-29 11:48:02 341

原创 java加载jar包中的库资源

1、加载jar包中资源 加载文件方法有很多,不过如果文件打包在jar包内如何进行加载呢?路径可以很轻易的获取,不过jar包是一个文件,而非一个文件夹,jar包中的资源并未解压到外部环境中,因而我们无法通过常用的加载文件的方法获知jar包中文件。通常通过如下接口来读取jar包中文件:InputStream in = this.getClass().getResourceAsStream("/lib/

2016-06-28 20:12:47 2878 1

原创 linux常用命令集锦

scp拷文件scp local_file remote_username@remote_ip:remote_folder

2016-06-21 15:22:13 143

转载 virtualbox下最小化安装centos7后上网设置

在虚拟机中以最小化方式安装centos7,后无法上网,因为centos7默认网卡未激活。可以设置 文件 /etc/sysconfig/network-scripts/ifcfg-enp0s3 将 ONBOOT=no 改为 ONBOOT=yes保存后重启网卡: service network restart此时就可以上网了。因为是最小化安装,此

2015-11-20 16:55:16 327

空空如也

空空如也

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

TA关注的人

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