计算机博弈的代码java,Java 速成

Java 速成

关于 Java¶

Java 是一种广泛使用的计算机编程语言,拥有 跨平台、面向对象、泛型编程 的特性,广泛应用于企业级 Web 应用开发和移动应用开发。

环境安装¶

Windows¶

可以在 Oracle 官网 下载 Oracle JDK(需要登录 Oracle 账号)。推荐下载 EXE 安装包来自动配置环境变量。

如果需要使用 OpenJDK,可以使用 AdoptOpenJDK 提供的预编译包。如果下载较慢,可以使用 清华大学 TUNA 镜像站。推荐下载 MSI 安装包来自动配置环境变量。

Linux¶

使用包管理器安装¶

可以使用包管理器提供的 JDK。

如果是 Debian 及其衍生发行版(包括 Ubuntu),命令如下: 1

2sudo apt install default-jre

sudo apt install default-jdk

如同时安装了多个版本,可通过 update-java-alternatives -l 查看目前使用的版本,通过 update-java-alternatives -s 更改使用的版本。

如果 CentOS 7 及以前则使用的是 yum 安装,命令如下: 1sudo yum install java-1.8.0-openjdk

在稍后询问是否安装时按下y继续安装,或是你已经下好了 rpm 文件,可以使用以下命令安装: 1

2sudo yum localinstall jre-9.0.4_linux_x64_bin.rpm #安装jre-9.0

sudo yum localinstall jdk-9.0.4_linux-x64_bin.rpm #安装jdk-9.0

如果 CentOS 8 则使用的是 dnf 安装,命令如下: 1sudo dnf install java-1.8.0-openjdk

在稍后询问是否安装时按下y继续安装,或是你已经下好了 rpm 文件,可以使用以下命令安装: 1

2sudo dnf install jre-9.0.4_linux_x64_bin.rpm #安装jre-9.0

sudo dnf install jdk-9.0.4_linux-x64_bin.rpm #安装jdk-9.0

如果是 Arch 及其衍生发行版(如 Manjaro),命令如下: 1sudo pacman -S jdk8-openjdk # 8可以替换为其他版本,不加则为最新版

如同时安装了多个版本,可通过 archlinux-java status 查看目前使用的版本,通过 archlinux-java set 更改使用的版本。

手动安装¶ 1sudo mv jdk-14 /opt

并在 .bashrc 文件末尾添加: 1

2export JAVA_HOME="/opt/jdk-14"

export PATH=$JAVA_HOME/bin:$PATH

在控制台中输入命令 source ~/.bashrc 即可重载。如果是使用的 zsh 或其他命令行,在 ~/.zshrc 或对应的文件中添加上面的内容。

macOS¶

如果是 macOS,你可以使用以下命令安装包: 1

2

3

4

5

6cd ~/Downloads

curl -v -j -k -L -H "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u121-b13/e9e7ea248e2c4826b92b3f075a80e441/jdk-8u121-macosx-x64.dmg > jdk-8u121-macosx-x64.dmg

hdiutil attach jdk-8u121-macosx-x64.dmg

sudo installer -pkg /Volumes/JDK\8\Update\121/JDK\8\Update\121.pkg -target /

diskutil umount /Volumes/JDK\8\Update\121

rm jdk-8u121-macosx-x64.dmg

或者直接在官方网站下载 pkg 包或 dmg 包安装。

基本语法¶

主函数¶

Java 类似 C/C++ 语言,需要一个函数(在面向对象中,这被称为方法)作为程序执行的入口点。

Java 的主函数的格式是固定的,形如: 1

2

3

4

5class Test {

public static void main(String[] args) {

// 程序的代码

}

}

一个打包的 Java 程序(名称一般是 *.jar)中可以有很多个类似的函数,但是当运行这个程序的时候,只有其中一个函数会被运行,这是定义在 Jar 的 Manifest 文件中的,在 OI 比赛中一般用不到关于它的知识。

注释¶

和 C/C++ 一样,Java 使用 // 和 /* */ 分别注释单行和多行。

基本数据类型¶ 类型名 意义 boolean 布尔类型

byte 字节类型

char 字符型

double 双精度浮点

float 单精度浮点

int 整型

long 长整型

short 短整型

null 空

声明变量¶ 1

2

3

4int a = 12; // 设置 a 为整数类型,并给 a 赋值为 12

String str = "Hello, OI-wiki"; // 声明字符串变量 str

char ch = 'W';

double PI = 3.1415926;

final 关键字¶

final 含义是这是最终的、不可更改的结果,被 final 修饰的变量只能被赋值一次,赋值后不再改变。 1final double PI = 3.1415926;

数组¶ 1

2

3// 有十个元素的整数类型数组

// 其语法格式为 数据类型[] 变量名 = new 数据类型[数组大小]

int[] ary = new int[10];

