11 码民卡卡

尚未进行身份认证

暂无相关简介

等级
TA的排名 22w+

几种任务调度的 Java 实现方法与比较

几种任务调度的 Java 实现方法与比较综观目前的 Web 应用,多数应用都具备任务调度的功能。本文由浅入深介绍了几种任务调度的 Java 实现方法,包括 Timer,Scheduler, Quartz 以及 JCron Tab,并对其优缺点进行比较,目的在于给需要开发任务调度的程序员提供有价值的参考。8 评论:张 静, 软件工程师, IBM

2014-12-03 15:00:04

深入解析Java对象的hashCode和hashCode在HashMap的底层数据结构的应用

一、java对象的比较等号(==): 对比对象实例的内存地址(也即对象实例的ID),来判断是否是同一对象实例;又可以说是判断对象实例是否物理相等;equals():对比两个对象实例是否相等。当对象所属的类没有重写根类Object的equals()方法时,equals()判断的是对象实例的ID(内存地址),是否是同一对象实例;该方法就是使用的等号(==)的判断结果,如Obje

2014-08-17 15:55:32

Java HashMap 分析之四:查找和内存使用

获取元素有了前面的分析,获取元素的逻辑就非常清晰。首先,调用者传递key,从key的hashCode方法获得值后,调用hash函数做一些低位置换,保证hash值的均匀分布,之后和size-1按位与后得到数组的位置。然后取出对应位置的链表,遍历该链表,查找hash值相等,并且key的引用或者值相等的对象,然后返回。代码见下面:[java] view plaincopy

2014-08-15 11:03:22

Java HashMap 分析之三:放入元素

现在,有了hash code,来考虑如何计算放入数组的位置。hash code值通常会很大,但是数组的大小有限,默认只有16,大的也不能超过2的30次方。所以,用模运算来保证在数组大小范围内是合理的,比如:index = hash code % array size.不过这有点慢,JDK采用了更快的算法。这个更快的算法源于一个数学规律,就是如果size是2的N次方,那么数X对size的模运算结果等

2014-08-15 11:02:45

Java HashMap 分析之二:Hash code

散列计算就是计算元素应该放在数组的哪个元素里。准确的说是放到哪个链表里面。按照Java的规则,如果你要想将一个对象放入HashMap中,你的对象的类必须提供hashcode方法,返回一个整数值。比如String类就有如下方法:[java] view plaincopyprint?public int hashCode() {int h = hash; int l

2014-08-15 11:02:07

Java HashMap 分析之一:基本结构

Java的HashMap非常的常用,本篇研究它的实现算法,最后希望计算出内存占用,性能的量化数据,然后得出什么时候使用HashMap,什么时候不能滥用的结论。HashMap实际上是一个数组,数组里面的每个元素都是一个链表。每个元素在通过put方法放入HashMap中的时候,要按照如下步骤进行:1.根据该元素自身提供的hashcode计算出散列值,该散列值就是数组的下标2.将新元素放入该

2014-08-15 11:01:20

JAVA HashMap详细介绍和示例

第1部分 HashMap介绍HashMap简介HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。HashMap 继承于AbstractMap,实现了Map、Cloneable、java.io.Serializable接口。HashMap 的实现不是同步的,这意味着它不是线程安全的。它的key、value都可以为null。此外,HashMap中的映射不是有

2014-08-15 10:36:33

String的substring、split, StringTokenizer 截取字符串性能比较

package com.huawei.jvm.decorater;import java.util.ArrayList;import java.util.List;import java.util.StringTokenizer;public class MainTest {public static void main(String ... args) thr

2014-08-15 10:05:17

JAVA中subString以及split函数等几个函数的用法技巧

一、先说一说subString()函数       subString函数有个陷阱,有可能导致内存泄露(当然,在JDK1.7.0-B147之前这个问题一直存在,在JDK1.7.0_15-b03版本之后这个问题已经修改过来了,至于是具体中间哪个版本修改过来的,本人没有去细看)       在Java中,字符串是很复杂的一个问题,java有对字符串的优化,比如String POOL 对于Sub

2014-08-14 14:45:24

JAVA中堆栈和内存分配原理

JAVA中堆栈和内存分配原理博客分类: 需学习Java基础1、栈、堆1.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制.2. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中。)3. 堆:存放所有new出来的对象。4. 静态

2014-08-08 15:55:42

ArrayList Vector LinkedList 区别与用法

最近用到了,所以依然是转载ArrayList 和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,都允许直接序号索引元素,但是插入数据要设计到数组元素移动等内存操作,所以索引数据快插入数据慢,Vector由于使用了synchronized方法(线程安全)所以性能上比ArrayList要差,LinkedList使用双向链表实现存储,按序号索引数据需要进行向

2014-08-04 10:49:36

ensureCapacity()方法提高ArrayList的初始化速度

我们在使用Arraylist时,经常要对它进行初始化工作,在使用add()方法增加新的元素时,如果要增加的数据量很大,应该使用ensureCapacity()方法,该方法的作用是预先设置Arraylist的大小,这样可以大大提高初始化速度。         请看代码:     Java代码 package test;     import java.util.Arr

2014-08-04 10:48:22

Java 集合排序及 java 集合类详解

Java 集合排序及 java 集合类详解(Collection, List, Set, Map)摘要内容Java 里面最重要,最常用也就是集合一部分了。能够用好集合和理解好集合对于做 Java 程序的开发拥有无比的好处。本文详细解释了关于 Java 中的集合是如何实现的,以及他们的实现原理。关键字:Collection , List ,Set , Map , 集合,框

2014-06-09 23:54:15

String,StringBuffer与StringBuilder的区别??

String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全)简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改

