第七天(2018-07-16)
StringBuffer
做字符串拼接操作时StringBuffer 比string要快很多
StringBuilder比StringBuffer还要快
str.insert(); //插入
str.reverse(); //字符串反转
str.split(","); //字符串切割
String
str.toUpperCase(); //小写转换成大写
str.indexOf() //返回弄的没有什么东西能够阻挡
static
无法在构造器中使用static 修饰符
static方法中只能使用static属性,不能使用非静态属性
staitc也不能使用this
static 属性它是属于类的,创建对象也不会产生static 属性的拷贝
static 属性是唯一的与对象没有关系的
非静态方法它与对象相关,如果没有对象是无法使用此属性的
static修饰的方法中可以使用静态属性
游离块
静态游离块
类加载时执行,通常用于初始化静态变量
静态属性放在构造方法里进行初始化是没有意义的
static {
System.out.println("静态游离块");
}
以下面试题结果为(415623)
先有父再有子
/**
* 子类(面试题)
* @author tunny
*
*/
public class Sub extends Sup{
static {
System.out.println(1);
}
{
System.out.println(2);
}
public Sub() {
System.out.println(3);
}
public static void main(String[] args) {
Sub s = new Sub();
}
}
/**
* 父类
* @author tunny
*
*/
public class Sup {
static {
System.out.println(4);
}
{
System.out.println(5);
}
public Sup() {
System.out.println(6);
}
}
动态游离块
{
System.out.println("游离块");
}
动态游离块在构造器之前执行
//执行结果为 (游离块 构造器)
public class Test {
{
System.out.println("游离块");
}
public Test(){
System.out.println("构造器");
}
public static void main(String[] args) {
Test t = new Test();
}
}
单例模式
单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。
- 1、单例类只能有一个实例。
- 2、单例类必须自己创建自己的唯一实例。
3、单例类必须给所有其他对象提供这一实例。
/**- 懒汉式
- 单例模式:只能实例化一个对象
- @author tunny
*/
public class Person {public static Person p = null;
//构造器访问权限设置私有
private Person() {}
//得到此类的实例对象
public static Person getPerson() {
if(p == null) {
p = new Person();
}
return p;
}
}
- 饿汉式单例
- @author tunny
*/
public class Singleton {
private static Singleton instance = new Singleton();private Singleton() {
}
public static Singleton getSingleton() {
return instance;
}
}
推荐使用饿汉式的单例模式
final
final (最终的) 修饰的变量为常量:赋值后不会修改的量叫常量,而且在申明就必须初始化
/**
* final
* @author tunny
*
*/
public class Teacher {
public final int tid = 10;
public final String tname = "小李";
public final String sex;
public static final String email;
static {
email = "1432785491@qq.com";
}
public Teacher() {
sex = "男";
}
public Teacher(int i) {
sex = "女";
}
}
抽象类 abstract
工厂模式