Java源码编译过程

源代码(.java文件)—>分析(词法、语法分析)和填充符号表—>注解处理—>语义分析和字节码生成(.class文件)   词法分析: 将源代码转变成标记(Token)集合,标记是编译过程的最小元素。如 int a = b + 2; —> int、a、=、b、+、2 语法分析: 根据语法由Token序列生成抽象语法树

ArrayList Vector LinkedList 区别与用法

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

Vector和ArrayList的区别

首先看这两类都实现List接口,而List接口一共有三个实现类,分别是ArrayList、Vector和LinkedList。List用于存放多个元素,能够维护元素的次序,并且允许元素的重复。3个具体实现类的相关区别如下: ArrayList是最常用的List实现类,内部是通过数组实现的,它允许对元素进行快速随机访问。数组的缺点是每个元素之间不能有间隔,当数 组大小不满足时需要增加存储能力,就要讲

StringBuilder与StringBuffer的区别

相信大家看到过很多比较String和StringBuffer区别的文章,也明白这两者的区别,然而自从Java 5.0发布以后,我们的比较列表上将多出一个对象了,这就是StringBuilder类。String类是不可变类,任何对String的改变都会引发 新的String对象的生成;而StringBuffer则是可变类,任何对它所指代的字符串的改变都不会产生新的对象,可变和不可变类这一对对象已经齐

Trie树的java实现

Trie树,又称字典树,关于它的结构就不详细介绍了。Trie树在单词统计、前缀匹配等很多方面有很大用处。它的主要特点如下: 根节点不包含字符,除根节点外的每一个节点都只包含一个字符。 从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串。  每个节点的所有子节点包含的字符都不相同。 我自己用java实现了一个最基本的Trie树,功能有:插入单词,查找单词,删除单词,以字典序遍历打印出

各内部类的修饰和各种访问形式

一:总结 A成员内部类:相当于类的成员1.修饰: 有private protected public final abstract等修饰。 但是成员内部类中,不能定义静态static成员 2.访问:(1)内部类调用外部类,访问外部类中与内部类同名的实例变量用 外部类名.this.变量名 若不同名可以直接访问。 (2) 从外部类内调用内部类:外部类的非静态方法访问成员内部类 public void

java中length,length(),size()区别

1 java中的length属性是针对数组说的,比如说你声明了一个数组,想知道这个数组的长度则用到了length这个属性. 2 java中的length()方法是针对字符串String说的,如果想看这个字符串的长度则用到length()这个方法. 3.java中的size()方法是针对泛型集合说的,如果想看这个泛型有多少个元素,就调用此方法来查看!   这个例子来演示这两个方法和一个属性

java程序的加载过程

有个求java程序加载过程的题目很是复杂,回来研究了好久才有点明白,整理一下。原题代码如下,判断输出: public class StaticTest { public static int k=0; public static StaticTest s1=new StaticTest(“s1”); public static StaticTest s2=new StaticTest(“s2”);