4 永远向前的麦田

尚未进行身份认证

暂无相关简介

等级
TA的排名 21w+

类加载过程

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

2020-02-28 13:55:04

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

ConcurrentHashMap 原理

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

2018-06-10 21:42:39

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

循环栅栏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

CountDownLatch原理及使用

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

2018-06-09 09:45:20

ReentrantReadWriteLock详解

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

2018-06-09 09:37:47

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

ReentrantLock使用和原理(AQS简述)

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

2018-06-03 21:56:00

ThreadLocal

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

2018-05-05 09:13:56

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

设计模式一览

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

2018-04-05 12:17:34

synchronized总结

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

2018-01-07 12:59:50

线程详解

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

2018-01-07 11:32:40

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

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

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

swagger2

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

2017-06-27 20:19:47

swagger

swagger集成

2017-04-26 20:31:50

获取Connection的方法

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

2017-04-26 16:45:24

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!