自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 学习笔记:垃圾回收

常见的垃圾回收器:1.serial GC: 比较古老的垃圾回收器,是单线程工作的,可能发生stop-the-world,不过因为它是单线程工作的,所以比较精简,不需要过多的去维护数据结构,因此它是client端的首选。从年代来看,在serial Old(老年代)采用的是标记-整理 垃圾回收算法(防止内存空间碎片化),而新生代中主要使用的是复制算法。2.PerNew GC:是serial...

2018-07-23 15:22:31 242

原创 学习笔记之类加载以及其双亲委派协议

学习杨晓峰Java进阶教程后的笔记。 类加载过程:1.加载: 它将字节码从各种形态的数据源中读取出来,然后映射为JVM可以读取的数据结构(class 对象)。这些数据源可以包括但不限于Jar 文件,class文件。如果输入的数据不是classFile结构,会抛出classFormatError。2.验证:这个阶段主要是验证之前映射的字节信息是否符合JVM的规范;这一阶段是重要的安全...

2018-07-22 16:48:02 155

原创 Java 锁机制

当没有竞争的时候,系统会默认使用偏斜锁。JVM 利用CAS(compare and swap)在 对象头的第一部分(mark word)设置 偏向线程ID,表示对象偏向于这个线程。 因为大部分并发场景下面 对象 生命周期 中最多被一个线程锁定, 使用偏斜锁的话可以降低 低竞争状态下的 额外开销。这个时候如果有另外的线程试图锁定已经被倾斜过的对象,JVM会撤销(revoke)偏斜锁, 并切换到轻...

2018-07-21 17:37:50 2512

原创 深入理解抽象类和接口

接口:接口可以理解为对行为的抽象,利用接口可以把API和接口分离开来。在接口里面只能有常量(public final static)。方法的话只能允许静态方法和抽象方法。接口 不能被实例化。甚至有的接口里面都没有声明抽象方法,只有常量:cloneable。抽象类:主要用于方法重用,用abstract 关键字修饰class。 也是不能实例化,抽象类可以实现接口。 最近的接口:在Java ...

2018-07-21 00:08:23 211

原创 文件拷贝效率与操作系统

内核态空间:操作系统底层分为内核态空间和用户态空间。其中系统内核和硬件驱动等都属于内核态空间,它拥有较高的特权。用户态空间:则是普通应用和服务所在的空间数据拷贝的方法:数据拷贝主要有以下3种方法:a .使用inputstream 和outputstream。然后使用inputstream的read()方法读取数据,outputstream的write()方法写数据。...

2018-07-20 17:34:22 275

原创 IO和NIO的区别

在这里不再过多描述IO的具体API用法。 总的来说reader,writer是处理字符的,而inputsream 和 outputstream是处理字节的,eg:图片什么的(其实现在大多Web应用上传图片时候也不会使用字节流而是上传一个图片存储的地址)。上图是IO的大体结构。其中buffer 相当于一个缓冲区,通过这个缓冲区,字节传输的可以改为块传输,提高了效率。 IO(同步阻塞)...

2018-07-20 16:54:37 4978

原创 ConCurrentHashMap

ConCurrentHashMap的早期实现如上图,是将其分为很多segment,其次每个segment的数据结构类似于HashMap;每个Segment里面都拥有一个HashEntry<k,v>对象。 HashEntry<k,v> 内部使用了 volatile 的value字段保证了数据的可见性以达到同步的效果。在同步环境下,整体采用了分段锁定的效果,当其中一个seg...

2018-07-20 12:46:55 786

原创 自动装箱和自动拆箱

自动装箱:Integer.valueOf()自动拆箱:integer.IntValue()两个过程都发生在编译阶段,javac为我们完成这些工作。PS:在Int的值在-128到127之间的时候,会产生缓存机制,值会被放进常量池。也就是方法区(Boolean,Short,Byte,Character也有这种机制。其中Byte因为数值有限,都会被放进方法区)。引用类型相比于原始类型的优势在...

2018-07-19 01:33:44 167

原创 反射机制

首先什么是JAVA的反射机制:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。以下是3种常用的获得Class 类的3种方法:public class Fanshe { public static void main(String[]...

2018-07-18 23:51:23 109

原创 内存泄漏问题

strong reference:一个强引用指向一个对象,证明这个对象是可达的,不会被垃圾回收。soft reference : 比强引用弱的引用,可以得到一些垃圾回收豁免权,只有当内存空间严重不足的时候,会考虑回收soft reference。weak reference:不能使对象豁免垃圾收集。仅仅是提供一种访问在弱应用状态下对象的途径。一个线程新鲜创建的对象是强引用状态,但是...

2018-07-18 20:02:58 170

原创 try-with-resourse

今天看书的时候,发现一个比 try finally更好的关闭资源的方法:try-with-resourse. 下面是一个关闭JDBC的例子:public static void viewTable(Connection con) throws SQLException { String query = "select COF_NAME, SUP_ID, PRICE, SALES, ...

2018-07-18 18:28:44 239

原创 Spring MVC 问答

1.Spring 运行原理:a.首先所有请求会被提交给DispatcherServlet。b.DispatcherServlet查询一个或者多个HanderMapping,找到处理请求的controller。c.然后DispatcherServlet把请求提交给controller。d.controller通过业务逻辑处理后返回一个ModelAndView。e.Dispache...

2018-07-16 18:58:08 150

原创 Java面试常见问答

1.hashmap的内部实现 答:hashmap 是对数据结构hash table 的内部实现,哈希表也叫散列表,有着不错的查询和添加速度。它通过关键吗key来访问其对应的值value。就是关键码key(key.hashcode())的映射函数来找到表中相对应的位置的value。它结合了链表和数组的优势,其中链表是用来解决hash冲突的。其链接节点数据结构是entry<k,v>,每个e...

2018-07-16 14:21:39 1345

空空如也

空空如也

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

TA关注的人

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