在解决并发性读取的问题上,有一种模式叫做Copy On Write,基本思想就是以空间换时间。Mysql中RethinkDB的B-tree索引数据结构就是采用copy-on-write,Java类中的CopyOnWriteList也是对应模式的List实现。这里讲解一下常用的CopyOnWriteList,学习其思想,可以应用到类似的场景。 传统的ArrayL
参考文章:http://www.infoq.com/cn/articles/cf-java-generics 1、Java泛型是Java5以后才出现的特性,主要是为了代码重用的同时在编译器来避免类型转换问题。泛型的存在的意义在于类型替换,和禁止一些可能出现类型转换问题的编码,在编译期就报错 2、Java源代码首先通过编译得到class字节码文件,然后在jvm中运行。java cla
C语言编程中通过返回值来判断程序是否运行正常。而Java设计了一套异常机制来处理程序运行过程不正常的情况,这点非常重要,只有了解这一点,才能判断什么时候该抛异常,抛出什么异常,异常什么时候该被处理。 1、Java异常的相关语法 try-catch-finally,throw,throws 2、Java异常的分类 Java通过Exception类创建一套异常体系,定义了一系列有语
(1)序列化和反序列化其实就是对象和字节之间的转换。IO之间进行数据传输,无论是网络IO,还是文件IO,都是以字节为单位。而对象要想传输就必须首先转化为字节序列进行传输,接收端从字节序列中反序列化得到对象。常见的应用就是网络编程中传输对象,文件系统中直接将对象信息保存在文件中,还有就是顶顶大名的RMI技术,其实就是调用远程对象的方法,这就涉及到对象的传输,其核心思想就是基于序列化机制。
1、Pattern源代码 (1)matcher()函数的作用是编译已有的正则表达式,然后返回对应序列的匹配器,其涉及到的同步机制:volatile和synchronized的使用,单例模式常用到的DCL的问题,互斥和可见性。这篇博客解释得很好:http://www.ibm.com/developerworks/cn/java/j-jtp06197.html,原理性强点的http://
1、概括 (1)String之所以是不可修改的,其实在于类是final,不可继承,所有变量也是final,一旦初始化就不能更改。所以一些关于String的操作,返回的都是新的String对象 (2)从String源代码发现一个以前认识的误区,以前认为private限制成员的访问,A对象不能访问B对象的私有变量,这是错误的。访问限制是在编译时就已经检查了,因此只能针对类而言,对象是在运行时才会创
HttpClient学习 (1)下面列举几个主要的Http相关概念的类 类名 描述 HttpClient 建立请求客户端 HttpGet
首先unicode是字符集,保存着字符与16进制数的对应,每个字符都对应这一个编号也就是两个字节的16进制数。而utf-8,gbk这些称为编码方式,其将十六进制数根据具体的算法转化为2进制保存在内存中,一个字符保存在内存中的值不一定是编号。java采用unicode编码保存所有字符,其实就是每个字符在内存中都使用两个字节存储编号,不做转换。 (1)从os文件系统中读取文件的过程:文件
一、主题:(1)何时以及如何创建对象(2)何时以及如何避免创建对象(3)如何保证对象能够适时销毁(4)如何管理对象销毁之前必须进行的各种清理操作 二、考虑用静态工厂方法代替构造器 1、类可以提供一个公有的静态工厂方法,返回类的实例的静态方法 pubilc static Boolean valueOf(boolean b){&
1、集合类:研究源码,找出各种集合类的在不同应用场景的区别,目标是可以实现所有集合类 2、I/O:熟悉常用的I/O类,重点学习NIO,Java NIO 3、反射、泛型、注解、网络通信、数据库操作:学会使用 4、多线程:重点了解各种同步方式,Concurrent Programming in Java 5、了解虚拟机及GC,阅读JAVA虚拟机规范 6、重点编码规范和程序健壮性,clean
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号