java解惑
文章平均质量分 91
havedream_one
这个作者很懒,什么都没留下…
展开
-
字符之谜
1、最后的笑声:System.out.println('H' + "a");System.out.println('H' + 'a');结果:Ha169这里需要注意到的是“+”运算符在java里,参与“+”运算的两个操作数会被先提升到int型,然后运算。因此先'H'+'a'相当于 (int)('H'+'a')。类似的:short x = 1;short y = 1;原创 2015-04-14 07:50:36 · 2308 阅读 · 0 评论 -
Java解惑 55 -- 特创论
某些时候,对于一个类来说,跟踪其创建出来的实例个数会非常用有,其典型实现是通过让它的构造器递增一个私有静态域来完成的。在下面的程序中,Creature类展示了这种技巧,而Creator类对其进行了操练,将打印出已经创建的Creature实例的数量。那么,这个程序会打印出什么呢?public class Creator { public static void main(原创 2015-04-16 20:30:26 · 2564 阅读 · 0 评论 -
java解惑之大问题
import java.util.*;import java.math.BigInteger;public class FiftySixth{ public static void main(String[] args){ BigInteger one = new BigInteger("500"); BigInt原创 2015-04-16 20:44:18 · 2469 阅读 · 0 评论 -
Java类谜题53:按你的意愿行事
现在该轮到你写一些代码了。假设你有一个称为Thing的库类,它唯一的构造器将接受一个int参数: public class Thing { public Thing(int i) { ... } ... } Thing实例没有提供任何可以获取其构造器参数的值的途径。因为Thing是一个库类,所以你不具有访问其内部的权限,因此你不能修改它。 假设你想编写一个称为转载 2015-04-16 20:19:49 · 2301 阅读 · 0 评论 -
java解惑之陷阱和缺陷的目录总结
A1 词汇问题A 1.1 字母l在许多字体中都与数字1相像规则:在long类型字面常量中,应该总是用大写L,千万不要用小写l。不要用孤零零的一个l作为变量名。 谜题4A 1.2 负的十六进制字面常量看起来像正的规则: 要避免混合类型的计算。在恰当的地方要用long类型的字面常量代替int类型的字面常量。谜题5A 1.3 八进制字面常量与十进制字面常量相像原创 2015-04-17 08:49:10 · 3031 阅读 · 0 评论 -
java解惑之final
import java.util.*;class J{ public static final int count = 011;}public class SeventyFirst extends J{ public static final int count = 022; public static void main(String[] a原创 2015-04-17 10:47:36 · 2429 阅读 · 0 评论 -
java解惑之名字重用的术语表
覆写(override)一个实例方法可以覆写(override)在其超类中可访问到的具有相同签名的所有实例方法[JLS 8.4.8.1],从而能动态分派(dynamic dispatch);换句话说,VM将基于实例的运行期类型来选择要调用的覆写方法[JLS 15.12.4.4]。覆写是面向对象编程技术的基础,并且是唯一没有被普遍劝阻的名字重用形式:class Base {原创 2015-04-17 11:21:26 · 2557 阅读 · 0 评论 -
java解惑之Calendar
Java Calendar 类时间操作,代码很简单。演示了获取时间,日期时间的累加和累减。package MyTest;/* * 演示 Calendar 的一般操作 */import java.util.Date;import java.text.SimpleDateFormat;import java.text.DateFormat;import java.util.Ca原创 2015-04-17 07:30:40 · 2667 阅读 · 0 评论 -
java解惑之再探取余
再探求余原创 2015-04-17 08:12:17 · 2553 阅读 · 0 评论 -
java解惑之覆写
一个包内私有的方法不能能被另一个包中的某个方法直接覆写package onepublic class A extend B{ void fun(){//看似覆写了B中的fun方法 } main(){ new A.doIt(); }}pac原创 2015-04-17 10:28:24 · 2626 阅读 · 0 评论 -
java解惑之属性隐藏
import java.util.*;public class SixtySixth { public static void main(String[] args){ System.out.println(new Child().name); System.out.println(new Child().c原创 2015-04-17 09:36:46 · 6748 阅读 · 0 评论 -
java解惑之再谈String.split()
import java.util.*;public class Sixty{ public static void main(String[] args){ String s = "sur,hs dg,fdg, d ,fd, d,d,dasg,ds"; String[] t = s.split(",\\s*");原创 2015-04-16 21:26:37 · 2893 阅读 · 0 评论 -
instanceof和类型转换之谜
public class ColorPoint{ public static void main(String[] args){ String s = null; System.out.println(s instanceof String); ColorPoint cp = (ColorPoint) new Object(); }}输出什么?能够编译通过吗调试发现,可以原创 2015-04-16 14:17:37 · 2980 阅读 · 0 评论 -
Java解惑 -- 对象锁的错乱
下面的这段程序模拟了一个小车间。程序首先启动了一个工人线程,该线程在停止时间到来之前会一直工作(至少是假装在工作),然后程序安排了一个定时器任务(timer task)用来模拟一个恶毒的老板,他会试图阻止停止时间的到来。最后,主线程作为一个善良的老板会告诉工人停止时间到了,并且等待工人停止工作。那么这个程序会打印什么呢?原创 2015-04-08 09:57:13 · 2572 阅读 · 0 评论 -
表达式之谜
1、奇数性这个谜题主要是提醒我们要注意如何来判断一个数是不是奇数比如:i % 2 == 1这个是否可以成功判断?如果i是负数呢?显然会是-1所以我更喜欢:i % 2 != 0还有一种看起来比较high的:i&1 != 02、找零时刻这个谜题是货币计算的,由于浮点数在计算机中并不会精确保存,所以,有时候难免有误差,因此问题也就产生了如:System.out.p原创 2015-04-13 20:45:10 · 2310 阅读 · 0 评论 -
移位操作
1、左移(>>) 符号位一起参加移位对于int型,最大的移位数是31,当>=32时,对32取模然后移位;对于long型,最大的移位数是62,当>=64时,对64取模然后移位; 观察一段代码:import java.util.*;public class Test{ public static void main(String[] args){原创 2015-04-14 10:35:56 · 2971 阅读 · 0 评论 -
java解惑--多线程
java解惑--Pingpang原创 2015-04-08 08:14:49 · 2506 阅读 · 0 评论 -
异常之谜
观看几个程序片段,分析行为1、public static boolean fun(){ try{ return false; }finally{ return true; }}System.out.println(fun());2、public static boolean fun(){ try{ return false; }fina原创 2015-04-14 15:46:04 · 2325 阅读 · 0 评论 -
字符之谜
字符,从字面理解,就是一些char型的东东,然而放到程序里,就引申出了多种解读方式1、转义字符在程序中,转义字符何时被编译器解读呢?它的解读时刻可以理解成在编译之前,编译器先进行转义字符的替换。比如下面的程序段:(a)//\u0022是" System.out.println("a\u0022.length()+\u0022b".length);打印2(b)原创 2015-04-14 08:39:08 · 2313 阅读 · 0 评论 -
循环之谜
本次专题是尽情创造死循环!为了得到死循环,那么就要知道怎么创造永远都不为真的条件!1、boolean值while(true);2、自增运算符有没有可能一个值自增之后就小于它本身呢?这是可能的?永远记住计算机中的整数类型是由范围的,有可能出现最大值+1然后退化成最小值了,比如Integer.MAX_Value+1 = Integer.MIN_VALUE;想想是不是?下原创 2015-04-14 11:05:58 · 2360 阅读 · 0 评论 -
重载函数选择之谜
首先展示一段代码import java.util.*;public class FourtySixth{ private FourtySixth(Object o){ System.out.println("Object"); } private FourtySixth(double[] d){原创 2015-04-16 10:53:08 · 2397 阅读 · 0 评论 -
java解惑之值类
所谓的值类,就是其实例表示一个值的类。查看下面的俩个 值类,其中一个表示平面上的点,另外一个表示有颜色的点。import java.util.*;public class ColorPoint extends Point{ private final String color; public ColorPoint(int x,int y,String color){ super(原创 2015-04-16 13:42:11 · 2677 阅读 · 0 评论 -
java解惑65:疑似排序的惊人传奇
疑似排序的惊人传奇原创 2015-04-07 08:37:38 · 2344 阅读 · 0 评论