补充:1--100正则表达式
1-100 100拿出去或上
“[1-9][0-9]{0,1}|100”
0--100 0和100拿出去或上
“[1-9][0-9]{0,1}|100|0”
获取常量池中的地址 String - intern();
String 学过23个
一.StringBuffer
StringBuffer 字符串长度+16 StringBuffer空间是 2*oldCapacity+2=扩容底层
查看容量 buffer.capacity
常用方法
1.append() 追加
StringBuffer buffer=new StringBuffer();
buffer.append(“.....”);//可字符串
buffer.append(‘’);//char 常用字符串或者char类型的单字符
2.reverse();
StringBuffer buffer=new StringBuffer(“welcome”);
buffer.reverse(); //emoclew 不需要接收
3.insert(1,2)
1位置从0开始的索引 插入2的内容
二.String------>StringBuffer
第一种:通过new的构造方法
StringBuffer buffer=new StringBuffer(“hello”);//方式1 容量 5+16
第二种:append()方法
StringBuffer buffer=new StringBuffer();
Buffer.append(“hello”);//方式2 容量16
三.StringBuffer---->String
1.String s=””+变量;
2.String s=String.valueOf(变量);
3.String s=变量.toString()
补充:基本数据类型转为String类型,引用数据类型也可以
1.String s=””+变量;
2.String s=String.valueOf(变量);
引用数据类型特有的
String s=变量.toString()
三.四种修饰符
修饰那些内容
访问权限修饰符 类 属性
Public √ √
Default √ √
Private x √
Protected x √
面试题:
A中public修饰的方法 B类可以访问吗?为什么
不一定
访问到A中public修饰的方法 前提是 能访问A类
注:一个类中的权限<=类的权限
四.static
static 修饰符 共享一份的概念
属性:【普通属性】【实例变量】 调用:对象.静态属性
static 静态属性静态属性 static 调用:对象.静态属性 类.静态属性 out
方法 静态方法 可以使用类名直接调用【对象调用也可以】
面试题:普通方法【实例方法】和静态方法谁的调用更简单?
静态方法更简单 直接拿着类名调用
面试题:为什么不将类中所有的方法变为静态方法?
静态方法只能访问静态的成员【属性\方法】无法直接访问普通的成员解决方案
:创建对象+ 【对象.调用】
否则需要将所有的属性方法static修饰为静态属性 不合理
如果是main方法的兄弟方法 必须加static?
main方法本身被static修饰 被static修饰的方法只能访问被static修饰的方法和属性
不能修饰局部变量或者创建对象+ 【对象.调用】
代码块:
*普通代码块{}为普通属性赋值的 每new一个对象 执行一次
*静态代码块 static{}为了给静态属性赋值 当类被加载的时候执行 自始至终执行一次 TestStatic9
一个面试题:三种调用的顺序 首先 静态代码块 普通代码块 构造方法
面试题:为什么static不能修饰局部变量?
局部变量依赖于方法调用,方法执行到创建局部变量哪一行才可以创建局部变量。而static修饰的内容【static{}】是类一加载就要被找到,时机不同,所以static不可以修饰局部变量
五.final修饰哪些内容
1.类
类 final修饰类->最终类
特点:最终类又称 “骡子类” 不能被继承
eg:java.lang.String/java.lang.System
2.方法:
final修饰的方法可以被继承得到,调用但是不能覆盖【重写】
static 属性 方法 代码块
final 类 方法 变量
3.变量:
final修饰的变量--》常量
特点: 栈中值不能改变,基本数据类型是数值不可以重新赋值,引用数据类型是地址值不可修改
六.abstract 修饰符
面试:abstract可以修饰哪些内容?
abstract可以修饰 类 方法
类:抽象类不形象不具体不可以创建对象
面试题:抽象类有构造方法吗?
有,只要是一个类 就有构造方法
面试题:抽象类不能造对象,抽象类的构造方法的作用是什么?
提供给子类构造方法首行super()使用
方法:抽象方法 父类不提供方法的实现 待留子类去实现【必须实现】
一旦一个类中有抽象方法 ,该类就要变成抽象类。为了防止调用抽象方法,所以给类加抽象类
注意:一旦父类创建了抽象方法,子类必须要重写,加上@Override
面试题:final和abstract 可以修饰同一个类吗?不可以
面试题:final和abstract 可以修饰同一个方法吗?
不可以,final修饰的方法不可以被子类方法覆盖,而abstract方法是为了让子类实现方法覆盖,两者冲突 不可以修饰同一个方法
设计模式之单例模式
实例-----对象
单例模式:【单一实例】
一个类只有一个对象
标签:11,String,静态,StringBuffer,static,修饰,方法 From: https://blog.csdn.net/Miserables_/article/details/1430550281.创建私有化构造方法【防止外界创建多个对象】
2.创建一个私有的 静态的属于本类类型的对象 防止外界直接获取赋值为空 静态的防止递归创建对象导致堆栈溢出
3.提供一个公共的 静态的 返回本类对象的方法
静态的:外界只能使用类名调用【外界不能造对象】