自定义博客皮肤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)
  • 资源 (1)
  • 收藏
  • 关注

原创 关于java的反射机制及动态代理

java反射技术早都听说了,之前只是了解反射提供的方法,可是不知道反射技术到底该怎么使用,或者说什么时候能用到反射技术,最近看jvm有了一些新的感悟。首先,反射概念是什么?JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射。什么

2016-04-28 16:04:21 901

原创 深入理解jvm之分派

之前费了好大劲,一直想搞清楚 .class文件是个什么东东,因为我知道 .java 文件编译后是字节码的二进制文件,所以。。。有点蒙,因为在我的理解中,二进制文件就是文件中只有0和1的文件。。。。好吧,原来是我理解错误,但具体二进制文件是什么,查了好多资料,其实还是不理解,好吧,现在先不关心,只要清楚不是0和1就行了,因为使用javap查看的字节码中不是0和1啊。。。之前一直不解,现在理解的前提是

2016-04-27 22:38:39 387

原创 关于类加载器的理解以及双亲委派模型

我们知道,java字节码文件需要jvm进行加载到内存中才能执行,那么这个是怎么加载机制是怎样的呢?加载阶段需要完成的事情:1.通过一个类的全限定名获取定义此类的二进制字节流2.将这个字节流代表的静态存储结构转化为方法区的运行时数据结构3,在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口而完成加载阶段,靠的就是类

2016-04-26 17:18:05 557

原创 LinkedHashMap源码分析

接上一节关于HashMap的分析:LinkedHashMap继承HashMap,所以HashMap是LinkedHashMap的父类,HashMap有的方法LinkedHashMap都有,LinkedHashMap也会重写某些方法,我们知道,HashMap底层数据结构是数组和链表,那么LinkedHashMap会额外维护一个按照插入顺序排序的双向循环列表。 public

2016-04-25 22:13:00 248

原创 关于HashMap的源码分析

集合作为java中非常重要的一部分,在开发中经常被用到,而通过java源码实现可以更好理解底层实现。下面看java中的HashMap的源代码:首先,HashMap底层是通过数组和hash表实现的,底层的元素都是entry形式,通过计算每个entry的hash值来决定把entry放到哪个位置,如果出现hash冲突,则用链表解决。首先看entry类的代码:static

2016-04-25 17:24:40 278

原创 关于synchronized 和 线程间通信

下午对线程之间通信有了新的理解:这里只讨论synchronized 修饰 方法的情况,当然也分为两种情况:1.修饰普通方法2.修饰静态方法下面先讨论修饰普通方法的情况,当synchronized修饰方法的时候,这个对象会被上锁,就是说,不光是当前被synchronized修饰的方法不能被其他线程锁访问,这个对象的其他被synchronized修饰的方法也不能被其他线

2016-04-21 20:25:03 383

原创 关于序列化

把对象转换为字节序列的过程称为对象的序列化。  把字节序列恢复为对象的过程称为对象的反序列化。  对象的序列化主要有两种用途:  1) 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中;  2) 在网络上传送对象的字节序列。  在很多应用中,需要对某些对象进行序列化,让它们离开内存空间,入住物理硬盘,以便长期保存。比如最常见的是Web服务器中的Session对象,当

2016-04-14 22:10:58 234

原创 关于集合的源码实现问题——ArrayList

集合是java里面很重要而且比较常用的工具,了解java集合的源码实现可以帮助我们更好的理解集合的底层实现原理。通过阅读源码,将自己的成果进行记录以备以后复习用。首先,毫无疑问,ArrayList底层是用数组实现的。我们来看代码:private transient Object[] elementData; /** * The size of the ArrayLi

2016-04-14 21:14:34 243

原创 关于回调函数和多线程的一些问题

1,为什么要使用多线程?  除了提高处理器的利用效率,在当前线程等待的时间内可以去做另外的事情,不至于使处理器处于空闲状态,还有一些情况下也要使用。比如,代码的异步调用问题:一个java程序的界面,需要一个费时的操作,那么这个时候需要另外启动一个线程,否则的话,当前界面则需要一直等待这个费时操作的结束,界面上的一些工作将不得不停止,界面处于阻塞状态,这时候,可以启动一个新的线程,将这个

2016-04-13 12:24:56 11129

java web学习视频

非常好的Java学习视频推荐,当时看了之后很有收获,如今回想起来分享给众多喜欢编程的朋友

2018-07-08

空空如也

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

TA关注的人

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