2014-06-09 22:21:19

Java线程池使用说明

Java线程池使用说明一简介线程的使用在java中占有极其重要的地位,在jdk1.4极其之前的jdk版本中,关于线程池的使用是极其简陋的。在jdk1.5之后这一情况有了很大的改观。Jdk1.5之后加入了java.util.concurrent包,这个包中主要介绍java中线程以及线程池的使用。为我们在开发中处理线程的问题提供了非常大的帮助。二:线程池线程池的作用:线程池作用就是

2014-06-06 18:12:57

java动态代理(JDK和cglib)

java动态代理(JDK和cglib)JAVA的动态代理 代理模式 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特

2014-06-05 16:56:03

JAVA动态代理

java动态代理(JDK和cglib)JAVA的动态代理 代理模式 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特

2014-06-05 15:39:00

Hashmap与Hashtable的选择

Hashmap与Hashtable的选择(2009-12-13 17:05:08)  1.问题  Hashtable和Hashmap是我们在开发过程中经常用来映射key到value的容器,在这两者之间选择使用的时候,我们经常被有经验者建议用 Hashmap,但我们可能对其中的缘由不甚了解。本文通过对原代码的一些简单分析,来解释原理,从而在使用中能够更好地做出选择。2.分析

2014-06-05 09:55:21

Java流操作有关的类或接口

Java流操作有关的类或接口:Java流类图结构:流的概念和作用流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。IO流的分类根据处理数据类型的不同分为:字符流和字节流根据数据流向不同分为:输入流和输出流字符流和字节

2014-06-04 14:31:47

Apache Mina Server 2.0 中文参考手册

Apache Mina Server 2.0 中文参考手册 Apache Mina Server 是一个网络通信应用框架,也就是说,它主要是对基于TCP/IP、UDP/IP协议栈的通信框架(当然,也可以提供JAVA 对象的序列化服务、虚拟机管道通信服务等),Mina 可以帮助我们快速开发高性能、高扩展性的网络通信应用,Mina 提供了事件驱动、异步(Mina 的异步IO 默认使

2014-06-03 15:33:25

查看更多

勋章 我的勋章
    暂无奖章