最新 | 最热门 | 最高评价

+0  面向GC的Java编程

Tag: Java语言 | GC | Java | JVM
王 晨纯 发于 2014年05月07日 11:24 | 点击: 2149 | 展开摘要
(感谢网友 @Hesey小纯纯 投稿  博客 | 原文链接)

Java程序员在编码过程中通常不需要考虑内存问题,JVM经过高度优化的GC机制大部分情况下都能够很好地处理堆(Heap)的清理问题。以至于许多Java程序员认为,我只需要关心何时创建对象,而回收对象,就交给GC来做吧!甚至有人说,如果在编程过程中频繁考虑内存问题,是一种退化,这些事情应该交给编译器,交给虚拟机来解决。

这话其实也没有太大问题,的确,大部分场景下关心内存、GC的问题,显得有点“杞人忧天”了,高老爷

查看全文: http://www.udpwork.com/item/12219.html

+0  从LongAdder看更高效的无锁实现

Tag: Java语言 | 程序设计 | AtomicLong | cas | Java | LongAdder | Performance
liuinsect 发于 2014年04月17日 23:11 | 点击: 2232 | 展开摘要
(感谢 @jd刘锟洋 投稿,更多文章参看他的博客:码梦为生)

原文链接:《比AtomicLong还高效的LongAdder 源码解析》

接触到AtomicLong的原因是在看guava的LoadingCache相关代码时,关于LoadingCache,其实思路也非常简单清晰:用模板模式解决了缓存不命中时获取数据的逻辑,这个思路我早前也正好在项目中使用到。

言归正传,为什么说LongAdder引起了我的注意,原因有二:

作者是Doug lea ,地位实在举足轻重。



查看全文: http://www.udpwork.com/item/12141.html

+0  Java中的CopyOnWrite容器

Tag: Java语言 | Copy-On-Write | Java
方 腾飞 发于 2014年03月07日 08:26 | 点击: 1878 | 展开摘要
感谢 清英 同学的投稿

Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了两个使用CopyOnWrite机制实现的并发容器,它们是CopyOnWriteArrayList和CopyOnWriteArraySet。CopyOnWrite容器非常有用,可以在非常多的并发

查看全文: http://www.udpwork.com/item/11911.html

+0  无锁HashMap的原理与实现

Tag: Java语言 | 程序设计 | Hash | HashMap | Java | Performance | 多线程 | 并发
onetwogoo 发于 2013年05月30日 21:31 | 点击: 2473 | 展开摘要
 (本文由onetwogoo投稿)

在《疫苗:Java HashMap的死循环》中,我们看到,java.util.HashMap并不能直接应用于多线程环境。对于多线程环境中应用HashMap,主要有以下几种选择:

使用线程安全的java.util.Hashtable作为替代。

使用java.util.Collections.synchronizedMap方法,将已有的HashMap对象包装为线程安全的。

使用java.util.concurrent.Concurren

查看全文: http://www.udpwork.com/item/9945.html

+0  疫苗:Java HashMap的死循环

Tag: Java语言 | 程序设计 | Hash | HashMap | Java | 多线程 | 并发
陈皓 发于 2013年05月10日 08:12 | 点击: 3561 | 展开摘要
在淘宝内网里看到同事发了贴说了一个CPU被100%的线上故障,并且这个事发生了很多次,原因是在Java语言在并发情况下使用HashMap造成Race Condition,从而导致死循环。这个事情我4、5年前也经历过,本来觉得没什么好写的,因为Java的HashMap是非线程安全的,所以在并发下必然出现问题。但是,我发现近几年,很多人都经历过这个事(在网上查“HashMap Infinite Loop”可以看到很多人都在说这个事)所以,觉得这个是个普遍问题,需要写篇疫苗文章说一

查看全文: http://www.udpwork.com/item/9814.html

+0  实例分析Java Class的文件结构

Tag: Java语言 | Java
tiger.zhou 发于 2013年03月05日 23:28 | 点击: 1699 | 展开摘要
【感谢网友 @Krq_Tiger 投稿】

今天把之前在Evernote中的笔记重新整理了一下,发上来供对java class 文件结构的有兴趣的同学参考一下。

学习Java的朋友应该都知道Java从刚开始的时候就打着平台无关性的旗号,说“一次编写,到处运行”,其实说到无关性,Java平台还有另外一个无关 性那就是语言无关性,要实现语言无关性,那么Java体系中的class的文件结构或者说是字节码就显得相当重要了,其实Java从刚开始的时候就有两套 规范,一个是Java语言

查看全文: http://www.udpwork.com/item/9390.html

+0  并发框架Disruptor译文

