JavaSE
文章平均质量分 72
hejiajunhs
这个作者很懒,什么都没留下…
展开
-
[转]深入理解HashMap源码及实现
1. HashMap概述: 简而言之,HashMap是以Entry[]数组实现的哈希桶数组(哈希桶相关可参考:引入哈希桶的概念来实现一个哈希表),用Key的哈希值取模桶数组的大小可得到数组下标。HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 2....原创 2015-12-23 15:59:33 · 216 阅读 · 0 评论 -
Java中的堆与栈
栈与堆都是Java用来在RAM中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。 Java的堆是一个运行时数据区,类的对象从中分配空间。这些对象通过new、newarray、anewarray和multianewarray等指令建立,它们不需要程序代码来显式的释放。堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,因为它...原创 2013-08-27 17:05:38 · 79 阅读 · 0 评论 -
(转载)Java中的String为什么是不可变的 --String类源码分析
什么是不可变对象?众所周知, 在Java中, String类是不可变的。那么到底什么是不可变的对象呢? 可以这样认为:如果一个对象,在它创建完成之后,不能再改变它的状态,那么这个对象就是不可变的。不能改变状态的意思是,不能改变对象内的成员变量,包括基本数据类型的值不能改变,引用类型的变量不能指向其他的对象,引用类型指向的对象的状态也不能改变。 区分对象和对象的引用对于Java初...原创 2014-06-23 13:39:46 · 114 阅读 · 0 评论 -
Fastjson API
// Fastjson可对对象、集合进行序列化和反序列化,// 最主要的使用入口是 com.alibaba.fastjson.JSON import com.alibaba.fastjson.JSON; // 常用方法接口: // 将JSON 文本 parse 为JSONObject 或者JSONArray public static final Object ...原创 2014-01-24 16:33:41 · 98 阅读 · 0 评论 -
Guava学习笔记:transfer of List<E> and Map<E>
package com.amg.test;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import com.google.common.base.Function;import com.google.common.co...原创 2013-08-15 17:36:54 · 154 阅读 · 0 评论 -
Guava学习笔记:List<E>转换(int->String)
method1:package com.amg.test;import java.util.List;import com.google.common.base.Function;import com.google.common.base.Preconditions;import com.google.common.collect.Lists;public cl...原创 2013-08-15 17:13:07 · 772 阅读 · 0 评论 -
Guava 教程系列(1-4)
Guava 教程1-使用 Google Collections,Guava,static imports 编写漂亮代码:http://www.oschina.net/translate/beautiful-code-with-google-collections-guava-and-static-imports-part-1 Guava 教程2-深入探索 Google Guav...原创 2013-08-15 16:55:22 · 163 阅读 · 0 评论 -
Guava学习笔记:A Brief Introduction of Google Guava
Guava 是一个 Google 的基于java1.6的类库集合的扩展项目,包括 collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, 等等. 这些高质量的 API 可以使你的JAVa代码更加优雅,更加简洁,让你工作更加轻松愉悦。下...原创 2013-08-15 16:44:48 · 95 阅读 · 0 评论 -
Quartz cron 表达式用法
Quartz中时间表达式的设置-----cron表达式 时间格式: <!-- s m h d m w(?) y(?) -->, 分别对应: 秒>分>小时>日>月>周>年, 举例:1.每天什么时候执行: <value>0 59 23 * * ?</value> 每天23:59:00开始执行...原创 2014-01-06 15:37:55 · 215 阅读 · 0 评论 -
eclipse->project->clean
eclipse --->project ----->clean... 选项 将工程中的.class文件删除,同时重新编译工程。原创 2013-02-13 11:16:01 · 112 阅读 · 0 评论 -
Windows下PATH等环境变量详解
在学习JAVA的过程中,涉及到多个环境变量(environment variable)的概念,如PATH。正确地配置这些环境变量,是能够顺利学习、开发的前提。而经常出现的问题是:有的学习者能够按照提示一步一步地正确配置,但时间一长就忘了,出现了问题也无从下手。究其原因,就是对这些概念没有理解,知其然但不知其所以然。下面的内容,就是帮助大家知其所以然。一、基本原理 首先看PATH...原创 2013-02-08 08:36:28 · 898 阅读 · 0 评论 -
SimpleDateFormat获取当前系统时间(年月日时分秒星期)
import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;/** * @author hejiajun * */public class DateTestDemo { public static void main(String[] args) t...原创 2013-02-07 14:17:34 · 5282 阅读 · 0 评论 -
面向对象思维-封装、继承、多态
封装任何的对象实例都是尽可能的去封装,减少暴露,它的实现细节对你是透明的。封装就是我们将程序的设计和使用分开的一种手段,也是方便我们编程者的工具。我们把对同一种数据的操作和处理,连同数据封装成一个类,并向外提供了使用的方法;这样既方便了我们的使用,有能够保证我们的设计的安全性。在封装中,我们会根据数据的不同来初始化这些数据,即构造方法。在封装中访问控制就是对安全性的...原创 2013-09-03 14:55:03 · 79 阅读 · 0 评论 -
java.util.concurrent学习笔记
concurrent在线文档:http://www.cjsdn.net/Doc/JDK50/java/util/concurrent/Executors.htmlhttp://www.cjsdn.net/Doc/JDK50/java/util/concurrent/ScheduledExecutorService.html java.util.concurrent包主要接口和类...原创 2013-09-06 13:38:03 · 122 阅读 · 0 评论 -
Java关键字null和" "
0、null与""的区别 String s=null;//null是未分配堆内存空间String a;//分配了一个内存空间,没存入任何对象String a="";//分配了一个内存空间,存了一个字符串对象 null是用来判断引用类型是否分配了存储空间 1、null是代表不确定的对象 Java中,null是一个关键字,用来标识一个不确定的对象。因...原创 2014-03-02 17:30:09 · 147 阅读 · 0 评论 -
Google Guava官方教程[中文版]
原文链接 译文链接 译者: 沈义扬,罗立树,何一昕,武祖 校对:方腾飞引言Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库,例如:集合 [collections] 、缓存 [caching] 、原生类型支持 [primitives support] 、并发库 [concurrency libraries] 、通用注解 [common annotations]...原创 2015-08-27 15:43:33 · 302 阅读 · 0 评论 -
JVM的持久代
英文原文链接,译文链接,原文作者:Abhishek Gupta ,译者:有孚本文会介绍一些JVM内存结构的基本概念,然后很快会讲到持久代,来看下Java SE 8发布后它究竟到哪去了。基础知识JVM只不过是运行在你系统上的另一个进程而已,这一切的魔法始于一个java命令。正如任何一个操作系统进程那样,JVM也需要内存来完成它的运行时操作。记住——JVM本身是硬件的一层软件抽象,在这之...原创 2015-08-27 14:55:31 · 842 阅读 · 0 评论 -
JAVA的内存模型及结构
原文链接 译文链接 作者:Tai Truong 译者:Jaxon所有的Java开发人员可能会遇到这样的困惑?我该为堆内存设置多大空间呢?OutOfMemoryError的异常到底涉及到运行时数据的哪块区域?该怎么解决呢?Java内存模型Java内存模型在JVM specification, Java SE 7 Edition, and mainly in the chap...原创 2015-08-27 14:31:38 · 149 阅读 · 0 评论 -
Java实现与.net对应的3DES加密解密
.net的3DES加密解密代码:public static string TripleDESDecrypt(string pToDecrypt, string sKey) { TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider(); ...原创 2014-04-18 15:12:24 · 438 阅读 · 0 评论 -
[转]Java中的堆和栈
当一个人开始学习Java或者其他编程语言的时候,会接触到堆和栈,由于一开始没有明确清晰的说明解释,很多人会产生很多疑问,什么是堆,什么是栈,堆和栈有什么区别?更糟糕的是,Java中存在栈这样一个后进先出(Last In First Out)的顺序的数据结构,这就是java.util.Stack。这种情况下,不免让很多人更加费解前面的问题。事实上,堆和栈都是内存中的一部分,有着不同的作用,而且一...原创 2015-04-10 10:54:40 · 111 阅读 · 0 评论 -
从 Java 程序调用 C/C++ 代码
概述 当无法用 Java 语言编写整个应用程序时,JNI 允许您使用本机代码。在下列典型情况下,您可能决定使用本机代码:希望用更低级、更快的编程语言去实现对时间有严格要求的代码。 希望从 Java 程序访问旧代码或代码库。 需要标准 Java 类库中不支持的依赖于平台的特性。 从 Java 代码调用 C/C++ 的六个步骤 从 Java 程序调...原创 2013-10-23 16:41:58 · 198 阅读 · 0 评论 -
JNI报错:java.lang.UnsatisfiedLinkError
当使用 JNI 从 Java 程序访问本机代码时,您会遇到许多问题。您会遇到的三个最常见的错误是: 1.无法找到动态链接。它所产生的错误消息是:java.lang.UnsatisfiedLinkError。这通常指无法找到共享库,或者无法找到共享库内特定的本机方法。 2.无法找到共享库文件。当用 System.loadLibrary(String libname) 方法(参...原创 2013-10-23 14:51:54 · 1291 阅读 · 0 评论 -
Java读取超大文本文件
方法1:使用BufferedReader类读写超大文件 File file = new File("E:\\workspace(javaEE)\\StatisticsVisitor\\log\\tte\\2014\\03\\2014-03-26.log"); BufferedInputStream fis = new BufferedInputStream(new FileInpu...原创 2014-03-27 16:22:32 · 558 阅读 · 0 评论 -
[转] HTML之快速入门
一、HTML语言入门 HTML(Hypertext Markup Language,超文本标记语言)是一种用来制作Web上超文本文档的简单标记语言。它是在原来文本文件的基础上,加上一系列标记描述其格式、颜色,再加上声音、动画、甚至视频等,形成精彩的画面。当用户浏览WWW上的信息时,浏览器会自动解释这些标记的含义,并按照一定的格式在屏幕上显示这些被标记的文件。1、一个简单的例...原创 2015-02-16 16:01:51 · 337 阅读 · 0 评论 -
[转]JavaScript之快速入门
一、基本概念 JavaScript是一种基于对象(Object Based)和事件驱动(Event Driver)的脚本语言,它本身提供了非常丰富的内部对象供开发人员使用。 JavaScript是一种解释性编程语言,其源代码在发往客户端执行之前不需经过编译,而是将文本格式的字符代码发送给客户端由浏览器解释执行。 下面是第一个JavaScrip...原创 2015-02-16 15:59:49 · 142 阅读 · 0 评论 -
[转]JVM内存管理
一、物理内存与虚拟内存1、物理内存 (1)RAM 所谓物理内存就是我们通常所说的RAM(随机存储器)。 (2)寄存器 在计算机中,还有一个存储单元叫寄存器,它用于存储计算单元执行指令(如浮点、整数等运算时)的中间结果。寄存器的大小决定了一次计算可使用的最大数值。 (3)地址总线 ...原创 2015-02-16 15:51:49 · 110 阅读 · 0 评论 -
Apache Commons组件集合
Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动。我选了一些比较常用的项目做简单介绍。文中用了很多网上现成的东西,我只是做了一个汇总整理。 一、Commons BeanUtils http://jakarta.apache.org/commons/beanutils/index.html说明:针对Bean的一个工具集。由于Bean往往是有一堆...原创 2013-02-07 14:17:19 · 469 阅读 · 0 评论 -
List&Map用循环获取集合中的值
map循环Map map= new HashMap(); map.put("1", "qiao1"); map.put("2", "qiao2"); map.put("3", "qiao3"); map.put("4", "qiao4"); map.put("5", "qiao5&qu原创 2013-02-06 10:40:23 · 227 阅读 · 0 评论 -
工具类(DateUtil)
import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.HashMap;import java.util.Map; /** * 获得时间工具类 * */public class DateUtil {priva...原创 2013-02-06 10:28:52 · 138 阅读 · 0 评论 -
eclipse快捷键归纳
ctrl+shift+o:自动导入包alt+L:自动提示(自定义)shift+alt+R:命名重构ctrl+O:类中的方法概要alt+/:自动补齐ctrl+/:注释单行alt+下:向下互换该行代码ctrl+alt+下:向下复制该行代码shift+ctrl+R:打开资源(文件)shift+ctrl+T:打开类型Ctrl+D: 删除当前行Ctrl+Q 定位...原创 2013-01-23 14:13:18 · 79 阅读 · 0 评论 -
Java和.NET开发过程中的一些不同
用.NET平台下的C#语言开发了比较长一段时间,最近项目开始用JAVA来开发了,本文通过自己开发过程中的一些感受说下它们在具体开发过程的不同点,由于经验知识还有限,本篇文章只能从比较表面的以及自己常用的功能点来说明我所看到的不同点。我是用VS2008和VS2010开发.NET程序,通过MyEclipse8.5开发JAVA程序,下面从IDE、语言、插件的不同点来做下简单的说明。 ID...原创 2013-01-23 11:47:43 · 113 阅读 · 0 评论 -
C/C++、Java、PHP之比较
根据业内权威的Tiobe的计算机语言排名, 编程语言在过去一年并无大的变化。在服务端领域,依旧是以C/C++、Java、PHP开发语言为主。PHP解决了Web快速开发的需求,C/C++以高性能网络服务为主,Java则擅长处理规范化的业务逻辑并且也有不错的执行效率。对于行内的新人来说,选择任何一门老牌语言都是一个不错的选择。...原创 2013-01-21 13:46:29 · 388 阅读 · 0 评论 -
equals()和==的联系与区别
1.==的含义,如果是比较基本数据类型,那么就是比较数据类型字面值的大小。如果是比较引用数据类型,就是比较它们在内存地址上是否是相同的。 2.equals方法,是Object类的方法之一,所有的java类都有这个方法,区别只是自己有没有重写的问题。如果没有重写,那么也是直接比较内存地址是否相同。重写了,那就要看它们是怎么重写的。 看下面的例子String str1 = "a...原创 2013-11-06 16:00:58 · 210 阅读 · 0 评论 -
JDK与JRE的区别&JDK安装后为什么有两套JRE
很多程序员已经干了一段时间java了依然不明白jdk与jre的区别,比如说,东哥...etc. JDK就是Java Development Kit.简单的说JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境。SDK是Software Development Kit 一般指软件开发包,可以包括函数库、编译程序等。JRE是Java Runtime Envirome...原创 2013-05-31 10:13:43 · 311 阅读 · 0 评论 -
Java 程序优化的一些最佳实践
本文转载自IBM DeveloperWorks(原文),作者通过经历的一个项目实例,介绍了 Java 代码优化的过程,总结了优化 Java 程序的一些最佳实践,分析了进行优化的方法,并解释了性能提升的原因。作者从多个角度分析导致性能低的原因,并逐个进行优化,最终使得程序的性能得到极大提升,增强了代码的可读性、可扩展性。原文请见:http://www.ibm.com/developer...原创 2013-05-07 15:46:30 · 76 阅读 · 0 评论 -
Java 程序优化的一些最佳实践
本文转载自IBM DeveloperWorks(原文),作者通过经历的一个项目实例,介绍了 Java 代码优化的过程,总结了优化 Java 程序的一些最佳实践,分析了进行优化的方法,并解释了性能提升的原因。作者从多个角度分析导致性能低的原因,并逐个进行优化,最终使得程序的性能得到极大提升,增强了代码的可读性、可扩展性。原文请见:http://www.ibm.com/developer...原创 2013-05-07 15:45:45 · 96 阅读 · 0 评论 -
Hibernate通用Dao&Biz接口及实现类模板
IGenericDao.javapackage com.amg.dao.base;import java.io.Serializable;import java.util.List;import java.util.Map;import com.amg.vo.PageBean;public interface IGenericDao<T extends Se...原创 2013-04-23 15:35:12 · 180 阅读 · 0 评论 -
JDBC用PreparedStatement完成批量添加vs普通添加
public class WeatherDao { private static Connection conn = null; private static PreparedStatement pstmt = null; /** * Author:Allison * Date:2013-04-02 * Description:执行批量添加 */ ...原创 2013-04-02 15:22:38 · 184 阅读 · 0 评论 -
JRockit JVM & Jrockit Mission Control
1-简介Oracle JRockit JVM(即原先的Bea JRockit JVM)系列产品是一个全面的Java运行时解决方案组合,是业内性能最高的Java虚拟机,超过Sun标准虚拟机,大量的行业基准测试显示,基本JRockit JVM是世界上最快的JVM。Oracle JRockit是为高性能服务器上运行大规模的关键任务型的服务器端应用而设计,包括支持64位的Intel至强和Inte...原创 2013-03-22 14:21:01 · 134 阅读 · 0 评论 -
加大MyEclipse内存
在使用MyEclipse的过程中经常出现内存不足的提示: clip_image002 提示中说的很明白:“MyEclipse has detected that less than 5% of the 64MB of Perm Gen (Non-heap memory) space remains.”意思是说当前只有小于5%的非堆内存是空闲的。所以我们只要将这个值设置大一些就可以了。 我们打开Ec...原创 2013-03-20 09:25:22 · 215 阅读 · 0 评论