文章列表
Java虚拟机运行时数据区(JVM所管理的内存)包括:
1) 程序计数器(Program Counter Register): 一块较小的内存空间,作用是作为当前线程所执行的字节码的行号指示器。 为了每个线程在切换中都能记住相应
的执行位置,每个线程都有自己独立的程序计数器。所以该内存是属于线程私有的。 该内存区域不存在OutOfMemoryError错误。
2)Java虚拟机栈(Java Virtual Machine Stacks):也是线程私有。它的生命周期跟线程相同。描述的是Java方法的执行的内存模型。 每个方法的执行对应着栈
帧的入栈和出栈。 该内存可能抛出两种 ...
1. 类的初始化
Java类从class文件到可以生成对象,需要经历类的加载、连接和初始化。
依次说明下:
(1)类的加载:
查找并加载类的二进制数据,即:将类的.class文件中的二进制数据读入到内存中,将其放在运行时 数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。(说明下:此处所说的方法区就是指JVM启动时分配的一块内存区域,其大小默认为64M,可以通过-XX:PermSize指定,即人们常说的永久代)。此处还需要补充的是当 ...
1. 环视结构(lookaround)不匹配任何字符,只匹配文本中的特定位置,这一点与单词分界符‘\b’, 锚点'^', '$'相似。
2.顺序环视(lookahead) 顺序环视从左至右查看文本,尝试匹配子表达式,如果能匹配,就返回匹配成功的信息。
3.肯定型顺序环视(positive lookahead) 用特殊的序列(?=...)表示,如:(?=\d), 它表示如果当前位置的右边的字符是数字则匹配成功。
4. 肯定型逆序环视(positive lookbehind) 它从右向左查看文本, 用特殊的序列(?<=...)表示,如:(?<=\d),它表 ...
\s 匹配所有的空白,包括空格键按出的空白和tab键按出的空白,也可以表示为[ \t]+。
\S 表示除\s之外的任何字符。
\w 等价于正则表达式:[a-zA-Z0-9_], 即任意的字母和数字,注意: 有的版本的引擎不支持下划线。
\W 表示非字母和数字,即等价于:[^a-zA-Z0-9_],同样有的版本的引擎不支持下划线。
\d 表示数字字符, 即:[0-9]
\D 表示非数字字符,即:[^0-9]
(? : ...) 可以用来分组,但不会被捕获。
1. 装载程序装载类,如果发现有基类,就先装载基类,依次类推,直到最底层的基类。
2. 会在根基类开始执行static 域初始化,再在下一个衍生类初始化,依次类推。
3.基类和子类中所有的成员属性都相应初始化为默认值,基本数据类型为0, 引用类型为null。
4.调用根基类构造器,默认调用或者使用super方式调用。
5.初始化实例变量。
6.衍生类以此类推。
7.执行构造器剩余的主体部分。
Javascript学习笔记(二)
- 博客分类:
- Javascript
1. function arguments: arguments 表示函数的参数列表数组。2. argument.callee property: 表示函数本身:
function(x) {
if (x <= 1) return 1;
return x * arguments.callee(x-1);
}
3. Defining Your Own Function Properties:
// Create and initialize the "static" variable.// Function declaration ...
Javascript学习笔记(一)
- 博客分类:
- Javascript
1.原生数据类型包装对象(Primitive Datatype Wrapper Objects): note that any number, string, or boolean value can be converted to its corresponding wrapper object with the Object( ) function:var number_wrapper = Object(3);2.number,boolean,string按值传递 object按引用传递3. == 和 === 的不同点:===在两边的类型不一致时直接返回false,不考虑类型转换4.in ...
. 点号,匹配单个任意字符。
[] 字符组,可以列出任意字符,元字符置于其中自动变为普通字符,例外:-或者^放置在首位分别表示普通的连字符“-”和取反。
[^] 排除型字符组,表示未列出的字符组。
^ 脱字符,匹配一行的起始位置。
$ 美元符,匹配一行的结束位置。
\< 反斜杠小于,匹配单词的起始位置,并非所有版本都有效,可用\b替代。
\> 反斜杠大于,匹配单词的结束位置,并非所有版本都有效,可用\b替代。
| 竖线,匹配分隔两边的任意一个表达式。
()限制竖线的作用范围,括号包含的部分作为一个整 ...
1.类既不可以是private,也不可以是protected, 只能是public或者包访问权限。
2.public类的名称必须完全与含有该编译单元的文件名相匹配,包括大小写。
3.如果编译单元内不带public类,则文件名可以任意命名。
4.代码复用的两种方式:组合和继承。优先考虑组合。
5.每一个非基本类型的对象都有一个toString()方法,而且当编译器需要一个String而你只有对象时,该方法便会调用。
Java学习笔记(JUnit)
- 博客分类:
- JAVA
1.单体测试类必须要继承TestCase类。
2.测试方法必须是public void 开头。
3.方法名称为test开头。
4.方法无参数。
5.Assert.assertEquals等方法的参数顺序:第一个为期望值,第二个为实际值。不要颠倒了。
6.可选运行方式:1)eclipse自带插件,以run as junit方式运行。2)文本形式:junit.textui.TestRunner.run(Class c);
3)GUI形式:junit.awtui.TestRunner.run(Class c)
7.所写的testcase不能依赖于测试方法的执行顺序。
8.对单个测试 ...
java学习笔记(类型信息)
- 博客分类:
- JAVA
1.获取类对象:Class.forName("java.util.Date"); 注意类名必须为全限定名。
2.class.getInterfaces() 可获取所有的接口类对象列表。
3.class.getSuperclass()可获取基类类对象。
4.class.newInstance()可以获取该类的新实例。
5.class.getName()获取类对象的完全限定名。
6.class.isInterface()判断是否为接口。
7.class.getSimpleName()获取类对象简单名称。
8.class.ge ...