- 浏览: 14566 次
- 性别:
- 来自: 杭州
最新评论
-
在世界的中心呼喚愛:
很清晰的解释,注意到队列,现在对stringbuffer和st ...
java StringBuffer StringBuilder
文章列表
shift:删除原数组第一项,并返回删除元素的值;如果数组为空则返回undefined
var a = [1,2,3,4,5];
var b = a.shift(); //a:[2,3,4,5] b:1
unshift:将参数添加到原数组开头,并返回数组的长度
var a = [1,2,3,4,5];
var b = a.unshift(-2,-1); //a:[-2,-1,1,2,3,4,5] b:7
注:在IE6.0下测试返回值总为undefined,FF2.0下测试返回值为7,所以这个方法的返回值不可靠,需要用返回值时可用splice代替本方法来使用。
pop:删除原数组最后 ...
引用单例模式(singleton) :保证一个类仅有一个实例,并提供一个访问它的全局访问点。
引用单例模式主要有3个特点,:
1、单例类确保自己只有一个实例。
2、单例类必须自己创建自己的实例。
3、单例类必须为其他对象提供唯一的实例。
单例模式有两种创建模式 第一种:饿汉式 第二种:懒汉式
饿汉式:自己在被加载的时候就将自己实例化。
懒汉式:要在自己第一次被引用的时,才会将自己实例化。
我们推荐第二种方式,如下。
public class Singleton{
private static Singleton p = null;
private ...
java StringBuffer StringBulider
StringBuffer 字符串变量(线程安全)
StringBuilder 字符串变量(非线程安全)
String 类型和 StringBuffer 、StringBuilder 类型的主要性能区别其实在于 String 是不可变的对象,而后俩者都是可变的。
来看看 StringBuffer类源码定义:
public final class StringBuffer
extends AbstractStringBuilder
implements java.io.Serializable, Cha ...
java String 源码
String 类底层是 char 类型数组实现的。
String 类API 文档描述如下:
String 类代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例来实现。
字符串是常量;它们的值在创建之后不能改变。字符串缓冲区支持可变的字符串。因为 String 对象是不可变的,所以可以共享它们。例如:
String str = "abc";
等效于:
char data[] = {'a', 'b', 'c'};
...
java set接口 HashSet
HashSet底层是 HashMap实现的。其实HashSet中存放的值,就是HashMap中key值。
如果对HashMap实现不太明白可以参考上篇 java map hashmap博文。
public class HashSet<E>
extends AbstractSet<E>
implements Set<E>, Cloneable, java.io.Serializable
{
static final long serialVersionUID = -502 ...
HashMap 是以key-value来存储的数据结构。
底层的实现是:entry类型的数组。将key-value封装成entry对象。对于这种数据结构我们也称之为 散列链表。
HashMap 定义源码如下:
public class HashMap<K,V>
extends AbstractMap<K,V>
implements Map<K,V>, Cloneable, Serializable
{
/**
* The default initial capacity - MUST be a power ...
java 集合类-LinkedList
- 博客分类:
- java基础
接上文 - java 集合类-ArrayList
LinkedList的底层实现方法:双向链表。
LinkedList用静态内部类Entry来表示一个节点,定义一个 header节点。
Entry内部定义了 前驱节点和后驱节点 以及存储数据。
LinkedList 源码:
public class LinkedList<E>
extends AbstractSequentialList<E>
implements List<E>, Queue<E>, Cloneable, java.io.Serializable
{ ...
Java集合类
一 List接口
常用的实现类 ArrayList和 LinkedList。
1)ArrayList: 底层实现的方法时: 动态数组 。
ArrayList、LinkedList比较:
1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。
2.对于随机访问,ArrayList觉得优于LinkedList。LinkedList需要不断移动指针引用。
3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。
先看 ArrayList
看源码:
public clas ...