最近面试的总结与准备

原创
2015/11/03 21:31
阅读数 37

static:

  1. 修饰变量,表示每次重新使用该变量所在方法、类或自定义类时,变量的值为程序这次运行最后一次为变量赋值时的值,这个方法称为静态函数
  2. 修饰方法,表示此方法为所在类或所在自定义类所有,而不是这个类的实例所有,这个方法称为静态方法
  3. 用于class 前,说明此类型无法新建实例,简单点说这个类型的方法全是静态方法,这个类里的非静态方法是不能使用的,这个类型称为静态类
  4. static{}称为static代码块 ,也叫静态代码块;是在类中独立于类成员的static语句块,可以有多个,位置可以随便放,它不在任何的方法体内,JVM加载类时会执行这些静态的代码块,如果static代码块有多个,JVM将按照它们在类中出现的先后顺序依次执行它们,每个代码块只会被执行一次利用静态代码块可以对一些static变量进行赋值
  5. 修饰常量,静态常量public static final String
  6. 单例模式: 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设置位置

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
0 收藏
0
分享
返回顶部
顶部