HelloWorld
// cmd 使用 javac 把.java文件编译为.class的二进制文件
// 创建一个类
public class HelloWorld {
public static void main(String[] args){
System.out.println("Hello World!");
int i = 0;
System.out.println(i); // 变量
}
}# 编译
javac HelloWorld.java
# 运行
java HelloWorld # 可以不带后缀- jdk 是什么
- jvm 虚拟机:运行 java 的地方
- 核心类库: java 已经写好的方法
- 开发工具: javac,java,jdb...
- jre 是什么
- jre 是运行环境
- jvm 核心类库 运行工具
- jdk,jre,jvm 的关系
- jdk 包含 jre
- jre 包含 jvm
字面量分类
整数: 666, -88
小数: 13.14, -5.12
字符串: "Hello" (双引号包括)
字符: 'A' '我' (单引号)
布尔类型: true
空类型: null
变量
整型(4 种) 浮点型(2 种) 字符型(1 种) 布尔型(1 种)
整数类型
- byte:8 位,范围为 -128 到 127。
- short:16 位,范围为 -32,768 到 32,767。
- int:32 位,范围为 -2^31 到 2^31-1。
- long:64 位,范围为 -2^63 到 2^63-1。
浮点数类型
- float:32 位,单精度浮点数 3.4028235 × 10^38。
- double:64 位,双精度浮点数 1.7976931348623157 × 10^308。 字符类型
- char:16 位,存储单个字符,使用 Unicode 编码,范围为 0 到 65,535。
public class Variable {
public static void main(String[] args) {
// 基本数据类型示例
// 整数类型
byte exampleByte = 100; // 示例的 byte 类型变量
short exampleShort = 30000; // 示例的 short 类型变量
int exampleInt = 100000; // 示例的 int 类型变量
long exampleLong = 10000000000L; // 示例的 long 类型变量(注意 'L' 后缀)
// 浮点数类型
float exampleFloat = 10.5f; // 示例的 float 类型变量(注意 'f' 后缀)
double exampleDouble = 20.99; // 示例的 double 类型变量
// 字符类型
char exampleChar = 'A'; // 示例的 char 类型变量
// 布尔类型
boolean exampleBoolean = true; // 示例的 boolean 类型变量
// 引用数据类型示例
// 类类型
String exampleString = "Hello, Java!"; // 示例的 String 类型变量
// 接口类型(实现接口的类)
// List<String> exampleList = new ArrayList<>(); // 示例的 List 接口变量(需要 import java.util.*)
// 数组类型
int[] exampleArray = { 1, 2, 3, 4, 5 }; // 示例的 int 数组
// 枚举类型
enum Days {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
Days exampleDay = Days.MONDAY; // 示例的枚举类型变量
}
}类型转换
int a = 110;
long b = 113;
// 低精度转高精度,由于 long 的范围比 int 大,所以可以自动转
b = a;
// 高精度住低精度,由于 long 的范围比 int 大,所以需要强制转
a = (int)b;隐式转换
数值类型:byte -> short -> int -> long -> float -> double
字符类型转整型:char -> int
如何提取文档注释
假设有以下一段代码,我们需要生成关于代码的文档说明。那么就可以使用 JDK 中所提供的 javadoc 命令来提取代码的文档注释。
/**
* 第一个 Java 程序
* 这是初学者基本都会写的一个程序
* @author 村雨遥
* @version 1.0
*/
public class HelloWorld {
/**
* 主函数:程序入口
* @param args 主函数参数列表
*/
public static void main(String[] args){
System.out.println("Hello World!");
}
}然后利用以下命令就可以生成我们的文档注释。
javadoc -d helloworld -author -version -encoding UTF-8 HelloWorld.java-d:指定生成文档的目录 -author:显示作者信息 -version:显示版本信息 -encoding:指定编码格式
生成的文档会保存在 helloworld 目录下。
jar 文件的创建
准备一个能输出 Hello World! 的 Java 源代码,命名为 HelloWorld.java
public class HelloWorld {
public static void main(String[] args){
System.out.println("Hello World!");
}
}javac 命令对该文件进行编译,然后会生成 HelloWorld.class 字节码文件。
javac HelloWorld.java然后,利用 jar 命令来对生成的字节码文件进行打包。
jar -cvf HelloWorld.jar HelloWorld.class其中 c 表示创建一个新 jar 包,v 表示创建过程中打印创建过程中的信息,f 则表示对新生成的 jar 命名。
最后,利用以下命令来运行 jar 包。
java -jar hello.jar不过并不会顺利出现我们想要的结果,此时会报错 hello.jar 中没有主清单属性。这是因为我们还没有在 MENIFEST.MF 文件中添加 Main-Class 属性。
用压缩软件打开刚创建的 hello.jar,里边除了 HelloWorld.class 文件之外,还会多一个 META-INF 文件夹,里边还有一个 MENIFEST.MF 文件,此时我们只需要用编辑器打开该文件,然后在文件中加入以下代码。(记得添加之后要保证整个文件最后保留一行空行)
Main-Class: HelloWorld添加完成之后,再次运行 java -jar hello.jar ,就可以成功在控制台打印 Hello World! 了。
输入输出流
Java 标准库 java.io 提供了 File 对象用于操作文件和目录
- File(String pathName) 通过将给定路径名字符串转换为抽象路径名来创建新实例
- File(String parent, String child) 从父路径名字符串和子路径名字符串创建新实例
- File(File parent, String child) 从父抽象路径名和子路径名字符串创建新实例
import java.io.File;
/**
* @author : cunyu
* @version : 1.0
* @className : FileObject
* @date : 2021/4/20 9:20
* @description : 创建 File 对象的三个构造方法
*/
public class FileObject {
public static void main(String[] args) {
File file1 = new File("D:/PersonalFiles/github/githubCodes/IDEA/TheWay2Java/IOStream/data/1.txt");
System.out.println(file1);
File file2 = new File("D:/PersonalFiles/github/githubCodes/IDEA/TheWay2Java/IOStream/data", "1.txt");
System.out.println(file2);
File file3 = new File("D:/PersonalFiles/github/githubCodes/IDEA/TheWay2Java/IOStream/data");
File file4 = new File(file3, "1.txt");
System.out.println(file4);
}
}
public class FilePath {
public static void main(String[] args) throws IOException {
File file = new File("../data/1.txt");
System.out.println(file.getPath());
System.out.println(file.getAbsolutePath());
System.out.println(file.getCanonicalPath());
}
}文件和目录操作
import java.io.File;
import java.io.IOException;
/**
* @author : cunyu
* @version : 1.0
* @className : CreateAndDelete
* @date : 2021/4/20 10:40
* @description : 创建&删除
*/
public class CreateAndDelete {
public static void main(String[] args) throws IOException {
File file1 = new File("D:/PersonalFiles/github/githubCodes/IDEA/TheWay2Java/IOStream/data/2.txt");
if (file1.createNewFile()) {
System.out.println("创建文件成功");
} else {
System.out.println("创建文件失败");
}
if (file1.delete()) {
System.out.println("删除文件成功");
} else {
System.out.println("删除文件失败");
}
File file2 = new File("D:/PersonalFiles/github/githubCodes/IDEA/TheWay2Java/IOStream/data/demo");
if (file2.mkdir()) {
System.out.println("创建文件夹成功");
} else {
System.out.println("创建文件夹失败");
}
File file3 = new File("D:/PersonalFiles/github/githubCodes/IDEA/TheWay2Java/IOStream/data/JavaSE/demo");
if (file3.mkdirs()) {
System.out.println("创建多级目录成功");
} else {
System.out.println("创建多级目录失败");
}
}
}