2019年5月2日

springboot项目:jar中没有主清单属性

摘要: 在pom.xml文件添加: 重新打包即可阅读全文

posted @ 2019-05-02 12:39 楼兰剑客 阅读(20) 评论(0) 编辑

2019年5月1日

IDEA连接数据库后如何显示表

posted @ 2019-05-01 19:21 楼兰剑客 阅读(56) 评论(0) 编辑

2019年4月29日

Java虚拟机运行时数据区域及垃圾回收算法

摘要: 程序计数器 记录正在执行的虚拟机字节码指令的地址(如果正在执行的是本地方法则为空)。 Java 虚拟机栈 每个 Java 方法在执行的同时会创建一个栈帧用于存储局部变量表、操作数栈、动态链接、方法出口等信息。每一个方法从调用直至执行完成的过程,就对应着一个栈帧在 Java 虚拟机栈中入栈和出栈的过程阅读全文

posted @ 2019-04-29 12:28 楼兰剑客 阅读(3) 评论(0) 编辑

2019年4月25日

synchronized原理

摘要: 首先要介绍对象头,对象头包含两个部分,一个是指向类信息,一个保存对象运行时相关数据,称之为mark word。 偏向锁:线程申请获取偏向锁时,首先检测锁对象ThreadID是否为当前线程id,如果是,则直接进入临界区,否则用cas操作尝试修改ThreadID为当前线程id,如果成功则进入临界区,如果阅读全文

posted @ 2019-04-25 12:38 楼兰剑客 阅读(5) 评论(0) 编辑

concurrentHashMap求size

摘要: 在 JDK1.7 中,首先会使用不加锁的模式去尝试多次计算 ConcurrentHashMap 的 size,最多三次,比较前后计算的结果,结果一致就认为当前没有元素加入,计算的结果是准确的。如果不符合,就会给每个 Segment 加上锁,然后计算 ConcurrentHashMap 的 size 阅读全文

posted @ 2019-04-25 12:37 楼兰剑客 阅读(51) 评论(0) 编辑

Java类加载机制

摘要: 1、加载 1)通过类的全限定名,获取类的字节码文件的二进制流 2)将二进制流所代表的静态存储结构转化为方法区的运行时数据结构 3)在内存中生成一个class对象 2、验证 1)文件格式验证 2)元数据验证 3)安全验证 3、准备 为类变量分配内存并设置初始值 4、解析 将符号引用转化为直接引用 5、阅读全文

posted @ 2019-04-25 12:36 楼兰剑客 阅读(9) 评论(0) 编辑

2019年4月23日

fail-fast和fail-safe的区别

摘要: fail-fast(快速失败):多线程情况下,一个线程通过迭代器读取集合中的值时,另一个线程修改了集合,则会抛出ConcurrentModificationException异常; 集合中通过modCount记录集合被修改的次数,每次执行next和remove方法的时候都会先检查这个modCount阅读全文

posted @ 2019-04-23 18:31 楼兰剑客 阅读(2) 评论(0) 编辑

线程的状态及其转换

摘要: 新建(new):新创建了一个线程对象。 可运行(就绪)(runnable):线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取cpu的使用权。 运行(running):可运行状态(runnable)的线程获得了cpu阅读全文

posted @ 2019-04-23 18:30 楼兰剑客 阅读(46) 评论(0) 编辑

hashCode 与 equals

摘要: 面试官可能会问你:“你重写过 hashcode 和 equals 么,为什么重写equals时必须重写hashCode方法?” hashCode()介绍 hashCode() 的作用是获取哈希码,也称为散列码;它实际上是返回一个int整数。这个哈希码的作用是确定该对象在哈希表中的索引位置。hashC阅读全文

posted @ 2019-04-23 18:28 楼兰剑客 阅读(5) 评论(0) 编辑

Java成员变量与局部变量的区别

摘要: 从语法形式上看,成员变量是属于类的,而局部变量是在方法中定义的变量或是方法的参数;成员变量可以被public,private,static等修饰符所修饰,而局部变量不能被访问控制修饰符及static所修饰;但是,成员变量和局部变量都能被final所修饰。 从变量在内存中的存储方式来看,成员变量是对象阅读全文

posted @ 2019-04-23 18:26 楼兰剑客 阅读(4) 评论(0) 编辑

导航

统计

公告