- 博客(16)
- 资源 (5)
- 问答 (1)
- 收藏
- 关注
转载 hashmap和treemap比较
首先介绍一下什么是Map。在数组中我们是通过数组下标来对其内容索引的,而在Map中我们通过对象来对对象进行索引,用来索引的对象叫做key,其对应的对象叫做value这就是我们平时说的键值对。HashMap通过hashcode对其内容进行快速查找,而 TreeMap中所有的元素都保持着某种固定的顺序,如果你需要得到一个有序的结果你就应该使用TreeMap(HashMap中元素的排列顺序是不固
2016-04-27 10:06:53 1243
转载 java中的HashTable,HashMap和HashSet
1. HashTable和HashMap的区别---------------------------------------------------------相信这个是大家最容易混淆的。HashMap和Hashtable都实现了Map接口,但决定用哪一个之前先要弄清楚它们之间的分别。主要的区别有:线程安全性,同步(synchronization),以及速度。
2016-04-24 11:50:42 383
转载 java中的hashcode和equals的区别?
今天下午研究了半天hashcode()和equals()方法,终于有了一点点的明白,写下来与大家分享(zhaoxudong 2008.10.23晚21.36)。 1. 首先equals()和hashcode()这两个方法都是从object类中继承过来的。 equals()方法在object类中定义如下: public boolean equals(Object obj) { r
2016-04-24 00:03:24 392
原创 java内存管理和分配
一、java内存管理: 1、 Java把内存划分成两种:一种是栈内存,一种是堆内存。 2、在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配。 3、当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空
2016-04-23 21:30:08 469
原创 不包含继承时类中的静态块、静态方法、非静态方法、构造函数的执行顺序?
不包含继承时类中的静态块、静态方法、非静态方法、构造函数的执行顺序: package test;/** * * 不含有继承时,各种发法(静态块,静态方法,构造方法,普通方法)的执行顺序 * @author * */ public class uExtend { public static void test(){ System.out.pr
2016-04-23 19:57:09 1307
原创 java中静态块,静态方法,非静态方法,构造方法执行的顺序
叙述:为了充分说明静态块,静态方法,构造方法,普通方法的执行顺序看下面的例子:package test;/** * * 含有继承时,各种发法(静态块,静态方法,构造方法,普通方法)的执行顺序 * @author * */ public class ExA { public static void test(){ System.out.print
2016-04-23 13:22:15 8337
原创 java垃圾回收机制和finalize()方法
一、java提供finalize()方法,垃圾回收器准备释放内存的时候,会先调用finalize()。 (1).对象不一定会被回收。 (2).垃圾回收不是析构函数。 (3).垃圾回收只与内存有关。 (4).垃圾回收和finalize()都是靠不住的,只要JVM还没有快到耗尽内存的地步,它是不会浪费时间进行垃圾回收的。
2016-04-23 11:43:16 3724
转载 java 垃圾回收机制
1.垃圾收集算法的核心思想 Java语言建立了垃圾收集机制,用以跟踪正在使用的对象和发现并回收不再使用(引用)的对象。该机制可以有效防范动态内存分配中可能发生的两个危险:因内存垃圾过多而引发的内存耗尽,以及不恰当的内存释放所造成的内存非法引用。 垃圾收集算法的核心思想是:对虚拟机可用内存空间,即堆空间中的对象进行识别,如果对象正在被引用,那么称其为存活对象,反之,如果对象不再被
2016-04-23 00:14:28 439
转载 java修饰符
一、java的修饰符有: 权限修饰符:public、protected、default、private 修饰符:abstract、static、final public 使用对象:(使用最广)类、接口、变量、方法 protected使用对象:变量、方法 注意:不能修饰类(外部类) default 使用对象:类、接口、变量、方法。(即缺省,
2016-04-22 23:35:00 694
原创 strictfp关键字
自Java2以来,Java语言增加了一个关键字strictfp。strictfp的意思是FP-strict,也就是说精确浮点的意思。在Java虚拟机进行浮点运算时,如果没有指定strictfp关键字时,Java的编译器以及运行环境在对浮点运算的表达式是采取一种近似于我行我素的行为来完成这些操作,以致于得到的结果往往无法令你满意。而一旦使用了strictfp来声明一个类、接口或者方法时,那么所声明的
2016-04-22 23:15:40 552
原创 java线程安全
Java语言包含两种内在的同步机制: 同步块(或方法)和 volatile 变量。这两种机制的提出都是为了实现代码线程的安全性。其中 Volatile 变量的同步性较差(但有时它更简单并且开销更低),而且其使用也更容易出错。 Java 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchronized”;与 synchronized
2016-04-22 22:54:35 253
原创 析构函数
以C++语言为例: 1、析构函数名也应与类名相同,只是在函数名前面加一个位取反符~,例如~stud( ),以区别于构造函数。 2、它不能带任何参数,也没有返回值(包括void类型)。 3、只能有一个析构函数,不能重载。 4、如果用户没有编写析构函数,编译系统会自动生成一个缺省的析构函数(即使自定义了析构函数,编译器也总
2016-04-22 20:49:28 241
转载 java程序中java对象存储和内存分配的原理?
有以下五个地方可以存储数据:寄存器:这是最快的存储区,因为它位于不同于其他存储区的地方--处理器内部。但是寄存器的数量机器有限,所以寄存器根据需求进行分配。你不能直接控制,也不能在程序中直接感觉到它的存在任何迹象。堆栈:位于通用RAM(随机访问存储器)中,但通过“堆栈指针”可以从处理器那里获得直接支持。堆栈指针若向下移动,则分配新的内存;若向上移动,则释放那些内存。这是一种快速有效的分配存
2016-04-22 20:15:13 1195
原创 信息: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logge
问题: 当控制台打印 信息: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Ski
2016-04-16 11:33:53 5338
转载 java集合类
数组是一种很常见的数据结构,开始接触编程的时候多数程序都和数组相关。刚开始接触Java时也是一直使用数组写一些程序,后来越来越觉得数组这东西没法满足需求了,这时一位“前辈”对我说了一句:不会用集合类就等于没学过Java。然后才知道有集合类。 想想已经是3、4年前的事了,时间如白驹过隙啊。 什么时候数组会显得力不从心,没法满足需求,需要集合类呢?不知道具体数据长度
2016-04-15 10:55:49 470
转载 hashMap详解与实例
在Java集合类中最常用的除了ArrayList外,就是HashMap了。本文尽自己所能,尽量详细的解释HashMap的源码。一山还有一山高,有不足之处请之处,定感谢指定并及时修正。 在看HashMap源码之前先复习一下数据结构。 Java最基本的数据结构有数组和链表。数组的特点是空间连续(大小固定)、寻址迅速,但是插入和删除时需要移动元素,所以查询快,增加删除慢。链表
2016-04-15 10:47:37 2539
TA创建的收藏夹 TA关注的收藏夹
TA关注的人