Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
jtn-zh
提交
025a17bf
J
jtn-zh
项目概览
OpenDocCN
/
jtn-zh
通知
0
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
J
jtn-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
025a17bf
编写于
11月 26, 2019
作者:
W
wizardforcel
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
2019-11-26 11:45:44
上级
bf5f0c6c
变更
12
隐藏空白更改
内联
并排
Showing
12 changed file
with
35 addition
and
35 deletion
+35
-35
docs/12.md
docs/12.md
+13
-13
docs/13.md
docs/13.md
+8
-8
docs/14.md
docs/14.md
+2
-2
docs/15.md
docs/15.md
+3
-3
docs/160.md
docs/160.md
+1
-1
docs/162.md
docs/162.md
+1
-1
docs/166.md
docs/166.md
+1
-1
docs/3.md
docs/3.md
+2
-2
docs/30.md
docs/30.md
+1
-1
docs/33.md
docs/33.md
+1
-1
docs/47.md
docs/47.md
+1
-1
docs/8.md
docs/8.md
+1
-1
未找到文件。
docs/12.md
浏览文件 @
025a17bf
...
...
@@ -27,17 +27,17 @@ public class Car {
}
```
看上面的代码。 汽车对象状态(当前速度和名称)存储在字段中,并通过方法显示对象的行为(加速和停车)。 在此示例中,方法是
accelerator(),park()和 printCurrentSpeed()
。
看上面的代码。 汽车对象状态(当前速度和名称)存储在字段中,并通过方法显示对象的行为(加速和停车)。 在此示例中,方法是
`accelerator()`
,
`park()`
和
`printCurrentSpeed()`
。
让我们在这些方法中实现一些功能。
1
.
每次调用加速方法时,我们将每小时增加 10 英里的当前速度。
1
\.
每次调用加速方法时,我们将每小时增加 10 英里的当前速度。
2
.
调用驻车方法会将当前速度设置为零
2
\.
调用驻车方法会将当前速度设置为零
3
\.
printCurrentSpeed
方法将显示汽车的速度。
3
\.
`printCurrentSpeed`
方法将显示汽车的速度。
为了实现这三个要求,我们将创建一个名为
Car 的类并将文件存储为 Car.java
。
为了实现这三个要求,我们将创建一个名为
`Car`
的类并将文件存储为
`Car.java`
。
```
java
public
class
Car
{
...
...
@@ -68,7 +68,7 @@ public class Car {
## 类名
创建 Java 类时,必须遵循以下规则:
**文件名和该类的名称必须
等于**
。 在我们的示例中– Car 类必须存储在名为
`Car.java`
的文件中。 Java 也是区分大小写的:用大写 C 编写的汽车与用小写 c
编写的汽车不同。
创建 Java 类时,必须遵循以下规则:
**文件名和该类的名称必须
相同**
。 在我们的示例中 –
`Car`
类必须存储在名为
`Car.java`
的文件中。 Java 也是区分大小写的:用大写
`C`
编写的汽车与用小写
`c`
编写的汽车不同。
## Java 类构造函数
...
...
@@ -80,7 +80,7 @@ public Car(String name) {
}
```
构造函数必须与类本身具有相同的名称。 它们可以带或不带参数。 此示例中的参数为“名称”。 我们使用如下构造函数创建一个新的
car
对象(我将在本教程的后面部分对此进行详细说明):
构造函数必须与类本身具有相同的名称。 它们可以带或不带参数。 此示例中的参数为“名称”。 我们使用如下构造函数创建一个新的
`car`
对象(我将在本教程的后面部分对此进行详细说明):
```
java
Car
audi
=
new
Car
(
"Audi"
);
...
...
@@ -88,11 +88,11 @@ Car audi = new Car("Audi");
## Java 注释
您是否注意到第 11、16 和 21 行前面的
//
标记? 这就是我们用 Java 编写注释的方式。 执行程序时,标记为注释的行将被忽略。 您可以编写注释以进一步解释代码中发生的事情。 撰写评论是一种好习惯,它将帮助其他人理解您的代码。 稍后再返回代码时,它也将为您提供帮助。
您是否注意到第 11、16 和 21 行前面的
`//`
标记? 这就是我们用 Java 编写注释的方式。 执行程序时,标记为注释的行将被忽略。 您可以编写注释以进一步解释代码中发生的事情。 撰写评论是一种好习惯,它将帮助其他人理解您的代码。 稍后再返回代码时,它也将为您提供帮助。
## 创建对象
现在让我们继续我们的汽车示例。 我们将创建第二个名为
CarTest 的类,并将其存储到名为 CarTest.java
的文件中
现在让我们继续我们的汽车示例。 我们将创建第二个名为
`CarTest`
的类,并将其存储到名为
`CarTest.java`
的文件中
```
java
public
class
CarTest
{
...
...
@@ -128,9 +128,9 @@ public class CarTest {
}
```
在上面的代码中,我们首先创建 2 个类型为
Car 的新对象– Audi 和 Nissan。 这是 Car 类的两个单独实例(两个不同的对象),当我们调用 Audi 对象的方法时,这不会影响 Nissan
对象。
在上面的代码中,我们首先创建 2 个类型为
`Car`
的新对象 –
`Audi`
和
`Nissan`
。 这是
`Car`
类的两个单独实例(两个不同的对象),当我们调用
`Audi`
对象的方法时,这不会影响
`Nissan`
对象。
执行
CarTest
的结果将如下所示:
执行
`CarTest`
的结果将如下所示:
```
java
The
current
speed
of
Audi
is
0
mpH
...
...
@@ -139,6 +139,6 @@ The current speed of Nissan is 10 mpH
The
current
speed
of
Audi
is
0
mpH
```
我鼓励您尝试使用该代码。 尝试向
Car
类添加新方法或编写新类。
我鼓励您尝试使用该代码。 尝试向
`Car`
类添加新方法或编写新类。
在我们的下一个教程中,您将了解有关面向对象编程的
[
概念的更多信息。
](
https://javatutorial.net/java-oop
)
\ No newline at end of file
在我们的下一个教程中,您将了解有关面向对象编程的
[
概念的更多信息
](
https://javatutorial.net/java-oop
)
。
\ No newline at end of file
docs/13.md
浏览文件 @
025a17bf
...
...
@@ -4,21 +4,21 @@
遵循本教程可了解面向对象编程的原理,并编写可重用和简洁的代码
本文旨在解释有关 OOP 的原理和概念,以及在讨论 OOP 时您需要了解的 4 个主要术语:封装,继承,抽象和多态。 尽管这些原则对于每种面向对象的编程语言(例如 Java,Python,C
++,Ruby 等)都具有完全的威力,但我将提供 Java 中的示例。 为什么? 因为首先是 Java 教程网站,其次 Java 是面向对象的,所以 Java 中的所有东西都是对象。 等待! 您可能不会说诸如
`int`
,
`double`
,
`long`
等原始类型。 是的,是的,但是即使基本类型也具有 Java 中的 Object 表示形式。
`int`
是
`Integer`
,
`double`
是
`Double`
,依此类推。
本文旨在解释有关 OOP 的原理和概念,以及在讨论 OOP 时您需要了解的 4 个主要术语:封装,继承,抽象和多态。 尽管这些原则对于每种面向对象的编程语言(例如 Java,Python,C++,Ruby 等)都具有完全的威力,但我将提供 Java 中的示例。 为什么? 因为首先是 Java 教程网站,其次 Java 是面向对象的,所以 Java 中的所有东西都是对象。 等待! 您可能不会说诸如
`int`
,
`double`
,
`long`
等原始类型。 是的,是的,但是即使基本类型也具有 Java 中的 Object 表示形式。
`int`
是
`Integer`
,
`double`
是
`Double`
,依此类推。
也准备在下次 Java 求职面试中遇到面向对象的问题。 它们是如此普遍,以至于几乎有 100% 的机会会询问您有关一项或多项 OOP 原则的信息。
## 什么是面向对象
[
Wikipedia 将 OOP
](
https://en.wikipedia.org/wiki/Object-oriented_programming
)
定义为:
“基于对象的概念的编程示例,其中可能包含字段形式的字段,通常称为 _ 属性;_ 和程序形式的代码,通常称为 _ 方法。”_
[
Wikipedia 将 OOP
](
https://en.wikipedia.org/wiki/Object-oriented_programming
)
定义为:
基于对象的概念的编程示例,其中可能包含字段形式的字段,通常称为属性;和程序形式的代码,通常称为方法。
面向对象编程(OOP)是一种编程语言模型,它使用
[
对象
](
https://javatutorial.net/java-objects-and-classes-tutorial
)
和数据作为核心组件。 如果您想了解更多细节并更好地理解类和对象,请参阅本主题的详细教程。 单击此处的
[
首先阅读它
。
](
https://javatutorial.net/java-objects-and-classes-tutorial
)
面向对象编程(OOP)是一种编程语言模型,它使用
[
对象
](
https://javatutorial.net/java-objects-and-classes-tutorial
)
和数据作为核心组件。 如果您想了解更多细节并更好地理解类和对象,请参阅本主题的详细教程。 单击此处的
[
首先阅读它
](
https://javatutorial.net/java-objects-and-classes-tutorial
)
。
![](
img/d01cef15a8ac979eee8097725dd7b9c9.jpg
)
OOP 背后的主要思想是用对象而不是动作或
功能来表示数据和逻辑。 可以将对象视为现实生活中的对象,例如汽车,建筑物,动物,苹果等。还有诸如 HttpConnection 或 UserDataParser
之类的抽象对象(我们看不到或不能吃的东西)。 所有这些都具有可操纵和访问存储在其中的数据的属性和方法。 最终,我们可以将所有内容“转换”为对象。
OOP 背后的主要思想是用对象而不是动作或
函数来表示数据和逻辑。 可以将对象视为现实生活中的对象,例如汽车,建筑物,动物,苹果等。还有诸如
`HttpConnection`
或
`UserDataParser`
之类的抽象对象(我们看不到或不能吃的东西)。 所有这些都具有可操纵和访问存储在其中的数据的属性和方法。 最终,我们可以将所有内容“转换”为对象。
那么,总体上拥有所有这些对象和 OOP 有什么大不了的呢? 嗯,没有人能阻止您在一个具有数百个
功能
的大文件中编写 Java 程序(当然,除了团队负责人或老板),但是一旦遵循了面向对象编程的原理,您将产生可重用,可维护,可扩展和可重用的代码。 干净的代码。
那么,总体上拥有所有这些对象和 OOP 有什么大不了的呢? 嗯,没有人能阻止您在一个具有数百个
函数
的大文件中编写 Java 程序(当然,除了团队负责人或老板),但是一旦遵循了面向对象编程的原理,您将产生可重用,可维护,可扩展和可重用的代码。 干净的代码。
这是
**4 个主要的 Java OOP 原则**
:
...
...
@@ -28,12 +28,12 @@ OOP 背后的主要思想是用对象而不是动作或功能来表示数据和
## 继承
继承是一种 OOP
功能
,它允许 Java 类从其他类派生。 阅读完整的
[
Java 继承示例
](
https://javatutorial.net/java-inheritance-example
)
了解更多详细信息。
继承是一种 OOP
特性
,它允许 Java 类从其他类派生。 阅读完整的
[
Java 继承示例
](
https://javatutorial.net/java-inheritance-example
)
了解更多详细信息。
## 抽象
抽象是向用户隐藏实现细节的过程。
Оnly 功能
将提供给用户。 阅读完整的
[
Java 抽象示例
](
https://javatutorial.net/java-abstraction-example
)
了解更多详细信息。
抽象是向用户隐藏实现细节的过程。
只有函数
将提供给用户。 阅读完整的
[
Java 抽象示例
](
https://javatutorial.net/java-abstraction-example
)
了解更多详细信息。
## 多态
Java 中的多态允许类的子类定义其自己的独特行为,而又共享父类的某些相同功能。 阅读完整的
[
Java 多态示例
](
https://javatutorial.net/java-polymorphism-example
)
,了解更多详细信息。
\ No newline at end of file
Java 中的多态允许类的子类定义其自己的独特行为,而又共享父类的某些相同函数。 阅读完整的
[
Java 多态示例
](
https://javatutorial.net/java-polymorphism-example
)
,了解更多详细信息。
\ No newline at end of file
docs/14.md
浏览文件 @
025a17bf
...
...
@@ -21,7 +21,7 @@
Java 封装示例
下面的示例演示 Java 中的封装。
`Car`
类具有两个字段
-
`name`
和
`topSpeed`
。 两者都声明为私有,这意味着它们不能在类外部直接访问。 吸气和设置方法:
`getName`
,
`setName`
和
`setTopSpeed`
等已声明为公开。 这些方法对“外部人员”开放,可用于更改和从
`Car`
对象检索数据。 请注意,我们有一种方法可以设置车辆的最高速度,而有两种吸气方法可以以 MPH 或 KMH 检索最大速度值。 这就是封装的作用–它隐藏了实现并为我们提供了所需的值
下面的示例演示 Java 中的封装。
`Car`
类具有两个字段
-
`name`
和
`topSpeed`
。 两者都声明为私有,这意味着它们不能在类外部直接访问。 吸气和设置方法:
`getName`
,
`setName`
和
`setTopSpeed`
等已声明为公开。 这些方法对“外部人员”开放,可用于更改和从
`Car`
对象检索数据。 请注意,我们有一种方法可以设置车辆的最高速度,而有两种吸气方法可以以 MPH 或 KMH 检索最大速度值。 这就是封装的作用–它隐藏了实现并为我们提供了所需的值
```
java
package
net.javatutorial
;
...
...
@@ -57,7 +57,7 @@ public class Car {
```
主程序使用给定名称创建
`Car`
对象,并使用 setter 方法存储此实例的最高速度。 现在,我们可以轻松获得 MPH 或 KMH 中的速度,而无需关心
Car
类中的速度转换方式。
主程序使用给定名称创建
`Car`
对象,并使用 setter 方法存储此实例的最高速度。 现在,我们可以轻松获得 MPH 或 KMH 中的速度,而无需关心
`Car`
类中的速度转换方式。
```
java
package
net.javatutorial
;
...
...
docs/15.md
浏览文件 @
025a17bf
...
...
@@ -39,7 +39,7 @@ public class SamsungWashingMachine implements WashingMachine {
}
```
我们在类声明中使用
`implements`
关键字。 我们需要实现
startButtonPressed
方法(为它提供一些功能),否则我们的类将无法编译。
我们在类声明中使用
`implements`
关键字。 我们需要实现
`startButtonPressed`
方法(为它提供一些功能),否则我们的类将无法编译。
请注意,您可以在一类中实现多个接口。 您只需要在类声明中用逗号分隔接口名称,如下所示:
...
...
@@ -185,13 +185,13 @@ Yummy! you eat some raspberry
在
`WoodsSurvival`
类中,我们首先创建一个
`FoundObject`
类型的数组。 我们稍后创建的三个对象的类型也都是
`FoundObject`
,因此我们可以将它们放在同一数组中。 关注本文,以了解有关
[
Java 数组
](
https://javatutorial.net/java-array
)
的更多信息。
迭代数组时,我们检查当前对象是否为
`Eatable`
类型。 我们在
`instanceof
`
keyford 的帮助下进行此操作。 如果两个对象属于同一类型,则
`instanceof`
返回 true
。 在我们的案例中,使用
`instanceof Eatable`
进行检查时,苹果和树莓将返回 true,因为两者均实现了
`Eatable`
接口。 为了能够执行
`eat()`
方法,我们需要首先将对象显式类型转换为
`Eatable`
。 我们使用以下代码行实现此目的:
迭代数组时,我们检查当前对象是否为
`Eatable`
类型。 我们在
`instanceof
keyford`
的帮助下进行此操作。 如果两个对象属于同一类型,则
`instanceof`
返回
`true`
。 在我们的案例中,使用
`instanceof Eatable`
进行检查时,苹果和树莓将返回 true,因为两者均实现了
`Eatable`
接口。 为了能够执行
`eat()`
方法,我们需要首先将对象显式类型转换为
`Eatable`
。 我们使用以下代码行实现此目的:
```
java
((
Eatable
)
currentObject
).
eat
();
```
我们无法执行石头对象的
eat
方法,因为它不是
`Eatable`
类型。
我们无法执行石头对象的
`eat`
方法,因为它不是
`Eatable`
类型。
## 结论
...
...
docs/160.md
浏览文件 @
025a17bf
...
...
@@ -13,7 +13,7 @@
以下是 Android Studio 的一些有趣功能:
*
它提供了一个基于 Gradle 的灵活构建系统。
*
它还支持 C
++和 NDK
*
它还支持 C++和 NDK
*
在不构建新 APK 的情况下运行您的应用。
*
提供虚拟设备来运行和测试您的应用
...
...
docs/162.md
浏览文件 @
025a17bf
...
...
@@ -22,7 +22,7 @@ Android 是适用于多种不同设备的操作系统,例如平板电脑和智
## Android 活动
活动类是 Android 的重要组成部分。 活动就像带有用户界面的单个屏幕一样,就像 Java 的
[
框架一样。 我们知道任何用 Java 或 C
++编写的可执行程序都具有 main()方法,并且程序是通过 main()方法启动的。 代替主要方法,Android 具有不同的活动概念。
](
https://javatutorial.net/swing-jframe-basics-create-jframe
)
活动类是 Android 的重要组成部分。 活动就像带有用户界面的单个屏幕一样,就像 Java 的
[
框架一样。 我们知道任何用 Java 或 C++编写的可执行程序都具有 main()方法,并且程序是通过 main()方法启动的。 代替主要方法,Android 具有不同的活动概念。
](
https://javatutorial.net/swing-jframe-basics-create-jframe
)
大多数应用程序包含多个屏幕,这意味着它们具有多个活动。 活动已在应用的清单文件中注册。 每个活动都有其自己的生命周期,您必须正确管理。
...
...
docs/166.md
浏览文件 @
025a17bf
...
...
@@ -6,7 +6,7 @@
## Android 活动
Activity 是 Android 应用程序开发的基本组成部分之一。 就像带有用户界面的单个屏幕一样。
`ContextThemeWrapper`
是 Android 活动的超类。 活动是 Android 应用程序的主要切入点,就像用 Java 或 C
++编写的程序的主要方法一样。 一个活动与用户进行交互,因此它创建了一个放置 UI 元素的窗口。 一个 Android 应用程序可以包含多个活动,这意味着可以相互交互的许多不同屏幕。
Activity 是 Android 应用程序开发的基本组成部分之一。 就像带有用户界面的单个屏幕一样。
`ContextThemeWrapper`
是 Android 活动的超类。 活动是 Android 应用程序的主要切入点,就像用 Java 或 C++编写的程序的主要方法一样。 一个活动与用户进行交互,因此它创建了一个放置 UI 元素的窗口。 一个 Android 应用程序可以包含多个活动,这意味着可以相互交互的许多不同屏幕。
## 活动生命周期
...
...
docs/3.md
浏览文件 @
025a17bf
...
...
@@ -19,14 +19,14 @@
## 为什么要使用 Java?
*
**Java 简单易学**
– 它的设计语法与 C/C
++类似。 每个人都可以学习。 您不需要大学学位或昂贵的课程,只需继续阅读本教程,您便会很快建立起来。
*
**Java 简单易学**
– 它的设计语法与 C/C++类似。 每个人都可以学习。 您不需要大学学位或昂贵的课程,只需继续阅读本教程,您便会很快建立起来。
*
**Java 是安全的**
– Java Applet 在这里是一个例外,我们将在另一篇文章中讨论。
*
**Java 是可移植的**
- 编写一次即可在任何地方运行。 您的代码将在 Windows,Linux 和 Mac 上运行,而无需进行任何更改。
*
**Java 是可重用的**
– 您将在线查找大量库。 您无需成为每个编程主题的专家,只需找到合适的库并使用它即可。
## Java 与其他编程语言相比如何?
有许多编程语言,例如 C/C
++,PHP,PEARL 等。它们通常专门致力于最好地完成特定任务。 是什么使 Java 与众不同? Java 是面向对象的,基于类的编程语言,并且是通用的! 您可以编写桌面应用程序,前端和后端服务器逻辑,连接和操作数据库,通过网络发送和接收对象或为手机或 Android 设备编写移动应用程序。 您可以使用 Java 进行任何编程!
有许多编程语言,例如 C/C++,PHP,PEARL 等。它们通常专门致力于最好地完成特定任务。 是什么使 Java 与众不同? Java 是面向对象的,基于类的编程语言,并且是通用的! 您可以编写桌面应用程序,前端和后端服务器逻辑,连接和操作数据库,通过网络发送和接收对象或为手机或 Android 设备编写移动应用程序。 您可以使用 Java 进行任何编程!
请不要将 Java 与 JavaScript 混淆! JavaScript 是 Web 浏览器解释的脚本语言,而不是独立的编程语言。 Java 和 JavaScript 除了名称外没有其他共同之处。
...
...
docs/30.md
浏览文件 @
025a17bf
...
...
@@ -12,7 +12,7 @@ Java 虚拟机问题在求职面试中非常受欢迎。 采访者喜欢提出
## 什么是 Java 虚拟机
Java 被设计为可在各种平台上运行,其概念为“一次编写,随处运行”。 这是什么意思? 例如,与像 C
++这样的编程语言不同,在 C
++中,代码是针对特定平台进行编译并在其上本地运行的,而 Java 源代码则首先被编译为字节码- .class 文件。 编译后,类文件将由虚拟机(VM)解释。 看下图
Java 被设计为可在各种平台上运行,其概念为“一次编写,随处运行”。 这是什么意思? 例如,与像 C
++这样的编程语言不同,在 C
++中,代码是针对特定平台进行编译并在其上本地运行的,而 Java 源代码则首先被编译为字节码- .class 文件。 编译后,类文件将由虚拟机(VM)解释。 看下图
![
Run Java bytecode on different platforms - the "write once, run anywhere" concept
](
img/d6063e9fd37d275ba1f59efb6ad449ae.jpg
)
...
...
docs/33.md
浏览文件 @
025a17bf
...
...
@@ -14,7 +14,7 @@
因此,垃圾收集功能会找出这些对象并自动将其从内存中删除并删除它们,从而实现高效的内存使用和管理。
如果要用 C 语言进行相同的垃圾收集和优化,则可以使用 free()函数,而在 C
++中,则可以使用 delete()方法。 因此,Java 中此过程实现了自动化,从而为用户减少了麻烦。
如果要用 C 语言进行相同的垃圾收集和优化,则可以使用 free()函数,而在 C++中,则可以使用 delete()方法。 因此,Java 中此过程实现了自动化,从而为用户减少了麻烦。
从技术上讲,Java 垃圾收集处理的是跟踪
[
JVM(Java 虚拟机)
](
https://javatutorial.net/jvm-explained
)
堆空间中的每个对象,并删除(删除/取消分配)未使用的对象。
...
...
docs/47.md
浏览文件 @
025a17bf
...
...
@@ -16,7 +16,7 @@ public enum Macronutrients {
Java 在 1.5 中引入了 enum 数据类型。
其他编程语言(例如 C
++甚至 C)也具有枚举数据类型,但是在 Java 中,它更强大。 例如,在 C / C
++中,枚举只是整数值的列表,而在 Java 中,它是扩展 Enum 的类本身,并且通常对读取和写入都更好。 最重要的是,由于枚举是一个类的事实,它还提供了允许在枚举成员上进行迭代的不同方法。
其他编程语言(例如 C
++甚至 C)也具有枚举数据类型,但是在 Java 中,它更强大。 例如,在 C / C
++中,枚举只是整数值的列表,而在 Java 中,它是扩展 Enum 的类本身,并且通常对读取和写入都更好。 最重要的是,由于枚举是一个类的事实,它还提供了允许在枚举成员上进行迭代的不同方法。
在 Java 中,您还可以使用 name()方法,该方法将为您提供枚举数据类型的成员值:
...
...
docs/8.md
浏览文件 @
025a17bf
...
...
@@ -14,7 +14,7 @@ byte byteVariable = 24; // uses 8 bits of memory
在上面的示例中,我们将数字 24 存储在具有不同原始类型的 3 个变量中。 注意这三种类型的内存分配量。
`byte`
比
`int`
小 4 倍,比
`long`
小 8 倍
如果您来自其他编程语言(例如 C/C
++),请注意 Java 中没有未签名的数据类型。 Java 中的所有原始类型均已签名。
如果您来自其他编程语言(例如 C/C++),请注意 Java 中没有未签名的数据类型。 Java 中的所有原始类型均已签名。
## 字节
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录