![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 67
默熙123
这个作者很懒,什么都没留下…
展开
-
Java异常个人小结
首先,java异常的树状图如下 很明显,由图就可以看出,异常都是派生自Throwable类的一个实例,Throwable类主要有两大子类,分别为Error类和Exception类,Error类描述的是java程序运行时系统的内部错误和资源耗尽错误,当错误发生的时候,除了通知用户,使程序尽可能安全终止外,我们无能为力,因此这类异常我们也不需要抛出。 我们需要重点关注原创 2017-02-26 17:12:50 · 355 阅读 · 0 评论 -
java泛型总结
首先,为什么我们要使用泛型呢?泛型其实有两个比较好的优点:1当取得一个值的时候不需要进行强制类型转换,比如一个ArrayList取出的值不需要进行(String)object强制转换;2.使用泛型后,编译器会进行泛型类型检查,比如一个ArrayList当你向里面添加一个Integer类型的值的时候,它将会报错,告诉你需要一个String类型的变量。 泛型类示例:public class原创 2017-03-11 20:24:12 · 436 阅读 · 0 评论 -
类加载器与双亲委派模型
类加载器什么是类加载器?虚拟机设计团队把类加载阶段中的"通过一个类的全限定名来获取描述此类的二进制字节流"这个动作放到虚拟机外部实现,以便让应用程序自己决定去获取所需要的类,实现这个动作的代码模块被称为"类加载器"。对于任意一个类,都需要由加载它的类加载器和这个类本身一同确立其在Java虚拟机的唯一性。通俗的说,比较两个类是否"相等",只有在这两个类是同一个类加载器加载的前提下才有意义原创 2017-04-08 18:49:31 · 275 阅读 · 0 评论 -
Java虚拟机类加载机制个人总结
1.1类加载的生命周期类从被加载到虚拟机内存中开始,到卸载处内存为止,它的生命周期包括了:加载(Loading),验证(Verification),准备(Preparation),解析(Resolution),初始化(Initialization),使用(Using)和卸载(Unloading)七个阶段,其中验证,准备,解析三个部分称为连接(Linking),发生顺序如下:图中加载,验证,原创 2017-04-01 16:30:55 · 360 阅读 · 0 评论 -
volatile变量小结
众所周知,volatile是java语言提供的一种稍弱的同步机制,用来确保将变量的更新操作通知到其他线程,如果变量被声明为volatile类型后,编译器和运行时都会注意到这个变量是共享的,因此不会将该变量的操作与其他内存操作一起重排序。volatile变量不会被缓存在寄存器或者对其他处理器不可见的地方,因此在读取volatile的变量时总是返回最新写入的值.。volatile保证可见性如果原创 2017-05-05 17:15:21 · 699 阅读 · 0 评论 -
java内存模型小结
java线程之间的通信由java内存模型控制,Java内存模型(JMM)决定一个线程对共享变量的写入何时对其他线程可见,为了更好的学习java多线程,我们有必要了解一下java内存模型,在了解java内存模型之前,需要先了解一些其他必要的概念。指令重排序在执行程序时,为了提高性能,编译器和处理器可能对指令做重排序。但是,JMM确保在不同的编译器和处理器上,通过插入特定类型dMemo原创 2017-05-06 15:50:55 · 279 阅读 · 0 评论