[TOC]
今天学习简单的用户界面遇到了invalid param in a LinerLayout :layout_weight;问题
解决方法:应该是LinearLayout
另外一种布局RelativeLayout没有layout_weight属性
正则表达式
- 匹配”\”时候需要四个“\”
“\”.matches(“\\”);
Pattern p = Pattern.compile(“[a-z]{3}”);
//字符串是否匹配p的模式
Matcher m = p.matcher(“das”);
//打印出结果
p(m.matches());
//等同于p(“das”.matches(“[a-z]{3}”));
正则表达式引擎不回退,matches()会从开始匹配影响到m.find()方法。需要使用m.reset()回退消除影响。另外m.lookingAt()每次都会从最开始查找。
start()和end()方法输出找到字符串的开始和结束位置。
反射机制
一个class文件通过ClassLoader加载到内存中的CodeSegment区域中,运行环境找到main方法开始执行,运行过程中会有其他的class文件不但的load到内存中
加载机制
- 动态加载,并非全部加载,用到才加载
- 静态语句块:只能调用一次用static修饰
class C {
static {
}
} - 动态语句块:可以调用多次
class D {
{
}
}
ClassLoader
ClassLoader主要对类的请求提供服务,当JVM需要某类时,它根据名称向ClassLoader要求这个类,然后由ClassLoader返回这个类的class对象。
1.1 几个相关概念ClassLoader负责载入系统的所有Resources(Class,文件,来自网络的字节流等),通过ClassLoader从而将资源载入JVM
每个class都有一个reference,指向自己的ClassLoader。Class.getClassLoader()
- JDK内置的ClassLoader
1.bootstrap classLoader:引导程序类,最先启动用本地化语言编写
加载核心core类。没有名字
2.extesion class loader:扩展类
加载lib/ext目录下的jar包中的类
3.application class loader
加载自定义的类
4.other class loader
得到加载类的名字
类名.class.getClassLoader().getClass().getName();
ClassLoader 的层次关系:下层classLoader中有指向上层classLoder的引用,两者间不是继承关系使用getParent()方法可以得到上一层的classLoader