Tag: Java语言 | 系统架构 | Disruptor | Java | lmax | Performance
方 腾飞 发于 2013年02月28日 20:13 | 点击: 2437 | 展开摘要
(感谢同事方腾飞投递本文)

Martin Fowler在自己网站上写了一篇LMAX架构的文章,在文章中他介绍了LMAX是一种新型零售金融交易平台,它能够以很低的延迟产生大量交易。这个系统是建立在JVM平台上,其核心是一个业务逻辑处理器,它能够在一个线程里每秒处理6百万订单。业务逻辑处理器完全是运行在内存中,使用事件源驱动方式。业务逻辑处理器的核心是Disruptor。

Disruptor它是一个开源的并发框架,并获得2011 Duke’s 程序框架创新奖,能够在无锁的情况

查看全文: http://www.udpwork.com/item/9344.html

+1  如此理解面向对象编程

Tag: Java语言 | 程序设计 | 编程语言 | 轶事趣闻 | Coding | Object-Oriented | OOP
陈皓 发于 2012年12月13日 08:19 | 点击: 3041 | 展开摘要
从Rob Pike 的 Google+上的一个推看到了一篇叫《Understanding Object Oriented Programming》的文章,我先把这篇文章简述一下,然后再说说老牌黑客Rob Pike的评论。

先看这篇教程是怎么来讲述OOP的。它先给了下面这个问题,这个问题需要输出一段关于操作系统的文字:假设Unix很不错,Windows很差。

这个把下面这段代码描述成是Hacker Solution。(这帮人觉得下面这叫黑客?我估计这帮人真是没看过C语言的代

查看全文: http://www.udpwork.com/item/8848.html

+0  Resin服务器getResource揭秘

Tag: Java语言 | 编程语言 | ClassLoader | getResource | getResourceAsStream | Java | Resin
liuxiaori 发于 2012年01月05日 08:28 | 点击: 2373 | 展开摘要
(感谢网友 liuxiaori 继续分享其经历)这样的详细的图文并茂的文章让我很佩服!

前言

接上文“由一个问题到Resin ClassLoader的学习”,本文将以this.getClass().getResource(“/”).getPath()和this.getClass().getResourceAsStream(“/a.txt”)为例,一步步解析加载的过程。

调试环境

下载resin3.0.23的源码(http://www.caucho.com/downlo

查看全文: http://www.udpwork.com/item/6650.html

+0  由一个问题到 Resin ClassLoader 的学习

Tag: Java语言 | ClassLoader | getResource | getResourceAsStream | Java | Resin
liuxiaori 发于 2011年12月28日 12:22 | 点击: 2479 | 展开摘要
(感谢网友 liuxiaori 分享其经历), 从这个分享我们可以看到什么叫真正的学习。牛!

背景

某日临近下班,一个同事欲取任何类中获取项目绝对路径,不通过Request方式获取,可是始终获取不到预想的路径。于是晚上回家google了一下,误以为是System.getProperty(“java.class.path”)-未实际进行测试,早上来和同事沟通,提出了使用这个内置方法,结果人家早已验证过,该方法是打印出CLASSPATH环境变量的值。

于是乎,继续googl

查看全文: http://www.udpwork.com/item/6592.html

+0  一些有意思的算法代码

Tag: C/C++语言 | Java语言 | Python | 技术读物 | 杂项资源 | 编程语言 | Algorithm | C++ | 算法
陈皓 发于 2011年11月29日 11:11 | 点击: 3070 | 展开摘要
Keith Schwarz是一个斯坦福大学计算机科学系的讲师。他对编程充满了热情。他的主页上他自己正在实现各种各样的有意思的算法和数据结构,http://www.keithschwarz.com/interesting/, 目前这个网页上有88个(见下面的列表),但这位大哥要干135个,你可以看看他的To-Do List。

从这个列表上,我们可以看到,他从去年7月份就在自己实现这些东西了,我把他实现的这些算法转过来,

一方面我们可以学习一下这些算法和代码,因为很多东西对我

查看全文: http://www.udpwork.com/item/6424.html

+0  Eclipse开发Android应用程序入门:重装上阵

Tag: Java语言 | 程序设计 | 编程语言 | Android | Eclipse
Neo 发于 2011年04月08日 08:30 | 点击: 2978 | 展开摘要
翻译:赵锟

原文:http://www.smashingmagazine.com/2011/03/28/get-started-developing-for-android-with-eclipse-reloaded/

在我们教程系列的第一部分中,我们使用Android和Eclipse开发了一个简单的饮茶计时器的应用程序。在第二部分,我们将继续开发这个程序,并给它增加一些其他的额外的功能。在开发的过程中,我们将给你介绍更多重要而强大的Android SDK特性,包括持久化

查看全文: http://www.udpwork.com/item/4752.html
|<<<12>>>| 一共2页, 18条记录