java
文章平均质量分 84
iteye_1194
这个作者很懒,什么都没留下…
展开
-
java中的各种垃圾收集器
Serial收集器是单线程的垃圾收集器,单线程意味着它将暂停当前机器中的所有线程运行垃圾收集。对于不同的内存分代采用不同的垃圾回收算法。ParNew收集器是Serial的多线程版本。CMS:并发收集器(HotSpot)并行:多条垃圾回收器并行工作并发用户线程与垃圾回收线程同时执行Parallel收集器是新生代收集器...原创 2012-02-12 20:35:20 · 87 阅读 · 0 评论 -
Scala 中apply方法的用法~(转)
Scala 是构建在 JVM 上的静态类型的脚本语言,而脚本语言总是会有些约定来增强灵活性。灵活性可以让掌握了它的人如鱼得水,也会让初学者不知所措。比如说 Scala 为配合 DSL 在方法调用时有这么一条约定:在明确了方法调用的接收者的情况下,若方法只有一个参数时,调用的时候就可以省略点及括号。如 “0 to 2”,实际完整调用是 “0.to(2)”。但 “println(2)” 不...原创 2013-03-11 11:53:08 · 459 阅读 · 0 评论 -
Java中循环嵌套跳出的高效写法
(下面写的这些并不是Jdk的新特性,也不是Java某个版本提供的语法糖,不过是java语言早就提供的书写技巧,但是却被一直忽略的技巧)最近代码中总能用到循环嵌套的情况,大致模板如下:forech1(..){ forech2(...) { ... checkbreak1(); ... } ... ...2014-04-24 19:31:07 · 400 阅读 · 0 评论 -
子墨对酒《三国杀》里论模式(肆)单例模式
当设计模式的观点被众人所推崇的时候,单例模式似乎已经成了掌握设计模式时候要掌握的基础模式。当然我并不认为设计模式中有基础和非基础之分,我只觉得模式的应用有普遍和非普遍之别。单例模式的普遍并不体现在应用场景多上,我们阅读一个项目的时候发现其实用到单例的类本身屈指可数。但是因为它写法简单,易于识别,所以我们才对它格外的注意。单例模式分成饿汉式和懒汉式。这两种模式在写法上有一定的区别,你不能单独地推崇某...原创 2014-02-11 18:40:47 · 201 阅读 · 0 评论 -
子墨对酒《三国杀》里论模式(三)适配器模式
如果你是一个Android程序员,那么你一定对适配器模式情有独钟。如果你还不知道 适配器模式为何物,你还陶醉在自己对AdapterView子类运用的有多熟的暗中自喜中,希望这篇文章能给你当头棒喝。人们常常举电脑适配器的例子作为 适配器模式的具象提现。但我更愿意用USB来举这个例子。当然USB接口也是电脑适配器的一部分。我们知道,不论是什么设备要连接上电脑,其实一根USB 连接线就够了。(如果你非...2014-02-11 18:39:17 · 210 阅读 · 0 评论 -
子墨对酒《三国杀》里论模式(二)门面模式
学 习模式的人对门面模式都不会太陌生,如果说工厂模式是对对象的高层次抽象的话,那么门面模式就是对对象,就是一种更高层次的抽象。这么说可能不好理解,我 们举个很好理解的例子,我们知道cpu的目的是为了运算,而运算我们又分成解释和计算。这分别是由解释器对象和运算器对象完成。而对于外部电路来说根本不 了解解释器对象和运算器对象的存在。也就是说cpu将整个的逻辑过程都封装在自己内部。只暴露给用户一个简单...2014-02-11 18:38:27 · 164 阅读 · 0 评论 -
子墨对酒《三国杀》里论模式(一)工厂模式
有人说模式会让代码变的优雅,也有人说模式会让你的代码更利于扩展。我个人觉得这些说 的都对。但是滥用模式一样会成为被人诟病的痛点。与其说面向对象语言考察的主要标准是语法,不如考察对模式的理解更加切合实际。很大一部分人都觉得模式枯 燥无味,但其实模式是一些充满智慧的集合,可以用在任何的领域,本系列文章就是希望在一种新新的角度里看模式。《三国杀》一 直是我热衷的游戏之一,当然外界对它褒贬不一我们不作深...2014-02-11 18:37:32 · 177 阅读 · 0 评论 -
JASMIN编程笔记(转)
現在做個簡單的 Compiler,包括三個部份,scanner 用 flex/scangen,parser 用 bison/yacc/llgen,剩下 code generation 可以直接輸出 assembly code 來做,也可輸出成 JVM bytecode。我之前沒學過 assembly code,直接學學這個也不錯,概念和 x86 差不多吧。JVM 也屬 stack bas...原创 2012-11-21 23:32:31 · 212 阅读 · 0 评论 -
Proguard 源码分析 (七) 混淆
本章我们讲Proguard非常重要的一个步骤:混淆Obfuscator混淆的目的很明显,是为了混淆语义。我们能轻车熟路的找到混淆的源头:Obfuscator 的execute方法我们来看一下就行混淆器给我们设置了怎样的访问者:ClassVisitor memberInfoLinker = configuration.useUniqueClassMemb...原创 2013-11-10 21:19:00 · 195 阅读 · 0 评论 -
Proguard源码分析(六)前文总结
目前,我们读了Proguard的代码,相信已经开始对访问者模式和装饰器模式有很深的理解,现在我们再带着这两个模式认真的回顾下代码,因为只有这样,我们才能更好的进行下面的代码阅读。但是如果你还带着疑问,不妨看下前面的章节,或者看一些有关设计模式的书体会一下。我们回到我们熟悉的入口Proguard类的execute方法中:第一部分:读取(readinput)InputReader.execute: C...2013-11-05 14:40:44 · 165 阅读 · 0 评论 -
java class文件结构(转)
学习Java的朋友应该都知道Java从刚开始的时候就打着平台无关性的旗号,说“一次编写,到处运行”,其实说到无关性,Java平台还有另外一 个无关 性那就是语言无关性,要实现语言无关性,那么Java体系中的class的文件结构或者说是字节码就显得相当重要了,其实Java从刚开始的时候就有两套 规范,一个是Java语言规范,另外一个是Java虚拟机规范,Java语言规范只是规定了Java语言相关的...原创 2013-11-05 13:46:31 · 140 阅读 · 0 评论 -
Proguard源码分析(五) ConfigurationParser.keep参数
本章节我们绕回来讲Keep参数,也就是ConfigurationParser 这个类。ConfigurationParser这个类是非常重要的类,如果你已经开始看源码,你会发现所有的类和功能都围着它来转,本章节我们来揭开它的地一层面纱。else if (ConfigurationConstants.KEEP_OPTION.startsWith(nextWord)) ...原创 2013-10-31 14:43:50 · 243 阅读 · 0 评论 -
Proguard源码分析(四) 压缩
上一次我们讲了seed文件,这次我们说压缩,对应的输出文件是usage,可以通过命令-printusage usage.txt来配置压缩的目的是为了删除一些我们不使用的类和方法,从而达到字节码压缩的目的。这里我贴出我的微博:http://weibo.com/1752090185/profile?rightmod=1&wvr=5&mod=personinfo有意向可以加...2013-10-30 10:59:45 · 189 阅读 · 0 评论 -
代码混淆器Proguard源码分析(一) 读取
Proguard是Android中经常用的混淆工具,当然你也可以采用其他的混淆工具。但我这边谈到的只是Proguard。大多数人了解Proguard大都通过文档,但是我这次决定从源码入手,分析Proguard。我个人觉得Proguard的源码写的还是非常的出彩的,当然你可能跟我有不一样的品味,我也不做深究。我这边只想说明一点,那就是,如果你想从这几篇文章里面试图不通过源码就弄懂文章的主体意思...2013-10-22 19:40:18 · 323 阅读 · 0 评论 -
jdk的bin目录详解
javac:Java编译器,将Java源代码换成字节代 java:Java解释器,直接从类文件执行Java应用程序代码 appletviewer(小程序浏览器):一种执行HTML文件上的Java小程序类的Java浏览器 javadoc:根据Java源代码及其说明语句生成的HTML文档 jdb:Java调试器,可以逐行地执行程序、设置断点和检查变量 javah:产生可以调用Java过程的C过程...原创 2012-10-16 17:02:56 · 1283 阅读 · 0 评论 -
ByteBuffer的allocate和allocateDirect(转)
在Java中当我们要对数据进行更底层的操作时,通常是操作数据的字节(byte)形式,这时常常会用到ByteBuffer这样一个类。ByteBuffer提供了两种静态实例方式: Java代码 public static ByteBuffer allocate(int capacity) public static ByteBuffer allocateDirect(in...原创 2012-04-24 21:35:50 · 94 阅读 · 0 评论 -
深入JVM---JVM命令---invokespecial(转)
19.3 指令invokespecial Invokespecial和invokeirtual的主要区别在于: invokespcial通常(只有一个例子) 根据引用的类型选择方法,而不是根据对象的类来选择,换句话说。它使用静态绑定而不是动态绑定。在下列使用invokespecial的三种情况中,动态绑定并不会产生所预期的效果。 19.3.1 指令invokespecial和<init>...原创 2012-07-24 14:12:53 · 180 阅读 · 0 评论 -
OpenJDK源码阅读导航
这是链接帖。主体内容都在各链接中。 怕放草稿箱里过会儿又坑掉了,总之先发出来再说…回头再慢慢补充内容。 先把ItEye网站上的信息聚合起来。 近期提问帖: 如何来看OpenJDK源码 如何分析OpenJDK中JVM的实现 一个个回复太麻烦了,合在一块儿写这么一篇。 ================ 前言 我的VM帖的索引 高级语言虚拟机(HLLVM)群组 新浪微群“JVM源码阅读活动” 如何构建...原创 2013-03-12 15:36:43 · 407 阅读 · 0 评论