Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
清新范er
JavaGuide
提交
95d5c0f2
J
JavaGuide
项目概览
清新范er
/
JavaGuide
与 Fork 源项目一致
从无法访问的项目Fork
通知
4
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
J
JavaGuide
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
95d5c0f2
编写于
5月 23, 2020
作者:
S
shuang.kou
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Update Java基础知识.md
上级
7c126759
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
64 addition
and
10 deletion
+64
-10
docs/java/Java基础知识.md
docs/java/Java基础知识.md
+64
-10
未找到文件。
docs/java/Java基础知识.md
浏览文件 @
95d5c0f2
...
...
@@ -21,6 +21,7 @@
-
[
1.2.4. 自增自减运算符
](
#124-自增自减运算符
)
-
[
1.2.5. Java中的几种基本数据类型是什么,对应的,各自占用多少字节呢?
](
#125-java中的几种基本数据类型是什么对应的各自占用多少字节呢
)
-
[
1.2.6. 自动装箱与拆箱
](
#126-自动装箱与拆箱
)
-
[
1.2.7. continue、break、和return的区别是什么?
](
#127-continuebreak和return的区别是什么
)
-
[
1.3. 方法(函数)
](
#13-方法函数
)
-
[
1.3.1. 什么是方法的返回值?返回值在类的方法里的作用是什么?
](
#131-什么是方法的返回值返回值在类的方法里的作用是什么
)
-
[
1.3.2. 为什么 Java 中只有值传递?
](
#132-为什么-java-中只有值传递
)
...
...
@@ -65,8 +66,9 @@
-
[
3.1.1. Collections 工具类和 Arrays 工具类常见方法总结
](
#311-collections-工具类和-arrays-工具类常见方法总结
)
-
[
3.2. 异常
](
#32-异常
)
-
[
3.2.1. Java 异常类层次结构图
](
#321-java-异常类层次结构图
)
-
[
3.2.1.1. Throwable 类常用方法
](
#3211-throwable-类常用方法
)
-
[
3.2.1.2. 异常处理总结
](
#3212-异常处理总结
)
-
[
3.2.2. Throwable 类常用方法
](
#322-throwable-类常用方法
)
-
[
3.2.3. try-catch-finally
](
#323-try-catch-finally
)
-
[
3.2.4.使用 `try-with-resources` 来代替`try-catch-finally`
](
#324使用-try-with-resources-来代替try-catch-finally
)
-
[
3.3. 多线程
](
#33-多线程
)
-
[
3.3.1. 简述线程、程序、进程的基本概念。以及他们之间关系是什么?
](
#331-简述线程程序进程的基本概念以及他们之间关系是什么
)
-
[
3.3.2. 线程有哪些基本状态?
](
#332-线程有哪些基本状态
)
...
...
@@ -265,6 +267,18 @@ Java**中**有8种基本数据类型,分别为:
更多内容见:
[
深入剖析 Java 中的装箱和拆箱
](
https://www.cnblogs.com/dolphin0520/p/3780005.html
)
#### 1.2.7. continue、break、和return的区别是什么?
在循环结构中,当循环条件不满足或者循环次数达到要求时,循环会正常结束。但是,有时候可能需要在循环的过程中,当发生了某种条件之后 ,提前终止循环,这就需要用到下面几个关键词:
1.
continue :指跳出当前的这一次循环,继续下一次循环。
2.
break :指跳出整个循环体,继续执行循环下面的语句。
return 用于跳出所在方法,结束该方法的运行。return 一般有两种用法:
1.
`return;`
:直接使用 return 结束方法执行,用于没有返回值函数的方法
2.
`return value;`
:return 一个特定值,用于有返回值函数的方法
### 1.3. 方法(函数)
#### 1.3.1. 什么是方法的返回值?返回值在类的方法里的作用是什么?
...
...
@@ -708,19 +722,18 @@ String s = input.readLine();
**注意:异常和错误的区别:异常能被程序本身处理,错误是无法处理。**
####
# 3.2.1.1
. Throwable 类常用方法
####
3.2.2
. Throwable 类常用方法
-
**
public string getMessage()
**
:返回异常发生时的简要描述
-
**
public string toString()
**
:返回异常发生时的详细信息
-
**
public string getLocalizedMessage()**
:返回异常对象的本地化信息。使用 Throwable 的子类覆盖这个方法,可以生成本地化信息。如果子类没有覆盖该方法,则该方法返回的信息与 getMessage()
返回的结果相同
-
**
public void printStackTrace()**
:在控制台上打印 Throwable
对象封装的异常信息
-
**
`public string getMessage()`
**
:返回异常发生时的简要描述
-
**
`public string toString()`
**
:返回异常发生时的详细信息
-
**
`public string getLocalizedMessage()`**
:返回异常对象的本地化信息。使用
`Throwable`
的子类覆盖这个方法,可以生成本地化信息。如果子类没有覆盖该方法,则该方法返回的信息与
`getMessage()`
返回的结果相同
-
**
`public void printStackTrace()`**
:在控制台上打印
`Throwable`
对象封装的异常信息
####
# 3.2.1.2. 异常处理总结
####
3.2.3. try-catch-finally
-
**try 块:**
用于捕获异常。其后可接零个或多个 catch 块,如果没有 catch 块,则必须跟一个 finally 块。
-
**catch 块:**
用于处理 try 捕获到的异常。
-
**finally 块:**
无论是否捕获或处理异常,finally 块里的语句都会被执行。当在 try 块或 catch 块中遇到 return
语句时,finally 语句块将在方法返回之前被执行。
-
**finally 块:**
无论是否捕获或处理异常,finally 块里的语句都会被执行。当在 try 块或 catch 块中遇到 return 语句时,finally 语句块将在方法返回之前被执行。
**在以下 4 种特殊情况下,finally 块不会被执行:**
...
...
@@ -749,6 +762,47 @@ public class Test {
如果调用
`f(2)`
,返回值将是 0,因为 finally 语句的返回值覆盖了 try 语句块的返回值。
#### 3.2.4.使用 `try-with-resources` 来代替`try-catch-finally`
《Effecitve Java》中明确指出:
> 面对必须要关闭的资源,我们总是应该优先使用try-with-resources而不是`try-finally`。随之产生的代码更简短,更清晰,产生的异常对我们也更有用。`try-with-resources`语句让我们更容易编写必须要关闭的资源的代码,若采用`try-finally`则几乎做不到这点。
Java 中类似于
`InputStream`
、
`OutputStream`
、
`Scanner`
、
`PrintWriter`
等的资源都需要我们调用
`close()`
方法来手动关闭,一般情况下我们都是通过
`try-catch-finally`
语句来实现这个需求,如下:
```
java
//读取文本文件的内容
Scanner
scanner
=
null
;
try
{
scanner
=
new
Scanner
(
new
File
(
"D://read.txt"
));
while
(
scanner
.
hasNext
())
{
System
.
out
.
println
(
scanner
.
nextLine
());
}
}
catch
(
FileNotFoundException
e
)
{
e
.
printStackTrace
();
}
finally
{
if
(
scanner
!=
null
)
{
scanner
.
close
();
}
}
```
使用Java 7之后的
`try-with-resources`
语句改造上面的代码:
```
java
try
(
Scanner
scanner
=
new
Scanner
(
new
File
(
"test.txt"
)))
{
while
(
scanner
.
hasNext
())
{
System
.
out
.
println
(
scanner
.
nextLine
());
}
}
catch
(
FileNotFoundException
fnfe
)
{
fnfe
.
printStackTrace
();
}
```
当然多个资源需要关闭的时候,使用
`try-with-resources`
实现起来也非常简单,如果你还是用
`try-catch-finally`
可能会带来很多问题。
通过使用分号分隔,可以在
`try-with-resources`
块中声明多个资源:
### 3.3. 多线程
#### 3.3.1. 简述线程、程序、进程的基本概念。以及他们之间关系是什么?
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录