- 博客(14)
- 收藏
- 关注
原创 Java 位移运算
正数的原码,补码,反码都是相同的5原码:0000 0000 0000 0000 0000 0000 0000 0101反码:0000 0000 0000 0000 0000 0000 0000 0101补码:0000 0000 0000 0000 0000 0000 0000 0101负数的原码是按照其绝对值大小转换成的二进制数,然后最高位补1,反码对其
2014-03-28 11:14:14 705
原创 奇怪的数值溢出
long a = 2 * 1024 * 1024 * 1024; System.out.println(a); 这两句代码的输出是什么呢?大家可能觉得很简单,就是简单的乘法,用计算器算一下结果应该为:2147483648 但是实际运行结果却是: -2147483648 这是为什么呢? 很明显这是数值溢出了,但是long是64位的,
2014-03-26 17:15:35 636
原创 Java 对象序列化
Java 对象序列化主要用到了下面两个类: ObjectOutputStream ObjectInputStream Java 提供了了默认的自动对象序列化机制,只需要实现Serializable接口就可以了。Serializable是一个空接口,里面没有任何方法。下面简单的看一个例子: import java.io.IOException;
2014-03-20 12:01:33 545
原创 Java 使用Zip进行多文件保存和读取
Java中使用Zip格式压缩和解压缩主要会用到下面的类: ZipInputStream 解压缩Zip文件格式的数据 ZipOutputStream 将数据压缩Zip文件格式 CheckedInputStream
2014-03-19 11:00:37 995
原创 Eclipse 指定参数运行java程序
现在有这样一串代码: public class Demo { public static void main(String[] args) { for(String str : args){ System.out.println(str); } }} 代码很简单只是打印指定的运行时参数。 javac Demo.ja
2014-03-18 14:00:42 973
原创 适配器模式
适配器模式: 将一个类的接口,转换成客户期望的另一个接口。适配器让原来接口不兼容的类可以合作无间。适配器模式有两种实现方式:1.对象适配器2.类适配器 这种实现方式是通过多重继承实现的,因为Java不支持多重继承,所以我们先不管它。下面是两个适配器的例子:将一个Iterator 适配成枚举类型:public c
2014-03-10 17:17:47 485
原创 HashMap的工作原理
1. HashMap概述: HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。不保证映射的顺序,特别是它不保证该顺序恒久不变。 2. HashMap的数据结构: HashMap实际上是一个“链表散列”的数据结构,即数组和链表的结合体。 从上图中可以看出,Ha
2014-03-08 14:48:03 908
原创 ListIterator的用法
ListIterator是一个功能更加强大的Iterator的子类型,其定义为: public interface ListIterator extends Iterator ListIterator的强大之处在于其可以双向移动,还可以产生相对于迭代器在列表中指向的当前位置的前一个和后一个元素的索引,还可以使用set()方法替换它访问过的最后一个元素。不过ListIterat
2014-03-06 14:57:13 4185
原创 transient关键字的用法
transient关键字只能用来修饰字段,表明这个字段不需要被序列化。简单的看下面的例子,就明白了其用法了: import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.ObjectInputStream;import java.io.ObjectOutputStrea
2014-03-06 13:57:32 578
原创 final的用法
面试的时候,经常被问到final不同用法的区别,所以特意总结一下。 使用final主要有三种情况:数据,方法和类。1. final数据用于基本数据类型,final使数值恒定不变;用于对象引用,final使引用恒定不变。一旦引用被初始化指向一个对象后,就无法把它改为指向另一个对象。但是,对象其自身是可以被修改的。如下例class Value{ int i;
2014-02-26 15:27:14 505
原创 Java 枚举使用方法
JDK 5提供了enum关键字,实现了对枚举类型的支持。 枚举是一个被命名的整型常数的集合,枚举在日常生活中很常见。 例如表示星期的SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY,就是一个枚举。 1.枚举的实现 public enum Week { SUNDAY, MONDAY
2014-02-25 12:48:15 840
原创 吸血鬼数字
吸血鬼数字指的是位数为偶数的数字,可以由一对数字相乘而得到,而这对数字则各包含乘积一般位数的数字,其中从最初的数字中选取的数字可以任意排序。以两个0结尾的数字是不允许的,例如下面的吸血鬼数字: 1260 = 21 X 60 1827 = 21 X 87 2187 = 27 X 81 下面的算法,是找出4位数的所有吸血鬼数字。 我们假设一个吸
2014-02-21 12:25:40 581
原创 Integer.valueOf(String)不同JDK版本的差异
1.System.out.println(Integer.valueOf(127) == Integer.valueOf(127));2.System.out.println(Integer.valueOf(128) == Integer.valueOf(128));大家可能都知道上面这两行的结果:1.true2.false因为valueOf会返回一个Integer(整型)对象
2014-02-12 15:40:46 944
原创 单例模式
单例模式可以说是最容易学会的设计模式了,但是其简约而不简单,还是有几个问题值得大家探讨的。 单例模式的定义: 确保一个类只有一个实例,并提供一个全局访问点 单例模式主要作用确保一个类只能有一个实例,比如:线程池,缓存,打印机等设备的驱动对象。这些对象只能有一个实例,不然就会出现奇奇怪怪的问题。 单例模式的实现方法有很多种,但是最关键
2014-02-12 13:44:39 564
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人