Java
勇敢地追
这个作者很懒,什么都没留下…
展开
-
抽象类(abstract)和接口(interface)的区别
1 抽象类是不能被实例化的类,只能作为由其他类继承的基类; 接口则定义了实现某种服务的一般规范(Objective-C中将接口称为“协议”(protocol)),声明了必需的函数和常量,但不指定如何实现。2 子类通过extends关键字来继承抽象类(且只能继承一个); 类通过implements关键字来实现接口(可以实现多个)。3 在抽象类中定义的所有abstract方法都必须在子类转载 2017-01-17 14:17:00 · 230 阅读 · 0 评论 -
正则表达式
//^ 匹配输入字符串开始的位置 //$ 匹配输入字符串结尾的位置 //* 零次或多次匹配前面的字符或子表达式。例如,zo* 匹配z,zo,zoo等 Pattern p = Pattern.compile("^zo*$"); Matcher m = p.matcher("zooo"); System.out.println("*测试:" + m.matche原创 2017-09-04 15:03:54 · 266 阅读 · 0 评论 -
类加载器
类加载器基本概念顾名思义,类加载器(class loader)用来加载 Java 类到 Java 虚拟机中。一般来说,Java 虚拟机使用 Java 类的方式如下:Java 源程序(.java 文件)在经过 Java 编译器编译之后就被转换成 Java 字节代码(.class 文件)。类加载器负责读取 Java 字节代码,并转换成 java.lang.Class 类的一个实例。每个这样的实例用来表示原创 2017-07-20 15:32:47 · 207 阅读 · 0 评论 -
volatile,synchronized,ReentrantLock
synchronized实现机制:反编译以后monitor 优化:自旋锁,适应自旋锁,轻量级锁等 所谓自旋锁,就是让该线程等待一段时间,不会被立即挂起,看持有锁的线程是否会很快释放锁。怎么等待呢?执行一段无意义的循环即可(自旋)。 虽然可以避免线程切换带来的开销,但是占用处理器时间volatile原子性:一个操作或者多个操作 要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。(v原创 2017-06-14 17:20:22 · 300 阅读 · 0 评论 -
ConcurrentHashMap详解
参考: http://www.cnblogs.com/everSeeker/p/5601861.html http://blog.csdn.net/fjse51/article/details/55260493 http://www.jianshu.com/p/c0642afe03e0在jdk1.6中ConcurrentHashMap使用锁分段技术提高并发访问效率。首先将数据分成一段一段地存储原创 2017-04-28 14:27:43 · 335 阅读 · 1 评论 -
android注解
包 java.lang.annotation 中包含所有定义自定义注解所需用到的原注解和接口。 如接口 java.lang.annotation.Annotation 是所有注解继承的接口,并且是自动继承,不需要定义时指定,类似于所有类都自动继承Object。 该包同时定义了四个元注解,Documented,Inherited,Target(作用范围,方法,属性,构造方法等),Retention原创 2017-02-14 15:23:53 · 238 阅读 · 0 评论 -
LinkedHashMap详解
LinkedHashMap中有一个重要的数据: // LinkedEntry就是一个双向链表。除了保存当前对象的引用外,还保存了其上一个元素 before 和下一个元素 after 的引用 static class LinkedEntry<K, V> extends HashMapEntry<K, V> { LinkedEntry<K, V> nxt;原创 2017-02-10 22:47:23 · 1348 阅读 · 0 评论 -
Java泛型和通配符
一. 泛型概念的提出(为什么需要泛型)?首先,我们看下下面这段简短的代码:public class GenericTest { public static void main(String[] args) { List list = new ArrayList(); list.add("qqyumidi"); list.add("corn");转载 2017-01-24 10:54:20 · 362 阅读 · 1 评论 -
HashMap源码详解
HashMap中有个重要的数据HashMapEntry,在源码里面有介绍 static class HashMapEntry<K, V> implements Entry<K, V> { final K key; V value; final int hash; HashMapEntry<K, V> next; ..原创 2017-02-09 21:44:19 · 1093 阅读 · 0 评论 -
java虚拟机和内存模型
1.垃圾收集器概述垃圾收集器(Garbage Collection),通常被称作GC。 GC主要做了两个工作,一个是内存的划分和分配,一个是对垃圾进行回收。 关于对垃圾进行回收,被引用的对象是存活的对象,而不被引用的对象是死亡的对象也就是垃圾,GC要区分出存活的对象和死亡的对象,也就是垃圾标记,并对垃圾进行回收。2.垃圾标记算法在对垃圾进行回收前,GC要先标记出垃圾,那么如何标记呢,目前有两种垃原创 2017-10-12 15:43:58 · 279 阅读 · 0 评论