您的位置:首页 > 职场人生

黑马程序员—易混淆的知识

2015-07-04 09:04 323 查看
 ------- android培训、java培训、期待与您交流! ----------

String和StringBuffer类区别
1.String 是定长的
例如:String s1="abc";s1="egf";
StringBuffer类:是变成字符串,因为它具有(buffer)缓冲区:StringBuffer类表示的字符串,其内容与长度随时动态可变,
可直接对串自身进行插入、删除、修改、替换等操作,且操作结果影响串对象本身。
二、创建StringBuffer类型字符串的方法
1.用构造方法,不能用类似StringBuffer s1="abc";这种方法。
a.StringBuffer(): 构造一个其中不带字符的字符串缓冲区,其初始容量为 16 个字符。
b.StringBuffer(String str) 构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容。初始容量大小为字符串长度+16
c.StringBuffer(int capacity)构造一个不带字符,但具有指定初始容量的字符串缓冲区
2.常用的方法
(1)append()系列:将参数中的字符串表示形式追加到序列中去。
(2)setLength(): 设置字符序列的长度,如果 newLength 参数大于或等于当前长度,则将追加有效的 null 字符
(3)insert()系列: 将参数中的字符串表示形式插入序列中其中:offset指欲插入字符的起始位置
(4)delete(int start, int end) 移除此序列的子字符串中的字符。
(5)reverse() 将此字符序列用其反转形式取代。
3.类的容量和字符长度
(1)capacity() 返回当前容量。
(2)length() 返回长度(字符数)。
(3)ensureCapacity:确保容量至少等于指定的最小值,后期动态调整容量

抽象和接口

相似部分:
1.对于方法抽象方法只有方法声明没有方法实现
2.都不能创建实例
不同之处
1.对于成员变量:接口中的都是public static fanal (静态常量)型,
但是抽象类并没有规定。
2.接口里只有抽象方法,但是抽象类中可以定义普通方法并且
普通方法有具体实现
3.接口里成员是public的,不能定义成其它封装类型(如:private,protected),
但是抽象类中可以使用一般类的封装类型
4.接口里没有构造方法,但是抽象类中有
5.在接口中不包含super,this,但是抽象类中可以用super,this

==和equals

怎么判断两个对象相等
1.==:
(1)对于对象来说,如果用两个对象变量去做判断,只能说明两
个对象变量是不是指向同一块内存区。
(2)注意null:表示空引用
2.equals:指示其他某个对象是否与此对象“相等”。
(1)在object继承过来的方法比较仍然是是不是指向同一块内存区
public boolean equals(Object obj) {
return (this == obj);
}
(2)一般情况下根据需要在子类中进行改写
3.instanceof:运算符,左方是一个对象变量,右方是类型
判断左方是否是右方类型的实例或其子类实例,如是返回true,否则false
应用前提:左方代表的对象所属的类型和右方的类型存在继承关系

字符和字符串

(1)字符值:定义字符类型关键字:char类型 常量是:用''括起来如: ‘a’,‘b’,'\\'
(2)字符串:值用双引号括起来的值: "abc","cdef","ab\n"(表示:ab回车),"ab\\":(表示ab\),"中国"

重载和覆盖

方法重载:在类中方法名相同,参数不同

方法覆盖:子类和父类存在相同的方法名、参数列表、返回类型,在使用子类方法时即覆盖了父类的方法

向上转型和向下转型

向上转型:是指子类的对象变量或对象赋值给父类的引用,即子类的对象可以当做父类的对象使用

向下转型:就是把父类变量指向的对象强制转换为子类型的对象

throw和throws

throws关键词:仅说明方法可能会出现哪些异常,方法内部没有出来
throws:在方法的后边加上throws后,形如:
方法()throws 异常类1,异常类2
指的是:该方法以后可能会抛出异常类1,异常类2这些类异常
throw:自动抛出异常
如:throw new ArithmeticException();程序与手动抛出ArithmeticException类型的异常

throws:说明方法可能会抛出的异常
throw:抛出异常

throws和throw的区别:
throws是放在方法后用来说明将来方法可能会抛出的异常(系统的或自定义的)
throw:在方法中用来抛出异常的,此时需要new 一个异常对象,把异常信息封装

super和this的异同:

1)super(参数):调用基类中的某一个构造函数(应该为构造函数中的第一条语句)

2)this(参数):调用本类中另一种形成的构造函数(应该为构造函数中的第一条语句)

3)super: 它引用当前对象的直接父类中的成员(用来访问直接父类中被隐藏的父类中成员数据或函数,基类与派生类中有相同成员定义时如:super.变量名 super.成员函数据名(实参)

4)this:它代表当前对象名(在程序中易产生二义性之处,应使用this来指明当前对象;如果函数的形参与类中的成员数据同名,这时需用this来指明成员变量名)

5)调用super()必须写在子类构造方法的第一行,否则编译不通过。每个子类构造方法的第一条语句,都是隐含地调用super(),如果父类没有这种形式的构造函数,那么在编译的时候就会报错。

   6)super()和this()类似,区别是,super()从子类中调用父类的构造方法,this()在同一类内调用其它方法。

   7)super()和this()均需放在构造方法内第一行。

   8)尽管可以用this调用一个构造器,但却不能调用两个。

   9)this和super不能同时出现在一个构造函数里面,因为this必然会调用其它的构造函数,其它的构造函数必然也会有super语句的存在,所以在同一个构造函数里面有相同的语句,就失去了语句的意义,编译器也不会通过。

   10)this()和super()都指的是对象,所以,均不可以在static环境中使用。包括:static变量,static方法,static语句块。

   11)从本质上讲,this是一个指向本对象的指针, 然而super是一个Java关键字。

continue和break
break:结束循环或switch语句
continue:通常表示结束本次循环

区别:break结束整个循环。continue结束本次循环,循环体语句中continue后边语句本次就不再执行,流程进行下次循环
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: