最近面试的总结与准备
2015-11-03 21:31
351 查看
static:
修饰变量,表示每次重新使用该变量所在方法、类或自定义类时,变量的值为程序这次运行最后一次为变量赋值时的值,这个方法称为静态函数
修饰方法,表示此方法为所在类或所在自定义类所有,而不是这个类的实例所有,这个方法称为静态方法
用于class 前,说明此类型无法新建实例,简单点说这个类型的方法全是静态方法,这个类里的非静态方法是不能使用的,这个类型称为静态类
static{}称为static代码块 ,也叫静态代码块;是在类中独立于类成员的static语句块,可以有多个,位置可以随便放,它不在任何的方法体内,JVM加载类时会执行这些静态的代码块,如果static代码块有多个,JVM将按照它们在类中出现的先后顺序依次执行它们,每个代码块只会被执行一次利用静态代码块可以对一些static变量进行赋值
修饰常量,静态常量public static final String
单例模式:
Singleton模式的实现基于两个要点:
1.不直接用类的构造函数,而另外提供一个Public的静态方法来构造类的实例。通常这个方法取名为Instance。Public保证了它的全局可见性,静态方法保证了不会创建出多余的实例。
2.将类的构造函数设为Private,即将构造函数"隐藏"起来,任何企图使用构造函数创建实例的方法都将报错。这样就阻止了开发人员绕过上面的Instance方法直接创建类的实例。
饿汉模式:
懒汉模式:
终极单例模式:
Android三级缓存机制:
内存-文件-网络 三层cache机制
当根据url向网络拉取图片的时候,先从内存中找,如果内存中没有,再从缓存文件中查找,如果缓存文件中也没有,再从网络上通过http请求拉取图片。在键值对(key-value)中,这个图片缓存的key是图片url的hash值,value就是bitmap。所以,按照这个逻辑,只要一个url被下载过,其图片就被缓存起来了。
UI布局:
线性布局:横向、纵向,通过layout_weight:1,layout_width:0 屏幕适配
重要属性:
android:orientation
android:layout_weight
android:layout_width
android:layout_height
android:gravity
相对布局:
控件在内部相对位置摆放
通过id设置位置
修饰变量,表示每次重新使用该变量所在方法、类或自定义类时,变量的值为程序这次运行最后一次为变量赋值时的值,这个方法称为静态函数
修饰方法,表示此方法为所在类或所在自定义类所有,而不是这个类的实例所有,这个方法称为静态方法
用于class 前,说明此类型无法新建实例,简单点说这个类型的方法全是静态方法,这个类里的非静态方法是不能使用的,这个类型称为静态类
static{}称为static代码块 ,也叫静态代码块;是在类中独立于类成员的static语句块,可以有多个,位置可以随便放,它不在任何的方法体内,JVM加载类时会执行这些静态的代码块,如果static代码块有多个,JVM将按照它们在类中出现的先后顺序依次执行它们,每个代码块只会被执行一次利用静态代码块可以对一些static变量进行赋值
修饰常量,静态常量public static final String
单例模式:
Singleton模式的实现基于两个要点:
1.不直接用类的构造函数,而另外提供一个Public的静态方法来构造类的实例。通常这个方法取名为Instance。Public保证了它的全局可见性,静态方法保证了不会创建出多余的实例。
2.将类的构造函数设为Private,即将构造函数"隐藏"起来,任何企图使用构造函数创建实例的方法都将报错。这样就阻止了开发人员绕过上面的Instance方法直接创建类的实例。
饿汉模式:
饿汉式的创建方式在一些场景中将无法使用: 譬如实例的创建是依赖参数或者配置文件的, 在getInstance()之前必须调用某个方法设置参数给它, 那样这种单例写法就无法使用了。 class A{ private A(){}//构造方法私有化,防止外部直接new对象 private A a=new A(); public A getA(){ return a; } }
懒汉模式:
class B{ private B(){} private static class C{ static final B b=new B(); } public B getB(){ return C.b; } }
终极单例模式:
class D implements Serializable{ private D(){} private static E{ static final d=new D(); } public static getD(){ return E.d; } /* *该方法保证反序列化的时候得到原来的对象 */ private Object getReslove(){ return getD(); } }
Android三级缓存机制:
内存-文件-网络 三层cache机制
当根据url向网络拉取图片的时候,先从内存中找,如果内存中没有,再从缓存文件中查找,如果缓存文件中也没有,再从网络上通过http请求拉取图片。在键值对(key-value)中,这个图片缓存的key是图片url的hash值,value就是bitmap。所以,按照这个逻辑,只要一个url被下载过,其图片就被缓存起来了。
UI布局:
线性布局:横向、纵向,通过layout_weight:1,layout_width:0 屏幕适配
重要属性:
android:orientation
android:layout_weight
android:layout_width
android:layout_height
android:gravity
相对布局:
控件在内部相对位置摆放
通过id设置位置
相关文章推荐
- 面试题10:二进制中1的个数(转载)P81
- Android面试总结2
- 黑马程序员——Java语言--集合框架
- 自己动手丰衣足食之完数_黑马程序员
- zjtd 2016面试
- 从程序员到CTO的Java技术路线图 (转自安卓巴士)
- Android面试题总结
- 这些幽默只有程序员才懂?
- 面试感悟——dmall
- Android 面试题目01
- 乱序不重复整数数组求中位数
- 搜狐面试心得
- 有人认为,“中文编程”, 是解决中国程序员编程效率一个秘密武器,请问它是一个 “银弹” 么?
- 有人认为,“中文编程”是解决中国程序员编程效率的秘密武器,请问它是一个“银弹”么?
- Hibernate面试题及答案
- P117、面试题18:树的子结构
- P114、面试题17:合并两个排序的链表
- 裸辞一个月的心路历程和面试心得
- Java程序员应该知道的10个调试技巧
- 成为专业程序员的 6 个技巧—兄弟连IT教育