<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Java on Code Log</title><link>https://codelog.me/zh/categories/java/</link><description>Recent content in Java on Code Log</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Sun, 13 Sep 2015 22:32:31 +0800</lastBuildDate><atom:link href="https://codelog.me/zh/categories/java/index.xml" rel="self" type="application/rss+xml"/><item><title>hashCode()的实现细节</title><link>https://codelog.me/zh/posts/java-hashcode/</link><pubDate>Sun, 13 Sep 2015 22:32:31 +0800</pubDate><guid>https://codelog.me/zh/posts/java-hashcode/</guid><description>&lt;img src="https://codelog.me/img/2015-09-13-about-hashcode/658px-Setzkasten.jpg"&gt;
&lt;p&gt;&lt;em&gt;图片来源:&lt;/em&gt;&lt;a href="https://commons.wikimedia.org/wiki/File:Setzkasten.jpg"&gt;维基百科&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Java 中以0开头的int变量的真实值</title><link>https://codelog.me/zh/posts/java-octal-int/</link><pubDate>Tue, 10 Mar 2015 17:54:32 +0800</pubDate><guid>https://codelog.me/zh/posts/java-octal-int/</guid><description>&lt;p&gt;今天在leetcode上做题的时候无意中发现下面这个问题：&lt;/p&gt;
&lt;p&gt;请问下面的Java语句输出的是什么值？&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-java" data-lang="java"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;System.&lt;span style="color:#a6e22e"&gt;out&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;println&lt;/span&gt;(00123);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;System.&lt;span style="color:#a6e22e"&gt;out&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;println&lt;/span&gt;(0_123);
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;答案是：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;83
83
&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>深入理解Java String.intern() 内存模型</title><link>https://codelog.me/zh/posts/java-string-intern/</link><pubDate>Tue, 20 Jan 2015 14:05:51 +0800</pubDate><guid>https://codelog.me/zh/posts/java-string-intern/</guid><description>&lt;p&gt;大家知道，Java中string.intern()方法调用会先去字符串常量池中查找相应的字符串，如果字符串不存在，就会在字符串常量池中创建该字符串然后再返回。&lt;/p&gt;
&lt;p&gt;字符串常量池是一个固定大小的HashMap，桶的数量默认是1009, 从Java7u40开始，该默认值增大到60013。在Java6当中，字符串常量池是放在Perm空间的，从Java7开始，字符串常量池被移到Heap空间。下面，我们通过测试程序来窥探字符串常量池在Java6，Java7两个不同版本底下的内存分配情况。&lt;/p&gt;</description></item><item><title>Jboss AS7 类加载机制</title><link>https://codelog.me/zh/posts/class-loading-in-as7/</link><pubDate>Thu, 15 Jan 2015 11:05:51 +0800</pubDate><guid>https://codelog.me/zh/posts/class-loading-in-as7/</guid><description>&lt;p&gt;相对于Jboss之前的版本，AS7的类加载机制完全不同，AS7的类加载是基于JBoss模块来设计，关于JBoss模块的介绍，可以看上一篇文章&lt;a href="http://m.com" title="Jboss模块介绍"&gt;Jboss模块介绍&lt;/a&gt;&lt;/p&gt;
&lt;h1 id="隐式模块依赖"&gt;隐式模块依赖&lt;/h1&gt;
&lt;p&gt;当你部署一个应用到Jboss容器的时候，有些依赖是隐式被加载的，例如如果部署一个Java EE的应用，包含EJBs，因为EJBs需要用到Javax.ejb.* 的包和其他一些Java EE API 相关包，包含这些包的Jar已经预先被制作成Module并且默认包含在容器里头作为JBoss AS的一部分，那么这些Jar的模块将会被自动加载。&lt;/p&gt;
&lt;p&gt;那么隐式模块依赖是什么时候被加载的呢？当一个应用部署到容器里头，会经过一条叫做“deployment processors”的链。这条链上的每个processor都有方法去检测这个应用是否需要隐式加载一些模块，如果是，就将相关的依赖加载进来。&lt;/p&gt;</description></item><item><title>Jboss AS7 模块介绍</title><link>https://codelog.me/zh/posts/jboss-as7-module/</link><pubDate>Tue, 13 Jan 2015 16:27:00 +0800</pubDate><guid>https://codelog.me/zh/posts/jboss-as7-module/</guid><description>&lt;p&gt;相对于Jboss之前的版本，AS7的类加载机制完全不同，AS7的类加载是基于JBoss模块来设计的。&lt;/p&gt;
&lt;p&gt;#什么是模块
模块是classes和resources的集合，每一个模块对应着一个classloader。模块之间可以存在依赖关系，如果一个模块里面的Jar包需要用到另一个模块Jar包里面的类，那么需要显式声明模块依赖，否则模块与模块之间是不可见的。同样，如果部署一个应用到JBoss AS7容器，应用需要依赖模块，也要显式声明模块依赖。&lt;/p&gt;
&lt;p&gt;如果要深入了解JBoss AS7模块加载的机制，可以看：&lt;a href="http://jaxenter.com/inside-the-jboss-as-7modularity-107386.html" title="JBoss模块分析"&gt;JBoss模块分析&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;#模块的好处&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;相同版本的Jar包不会被重复加载。&lt;/li&gt;
&lt;li&gt;避免Jar包的版本冲突问题。&lt;/li&gt;
&lt;li&gt;提供了更加高效的类加载机制。&lt;/li&gt;
&lt;/ol&gt;</description></item></channel></rss>