- 博客(9)
- 资源 (12)
- 收藏
- 关注
转载 深入理解Java内存模型——final
对于final域,编译器和处理器要遵守两个重排序规则: 在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用变量,这两个操作之间不能重排序。 初次读一个包含final域的对象的引用,与随后初次读这个final域,这两个操作之间不能重排序。 下面,我们通过一些示例性的代码来分别说明这两个规则: public class FinalExample { int...
2017-04-09 08:42:35 421
原创 Java锁的种类
1. 可重入锁 当一个线程重新获取锁,读写锁或其他不可重入的同步器时,就可能发生重入锁死。可重入的意思是线程可以重复获得它已经持有的锁。Java的synchronized块是可重入的。因此下面的代码是没问题的: (这里提到的锁都是指的不可重入的锁实现,并不是Java类库中的Lock与ReadWriteLock类) public class Reentrant{ public syn...
2017-04-09 08:34:52 3186
原创 Java线程sleep和wait的区别
sleep(): sleep()使当前线程进入停滞状态(阻塞当前线程),让出CUP的使用、目的是不让当前线程独自霸占该进程所获的CPU资源,以留一定时间给其他线程执行的机会;sleep()是Thread类的Static(静态)的方法;因此他不能改变对象的机锁,所以当在一个Synchronized块中调用Sleep()方法是,线程虽然休眠了,但是对象的机锁并木有被释放,其他线程无法访问这个对象(即...
2017-04-06 23:08:59 656
原创 MySQL 各种连接比较
Assuming you're joining on columns with no duplicates, which is a very common case: An inner join of A and B gives the result of A intersect B, i.e. the inner part of a Venn diagram intersection. An o...
2017-04-06 23:00:55 427
原创 AIO实现非阻塞Socket通信
1.demo public class SimpleAIOServer { static final int PORT = 30000; public static void main(String[] args) throws Exception { // ①创建AsynchronousServerSocketChannel对象。 AsynchronousServerS...
2017-04-06 22:23:59 430
原创 NIO入门
传统的输入流、输出流(面向流的输入/输出系统)一次只能处理一个字节(即使我们不直接去处理字节流,但底层的实现还是依赖于字节处理),因此面向流的输入/输出系统通常效率不高。新IO使用了不同的方式来处理输入/输出,新IO采用内存映射的方式的来处理输入/输出(即将文件或文件的一段区域映射到内存中,这样就可以像访问内存一样来访问文件了,模拟了操作系统上的虚拟内存的概念),这种方式效率要高。 Channe...
2017-04-05 23:03:51 307
原创 NIO实现非阻塞Socket通信
注: 1.服务端的sk.isAcceptable()只能是注册的惟一一个ServerSocketChannel,所以有sk.interestOps(SelectionKey.OP_ACCEPT); 产生sk.isReadable()只能是ServerSocketChannel产生的并且已经注册过的SocketChannel,所以有sk.interestOps(SelectionKey.OP_RE...
2017-04-05 22:35:38 566
原创 传统tcp网络编程入门示例
1.demo public class Server { public static void main(String[] args) throws IOException { // 创建一个ServerSocket,用于监听客户端Socket的连接请求 ServerSocket ss = new ServerSocket(30000); // 采用循环不断接受来自客户端的...
2017-04-05 22:25:52 419
原创 MySQL索引原理及查询优化小结
1.MySQL索引原理 1.1 索引目的 索引的目的在于提高查询效率,可以类比字典,如果要查“mysql”这个单词,我们肯定需要定位到m字母,然后从上往下找到y字母,再找到剩下的sql。如果没有索引,那么你可能需要把所有单词看一遍才能找到你想要的,如果我想找到m开头的单词呢?或者ze开头的单词呢?是不是觉得如果没有索引,这个事情根本无法完成? 1.2 索引原理 除了词典,生活中随处可见索引...
2017-04-04 21:01:47 1233
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人