`
zhang_xzhi_xjtu
  • 浏览: 536555 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
文章列表
JVM通过Ergonomics技术已经尽可能的让jvm不要我们去操心底层的细节,而尝试提供给我们好的服务。 但是,内存管理和gc并没有一个一劳永逸的方案。 GC有可能成为性能的瓶颈。很多时候还是要程序员自己动手去做一些调优。 以下简要介绍一些关键概念。 JVM会自动选择使用server mode还是client mode。但是我们一样可以手工设置。 java -server -client JVM的内存管理分为堆内存(Heap Memory)和非堆内存。 Heap Memory用来存储大部分对象。 非堆内存=Code Cache+Permanent Generation。 其中Code Ca ...
javaeye的blog的计数是有问题的,有时候会出现文章数计数和真实的值不一致的情况,更有出现负数的情况。我的博客的一个分类有过-1文章数的统计。这个不一致的bug还可以理解,负数的bug应该修正起来比较简单。
典型的Notification一般有两种架构,一种是点对点,一种是发布订阅模型。 主要讨论发布订阅模型。 主要的类如下: Topic,可以发布的话题。包含一个Topic的元数据。 Subscription,一个消费者(可以是系统或者用户)的一个订阅,一个订阅可以订阅一个Topic,并且可以设置一些field来filter该Topic,比如只对发布与某个时间段的Topic进行订阅。 NotificationMessage,一个话题消息的实例。 Notification支持消息的异步,支持订阅者不在线时的新生成的话题消息不会丢失(即消息的可靠传输),通过把话题消息保存在db中,同时有一个守护线程 ...
《Effective Java》无疑是java领域的经典著作。第二版出来后,看了看,然后和第一版对比一下。 下面介绍第二版的变更,以及揣摩作者的意图。 删掉了原来的Substitutes for C constructs一章。 C2  Creating and Destroying Objects Item 1 Consider static factory methods instead of constructors. Item 2 Consider a builder when faced with many constructor parameters. 新加的一个条目,这个 ...
Geronimo在重复装载一个工程的时候抛java.lang.OutOfMemoryError: PermGen space 异常。 JVM的PermGen内存溢出了。 改动setjavaenv.bat中的设置解决该问题。 set JAVA_OPTS="-Xms512m" "-Xmx512m" "-XX:PermSize=512m" "-XX:MaxPermSize=512m" JConsole中关于内存分区的说明。 Eden Space (heap): 内存最初从这个线程池分配给大部分对象。 Survivo ...
Lock的意义和synchronized一致,并且增加了一些功能。锁的获得和释放可以分开在不同的地方。多了锁获得超时。可中断获得锁的过程。 Wait, notify和notifyAll家族的功能用Condition实现了。同样支持wait超时,可中断wait。 ReentrantLock可以设置锁的公平性。防止线程饥饿。 ReentrantReadWriteLock也可以设置锁的公平性。
double check可用于当一个field的创建比较费时,而该field又不一定被使用的情况。 private Object lock = new Object(); private volatile String content; public String getContent() { String t = content; if (t == null) { synchronized (lock) { t = content; if (t == null) { t = content = "InitString&q ...
类对线程的支持可以分为以下几类: 1 Immutable。 2 unconditionally thread safe,比如ConcurrentHashMap。 3 conditionally thread safe,比如Collections.synchronized返回的东西,iterator需要外部同步。 4 not thread safe,需要调用方同步。 5 thread hostile。
用户 为了唯一确定一个用户,用户=user+host+password. user不指定的话,为匿名用户。 hostname可以用%匹配所有host. 其中,password可以不设置,但是从安全的角度想,所有的user还是设置一个密码比较好。 权限 MySql中所有的操作都有对应的权限,权限存储在mysql数据库中,系统用作检查的ACL是在server启动时载入内存的。 权限检查过程 1 连接时对用户检查。 主要是检查该用户是否可以连接server。 有可能有多个现有条目和用户匹配,系统会对现有条目排序后采用第一个匹配的用户。 排序的规则为先Host,后User,其中,指定的hos ...
外围赛 巴西3:1阿根廷 阿根廷一堆小个子,灵活有突破,但是没有组织。 外围赛 葡萄牙 3:0 匈牙利 上半场葡萄牙踢得那叫一个烂。解说来来去去就是C罗怎么怎么样,明明下场半天了,还在一直吹,烦死了。 外围赛 阿根廷 2:1 秘鲁 该比赛很关键,上半场我是睡着看的,基本上两队都有机会,但是没有把握住。 下半场阿根廷先进一球,秘鲁开始拼命。过了一会大风大雨的,感觉该球赛变成了一个彻头彻尾的战争。应该说阿根廷命挺好的,秘鲁很多机会都是只差一点点啊,还有门框什么的。感觉天让阿根廷赢,90分钟的时候秘鲁扳平,感觉阿根廷应该完了,谁知道93的时候阿根廷又反超,老马像个企鹅一样滑在风雨交加的草皮上,老婆 ...
欧冠小组赛 巴萨0:0国米 精彩的比赛,无聊的比分。 欧冠小组赛 RM3:0马赛 很久没有看RM的比赛了,原来主力加替补都可以倒背的阵容早已经不知道哪里去了。第一个看到的熟悉的面孔是圣卡西,本来以为会很高兴找到熟悉的 ...
呵呵,突然发现前天写的帖子一天不到就被被顶到了javaeye首页,心情好啊。 论坛:深入理解java的clone 博客:深入理解java的clone 这个也到首页了。看来可以计划写一个深入xx系列了。 论坛:深入理解java的finalize 博客:深入理解java的finalize
第2版 Exceptions     Item 57: Use exceptions only for exceptional conditions     Item 58: Use checked exceptions for recoverable conditions and runtime exceptions for programming errors     Item 59: Avoid unnecessary use of checked exceptions     Item 60: Favor the use of standard exceptions     Item ...
    第2版 General Programming     Item 45: Minimize the scope of local variables     Item 46: Prefer for-each loops to traditional for loops     新增条目,增加了对新的语言特性的for-each的讲解,以及什么时候使用这个特性比较好的说明。     Item 47: Know and use the libraries     Item 48: Avoid float and double if exact answers are required ...
第2版 Methods Item 38: Check parameters for validity Item 39: Make defensive copies when needed Item 40: Design method signatures carefully Item 41: Use overloading judiciously Item 42: Use varargs judiciously Item 42为新的条目。 Item 43: Return empty arrays or collections, not nulls Item 43加入了Collecti ...
Global site tag (gtag.js) - Google Analytics