龙空技术网

java从0到1之(1)基础

极目馆主 281

前言:

此时兄弟们对“我的世界java路径”大致比较关切,朋友们都需要分析一些“我的世界java路径”的相关资讯。那么小编同时在网上汇集了一些对于“我的世界java路径””的相关文章,希望同学们能喜欢,咱们快快来学习一下吧!

Java 简介什么是Java?

Java是一种流行的编程语言,创建于1995年。

Java属于Oracle公司所有,运行Java的设备超过30亿台。

Java可用于:

移动应用(特别是Android应用)桌面应用程序Web应用程序Web服务器和应用程序服务器游戏数据库连接更多为什么用Java?Java可以在不同的平台上运行(Windows、Mac、Linux、Raspberry Pi等)。它是世界上最流行的编程语言之一它易学易用它是开源和免费的它安全、快速、强大它拥有强大的社区支持(数千万开发者)开始

本教程将学习Java的基础知识。

不要求有编程经验。

Java 环境搭建Java安装

一些电脑可能已经安装了Java。

要检查你的Windows电脑上是否安装了Java,可以在开始栏中搜索Java,或者在命令提示符(cmd.exe)中输入以下命令:

Kevin@qikegu C:\Users\Kevin> java -version

如果安装了Java,您将看到如下内容(取决于版本):

java version "1.8.0_102"Java(TM) SE Runtime Environment (build 1.8.0_102-b14)Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode)

如果您的计算机上没有安装Java,可以从oracle.com免费下载。

windows Java路径设置

需要把Java可执行程序(bin)目录添加到windows的Path环境变量中,这样才能直接执行Java的命令。

按如下步骤操作:

1. 我的电脑->属性->高级系统设置2. 点击”环境变量”3. 如下图所示,打开”Path”设置对话框4. 如下图所示,把Java可执行程序(bin)目录添加到windows的Path环境变量中5. 验证路径设置,执行 java -version

Kevin@QIKEGU C:\Users\Kevin> java -versionjava version "1.8.0_102"Java(TM) SE Runtime Environment (build 1.8.0_102-b14)Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode)
Java 快速入门

在Java中,每个应用程序都以类名开头,该类必须与文件名匹配。

让我们创建第一个Java文件MyClass.java,可以在任何文本编辑器(如记事本)中编写该文件。

该程序会输出一条“Hello World”消息,代码如下:

MyClass.java

public class MyClass {  public static void main(String[] args) {    System.out.println("Hello World");  }}

如果不理解上面的代码,请不要担心 – 我们将在后面的章节中详细讨论它。现在,只需运行它。

将代码保存为“MyClass.java”文件。打开命令行工具(cmd.exe),切换到保存文件的目录,输入“javac MyClass.java”:

Kevin@QIKEGU G:\project\qikegu-demo\java> javac MyClass.java

这将编译你的代码。如果代码中没有错误,完成编译后,输入“java MyClass”运行文件:

Kevin@QIKEGU G:\project\qikegu-demo\java> java MyClass

输出应该是:

Hello World

恭喜你编写并执行了第一个Java程序。

Java 基本语法

在前一章中,我们创建了一个名为MyClass.java的Java文件,运行时把“Hello World”打印到屏幕上,代码如下:

public class MyClass {  public static void main(String[] args) {    System.out.println("Hello World");  }}
例子解释

在Java中运行的每一行代码都必须在一个类中。示例中,类被命名为MyClass,类名的首字母是大写的。

注意: Java是区分大小写的: “MyClass”和“myclass”是不同的。

java文件的名称必须与类名匹配。保存文件时,使用类名保存,并添加.java扩展名。

要运行上面的示例,请确保正确安装了Java: 转到Java 环境搭建一章。输出应该是:

Hello World
main 方法

main()方法是必需的,每个Java程序中都包含:

public static void main(String[] args)

main()方法是Java程序的运行入口,该方法中的所有代码都将被执行。目前不必深究main前后的关键字,学习本教程后续内容时,将逐步了解它们。

现在,只要记住每个Java程序都有一个类名,这个类名必须与文件名匹配,每个程序都必须包含一个main()方法。

