- 浏览: 112546 次
- 性别:
- 来自: 江西
最新评论
-
bz5011:
node.eachChild() 要延迟,等node.expa ...
EXTJS学习笔记----EXTJs中带复选框的tree,选中父节点时所有子节点也被选中 -
hvang1988:
[img][/img][url][/url][flash= ...
jquey 取值 -
xiaguangme:
写的很不错
java需要关注的知识点---HashMap -
perfect613:
sinly 写道perfect613 写道你好,有个问题请教一 ...
JS动态创建表格,动态设置属性,动态添加事件 . -
aiyingpower:
把哥的代码拿过来也不注明一下?
arcgis地图————————基础操作
文章列表
进程控制:
public class OSExecute {
public static void command(String command) {
boolean err = false;
try {
Process process = new ProcessBuilder(command.split(" ")).start();
BufferedReader result = new BufferedReader(new InputStreamReader(process.getInputStream()));
String ...
System.in
public class SystemInTest {
public static void main(String[] args) throws IOException {
BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
String s;
while((s = stdin.readLine())!= null && s.length()!= 0) {
System.out.println(s);
}
}
} ...
1.无论何时使用readLine().都不应该使用DataInputStream,而应该使用BufferedReader.
2.RandomAccessFile,只有RandomAccessFile支持搜索操作,并且只适用于文件。
到jdk1.4中,它的大部分功能被nio存储映射文件所取代。
3.读文件的几种方式:
缓冲输 ...
一、JVM内存区域组成
java把内存分四种:
1、栈区(stack segment)— 由编译器自动分配释放,存放函数的参数值,局部变量的值等,具体方法执行结束之后,系统自动释放内存资源
2、堆区(heap segment) — 一般由程序员分配释放 ...
Core Java(8th),内容很全,概念清晰,一直没有认真看过,但是可以作为参考资料。
The Java Programming Language(4th),算是最喜欢的Java书了,语言点介绍详略得当,概念权威,很多地方也会介绍一些语法的设计选择,很棒。对类库也进行了整体的介绍,看完能对java有个基本的方向性认识了。很奇怪的是,这本书在Java书籍中的地位好像远远没有The C++ Programming Language一书在C++社群中的地位高。
Thinking In Java(4th),好书,但是虽然叫java编程思想,其实达不到编程思想的境界,非常不错的java语法书,设计了很 ...
从JDK1.2版本开始,把对象的引用分为四种级别,从而使程序能更加灵活的控制对象的生命周期。这四种级别由高到低依次为:强引用、软引用、弱引用和虚引用。
1.强引用
本章前文介绍的引用实际上都是强引用,这是使用最普遍的引用。如果一个对象具有强引用,那就类似于必不可少的生活用品,垃圾回收器绝不会回收它。当内存空 间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足问题。
2.软引用(SoftReference)
如果一个对象只具有软引用,那就类似于可有可物的生活用品。如果内存空间足够,垃圾回收器就不会回收它,如果内存 ...
>>-CREATE PROCEDURE--procedure-name----------------------------->
>--+----------------------------------------------------+--*---->
'-(--+------------------------------------------+--)-'
| .-,------------------------------------. |
| V .-IN----. ...
treeMap插入元素的图解法:
插入前:
插入过程:
1
2
3
4
5
6
代码分析(转)
public V put(K key, V value)
{
// 先以 t 保存链表的 root 节点
Entry<K,V> t = root;
// 如果 t==null,表明是一个空链表,即该 TreeMap 里没有任何 Entry
if (t == null)
{
// 将新的 key-value 创建一个 Entry,并将该 Ent ...
1.构造方法:
public HashSet() {
map = new HashMap<E,Object>();
}
可以看出,hashSet的实现其实是一个hashMap(详见本人写的hashMap)
HashSet中基本都是调用hashMap的方法实现的,取得的值都是hashMap的key,在往hashMap存入值时候,value都是一个默认的object类。
和hashMap不同的方法:writeObject 和 readObject
1.默认初始大小 10.
2.Vector是一个object数组,Vector的add是线程安全的。
3.Vector的方法 ensureCapacityHelper
private void ensureCapacityHelper(int minCapacity) {
int oldCapacity = elementData.length;
if (minCapacity > oldCapacity) {
Object[] oldData = elementData;
int newCapacity = (capacityIncrement & ...
LinkedList是采用双向链表来存储数据:
LinkedList允许插入null的值
双向链表的结构图:
LinkedList的构造函数:
public LinkedList() {
header.next = header.previous = header;
}
LinkedList在构造函数中初始化双向链表的表头header,指定header的上一个和下一个都是自己。
LinkedList的add方法:
public boolean add(E e) {
addBefore(e, header);
return ...
volatile修饰符告诉编译程序不要对该变量所参与的操作进行某些优化。在两种特殊的情况下需要使用volatile修饰符:第一种情况涉及到内存映射硬件(memory-mapped hardware,如图形适配器,这类设备对计算机来说就好象是内存的一部分一样),第二种情况涉及到共享内存(shared memory,即被两个以上同时运行的程序所使用的内存)。
大多数计算机拥有一系列寄存器,其存取速度比计算机主存更快。好的编译程序能进行一种被称为“冗余装入和存储的删去”(redundant load and store removal)的优化,即编译程序会在程序中寻找并删去这样两类代码:一类是 ...
1.ArrayList 容器初始大小为10,使用object数组实现。
2.ArrayList 在扩容、增加元素和删除元素的时候,使用的是数组的深克隆。
3.ArrayList 的add()方法:
public boolean add(E e) {
ensureCapacity(size + 1); // Increments modCount!!
elementData[size++] = e;
return true;
}
ArrayList的ensureCapacity方法:
public void ensureCapacity(int ...
在concurrentHashMap出来之前,hashtable一直是作为线程安全的map使用。
hashtable默认的初始大小是:11.
1.Hashtable中的put方法。
public synchronized V put(K key, V value) {
// Make sure the value is not null
if (value == null) {
throw new NullPointerException();
}
// Makes sure the key is not already in the hashtable. ...
ConcurrentHashMap默认初始大小 16,临界值:12:基数:0.75
1.ConcurrentHashMap是一个线程安全的hashMap。相对hashMap多出以下一些特殊属性:
//默认能够同时运行的线程数目
static final int DEFAULT_CONCURRENCY_LEVEL = 16;
//最大同时运行的线程数目
static final int MAX_SEGMENTS = 1 << 16; // slightly conservative
2.ConcurrentHashMap的链表实例Has ...