搜索
首页
笔记
案例
关于
课程列表
Java
Java简介
Dos常用命令
java语言概述
安装jdk及设置环境变量
编译及运行java程序
乱码问题解决
基本程序设计结构
关键字、保留字、标识符、注释
数据类型
变量、常量
运算符
数值类型之间的转换与赋值
强制类型转换
流程控制
System.exit()
数组
Arrays类常用方法
对象与类
面向对象概述
类与对象
对象的创建与使用
自定义类
类成员——属性
类成员——方法
类成员——构造器
方法参数按值传递
属性赋值过程
面向对象特性——封装
JavaBean
this的使用
package、import
面向对象的特征——继承
final关键字的作用
方法的重写(覆盖)
子类构造器
面向对象的特征——多态
对象类型转换
Object——所有类的超类
包装类
static关键字及单例模式
代码块
抽象类与模板方法模式
接口
Java接口
Java8新增静态方法及默认方法
Cloneable克隆
Comparable与Comparator
异常处理
异常分类及常见异常
异常处理机制——捕获异常
异常处理机制——声明异常
主动抛出异常及自定义异常类
异常处理技巧
日志
枚举
注解
反射
Class类
Modifier类
创建运行时类的对象
Field类
Method类
动态代理
Lambda
Lambda表达式
方法引用与构造器引用
变量作用域
集合
集合概述
Collection常用方法
Iterator迭代器接口
Collectio子接口之一——List
Collection子接口之一——Set
Map简介
Map常用方法
Map几个常见的实现类
Collections工具类
泛型
泛型概述
泛型类与泛型方法
擦拭法
泛型的限制与局限性
泛型与继承
通配符?的使用
多线程
程序、进程、线程
并行、并发
线程的生命周期
线程的创建与使用
线程之间的通信
线程安全问题解决办法
线程安全的懒汉单例模式
死锁的发生情况
IO流
Scanner、PrintWriter
File类的使用
IO流原理及流的分类
FileReader&FileWriter用法示例
FileInputStream&FileOutputStream用法示例
缓冲流
转换流
对象流
标准输入输出流、打印流、数据流
RandomAccessFile类
Java NIO概述
常用类
System类
Math类
BigInteger、BigDouble
Objects
java.util.UUID
Optional
字符串
字符串
字符串常用方法
字符串不可变性
字符串相等比较
关于字符串的拼接问题
字符串与其他数据类型之间的转换
StringBuffer、StringBuilder、StringJoiner
格式化输出
日期时间
JDK8 之前日期时间API
JDK8 中新日期时间API
关于时间日期的几个练习
Stream
Stream类介绍
创建Stream
Stream中间操作
Stream终止操作
新版本特性(>=9)
9~11jdk新特性
课程导航
计算机基础知识
C
Linux
linux常用软件
计算机网络
程序员修养
设计模式
工具
Git
composer
vim
IntelliJ IDEA
wireshark
laravel
Spring
SpringMVC
Maven
数据库
MySQL
Redis
MongoDB
JDBC
Mybatis
MyBatis-Plus
服务端编程
PHP
Java
shell script
JavaWeb
HTML / CSS
HTML
CSS
HTML5
CSS3
BOOTSTRAP
JavaScript
JavaScript
JQuery
layui
安装jdk及设置环境变量
乱码问题解决
编译及运行java程序
建立一个Hello.java文件,文件内容如下: ```java public class Hello { public static void main(String[] args) { System.out.println("Hello, java!"); } } ``` 注意,文件名前缀要和类名一致。接下来需要进行编译,使用编译命令javac Java规定,某个类定义的`public static void main(String[] args)`是Java程序的固定入口方法,因此,Java程序总是从`main`方法开始执行。 注意到Java源码的缩进不是必须的,但是用缩进后,格式好看,很容易看出代码块的开始和结束,缩进一般是4个空格或者一个tab。 ## 如何运行Java程序 Java源码本质上是一个文本文件,我们需要先用`javac`把`Hello.java`编译成字节码文件`Hello.class`,然后,用`java`命令执行这个字节码文件: ```ascii ┌──────────────────┐ │ Hello.java │<─── source code └──────────────────┘ │ compile ▼ ┌──────────────────┐ │ Hello.class │<─── byte code └──────────────────┘ │ execute ▼ ┌──────────────────┐ │ Run on JVM │ └──────────────────┘ ``` 因此,可执行文件`javac`是编译器,而可执行文件`java`就是虚拟机。 第一步,在保存`Hello.java`的目录下执行命令`javac Hello.java`: ``` $ javac Hello.java ``` 如果源代码无误,上述命令不会有任何输出,而当前目录下会产生一个`Hello.class`文件: ``` $ ls Hello.class Hello.java ``` 第二步,执行`Hello.class`,使用命令`java Hello`: ``` $ java Hello Hello, world! ``` 注意:给虚拟机传递的参数`Hello`是我们定义的类名,虚拟机自动查找对应的class文件并执行。 有一些童鞋可能知道,直接运行`java Hello.java`也是可以的: ``` $ java Hello.java Hello, world! ``` 这是Java 11新增的一个功能,它可以直接运行一个单文件源码! 实际开发中,我们会将源代码放在src目录中,而将编译过的类库文件存在在bin目录中。 ```java |---src | |---com |---studyjava |---unit1 |---Hello.java |---bin | |---com |---studyjava |---unit1 |---Hello.class # 编译 C:\Users\admin\Desktop\code\java\src>javac -d ../bin com/studyjava/unit1/Hello.java # 运行 C:\Users\admin\Desktop\code\java\bin>java com.studyjava.unit1.Hello ``` 需要注意的是,在实际项目中,单个不依赖第三方库的Java源码是非常罕见的,所以,绝大多数情况下,我们无法直接运行一个Java源码文件,原因是它需要依赖其他的库。
安装jdk及设置环境变量
乱码问题解决
文章目录