自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 资源 (3)
  • 收藏
  • 关注

转载 类加载机制

原文链接http://hammer.coding.me/2016/10/26/jvm-1/在开始正文之前,我们先看两张图。先看一下java程序的执行流程图再看一下jvm的大致物理结构图一.类加载机制概念 Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的加载机制。Cla...

2018-07-29 22:58:55 118

原创 类加载的双亲委派模型

首先来了解一下类加载器,类加载器的工作是将.class文件加载到内存中,在方法区创建数据结构,并在堆中创建类的对象以便调用方法区的方法。JAVA提供了三种类加载器:一.启动类加载器(Bootstrap.ClassLoader),加载<JAVA_HOME>/lib路径下的核心类库。二.扩展类加载器(Extending.ClassLoader),加载<JAVA_HOME&gt...

2018-07-28 22:10:28 1780

原创 类加载的三种方式

类加载分为动态加载和静态加载。动态加载是从外存储器中加载类,一般类加载机制分析的也是动态加载。而静态加载本质上是从内存中创建类的实例对象,此时类已经被加载到内存中。一.静态加载1.通过new关键字来创建Test的实例对象。二.动态加载1. 通过Class.forName()来加载类,然后调用类的newInstance()方法实例化对象。2.  通过类加载...

2018-07-27 22:52:22 13094 2

原创 JAVA中的copy-on-write容器

实际开发中,对许多数据结构的使用,很多情况下都是读多写少的。在多线程中,读操作并不会改变数据,所以并发读并不会影响线程安全,需要着重考虑的是并发写,所以读操作线程和写操作线程分离会提高多线程效率。JDK1.5之后出现了copy-on-write原则,即写时复制。其核心思想是,有线程使用容器中的数据时,如果是写入,则复制出一个新容器,修改新容器中的数据后,再将引用指向新容器。如果是读操作则正常读...

2018-07-26 23:39:04 2186 1

原创 深度拷贝与浅度拷贝

深度拷贝与浅度拷贝的区别主要在于有没有为拷贝出的新对象在堆中重新分配一块内存区域。浅度拷贝即直接赋值,拷贝的只是原始对象的引用地址,在堆中仍然共用一块内存。而深度拷贝为新对象在堆中重新分配一块内存,所以对新对象的操作不会影响原始对象。关于为什么要用深度拷贝,如果要将可变对象和不可变对象相互转换,或者需要操作新对象的时候不影响原始对象,则用深度拷贝。copy-on-write原则就是利用深度拷贝...

2018-07-25 22:56:52 13988

原创 利用try-with-resource机制关闭连接

JAVA的一大特性就是JVM会对内部资源实现自动回收,即自动GC,给开发者带来了极大的便利。但是JVM对外部资源的引用却无法自动回收,例如数据库连接,网络连接以及输入输出IO流等,这些连接就需要我们手动去关闭,不然会导致外部资源泄露,连接池溢出以及文件被异常占用等。传统的手动释放外部资源一般放在一般放在try{}catch(){}finally{}机制的finally代码块中,因为finall...

2018-07-24 21:46:12 57971 7

原创 自定义异常的用法

日常开发中,如果需要用异常的方式更清楚的表现出程序中的逻辑问题,则需要自定义异常。理论上自定义异常一般不会影响程序运行,就算影响也是开发者逻辑设计的一部分。我们知道,throwable类是所有异常的基类,只有throwable及其子类才可以被抛出。throwable有两个子类分别是Exception和Error。Exception是需要被捕获并处理的,而Error因为难以被预料所以不便于被捕获...

2018-07-24 00:04:26 3337

原创 关于SSL安全套接层协议

SSL(Secury Sockets Layer)中文名是安全套接层协议,利用数据加密技术保障网络上的数据传输安全。我们都知道HTTP协议,是现在应用最广泛的网络协议,可它是不安全的。还好有HTTPS协议,即安全版的超文本传输协议。其实HTTPS的实现主要依赖于SSL,即在HTTP中加入了SSL层。关于SSL的工作原理,前文提到SSL是利用了数据加密技术来保障网络数据传输安全的。数据加密技术分...

2018-07-19 22:20:36 2955

原创 三种java实现文件拷贝方式的性能比较

首先,三种实现文件拷贝的方式分别是IO流输入输出,NIO的transferTo和transferFrom以及标准库中提供的几种Files.copy()方法。具体实现方法就不多赘述了,写下这篇博客是想总结一下这三种实现方式的性能比较。要比较性能,这里涉及到操作系统的用户态、用户空间和内核态、内核空间的概念。我的理解就是当线程正在执行普通应用的方法时,比如调用java标准类库中的方法,此时线程处于...

2018-07-19 00:24:09 4078

离线安装docker.zip

在内网服务器中离线安装Docker的本地源,rpm完整,版本适配,附教程链接,亲试有效

2020-06-18

rabbitmq镜像包.zip

RabbitMQ的Docker镜像包,带管理界面版本和不带两个镜像包都有,直接拷贝到服务器中load

2020-06-18

linux安装RabbitMQ(3.6版本)

linux中安装RabbitMQ所需的三个rpm以及详细安装教程,亲试可用,包含RabbitMQ、Erlang以及Socat三个rpm,版本互相适配

2020-06-08

空空如也

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

TA关注的人

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