Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
wushizhenking
CS-Notes
提交
9de1537d
C
CS-Notes
项目概览
wushizhenking
/
CS-Notes
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
CS-Notes
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
9de1537d
编写于
3月 09, 2018
作者:
C
CyC2018
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
auto commit
上级
4cfba41a
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
55 addition
and
22 deletion
+55
-22
notes/Java 基础.md
notes/Java 基础.md
+55
-22
未找到文件。
notes/Java 基础.md
浏览文件 @
9de1537d
...
...
@@ -9,7 +9,7 @@
*
[
继承
](
#继承
)
*
[
1. 访问权限
](
#1-访问权限
)
*
[
2. 抽象类与接口的区别
](
#2-抽象类与接口的区别
)
*
[
3. super
()
](
#3-super
)
*
[
3. super
](
#3-super
)
*
[
String
](
#string
)
*
[
1. String, StringBuffer and StringBuilder
](
#1-string,-stringbuffer-and-stringbuilder
)
*
[
2. String 不可变的原因
](
#2-string-不可变的原因
)
...
...
@@ -114,23 +114,35 @@ public InitialOrderTest() {
## 1. 概览
-
public final native Class
<
?
>
getClass()
-
public native int hashCode()
-
public boolean equals(Object obj)
-
protected native Object clone() throws CloneNotSupportedException
-
public String toString()
-
public final native void notify()
-
public final native void notifyAll()
-
public final native void wait(long timeout) throws InterruptedException
-
public final void wait(long timeout, int nanos) throws InterruptedException
-
public final void wait() throws InterruptedException
-
protected void finalize() throws Throwable { }
```
java
public
final
native
Class
<?>
getClass
()
public
native
int
hashCode
()
public
boolean
equals
(
Object
obj
)
protected
native
Object
clone
()
throws
CloneNotSupportedException
public
String
toString
()
public
final
native
void
notify
()
public
final
native
void
notifyAll
()
public
final
native
void
wait
(
long
timeout
)
throws
InterruptedException
public
final
void
wait
(
long
timeout
,
int
nanos
)
throws
InterruptedException
public
final
void
wait
()
throws
InterruptedException
protected
void
finalize
()
throws
Throwable
{}
```
## 2. clone()
**浅拷贝**
引用类型引用
的是同一个对象,
clone() 方法默认就是浅拷贝实现。
引用类型引用
同一个对象。
clone() 方法默认就是浅拷贝实现。
<div
align=
"center"
>
<img
src=
"../pics//d990c0e7-64d1-4ba3-8356-111bc91e53c5.png"
/>
</div><br>
...
...
@@ -147,7 +159,7 @@ public InitialOrderTest() {
-
对于基本类型,== 就是判断两个值是否相等;
-
对于引用类型,== 是判断两个引用是否引用同一个对象,而 equals() 是判断引用的对象是否等价。
等价性:
[
散列
](
https://github.com/CyC2018/InterviewNotes
/blob/master/notes/Java%20%E5%AE%B9%E5%99%A8.md#%E6%95%A3%E5%88%97
)
等价性:
[
散列
](
https://github.com/CyC2018/Interview-Notebook
/blob/master/notes/Java%20%E5%AE%B9%E5%99%A8.md#%E6%95%A3%E5%88%97
)
# 继承
...
...
@@ -155,11 +167,11 @@ public InitialOrderTest() {
Java 中有三个访问权限修饰符:private、protected 以及 public,如果不加访问修饰符,表示包级可见。
可以对类或类中的成员(字段以及方法)加上访问修饰符。成员可见表示其它类可以用成员所在类的对象访问到该成员;类可见表示其它类可以用这个类创建对象
,可以把类当做包中的一个成员,然后包表示一个类,这样就好理解了
。
可以对类或类中的成员(字段以及方法)加上访问修饰符。成员可见表示其它类可以用成员所在类的对象访问到该成员;类可见表示其它类可以用这个类创建对象
。在理解类的可见性时,可以把类当做包中的一个成员,然后包表示一个类,那么就可以类比成员的可见性
。
protected 用于修饰成员,表示在继承体系中成员对于子类可见。但是这个访问修饰符对于类没有意义,因为包没有继承体系。
更详细的内容:
[
浅析 Java 中的访问权限控制
](
http://www.importnew.com/18097.html
)
更详细的内容:
[
浅析 Java 中的访问权限控制
](
http://www.importnew.com/18097.html
)
## 2. 抽象类与接口的区别
...
...
@@ -177,7 +189,7 @@ public abstract class GenericServlet implements Servlet, ServletConfig, Serializ
}
```
接口定义了一组方法,但是接口都没有方法的实现,
也就是说
这些方法都是抽象方法。
接口定义了一组方法,但是接口都没有方法的实现,
可以理解为
这些方法都是抽象方法。
```
java
public
interface
Externalizable
extends
Serializable
{
...
...
@@ -188,26 +200,47 @@ public interface Externalizable extends Serializable {
}
```
更详细的内容:
[
Java 抽象类与接口的区别
](
http://www.importnew.com/12399.html
)
更详细的内容:
[
Java 抽象类与接口的区别
](
http://www.importnew.com/12399.html
)
## 3. super
()
## 3. super
用来访问父类的构造函数父类的方法,第二种情况中,子类需要重载父类的方法。
**访问父类的成员**
如果子类覆盖了父类的中某个方法的实现,那么就可以通过使用 super 关键字来引用父类的方法实现。
```
java
public
class
Superclass
{
public
void
printMethod
()
{
System
.
out
.
println
(
"Printed in Superclass."
);
}
}
```
```
java
public
class
Subclass
extends
Superclass
{
//
o
verrides printMethod in Superclass
//
O
verrides printMethod in Superclass
public
void
printMethod
()
{
super
.
printMethod
();
System
.
out
.
println
(
"Printed in Subclass"
);
}
public
static
void
main
(
String
[]
args
)
{
Subclass
s
=
new
Subclass
();
s
.
printMethod
();
s
.
printMethod
();
}
}
```
**访问父类的构造函数**
可以使用 super() 函数访问父类的构造函数,从而完成一些初始化的工作。
```
java
public
MountainBike
(
int
startHeight
,
int
startCadence
,
int
startSpeed
,
int
startGear
)
{
super
(
startCadence
,
startSpeed
,
startGear
);
seatHeight
=
startHeight
;
}
```
> [Using the Keyword super](https://docs.oracle.com/javase/tutorial/java/IandI/super.html)
# String
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录