09 2016 档案

摘要:大家可能会有这样疑问:连接池类似于线程池或者对象池,就是一个放连接的池子,使用的时候从里面拿一个,用完了再归还,功能非常简单,有什么可讲的。可能还会有这样的疑问:高性能这么高大上,一个小小的连接池,如何跟高大上靠上边的。本主题将会全面介绍连接池原理,高性能的设计,优化实践,现有连接池的瓶颈及... 阅读全文
posted @ 2016-09-26 02:12 javahongxi 阅读(194) 评论(0) 推荐(0)
摘要:在阅读AtomicInteger的源码时,看到了这个类:sum.msic.Unsafe,之前从没见过。所以花了点时间google了一下。 Unsafe的源码:http://www.docjar.com/html/api/sun/misc/Unsafe.java.html Unsafe源码中的... 阅读全文
posted @ 2016-09-22 22:50 javahongxi 阅读(182) 评论(0) 推荐(0)
摘要:站在Java的角度看,玩队列不就是玩对象引用对象嘛! public class LinkedList implements List, Deque { Node first; Node last; int size; public boolean add(E e) { ... 阅读全文
posted @ 2016-09-22 21:25 javahongxi 阅读(136) 评论(0) 推荐(0)
摘要:说起内部类这个词,想必很多人都不陌生,但是又会觉得不熟悉。原因是平时编写代码时可能用到的场景不多,用得最多的是在有事件监听的情况下,并且即使用到也很少去总结内部类的用法。今天我们就来一探究竟。下面是本文的目录大纲: 一.内部类基础 二.深入理解内部类 三.内部类的使用场景和好处 四.... 阅读全文
posted @ 2016-09-21 00:13 javahongxi 阅读(157) 评论(0) 推荐(0)
摘要:谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字。另外,Java中的String类就是一个final类,那么今天我们就来了解final这个关键字的用法。下面是本文的目录大纲: 一.final关键字的基本用法 二.深入理解final关键字 若... 阅读全文
posted @ 2016-09-21 00:11 javahongxi 阅读(158) 评论(0) 推荐(0)
摘要:下面这部分内容转载自: http://www.haogongju.net/art/2350374 JDK5中添加了新的concurrent包,相对同步容器而言,并发容器通过一些机制改进了并发性能。因为同步容器将所有对容器状态的访问都串行化了,这样保证了线程的安全性,所以这种方法的代价就是... 阅读全文
posted @ 2016-09-20 02:52 javahongxi 阅读(171) 评论(0) 推荐(0)
摘要:在前面几篇文章中,我们讨论了同步容器(Hashtable、Vector),也讨论了并发容器(ConcurrentHashMap、CopyOnWriteArrayList),这些工具都为我们编写多线程程序提供了很大的方便。今天我们来讨论另外一类容器:阻塞队列。 在前面我们接触的队列都是非阻塞... 阅读全文
posted @ 2016-09-20 02:51 javahongxi 阅读(260) 评论(0) 推荐(0)
摘要:在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办法使得线程可以复用,就是执... 阅读全文
posted @ 2016-09-20 02:50 javahongxi 阅读(239) 评论(0) 推荐(0)
摘要:原文链接: http://ifeve.com/java-copy-on-write/ Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改... 阅读全文
posted @ 2016-09-20 02:50 javahongxi 阅读(162) 评论(0) 推荐(0)
摘要:在前面一篇文章中提到,对Vector、ArrayList在迭代的时候如果同时对其进行修改就会抛出java.util.ConcurrentModificationException异常。下面我们就来讨论以下这个异常出现的原因以及解决办法。 以下是本文目录大纲: 一.ConcurrentMo... 阅读全文
posted @ 2016-09-20 02:46 javahongxi 阅读(164) 评论(0) 推荐(0)
摘要:为了方便编写出线程安全的程序,Java里面提供了一些线程安全类和并发工具,比如:同步容器、并发容器、阻塞队列、Synchronizer(比如CountDownLatch)。今天我们就来讨论下同步容器。 以下是本文的目录大纲: 一.为什么会出现同步容器? 二.Java中的同步容器类 三... 阅读全文
posted @ 2016-09-19 00:07 javahongxi 阅读(166) 评论(0) 推荐(0)
摘要:volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事... 阅读全文
posted @ 2016-09-19 00:04 javahongxi 阅读(173) 评论(0) 推荐(0)
摘要:在前面2篇文章分别讲到了线程和进程的由来、以及如何在Java中怎么创建线程和进程。今天我们来学习一下Thread类,在学习Thread类之前,先介绍与线程相关知识:线程的几种状态、上下文切换,然后接着介绍Thread类中的方法的具体使用。 以下是本文的目录大纲: 一.线程的状态 二.上... 阅读全文
posted @ 2016-09-19 00:02 javahongxi 阅读(234) 评论(0) 推荐(0)
摘要:想必很多朋友对ThreadLocal并不陌生,今天我们就来一起探讨下ThreadLocal的使用方法和实现原理。首先,本文先谈一下对ThreadLocal的理解,然后根据ThreadLocal类的源码分析了其实现原理和使用需要注意的地方,最后给出了两个应用场景。 以下是本文目录大纲: 一... 阅读全文
posted @ 2016-09-19 00:02 javahongxi 阅读(178) 评论(0) 推荐(0)
摘要:在上一篇文章中我们讲到了如何使用关键字synchronized来实现同步访问。本文我们继续来探讨这个问题,从Java 5之后,在java.util.concurrent.locks包下提供了另外一种方式来实现同步访问,那就是Lock。 也许有朋友会问,既然都可以通过synchronized... 阅读全文
posted @ 2016-09-19 00:01 javahongxi 阅读(315) 评论(0) 推荐(0)
摘要:在前面,已经介绍了Java的基础知识,现在我们来讨论一点稍微难一点的问题:Java并发编程。当然,Java并发编程涉及到很多方面的内容,不是一朝一夕就能够融会贯通使用的,需要在实践中不断积累。由于并发肯定涉及到多线程,因此在进入并发编程主题之前,我们先来了解一下进程和线程的由来,这对后面对并... 阅读全文
posted @ 2016-09-18 13:14 javahongxi 阅读(184) 评论(0) 推荐(0)
摘要:在上一篇博文中讲述了几种IO模型,现在我们开始进入Java NIO编程主题。NIO是Java 4里面提供的新的API,目的是用来解决传统IO的问题。本文下面分别从Java NIO的几个基础概念介绍起。 以下是本文的目录大纲: 一.NIO中的几个基础概念 二.Channel 三.Buf... 阅读全文
posted @ 2016-09-18 13:10 javahongxi 阅读(207) 评论(0) 推荐(0)
摘要:也许很多朋友在学习NIO的时候都会感觉有点吃力,对里面的很多概念都感觉不是那么明朗。在进入Java NIO编程之前,我们今天先来讨论一些比较基础的知识:I/O模型。下面本文先从同步和异步的概念 说起,然后接着阐述了阻塞和非阻塞的区别,接着介绍了阻塞IO和非阻塞IO的区别,然后介绍了同步IO和... 阅读全文
posted @ 2016-09-18 13:08 javahongxi 阅读(132) 评论(0) 推荐(0)
摘要:下面内容转载自: http://blog.csdn.net/xieyuooo/article/details/8607220 其实就Timer来讲就是一个调度器,而TimerTask呢只是一个实现了run方法的一个类,而具体的TimerTask需要由你自己来实现,例如这样:123456T... 阅读全文
posted @ 2016-09-18 13:06 javahongxi 阅读(196) 评论(0) 推荐(0)
摘要:虽然多线程编程极大地提高了效率,但是也会带来一定的隐患。比如说两个线程同时往一个数据库表中插入不重复的数据,就可能会导致数据库中插入了相同的数据。今天我们就来一起讨论下线程安全问题,以及Java中提供了什么机制来解决线程安全问题。 以下是本文的目录大纲: 一.什么时候会出现线程安全问题?... 阅读全文
posted @ 2016-09-18 07:48 javahongxi 阅读(205) 评论(0) 推荐(0)
摘要:Socket与操作系统有什么关系呢?请细读下文简介TCP简介TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,... 阅读全文
posted @ 2016-09-16 20:01 javahongxi 阅读(276) 评论(0) 推荐(0)
摘要:volatile的特性当我们声明共享变量为volatile后,对这个变量的读/写将会很特别。理解volatile特性的一个好方法是:把对volatile变量的单个读/写,看成是使用同一个监视器锁对这些单个读/写操作做了同步。下面我们通过具体的示例来说明,请看下面的示例代码:class Vol... 阅读全文
posted @ 2016-09-16 10:11 javahongxi 阅读(178) 评论(0) 推荐(0)
摘要:public class DoubleCheckSingleton { private volatile static DoubleCheckSingleton instance = null; private DoubleCheckSingleton() {} publi... 阅读全文
posted @ 2016-09-16 09:40 javahongxi 阅读(119) 评论(0) 推荐(0)
摘要:关于高性能高并发服务这个概念大家应该也都比较熟悉了,今天我主要是想讲一下对于如何做一个高性能高并发服务架构的一些自己的思考。本次分享主要包括三个部分:1. 服务的瓶颈有哪些2. 如何提升整体服务的性能及并发3. 如何提升单机服务的性能及并发一、服务的瓶颈有哪些通常来说程序的定义是算法+数据结... 阅读全文
posted @ 2016-09-13 13:08 javahongxi 阅读(857) 评论(0) 推荐(0)
摘要:Java™ 语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量。这两种机制的提出都是为了实现代码线程的安全性。其中 Volatile 变量的同步性较差(但有时它更简单并且开销更低),而且其使用也更容易出错。Java 语言中的 volatile 变量可以被看... 阅读全文
posted @ 2016-09-07 01:17 javahongxi 阅读(172) 评论(0) 推荐(0)
摘要:本文介绍对象的强、软、弱和虚引用的概念、应用及其在UML中的表示。author: ZJ 07-12-1Blog: [url]http://zhangjunhd.blog.51cto.com/[/url]1.对象的强、软、弱和虚引用在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么... 阅读全文
posted @ 2016-09-05 02:55 javahongxi 阅读(174) 评论(0) 推荐(0)