字符串¶ 字符串是 Java 一个内置的类。 1

2

3

4

5

6// 最为简单的构造一个字符串变量的方法如下

String a = "Hello";

// 还可以使用字符数组构造一个字符串变量

char[] stringArray = { 'H', 'e', 'l', 'l', 'o' };

String s = new String(stringArray);

包和导入包¶

Java 中的类(Class)都被放在一个个包(package)里面。在一个包里面不允许有同名的类。在类的第一行通常要说明这个类是属于哪个包的。例如: 1package org.oi-wiki.tutorial;

包的命名规范一般是:项目所有者的顶级域.项目所有者的二级域.项目名称。

通过 import 关键字来导入不在本类所属的包下面的类。例如下面要用到的 Scanner: 1import java.util.Scanner;

如果想要导入某包下面所有的类,只需要把这个语句最后的分号前的类名换成 *。

输入¶

可以通过 Scanner 类来处理命令行输入。 1

2

3

4

5

6

7

8

9

10

11

12package org.oiwiki.tutorial;

import java.util.Scanner;

class Test {

public static void main(String[] args) {

Scanner scan = new Scanner(System.in); // System.in 是输入流

int a = scan.nextInt();

double b = scan.nextDouble();

String c = scan.nextLine();

}

}

输出¶

可以对变量进行格式化输出。 符号 意义 %f 浮点类型

%s 字符串类型

%d 整数类型

%c 字符类型 1

2

3

4

5

6

7

8

9

10

11

12class Test {

public static void main(String[] args) {

int a = 12;

char b = 'A';

double s = 3.14;

String str = "Hello world";

System.out.printf("%f\n", s);

System.out.printf("%d\n", a);

System.out.printf("%c\n", b);

System.out.printf("%s\n", str);

}

}

控制语句¶

Java 的流程控制语句与 C++ 是基本相同的。

选择¶ if 1

2

3

4

5

6

7class Test {

public static void main(String[] args) {

if ( /* 判断条件 */ ){

// 条件成立时执行这里面的代码

}

}

} if...else 1

2

3

4

5

6

7

8

9class Test {

public static void main(String[] args) {

if ( /* 判断条件 */ ) {

// 条件成立时执行这里面的代码

} else {

// 条件不成立时执行这里面的代码

}

}

} if...else if...else 1

2

3

4

5

6

7

8

9

10

11class Test {

public static void main(String[] args) {

if ( /* 判断条件 */ ) {

//判断条件成立执行这里面的代码

} else if ( /* 判断条件2 */ ) {

// 判断条件2成立执行这里面的代码

} else {

// 上述条件都不成立执行这里面的代码

}

}

} switch...case 1

2

3

4

5

6

7

8

9

10

11

12

13

14class Test {

public static void main(String[] args) {

switch ( /* 表达式 */ ){

case /* 值 1 */:

// 当表达式取得的值符合值 1 执行此段代码

break; // 如果不加上 break 语句,会让程序按顺序往下执行直到 break

case /* 值 2 */:

// 当表达式取得的值符合值 2 执行此段代码

break;

default:

// 当表达式不符合上面列举的值的时候执行这里面的代码

}

}

}

循环¶ for

for 关键字有两种使用方法,其中第一种是普通的 for 循环,形式如下: 1

2

3

4

5

6

7class Test {

public static void main(String[] args) {

for ( /* 初始化 */; /* 循环的判断条件 */; /* 每次循环后执行的步骤 */ ) {

// 当循环的条件成立执行循环体内代码

}

}

}

第二种是类似 C++ 的 foreach 使用方法,用于循环数组或者集合中的数据,相当于把上一种方式中的循环变量隐藏起来了,形式如下: 1

2

3

4

5

6

7class Test {

public static void main(String[] args) {

for ( /* 元素类型X */ /* 元素名Y */ : /* 集合Z */ ) {

// 这个语句块的每一次循环时,元素Y分别是集合Z中的一个元素。

}

}

} while 1

2

3

4

5

6

7class Test {

public static void main(String[] args) {

while ( /* 判定条件 */ ) {

// 条件成立时执行循环体内代码

}

}

} do...while 1

2

3

4

5

6

7class Test {

public static void main(String[] args) {

do {

// 需要执行的代码

} while ( /* 循环判断条件 */ );

}

}

注意事项¶

类名与文件名一致¶

创建 Java 源程序需要类名和文件名一致才能编译通过,否则编译器会提示找不到类。通常该文件名会在具体 OJ 中指定。

例:

Add.java 1

2

3

4

5class Add {

public static void main(String[] args) {

// ...

}

}

在该文件中需使用 Add 为类名方可编译通过。 build本页面最近更新:,更新历史

edit发现错误?想一起完善? 在 GitHub 上编辑此页!

people本页面贡献者:OI-wiki

copyright本页面的全部内容在

评论

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值