- 博客(10)
- 资源 (16)
- 收藏
- 关注
原创 Java异常机制--try catch finally 执行顺序详解
引言关于try catch finally 执行顺序的笔试面试题目非常的多,我曾经在牛客网刷题的时候不止一次的碰到过,而且不止一次的做错过,这里面需要涉及的细节如果不弄清楚每次做题就会产生似是而非的感觉。这次查阅了很多相关资料,关于try catch finally 执行顺序各方面基本都讲到了。不足之处欢迎指出。try catch finally 执行顺序仅仅在下面4中情况下不会执行finally语
2017-06-20 16:52:23 18016 9
原创 Java进阶--static完全解析
前言现在深深的感觉到写一篇好的博客十分不容易,static关键字的考点在各种笔试面试中会经常遇到,在写这篇博客之前我也是大量的阅读了相关的文献,争取从全局上对static做一个分析,这里的全局包括JVM(Java虚拟机),JMM(Java内存模型)等。Java内存管理机制在讲static关键字之前必须先了解Java的内存管理机制,下面先分析一下Java的内存管理机制。如果有兴趣可以看看JMM(Jav
2017-06-13 17:08:49 1592
原创 Java并发编程--深入理解volatile关键字
前言一个月以前就准备写篇关于volatile关键字的博客,一直没有动笔,期间看了大量的文章,发现一个小小volatile关键字竟然涉及JMM(Java memory model),JVM(Java virtual machine),Java多线程同步与安全各个方面的知识,写起了非常的困难,后面附带的参考文献仅仅是我看过文献的一部分。Java memory model(Java内存模型)在讲volat
2017-06-12 17:39:06 764
原创 深入理解jvm--Java类的初始化及主动引用和被动引用完全解析
初始化类初始化阶段是类加载过程的最后一步,前面的类加载过程中,除了在加载阶段用户应用程序可以通过自定义类加载器参与之外,其余动作完全由虚拟机主导和控制。 到了初始化阶段,才真正开始执行类中定义的Java程序代码(或者说是字节码)。初始化阶段是执行类构造器<clinit>()方法的过程。 主动引用对类进行引用时如果类没有进行过初始化,则先触发其初始化叫做主动引用。有且只有下面5中情况下才会进行主动引用
2017-06-10 20:45:56 2222
原创 深入理解Jvm--Java静态分配和动态分配完全解析
jvm中绑定Binding的概念绑定是针对类型而言的,指的是类型确定的过程,通常发生在访问对象成员或者方法调用的过程中。当我们谈论方法或属性的访问时动态绑定还是静态绑定时,实际上指的是方法的接收者和属性的所有者的类型确定(determine by atual type or determine by static type)。根据类型确定发生在运行期还是编译期以及依据实际类型还是静态类型,可以将Bi
2017-06-10 17:00:12 3840 1
原创 深入理解jvm--Java中init和clinit区别完全解析
init和clinit区别①init和clinit方法执行时机不同 init是对象构造器方法,也就是说在程序执行 new 一个对象调用该对象类的 constructor 方法时才会执行init方法,而clinit是类构造器方法,也就是在jvm进行类加载—–验证—-解析—–初始化,中的初始化阶段jvm会调用clinit方法。参考文献①深入JAVA虚拟机第二版. ②https://stackover
2017-06-10 10:43:57 29311 13
原创 Java进阶--Java中 i++完全解析
在讲 i++与++i之前先看两个在笔试面试中经常遇到的题目: 题目1//代码1 int x=2; int b=(x++)*3; System.out.println(b);/* 输出结果为:6*/题目2//代码1 int i=0; for(int j=0;j<100;j++)
2017-06-08 22:43:34 6210
原创 Java并发编程--深入理解Semaphore
Semaphore简介Semaphore(信号量)是用来控制同时访问特定资源的线程数量,它通过协调各个线程,以保证合理的使用公共资源。Semaphore的用途Semaphore可以用于做流量控制,特别公用资源有限的应用场景,比如数据库连接。假如有一个需求,要读取几万个文件的数据,因为都是IO密集型任务,我们可以启动几十个线程并发的读取,但是如果读到内存后,还需要存储到数据库中,而数据库的连接数只有1
2017-06-06 16:03:28 2156
原创 Java并发编程--深入理解ReadWriteLock锁机制
Lock锁简介Lock和synchronized 同步代码块类似,是线程同步机制,但是Lock比synchronized 同步代码块更加灵活。Lock是通过synchronized关键字来实现的。从Java 5开始,java.util.concurrent.locks包含几个锁,下面通过自己实现的Lock来看看Lock的实现原理。简单的锁实现public class Lock{ private b
2017-06-05 18:03:34 941
原创 Java进阶--Java泛型总结
一. 泛型概念的提出(为什么需要泛型)?首先,我们看下下面这段简短的代码:public class GenericTest { public static void main(String[] args) { List list = new ArrayList(); list.add("qqyumidi"); list.add("corn");
2017-06-05 09:18:21 583
经典算法flash动画演示
2017-04-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人