
Java
文章平均质量分 74
张小琦
这个作者很懒,什么都没留下…
展开
-
HashMap解决hash冲突的方法
在Java编程语言中,最基本的结构就是两种,一种是数组,一种是模拟指针(引用),所有的数据结构都可以用这两个基本结构构造,HashMap也一样。当程序试图将多个 key-value 放入 HashMap 中时,以如下代码片段为例:转载 2014-05-23 16:21:53 · 2621 阅读 · 0 评论 -
Java中final关键字作用及相关误区
对于方法参数的变量定义为final,网上给出的说法基本上都说是”当你在方法中不需要改变作为参数的对象变量时,明确使 用final进行声明,会防止你无意的修改而影响到调用方法外的变量。“这是不对的!!原创 2014-08-22 21:46:29 · 3314 阅读 · 6 评论 -
StringUtils说明
原文地址:http://abeetle.iteye.com/blog/233896今天刚发现 StringUtils,觉得不错,特意深入了解了一下,做个说明,以供今后参考:类包是:org.apache.commons.lang.StringUtilsJava1.4的文字处理上支持regular expression了。这可是个重量级而方便的东东啊,缺点是太复杂,转载 2014-05-21 10:33:53 · 1623 阅读 · 0 评论 -
Iterator 和 Iterable 区别和联系
用Iterator模式实现遍历集合 Iterator模式是用于遍历集合类的标准访问方法。它可以把访问逻辑从不同类型的集合类中抽象出来,从而避免向客户端暴露集合的内部结构。 例如,如果没有使用Iterator,遍历一个数组的方法是使用索引: for(int i=0; i而访问一个链表(LinkedList)又必须使用while循环: while((e=e.next())!=nul原创 2014-09-17 09:58:07 · 8735 阅读 · 1 评论 -
容器 Iterator 遍历时安全的删除元素
import java.util.ArrayList;import java.util.Iterator;import java.util.List;public class IteratorTest{ public static void main(String[] args) { List list = new ArrayList(); list.add("Test1");原创 2014-10-22 22:18:59 · 3055 阅读 · 0 评论 -
Date 获取后一天的时间
Calendar date = Calendar.getInstance();date.setTime(myDate);date.set(Calendar.DATE, date.get(Calendar.DATE) + 1);date.getTime()返回的即为加一天后的日期原创 2014-10-14 14:46:49 · 3290 阅读 · 0 评论 -
Java 浮点数 float和double类型的表示范围和精度
隐约记得,浮点数判断大小好像有陷阱,因为底层的二进制数不能精确表示所有的小数。有事后会产生让人觉得莫名其妙的事情。原创 2014-11-15 21:49:14 · 88544 阅读 · 6 评论 -
SimpleDateFormat 的 format 方法使用详解
Java中怎么才能把日期转换成想要的格式呢,或把字符串转换成一定格式的日期,如把数据库中的日期或时间转换成自己想要的格式,JAVA中提供了SimpleDateFormat类可以实现,以下是SimpleDateFormat的用法及实例:原创 2014-10-19 18:14:27 · 7783 阅读 · 0 评论 -
Java 和 Hadoop 序列化机制浅讲
序列化 (Serialization)将对象的状态信息转换为可以存储或传输的形式的过程(字节流)。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。原创 2015-04-22 11:42:30 · 1900 阅读 · 0 评论 -
UNICODE,GBK,UTF-8区别
UNICODE,GBK,UTF-8区别 简单来说,unicode,gbk和大五码就是编码的值,而utf-8,uft-16之类就是这个值的表现形式.而前面那三种编码是一兼容的,同一个汉字,那三个码值是完全不一样的.如"汉"的uncode值与gbk就是不一样的,假设uncode为a040,gbk为b030,而uft-8码,就是把那个值表现的形式.utf-8码完全只针对uncode来组织的,如转载 2015-04-20 15:50:41 · 1305 阅读 · 0 评论 -
对象的内存结构及占用空间的计算方法
很早就对数据在内存中的结构和体积有深入了解的想法。平时写代码的过程中,对于这些完全处于一种感性的认识,对于代码中使用的数据结构和对象,尤其是处理大量数据的时候,总有种把控不住的感觉。趁周六日有时间的功夫,通过查阅一些有关虚拟机和内存对象的资料,和Eclipse查看源码,自己琢磨着实实在在计算一下一个对象到底是占用了多少空间,它在内存中到底是个什么样子的。于是经过了两天的探索,总于有了下面这篇文章。对于文章中涉及到的数据,不同的JDK环境可能会有一些小出入,这包括 JDK的版本,JDK32/64位,JVM参原创 2015-07-28 18:01:00 · 5079 阅读 · 3 评论 -
深入理解 hash 函数、HashMap、LinkedHashMap、TreeMap 【中】
我们之前讲过的 HashMap 的性能表现非常不错,因此使用的非常广泛。但是它有一个非常大的缺点,就是它内部的元素都是无序的。如果在遍历 map 的时候, 我们希望元素能够保持它被put进去时候的顺序,或者是元素被访问的先后顺序,就不得不使用 LinkedHashMap。 LinkdHashMap 继承了 HashMap,因此,它具备了 HashMap 的优良特性-高性能。在HashMap 的基础上, LinkedHashMap 又在内部维护了一个链表,用来存放元素的顺序。因此,我们可以将原创 2014-09-23 23:11:19 · 3519 阅读 · 1 评论 -
java类的初始化顺序
对于静态变量、静态初始化块、变量、初始化块、构造器,它们的初始化顺序依次是(静态变量、静态初始化块)>(变量、初始化块)>构造器。我们也可以通过下面的测试代码来验证这一点:package org.bupt.xiaoye.blog;public class InitialOrderTest { // 静态变量 public static String staticField = "静态变量转载 2014-08-23 15:53:21 · 1214 阅读 · 0 评论 -
java-String中的 intern()
1. 首先String不属于8种基本数据类型,String是一个对象。因为对象的默认值是null,所以String的默认值也是null;但它又是一种特殊的对象,有其它对象没有的一些特性。2. new String()和new String(“”)都是申明一个新的空字符串,是空串不是null;3. String str=”kvill”;String str转载 2014-06-26 19:45:00 · 773 阅读 · 0 评论 -
int 和 integer 比较
package com.test;public class TestInteger { /** * @param args */ public static void main(String[] args) { int i = 128; Integer i2 = 128; Integer i3 = new转载 2014-06-27 10:28:33 · 983 阅读 · 0 评论 -
原码,反码,补码详解及 Java中>>和>>>的区别
前两天分析 HashMap 的 hash 算法的时候,遇见了 >> 和 >>> 这两个符号,当时查了下资料,在脑子中过了一下。今天又碰到了,没想到竟然忘了 0-0........我这记忆力哎,不说了。只好做个笔记,提醒自己,遇到啥不会的最好记下来,好记性不如烂博客啊~原创 2014-09-20 00:16:03 · 10701 阅读 · 1 评论 -
追本溯源 回归本质--深入理解抽象类和接口
在 Java 语言中, abstract class 和 interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进 行抽象类定义时对于abstract class和interface的选择显得比较随意。其实,两者之间还是有很大的区别的,对于它们的选择甚至反映出对 于问题领域本质的理解、对于设计意图的理解是否正确、合理。本文将原创 2014-09-20 12:59:46 · 1814 阅读 · 0 评论 -
抽象方法不能是static或native或synchroniz 原因及误解
在网上看到过这么一篇文章,是关于抽象方法不能是static或native或synchroniz 的原因。其中提到了这些关键字的意义以及与 abstract 关键字的冲突,大体内容如下:原创 2014-09-20 14:02:25 · 9663 阅读 · 0 评论 -
Integer大小的比较
今天发现一个挺诡异的问题,先来看看下面这段代码:view plaincopy to clipboardprint?public class Test { public static void main(String[] args) { Integer a = 1000; Integer b = 1000;转载 2014-05-18 11:44:18 · 1060 阅读 · 0 评论 -
Java中a=a+b 与 a+=b区别 以及和类型转换的关系
很久之前学习过 a=a+b 和a+=b的一些区别,进来再次回想起来,发现理解的还不透彻,所以又查资料找文件重新学习了一番。比较这两种运算符的区别,可以有以下两个方面的比较: 执行效率和类型转换。原创 2014-08-23 12:19:17 · 6399 阅读 · 0 评论 -
单例模式、双检测锁定DCL、volatile详解
Singleton模式可以是很简单的,它的全部只需要一个类就可以完成(看看这章可怜的UML图)。但是如果在“对象创建的次数以及何时被创建”这两点上较真起来,Singleton模式可以相当的复杂,比头五种模式加起来还复杂,譬如涉及到DCL双锁检测(double checked locking)的讨论、涉及到多个类加载器(ClassLoader)协同时、涉及到跨JVM(集群、远程EJB等)时、涉及到单例对象被销毁后重建等。对于复杂的情况,本章中会涉及到其中一些[1]翻译 2014-08-23 17:04:45 · 2364 阅读 · 0 评论 -
深入理解 hash 函数、HashMap、LinkedHashMap、TreeMap 【上】
最主要的实现类有 Hashtable、HashMap、LinkedHashMap和 TreeMap。在 HashTable 的子类中,还有 Properties的实现。Properties 是专门读取配置文件的类,我们会在稍后介绍。这里首先值得关注的是 HashMap 和 HashTable 两套不同的实现,两者都实现了 Map 接口。从表面上看,并没有多大差别,但是在内部实现上却有些微小的细节。 首先,HashTable 的大部分方法都做了同步,而 HashMap 没有,因此, HashM原创 2014-09-18 02:04:42 · 5118 阅读 · 5 评论