System.out.println()

在main()方法内部,可以使用println()方法向屏幕打印一行文本:

public static void main(String[] args) {  System.out.println("Hello World");}

注意:在Java中,每个代码语句必须以分号结束。

Java 注释

Java中,注释可以用来解释代码,使其更具可读性。注释还可以屏蔽代码,在调试时很有用。

单行注释以两个前斜杠(//)开头。

Java会忽略//和行尾之间的任何文本(不会执行)。

这个例子在代码行之前使用单行注释:

示例

// 这是注释System.out.println("Hello World");

这个例子在一行代码的末尾使用单行注释:

示例

System.out.println("Hello World"); // 这是注释
Java多行注释

多行注释以/*开头,以*/结尾。

Java将忽略/*和*/之间的任何文本。

本例使用多行注释(注释块)来解释代码:

示例

/* 下面的代码向屏幕打印“Hello World”*/System.out.println("Hello World");
Java 变量Java 运算符

运算符用于对变量和值进行运算操作。

参与运算的值称为操作数,运算操作(在两个操作数之间执行)由运算符定义:

操作数

运算符

操作数

100

+

50

在下面的例子中,数字100和50是操作数,+是运算符:

示例

int x = 100 + 50;

+运算符可用于将两个值相加,就像上面的例子一样,但它也可以用于将一个变量和一个值相加,或者将两个变量相加:

示例

int sum1 = 100 + 50;        // 150 (100 + 50)int sum2 = sum1 + 250;      // 400 (150 + 250)int sum3 = sum2 + sum2;     // 800 (400 + 400)

Java将运算符分为以下几组:

算术运算符赋值运算符比较运算符逻辑运算符按位运算符Java算术运算符

算术运算符用于执行常见的数学运算。

运算符

名称

描述

例子

+

将两个值相加

x + y

从一个值减去另一个值

x – y

*

两个值相乘

x * y

/

将一个值除以另一个值

x / y

%

取模

返回除法余数

x % y

++

增加

将变量的值增加1

++x

减少

将变量的值减少1

–x

Java赋值操作符

赋值运算符用于为变量赋值。

在下面的例子中,我们使用赋值运算符(=)将值10赋给一个名为x的变量:

示例

int x = 10;

加法赋值运算符(+=)向变量加一个值:

示例

int x = 10;x += 5;

所有赋值运算符的列表:

运算符

例子

等价于

=

x = 5

x = 5

+=

x += 3

x = x + 3

-=

x -= 3

x = x – 3

*=

x *= 3

x = x * 3

/=

x /= 3

x = x / 3

%=

x %= 3

x = x % 3

&=

x &= 3

x = x & 3

|=

x |= 3

x = x | 3

^=

x ^= 3

x = x ^ 3

>>=

x >>= 3

x = x >> 3

<<=

x <<= 3

x = x << 3

回到顶部

Java比较运算符

比较运算符用于比较两个值:

运算符

名称

例子

==

等于

x == y

!=

不等于

x != y

>

大于

x > y

<

小于

x < y

>=

大于等于

x >= y

<=

小于等于

x <= y

Java逻辑运算符

逻辑运算符用于确定变量或值之间的逻辑:

运算符

名称

描述

例子

&&

逻辑与

如果两个语句都为真,则返回true

x < 5 && x < 10

||

逻辑或

如果其中一个语句为真,则返回true

x < 5 || x < 4

!

逻辑非

反转结果,如果结果为真,则返回false

!(x < 5 && x < 10)

Java 类型转换Java 类型转换

类型转换是将一种基本类型的值赋给另一种基本类型。

Java中,有两种类型转换:

扩大转换 (自动) – 将字节数较小类型转换为较大类型byte -> short -> char -> int -> long -> float -> double缩小转换 (手动) – 将字节数较大类型转换为较小类型double -> float -> long -> int -> char -> short -> byte扩大转换

将字节数较小类型转换为较大类型时,自动进行字节数加大转换:

示例

public class MyClass {  public static void main(String[] args) {    int myInt = 9;    double myDouble = myInt; // 自动转换: int 到 double    System.out.println(myInt);      // 输出 9    System.out.println(myDouble);   // 输出 9.0  }}
缩小转换

将字节数较大类型转换为较小类型,必须手动转换,方法是将类型用括号括起来,放在要转换的值前面:

示例

public class MyClass {  public static void main(String[] args) {    double myDouble = 9.78;    int myInt = (int) myDouble; // 手动转换: double 到 int    System.out.println(myDouble);   // 输出 9.78    System.out.println(myInt);      // 输出 9  }}
Java 运算符

运算符用于对变量和值进行运算操作。

参与运算的值称为操作数,运算操作(在两个操作数之间执行)由运算符定义:

操作数

运算符

操作数

100

+

50

在下面的例子中,数字100和50是操作数,+是运算符:

示例

int x = 100 + 50;

+运算符可用于将两个值相加,就像上面的例子一样,但它也可以用于将一个变量和一个值相加,或者将两个变量相加:

示例

int sum1 = 100 + 50;        // 150 (100 + 50)int sum2 = sum1 + 250;      // 400 (150 + 250)int sum3 = sum2 + sum2;     // 800 (400 + 400)

Java将运算符分为以下几组:

算术运算符赋值运算符比较运算符逻辑运算符按位运算符Java算术运算符

算术运算符用于执行常见的数学运算。

运算符

名称

描述

例子

+

将两个值相加

x + y

从一个值减去另一个值

x – y

*

两个值相乘

x * y

/

将一个值除以另一个值

x / y

%

取模

返回除法余数

x % y

++

增加

将变量的值增加1

++x

减少

将变量的值减少1

–x

Java赋值操作符

赋值运算符用于为变量赋值。

在下面的例子中,我们使用赋值运算符(=)将值10赋给一个名为x的变量:

示例

int x = 10;

加法赋值运算符(+=)向变量加一个值:

示例

int x = 10;x += 5;

所有赋值运算符的列表:

运算符

例子

等价于

=

x = 5

x = 5

+=

x += 3

x = x + 3

-=

x -= 3

x = x – 3

*=

x *= 3

x = x * 3

/=

x /= 3

x = x / 3

%=

x %= 3

x = x % 3

&=

x &= 3

x = x & 3

|=

x |= 3

x = x | 3

^=

x ^= 3

x = x ^ 3

>>=

x >>= 3

x = x >> 3

<<=

x <<= 3

x = x << 3

Java比较运算符

比较运算符用于比较两个值:

运算符

名称

例子

==

等于

x == y

!=

不等于

x != y

>

大于

x > y

<

小于

x < y

>=

大于等于

x >= y

<=

小于等于

x <= y

Java逻辑运算符

逻辑运算符用于确定变量或值之间的逻辑:

运算符

名称

描述

例子

&&

逻辑与

如果两个语句都为真,则返回true

x < 5 && x < 10

||

逻辑或

如果其中一个语句为真,则返回true

x < 5 || x < 4

!

逻辑非

反转结果,如果结果为真,则返回false

!(x < 5 && x < 10)

Java 字符串Java字符串/String

字符串用于存储文本。

一个字符串变量包含了一组由双引号括起来的字符:

示例

创建一个String类型的变量,并为其赋值:

String greeting = "Hello";
字符串长度

Java中的字符串实际上是一个对象,字符串对象包含了一组操作字符串的方法。例如,可以使用length()方法获取字符串长度:

示例

String txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";System.out.println("字符串长度是: " + txt.length())
更多字符串方法

有很多字符串方法可用,例如toUpperCase()和toLowerCase():

示例

String txt = "Hello World";System.out.println(txt.toUpperCase());   // 输出 "HELLO WORLD"System.out.println(txt.toLowerCase());   // 输出 "hello world"
在字符串中查找字符串

indexOf()方法在字符串中查找字符串,返回被查找字符串首次出现的索引(位置):

示例

String txt = "奇客谷教程 - Java 教程";System.out.println(txt.indexOf("Java")); // 输出 8

Java从0开始计算位置。

0是字符串中的第一个位置,1是第二个,2是第三个…

字符串拼接

可以使用+运算符拼接两个字符串:

示例

String firstName = "Kevin";String lastName = "Wu";System.out.println(firstName + " " + lastName);

注意,在firstName与lastName之间,我们添加了一个空格。

还可以使用concat()方法拼接两个字符串:

示例

String firstName = "Kevin ";String lastName = "Wu";System.out.println(firstName.concat(lastName));
特殊字符

因为字符串必须用引号括起来,如果字符串中含有引号,Java会报错:

String txt = "关于西湖的诗句: "毕竟西湖六月中,风光不与四时同"";

要避免这个问题,可以使用反斜杠转义字符。

反斜杠(\)转义字符将特殊字符转换为字符串字符:

转义字符

结果

描述

\’

单引号

\”

双引号

\\

\

反斜杠

\"在字符串中插入双引号:

示例

String txt = "关于西湖的诗句: \"毕竟西湖六月中,风光不与四时同\"";

\'在字符串中插入单引号:

示例

String txt = "It\'s OK.";

\\在字符串中插入一个反斜杠:

示例

String txt = "字符 \\ 称为反斜杠.";

Java中,还有几个转义组合:

转义字符

结果

\n

换行

\r

回车

\t

制表符

\b

退格

\f

换页

数字相加和字符串拼接

警告: Java中,加法和字符串拼接都是用`+`运算符,2个数字相加是值相加,2个字符串相加是字符串拼接。

两个数字相加,结果将是一个数字:

示例

int x = 10;int y = 20;int z = x + y;      // z 将是 30 (一个整型值)

两个字符串相加,结果将是拼接后的一个字符串:

示例

String x = "10";String y = "20";String z = x + y;   // z 将是 1020 (一个字符串)

如果数字和字符串相加,会作为字符串拼接处理,结果将是一个字符串:

示例

String x = "10";int y = 20;String z = x + y;   // z 将是  1020 (一个字符串)
Java Math

Java Math类有许多方法可用于数学计算。

Math.max(x,y)

Math.max(x,y)方法可以求出x, y中的最大值:

示例

Math.max(5, 10);
Math.min(x,y)

Math.min(x,y)方法可以求出x, y中的最小值:

示例

Math.min(5, 10);
Math.sqrt(x)

Math.sqrt(x)方法返回√x:

示例

Math.sqrt(64);
Math.abs(x)

Math.abs(x)方法返回x的绝对值(正值):

示例

Math.abs(-4.7)
Math.random()

Math.random()返回一个介于0(含)和1(不含)之间的随机数:

示例

Math.random();
Java 布尔运算Java 布尔类型

在编程中,有时需要的数据类型,取值只能取两个值之一,比如:

是/否开/关真/假

为此,Java有一个boolean数据类型,可以取值:true或false。

布尔值

布尔类型是用boolean关键字声明的,只能取值: true或false:

示例

boolean isJavaFun = true;boolean isFishTasty = false;System.out.println(isJavaFun);     // 输出 trueSystem.out.println(isFishTasty);   // 输出 false
布尔表达式

布尔表达式是返回布尔值true或false的Java表达式。

可以使用比较运算符,例如大于(>)运算符,来检验表达式是否为真:

示例

System.out.println(10 > 9); // 返回true, 因为 10 大于 9

在下面的例子中,使用等号(==)比较运算符来计算表达式:

示例

int x = 10;System.out.println(x == 10); // 返回true, 因为x的值是10

示例

System.out.println(10 == 15); // 返回false, 因为10不等于15

Java中,布尔表达式是所有比较运算和条件判断的基础。

Java If … ElseJava 条件和If语句

Java支持数学中常见的逻辑条件:

小于: a < b小于等于: a <= b大于: a > b大于等于: a >= b等于: a == b不等于: a != b

可以使用这些条件做判断,然后执行不同的代码。

Java有以下条件语句:

if 如果条件为真,if中的代码块将被执行else 如果if语句中的条件为假,else中的代码块将被执行else if 如果第一个条件不成立,则指定一个新条件switch 指定多个条件,匹配条件下的代码块将被执行if语句

使用if语句,指定当条件为真时,要执行的代码块。

语法

if (条件) {  // 条件为真时,要执行的代码块}

注意if是小写字母。大写字母(If或IF)将产生错误。

在下面的例子中,我们测试两个值,看看20是否大于18。如果条件为真,打印一些文本:

示例

if (20 > 18) {  System.out.println("20 大于 18");}

我们也可以测试变量:

示例

int x = 20;int y = 18;if (x > y) {  System.out.println("x 大于 y");}

在上面的例子中,我们使用两个变量x和y,来测试x是否大于y(使用>运算符)。当x = 20,y = 18,我们知道20大于18,屏幕上将打印“x大于y”。

else语句

使用else语句,指定如果条件为假时,要执行的代码块。

语法

if (条件) {  // 条件为真时,要执行的代码块} else {   // 条件为假时,要执行的代码块} 

示例

int time = 20;if (time < 18) {  System.out.println("白天");} else {  System.out.println("夜晚");}// 输出 "夜晚"

在上面的例子中,time(20)大于18,所以条件为假,程序将执行else语句,在屏幕上打印“夜晚”。如果时间小于18,程序将打印“白天”。

else if语句

使用else if语句,当第一个条件为假时,指定一个新条件。

语法

if (条件1) {  // 条件1为真时,要执行的代码块} else if (条件2) {  // 条件1为假,条件2为真时,要执行的代码块} else {  // 条件1为假,条件2为假时,要执行的代码块}

示例

int time = 22;if (time < 6) {  System.out.println("夜晚");} else if (time < 18) {  System.out.println("白天");} else {  System.out.println("夜晚");}// 输出 "夜晚"

在上面的例子中,time(22)大于6,所以第一个条件为假,接下来else if语句中的条件也为假,程序会继续执行,到达else代码块,屏幕上将打印“夜晚”。

如果time = 14,程序会打印“白天”。

if…else 精简格式(三元运算符)

如果if与else代码块中都只有一个语句要执行,可以把它们放在同一行:

语法

variable = (条件) ? 条件真时执行的语句 : 条件假时执行的语句;

更换下面的写法

示例

int time = 20;if (time < 18) {  System.out.println("白天");} else {  System.out.println("夜晚");}

可以简单地写为:

示例

int time = 20;String result = (time < 18) ? "白天" : "夜晚";System.out.println(result);
Java SwitchJava Switch语句

使用switch语句,可以从许多代码块中选择一个执行。

语法

switch(表达式) {  case x:    // 代码块    break;  case y:    // 代码块    break;  default:    // 代码块}

switch语句是这样工作的:

switch中的表达式求值一次。将表达式的值与每个case的值进行比较。如果匹配,则执行相关联的代码块。break和default关键字是可选的,本章稍后将对此进行描述

下面的例子,使用周工作日编号来计算周工作日名称:

示例

int day = 4;switch (day) {  case 1:    System.out.println("周一");    break;  case 2:    System.out.println("周二");    break;  case 3:    System.out.println("周三");    break;  case 4:    System.out.println("周四");    break;  case 5:    System.out.println("周五");    break;  case 6:    System.out.println("周六");    break;  case 7:    System.out.println("周日");    break;}// 输出 "周四" (day 4)
break 关键字

当程序执行遇到break关键字时,就会跳出当前switch块。后续的case都会跳过,不再检测。

当找到匹配项,工作完成时,就该跳出了,没有必要进行更多的检测。

break可以节省执行时间,因为“跳过”了switch块中剩余代码的执行。

default 关键字

当没有匹配的case时,default关键字下的代码块就会运行。

示例

int day = 4;switch (day) {  case 6:    System.out.println("今天是周六");    break;  case 7:    System.out.println("今天是周日");    break;  default:    System.out.println("期待周末");}// 输出 "期待周末"

注意,如果default语句是switch块中的最后一个语句,则不需要break。

Java While 循环循环

只要满足指定的条件,循环会反复执行某个代码块。

Java While 循环

只要条件为真,while循环语句会循环执行一个代码块:

语法

while (条件) {  // 要执行的代码块}

在下面的例子中,只要变量(i)小于5,循环中的代码就会反复运行:

示例

int i = 0;while (i < 5) {  System.out.println(i);  i++;}

注意: 不要忘记给变量i递增,否则循环将永远不会结束!

Do/While

do/while循环是while循环的变体。此循环将先执行一次代码块,然后再检查条件,只要条件为真,循环将继续。

语法

do {  // 要执行的代码块}while (条件);

下面的示例使用do/while循环,循环将至少执行一次,即使条件是假的。因为会先执行一次代码块,然后再检查条件:

示例

int i = 0;do {  System.out.println(i);  i++;}while (i < 5);

注意: 不要忘记给变量i递增,否则循环将永远不会结束!

Java For 循环

当确切地知道一段代码要循环的次数时,最好使用for循环,而不是while循环:

语法

for (语句1; 语句2; 语句3) {  // 要执行的代码块}
语句1 在代码块执行之前执行(一次)。语句2 定义了执行代码块的条件。语句3 在代码块执行之后(每次)执行。

下面的例子将打印数字0到4:

示例

for (int i = 0; i < 5; i++) {  System.out.println(i);}
语句1 在循环开始之前设置一个变量(int i = 0)。语句2 定义了循环运行的条件(i必须小于5),如果条件为真,循环将再次执行,如果条件为假,循环将结束。语句3 循环中的代码块每次执行后,都会给变量i递增1(i++)。另一个例子

这个例子打印0到10之间的偶数值:

示例

for (int i = 0; i <= 10; i = i + 2) {  System.out.println(i);}

For-Each 循环

还有一个for-each循环,专门用来遍历数组中的元素:

语法

for (类型 变量 : 数组) {  // 要执行的代码块}

下面的例子使用for-each循环,输出vehicle数组中的所有元素:

示例

String[] vehicle = {"自行车", "电动车", "汽车", "高铁"};for (String i : vehicle) {  System.out.println(i);}
Java Break 与 ContinueJava Break

前面章节中,介绍switch语句时,学习过break语句,它用于“跳出”switch语句。

break语句也可以用来跳出循环。

这个例子中,当i等于4时跳出循环:

示例

for (int i = 0; i < 10; i++) {  if (i == 4) {    break;  }  System.out.println(i);}
Java Continue

continue语句中断本次循环中的代码执行,但循环会继续。

注意:continue语句之后将继续执行下一次循环,而break语句是跳出整个循环。

这个例子,当i等于4时跳过,不打印:

示例

for (int i = 0; i < 10; i++) {  if (i == 4) {    continue;  }  System.out.println(i);} 
While 循环中的 break 与 continue

也可以在while循序中使用break和continue:

Break 示例

int i = 0;while (i < 10) {  System.out.println(i);  i++;  if (i == 4) {    break;  }}

Continue 示例

int i = 0;while (i < 10) {  if (i == 4) {    i++;    continue;  }  System.out.println(i);  i++;} 
Java 数组Java数组/Array

使用数组可以在单个变量中存储一组类型相同的值。

声明数组,使用类型后缀方括号定义数组变量:

String[] vehicle;

上面例子中,声明了一个字符串数组。

要把值插入到数组中,可以使用以下方式:

String[] vehicle = {"自行车", "电动车", "汽车", "高铁"};

要创建一个整数数组,如下所示:

int[] myNum = {10, 20, 30, 40};
访问数组的元素

要访问数组元素,可使用索引号。

这个例子访问vehicle中第一个元素的值:

示例

String[] vehicle = {"自行车", "电动车", "汽车", "高铁"};System.out.println(vehicle[0]);// 输出 自行车

注意: 数组索引以0开头: [0]是第一个元素,[1]是第二个元素,以此类推。

更改数组元素

要更改特定元素的值,可使用索引号:

示例

vehicle[0] = "飞机";

示例

String[] vehicle = {"自行车", "电动车", "汽车", "高铁"};vehicle[0] = "飞机";System.out.println(vehicle[0]);// 现在输出 飞机,而不是 自行车
数组长度

要知道一个数组有多少个元素,可以使用length属性:

示例

String[] vehicle = {"自行车", "电动车", "汽车", "高铁"};System.out.println(vehicle.length);// 输出 4
遍历数组

可以使用for循环遍历数组,使用length属性指定循环次数。

下面的示例,输出vehicle数组中的所有元素:

示例

String[] vehicle = {"自行车", "电动车", "汽车", "高铁"};for (int i = 0; i < vehicle.length; i++) {  System.out.println(vehicle[i]);}
使用For-Each遍历数组

还有一个for-each循环,专门用于遍历数组中的元素:

语法

for (类型 变量 : 数组) {  ...}

下面的例子,使用for-each循环,输出vehicle数组中的所有元素:

示例

String[] vehicle = {"自行车", "电动车", "汽车", "高铁"};for (String i : vehicle) {  System.out.println(i);}

上面的例子,可以这样理解:对于字符串数组vehicle中的每个元素i,打印出它的值。

比较for循环和for-each循环,可以看到for-each循环更容易编写,不需要计数器(使用length属性),可读性更好。

多维数组

多维数组是包含一个或多个数组的数组。

要创建一个二维数组,可以把数组作为数组元素:

示例

int[][] myNumbers = { {1, 2, 3, 4}, {5, 6, 7} };

myNumbers现在是一个二维数组,包含了两个数组作为元素。

要访问二维数组myNumbers中的元素,需指定两个索引: 一个索引用于数组,另一个索引用于数组中的元素。

下面的例子访问myNumbers中,第二个数组(1)中的第三个元素(2):

示例

int[][] myNumbers = { {1, 2, 3, 4}, {5, 6, 7} };int x = myNumbers[1][2];System.out.println(x); // 输出 7

下面的例子,使用for循环遍历二维数组中的元素:

示例

public class MyClass {  public static void main(String[] args) {    int[][] myNumbers = { {1, 2, 3, 4}, {5, 6, 7} };    for (int i = 0; i < myNumbers.length; ++i) {      for(int j = 0; j < myNumbers[i].length; ++j) {        System.out.println(myNumbers[i][j]);      }    }  }}
Java 异常

执行Java代码时,可能会发生各种错误: 程序员写代码时犯的错误、用户非法输入造成的错误,或其他不可预见的错误。

当发生错误时,Java通常会停止程序运行,并生成错误消息。用技术方面的话说: Java将抛出异常/exception(抛出错误)。

Java try catch

try语句可以对一个代码块,在其执行时,进行错误检测。

catch语句定义了,当try块中发生错误时,要执行的代码块,。

try 与 catch关键字成对出现:

语法

try {  //  要尝试的代码块}catch(Exception e) {  //  处理错误的代码块}

考虑下面例子

这将生成一个错误,因为myNumbers[10]不存在。

public class MyClass {  public static void main(String[ ] args) {    int[] myNumbers = {1, 2, 3};    System.out.println(myNumbers[10]); // error!  }}

输出

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10        at MyClass.main(MyClass.java:4)

如果发生错误,可以用try…catch捕捉错误,然后执行错误处理代码:

示例

public class MyClass {  public static void main(String[ ] args) {    try {      int[] myNumbers = {1, 2, 3};      System.out.println(myNumbers[10]);    } catch (Exception e) {      System.out.println("出错了");    }  }}

输出

出错了
Finally

不管try块中有没有报错,在try...catch之后,finally语句中的代码块将总是会执行:

示例

public class MyClass {  public static void main(String[] args) {    try {      int[] myNumbers = {1, 2, 3};      System.out.println(myNumbers[10]);    } catch (Exception e) {      System.out.println("出错了");    } finally {      System.out.println("'try catch'结束了");    }  }}

输出将为:

出错了'try catch'结束了
throw 关键字

throw语句让你可以创建自定义错误。

throw语句与异常类型一起使用。Java中有很多异常类型: ArithmeticException, ClassNotFoundException, ArrayIndexOutOfBoundsException, SecurityException, 等等.

异常类型通常与自定义方法一起使用。如果不理解下面的例子,不必担心,下一章中会了解更多。

示例

如果年龄小于18岁,抛出异常(打印“拒绝访问”);如年龄在18岁或以上,打印“允许访问”:

public class MyClass {  static void checkAge(int age) {     if (age < 18) {      throw new ArithmeticException("拒绝访问 - 低于18岁");     }    else {      System.out.println("允许访问 - 年龄合格");     }  }   public static void main(String[] args) {     checkAge(15); // 年龄设置为15 (低于18...)  } }

输出将为:

Exception in thread "main" java.lang.ArithmeticException: 拒绝访问 - 低于18岁        at MyClass.checkAge(MyClass.java:4)        at MyClass.main(MyClass.java:12)

如果你的年龄是20岁,你不会有例外:

示例

checkAge(20);

输出将为:

允许访问 - 年龄合格
Java 方法

方法是一段代码,只在调用时运行。

可以将数据(称为参数)传递到方法中。

方法用于执行某些操作,方法也被称为函数。

为什么使用方法?重用代码: 定义代码一次,可以使用多次。

创建方法

方法必须在类中声明。声明时,方法名后面跟着括号 ()。Java提供了一些预定义的方法,比如System.out.println()

下面的例子定义自己的方法,执行某些操作:

示例

在MyClass中创建一个方法:

public class MyClass {  static void myMethod() {    // 要执行的代码  }}
myMethod() 是方法的名称static 意味着方法属于MyClass类,而不是MyClass类的对象。在本教程的后面,你将学习更多对象、对象方法等相关知识。void 表示该方法没有返回值。在本章后面,你将学习更多关于返回值的知识调用方法

要调用Java中的方法,写下方法的名称,后跟圆括号()和分号;

在下面的例子中,调用myMethod()方法打印文本:

示例

main内部,调用myMethod()方法:

public class MyClass {  static void myMethod() {    System.out.println("我被执行了!");  }  public static void main(String[] args) {    myMethod();  }}// 输出 "我被执行了!"

方法可以被调用多次:

示例

public class MyClass {  static void myMethod() {    System.out.println("我被执行了!");  }  public static void main(String[] args) {    myMethod();    myMethod();    myMethod();  }}// 我被执行了!// 我被执行了!// 我被执行了!
方法参数

数据可以作为参数传递给方法。在方法中参数充当变量。

参数在方法名后面的圆括号中指定。你可以添加任意数量的参数,只需用逗号分隔即可。

下面的示例中,myMethod方法将一个名为fname的字符串作为参数。当方法被调用时,向方法传递一个名字,这个名字在方法中用于打印全名:

示例

public class MyClass {  static void myMethod(String fname) {    System.out.println("张" + fname);  }  public static void main(String[] args) {    myMethod("三丰");    myMethod("翠山");    myMethod("无忌");  }}// 张三丰// 张翠山// 张无忌
返回值

上面例子中,使用的void关键字,表示方法没有返回值。如果想让方法返回一个值,可以使用一个基本类型(如int, char等)来代替void,并在方法中使用return关键字:

示例

public class MyClass {  static int myMethod(int x) {    return 5 + x;  }  public static void main(String[] args) {    System.out.println(myMethod(3));  }}// 输出 8 (5 + 3)

下面这个例子,返回一个方法的两个参数之和:

示例

public class MyClass {  static int myMethod(int x, int y) {    return x + y;  }  public static void main(String[] args) {    System.out.println(myMethod(5, 3));  }}// 输出 8 (5 + 3)

还可以将结果存储在一个变量中(推荐):

示例

public class MyClass {  static int myMethod(int x, int y) {    return x + y;  }  public static void main(String[] args) {    int z = myMethod(5, 3); // 结果存储到一个变量    System.out.println(z);  }}// Outputs 8 (5 + 3)
一个带有If…Else的方法

方法中使用if...else很平常:

示例

public class MyClass {  // 创建checkAge()方法,方法有一个整型参数:age  static void checkAge(int age) {    // 如果年龄小于18岁,打印“拒绝访问”    if (age < 18) {      System.out.println("拒绝访问 - 年龄太小!");     // 如年龄大于18岁,打印“允许访问”    } else {      System.out.println("允许访问 - 年龄合格!");     }  }   public static void main(String[] args) {     checkAge(20); // 调用checkAge方法,并向它传递年龄为20的值  } }// 输出 "允许访问 - 年龄合格!"

出错了'try catch'结束了

标签: #我的世界java路径