字节码分析-Java中String用==判断值相等一定是错的么
经常听到有同学讨论,在Java中String判断值相等应该用equals()而不能用==,并且分析的信誓旦旦。那么真相真的是这样么?==就完全不能用么?Java内部的原理究竟是如何呢?这需要理解它们背后的原理。下面是详细的原理分析:
已为您筛选出属于「Java技术研究」专栏下「JDK」分支的所有技术博文
经常听到有同学讨论,在Java中String判断值相等应该用equals()而不能用==,并且分析的信誓旦旦。那么真相真的是这样么?==就完全不能用么?Java内部的原理究竟是如何呢?这需要理解它们背后的原理。下面是详细的原理分析:
在一个下雨的夜晚,我在思考Java中内存管理的问题,以及Java集合对内存使用的效率情况。我做了一个简单的实验,测试在16G内存条件下,Java的Map可以插入多少对象。 这个试验的目的是为了得出集合的内部上限。所以,我决定使用很小的key和value。所有的测试,都是在64w位linux环境下进行的,操作系统是ubu...
<p 其实是一个不值得一提的小问题,不过既然验证了,就拿出来分享一下吧。</p <div <a href="http://www.coderli.com"OneCoder</a在要做一个周期性的任务,Timer即可实现,不过考虑到有可能在一个周期内,任务可能没有结束,不知道Timer的处理方式,是直接启动下一个,还是等...
<p 十一匆匆的就过去了,OneCoder过的也是有点恍惚。不知道都做了什么,心却有点散。做一篇翻译,权当收收心,找找感觉吧。</p <div 原文地址:<a href="http://www.markhneedham.com/blog/2012/09/23/java-parsing-csv-files/"http:/...
<p 看到一篇通过模拟Runnable和Callable对话的方式,形象的讲述Java中Runnable和Callable区别的文章,遂决定翻译过来加深印象与大家分享。</p <p 英文原文地址:<a href="http://java.dzone.com/articles/callable-vs-runnable-b...
还是梳理代码,频频到Future这个字眼,很自然的让我想到了未来。 还是那对男孩和女孩,女孩问男孩,你会娶我吗?男孩说,一定会,等我为你盖好一栋美丽的房子……
今天在梳理项目里一些老的代码逻辑和结构的时候,发现了一段观察者的代码。脑海里同时浮现出这样一个故事…… 有一个女孩和一个男孩,他们在山里迷路了。晚上,他们都精疲力尽。男孩对女孩说,你睡会吧,我看着,有动静我叫你,然而……
昨晚有朋友问我这样的一个问题。 打印的结果为什么是 0。 其实我一下也说不清楚,第一反应就是看看编译后的class文件。 这就好解释了: 至此完成i = i++,所以最后i的值为0 iinc 指令是直接对局部变量区进行操作,操作数栈不发生任何变化,这是由JVM规范定义的。
今天有人提出了代码中一个的NullPointException问题。这类问题,很好解决,找到所在行,一看便知。 但是这次,有点意外。抛异常的行,只是一个简单的Pojo的get、set方法。出错的行在 很自然的想到b会为null。但是前面的代码已经用过b了,也就是说,如果b是null。早就抛出空指针了。a是新new的。不...
本文讲述的是Java中try finally代码块执行顺序,和当其存在于循环中的时候的跳出和执行问题。白话,也要简化,一段代码,来说明问题。 执行结果: 如果还没看明白,那我再啰嗦两句:finally就是最后的,跟try和catch是兄弟,就好像正常人走try分支,走着走着你不正常了,就开始走catch分支,但是不管你...
今天处理一个关于Double.NaN的异常。 Unknown column 'NaN' in 'field list' NaN = Not a Number。就是不是数字。我们用0/0.0打印出来的结果就是NaN。 JDK的Double类里,提供的NaN的实现是: 如果是非零的数除以0.0,得出的是:Infinity。...
关于"白话", 偶然想到的词。目的就是用简洁,明快的语言来告诉您,我所知道的一切。 Java中的线程分两类,用户线程和守护线程。 这样就是用户线程。 这样就是守护线程。 起了"守护"线程这么动听的名字,自然要起到"守护"的作用。就好比男人要守护妹子。守护线程的作用,按照网上的说法是: 守护线程则是用来服务用户线程的,如...

今天在我的一个qq群里有人问了这样一个问题。 输出是nullnull。问为什么是这样。 其实问题并不复杂,很多同学也觉得自己知道原因,遂不予关注。但是我相信还是有初学Java的同学在这里是存在误会的。很典型的误会就是如一个群里的朋友说的String类型的变量如果没有显示初始化,默认的值就是"null"。支持的理由就是...
现在无论笔记本还是台式机的内存都已经是白菜价,4G以上的内存配置随处可见。我最近也将笔记本的内存升至8G,自然想更好的支持大容量内存,安装64系统成了必要的选择。就个人的使用情况来看,基本没发现什么常用软件对64位win7有不兼容的情况,使用良好。 回到正题,作为一个coder,开发环境自然必须搭建。64位系统下,最常...
最近遇到一些Jar包内外配置文件读取的问题。索性自己测试总结一下,与大家分享。 主要是关于ClassLoader.getResource和Class.getResource方法路径区别的问题。