- 博客(10)
- 资源 (10)
- 收藏
- 关注
转载 Java并发编程 之 乐观锁和悲观锁
悲观锁可以把悲观锁想成一个很小心的人,无论做什么操作之前,都要去加个锁,这样别人想拿这个数据就会block直到它拿到锁。但是在效率方面,处理加锁的机制会产生额外的开销,还有增加产生死锁的机会。另外如果只有只读事物,这个锁是没必要的。 传统的关系型数据库里边就用到了很多这种锁机制,比如读锁,写锁等,都是在做操作之前先上锁。悲观锁的实现在java中,synchronized就是一种悲观锁的实现。这个很
2017-10-31 20:49:29 1620
原创 Java 线程池实现的原理
在开始介绍线程池的原理之前,我想问一下各位在使用线程的时候,有没有想过为什么一个thread只能start()一次呢?
2017-10-31 20:10:43 544
原创 JVM 之 逃逸分析和TLAB
来看一道面试题:所有的new 对象都是分配在堆上的吗?如果不是,是什么情况。在没看到这道题目的时候,我对所有对象都分配在堆上的想法是没有一丝怀疑的,但是事实是不一定的。
2017-10-28 15:05:26 906 1
原创 JVM 之 类的装载机制
看到网上有一道面试题:能不能装载自定义的 java.lang.String? 答案是否定的,我们能自定义一个java.lang.String,但是加载不进来。我相信很多人在网上看到这样的答案“可以,但在应用的时候,需要用自己的类加载器去加载”。这个回答是错误的,现在我们来分析一下jvm在装载一个类的时候,是如何进行的。
2017-10-28 12:28:02 1152
原创 Java 的 四种引用
从JDK 1.2版本开始,把对象的引用分为4种级别,从而使程序能更加灵活地控制对象的生命周期。这4种级别由高到低依次为:强引用、软引用、弱引用和虚引用。
2017-10-25 09:18:51 354
原创 Java NIO 之 Socket开篇
前几天看到室友在种田,我凑过去看了一下,原来在做socket编程啊!刚好这块内容我不熟悉,于是趴在他的桌上问了一些关于socket的问题。简单来说他想要实现自己的服务端,然后对发送过来的请求做出响应。诶,这个和我们熟悉的Tomcat服务器很像嘛。不错,Tomcat就是一个免费的开放源代码的Servlet容器。这篇我来实现一个简单的servlet容器的功能。先来看一下Tomcat的处理流程,如下:1、
2017-10-14 11:27:25 446
原创 Java IO操作
前几天碰到一个io程序,发现在使用上忘得差不多了,这里写几个demo便宜回顾一下。字符流FileReader/FileWriter demopublic static void main(String[] args){ try { FileReader fileReader = new FileReader("E:\\test.txt");
2017-10-12 10:56:37 267
原创 Java并发编程 之 HashMap线程不安全
我想在平时的多线程编程中,容器的使用是很普遍的,但是你有没有考虑过有些容器是不安全的,如Haspmap、ArrayList。这里讲解一下Hashmap不安去体现在哪里。插入时不安全:如果有两个线程A和B,都进行插入数据,刚好经过哈希计算后得到的哈希码是一样的,即插入的位置是一样的。假设,线程A通过判断,该位置没有哈希冲突,还没有进行数据插入的时候,CPU就把资源让给了线程B。这时候线程B判断该位置也
2017-10-11 14:50:42 496
原创 Java并发编程 之 volatile
国庆已经结束了,本该在国庆前就应该做好这篇笔记的,怎奈自己太懒,就在今天把前几天的知识梳理一下。在前几篇的博客介绍了一点并发编程的相关知识,今天我对volatile的原理简单的阐述一下。要想理解volatile的原理,需要对JMM(Java内存模式)有些了解。在实际的程序运行中,由于cpu执行速度很快,而从内存读取数据和向内存写入数据的过程跟cpu执行指令的速度比起来要慢的多,于是在cpu就引入了缓
2017-10-09 15:08:41 560
android-async-http-1.4.7.jar
2016-06-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人