标签:返回值 art 可变 reg 地址 ace first 向上转型 替换
字符串的方法
字符串实例化的两种方法
-直接赋值:会在堆内存中开辟一块空间,并且自动入池
-构造方法:会在堆内存中开辟两块内存空间,不会自动入池,要实现入池,要使用intern()
替换满足条件的字符串内容
·public String replaceAll(String regex,String replacement)替换所有满足条件的字符串
·public String replaceFirst(String regex,String repalcement) 替换满足所有条件的第一个字符串
截取字符串的内容
·public String substring(int beginIndex)截取从指定索引开始以后的所有内容
·public String substring(int beginIndex,int endIndex)截取指定开始索引到结束索引的内容
字符串的拆分
·public String[] split(String regex)根据指定的字符拆分成字符串数组
·public String[] split(String regex,int limit)根据指定的字符标记拆分,拆成指定大小的数组
部分拆分
对于一些敏感字符的拆分要使用转义之后才能拆分,如:"\\|"、"\\."
将字母大小进行转换
·public String toLowerCase()将大写字母变成小写
·public String toUpperCase()将小写字母变成大写
·public String trim()取消字符两端的空格,中间的空格不会被取消
String对象不能频繁的被改变,会产生大量的垃圾。匿名对象有堆内存,没有栈内存。
在字符串作比较的时候将匿名对象放到前面可以避免空指针异常
引用数据的传递
一块堆内存空间可以被多块栈内存地址指向
一块栈内存只能指向一块堆内存空间
StringBuffer的方法
-构造方法:
·public StringBuffer (String str)
-实现字符串的追加
·public StringBuffer append(String str)
-实现字符串的反转
·public StringBuffer reverse(String str)
-在指定位置增加数据
·public StringBuffer insert(int offset,String str)
-删除部分数据
·public StringBuffer delete(int start,int end)
String申明之后内容不可变,StringBuffer考虑了线程安全,而StringBuilder没有考虑线程线程安全
在字符串修改频率高的时候使用StringBuffer(内存溢出问题)
接口
如果一个类中只有全局常量和抽象方法,但是没有构造方法,那么这个类就是接口,在接口中可以定义静态方法,但是没有意义
·实例变量:在类中声明但是没有使用static修饰的常量
·静态变量:(类变量)在类中声明但是使用了static修饰的常量
·局部变量:在方法中声明的变量,一旦方法被执行完就会被销毁
·全局常量:在类中声明,并且使用static和final修饰的变量
接口要有意义就必须被子类实现,要使用interface关键字,如果子类不是抽象类,那么要实现接口中的所有抽象方法
接口解决了单继承的局限性可以多实现,接口之间也可以使用继承关键字extends,接口也可以实现向上转型
继承
继承解决了代码的重复问题,在实例化子类的时候会默认调用父类的构造方法,如果定义了有参的构造方法那么无参的就不存在了
父类封装的属性可以被子类继承,这样的继承被称为隐式继承。
覆写与重载
覆写(override)表示方法的重写
-方法名,参数列表,返回类型相同
-发生在继承关系中
-子类不能拥有比父类更严格的访问权限
重载(overload)表示方法的重载
-方法名相同,参数列表不同
-对返回值没有要求,但是再开发中返回值要求保持一致
-对访问权限没有要求,但是在开发中要求保持一致
方法的递归
-方法的递归就是方法自己调用自己
多态
多态实现了类参数的统一,要实现多态就必须以继承或者实现为基础,那么多态的表现形式有两种:
-方法的多态:重载,重写
-对象的多态:向上转型,向下转型
·向上转型:父类 变量=子类实例化对象
·向下转型:子类 变量=(强转)父类对象【先必须实现向上转型】
多态机制的原理:可以使用父类或者接口的引用变量指向具体子类的实例化对象,在程序调用方法时是在运行时动态绑定的,所绑定的方法是具体子类或者实例对象中的方法,而不是引用类型中的方法
向下转型存在类型转换错误的风险,用instanceof关键字来判断一个类是否是它的子类,如 person instanceof Student
抽象类
抽象类有自己的构造方法,但是不能实现不能直接实例化对象,如果子类不是抽象类,那么子类必须覆写抽象类的所有方法
抽象类可以没有抽象方法,但是有抽象方法的一定是抽象类或者接口,在开发中抽象类可以设计成模版模式
静态属性
static定义的属性就是静态属性,静态属性不依赖实例化对象的存在,可以使用类名.属性名调用。静态方法中不能访问
非静态属性、非静态方法,静态方法中不能使用this关键字,非静态方法可以访问静态方法。
标签:返回值 art 可变 reg 地址 ace first 向上转型 替换
原文地址:https://www.cnblogs.com/skynomonarch/p/8973609.html