java小白零基础学习记录2:基础知识二与HelloWorld程序

这里先介绍编译运行相关知识,然后解释一下程序。初学Java,随手记录所学。希望各位大佬帮忙指点。谢谢

1、编译运行与相关知识介绍

(1)编译文件

  编译文件使用的是使用javac命令,我们要先打开DOS命令窗口,测试javac命令是否可以使用。如果无法使用,可能是环境变量没有配置,或者配置进了用户变量里面。

  环境变量包括系统变量和用户变量:

    系统变量:范围比较大,系统变量会让计算机所有用户都起作用

    用户变量:范围比较小,这个变量只作用于当前用户

  我们使用下面两个命令测试是否配置完成环境变量:

    javac -version:查看编译器版本

    Java -version:查看虚拟机版本

  javac命令使用方法:javac Java源文件的路径

  在java文件目录下,直接选上路径然后cmd回车,可以直接将DOS命令窗口定位到当前目录。

(2)文件的运行

  前提:class文件已经生成

  Java命令的用法:java 类名(Java HelloWorld.class这种写法是错误的)

  这里介绍一下类名,一般Xxx.class文件,我们就叫它Xxx类。(具体后面讲解程序的时候说)

  例如:Java HelloWorld

  步骤:先使用cd命令切换到Xxx.class文件所在的路径→执行Java
Xxx(或者:在class文件目录下,直接选上路径然后cmd回车→执行Java Xxx)

(3)"Java.HelloWorld"的执行过程以及原理

   启动JVM------>JVM启动"类加载器classoader"------->类加载器找到对应的字节码文件(如果找不到会报 错误: 找不到或无法加载主类)装载到JVM中,JVM启动"解释器"将字节码解释为 二进制码---->操作系统执行二进制码与硬件交互。

  类加载器的作用:加载类。本质是类加载器去硬盘上找"类"对应的"字节码"文件。这里有些人操作是正确的,但是无法得到结果。可能是因为配置了claspath环境变量

  classpath环境变量:classpath环境变量隶属于Java,而path环境变量隶属于系统。Classpath环境变量一般表现为:classpath=A路径;B路径;C路径…

  A路径;B路径;C路径…是变量值。配置了之后只会在配置的路径下寻找,不会在当前路径下寻找。这个时候我们只需要在classpath里面加上当前目录这路径即可。当前 目录这个路径是一个“.”上一篇博客有介绍。

让我们看一下运行结果:

java小白零基础学习记录2:基础知识二与HelloWorld程序
2、HelloWorld程序的解释

  详细见程序注释(见图):

java小白零基础学习记录2:基础知识二与HelloWorld程序

介绍一**释种类的用法与用法

//单行注释只注释两个斜杠后面的信息从//开始算起,//前面的都不算注释
----------------------------分割线----------------------------------------------------------
/*
   这是多行注释,这个区域内的信息都是注释。(从第一个/*一直到*/之间的内容都是注释,无论写了几行)
*/
----------------------------分割线---------------------------------------------------------
/**
*类的注释信息(javadoc注释)

*@version 1.0

*@author ycy

*…

*(javadoc注释可以被javadoc命令识别,识别之后会把注释内容生成到帮助文档里)

*(特点是,每行的开头必须有*)

*/

3、相关书写规则与规范介绍

1、标识符

  在java源代码中,凡是程序员有权利命名的单词都是标识符

  详细解释见“identifier.java”文件(如图):

java小白零基础学习记录2:基础知识二与HelloWorld程序

2、标识符命名规则

  规则1:标识符只能由数字、字母(包括中文)、下划线、美元符号$组成。

  规则2:标识符不能以数字开头

  规则3:关键字不能做标识符(例如:public、class…)

  规则4:标识符是严格区分大小写的(但是对于类名来说,如果一个源文件中同时定义了A和a那么只生成一个。见“text2.java”见下图):
java小白零基础学习记录2:基础知识二与HelloWorld程序

  规则5:理论上无长度限制

3、标识符命名规范

  规则与规范的区别:规则(法律)必须遵守;规范(道德)可以不遵守,但一般不允许。

  规范1:见名知意

  规范2:遵循驼峰命名方式(有利于单词与单词之间进行分隔,例如:HelloWorld)

  规范3:类名、接口名有特殊要求(首字母大写,后面每个单词首字母大写,例如:UserText)

  规范4:变量名、方法名有特殊要求(首字母小写,后面每个单词首字母大写,例如:mingZi)

  规范5:所有常量名全部大写,并且单词之间采用下划线连接(USER_AGE)

4、关键字

  关键字的定义:sun公司开发Java语言时定义好的一些具有特殊含义的单词,全部是小写。不能用作标识符。下图是Java语言中的关键字:

关键字 含义
abstract 表明类或者成员方法具有抽象属性
assert 断言,用来进行程序调试
boolean 基本数据类型之一,声明布尔类型的关键字
break 提前跳出一个块
byte 基本数据类型之一,字节类型
case 用在switch语句之中,表示其中的一个分支
catch 用在异常处理中,用来捕捉异常
char 基本数据类型之一,字符类型
class 声明一个类
const 保留关键字,没有具体含义
continue 回到一个块的开始处
default 默认,例如,用在switch语句中,表明一个默认的分支。Java8 中也作用于声明接口函数的默认实现
do 用在do-while循环结构中
double 基本数据类型之一,双精度浮点数类型
else 用在条件语句中,表明当条件不成立时的分支
enum 枚举
extends 表明一个类型是另一个类型的子类型。对于类,可以是另一个类或者抽象类;对于接口,可以是另一个接口
final 用来说明最终属性,表明一个类不能派生出子类,或者成员方法不能被覆盖,或者成员域的值不能被改变,用来定义常量
finally 用于处理异常情况,用来声明一个基本肯定会被执行到的语句块
float 基本数据类型之一,单精度浮点数类型
for 一种循环结构的引导词
goto 保留关键字,没有具体含义
if 条件语句的引导词
implements 表明一个类实现了给定的接口
import 表明要访问指定的类或包
instanceof 用来测试一个对象是否是指定类型的实例对象
int 基本数据类型之一,整数类型
interface 接口
long 基本数据类型之一,长整数类型
native 用来声明一个方法是由与计算机相关的语言(如C/C++/FORTRAN语言)实现的
new 用来创建新实例对象
package
private 一种访问控制方式:私用模式
protected 一种访问控制方式:保护模式
public 一种访问控制方式:共用模式
return 从成员方法中返回数据
short 基本数据类型之一,短整数类型
static 表明具有静态属性
strictfp 用来声明FP_strict(单精度或双精度浮点数)表达式遵循IEEE 754算术规范
super 表明当前对象的父类型的引用或者父类型的构造方法
switch 分支语句结构的引导词
synchronized 表明一段代码需要同步执行
this 指向当前实例对象的引用
throw 抛出一个异常
throws 声明在当前定义的成员方法中所有需要抛出的异常
transient 声明不用序列化的成员域
try 尝试一个可能抛出异常的程序块
void 声明当前成员方法没有返回值
volatile 表明两个或者多个变量必须同步地发生变化
while 用在循环结构中

5、public class与class的区别

  5.1、public的类可以没有,但如果有,public修饰的类名必须与源文件名保持一致。且只能有一个。(如果没有按照要求书写会出现下面的情况):java小白零基础学习记录2:基础知识二与HelloWorld程序
java小白零基础学习记录2:基础知识二与HelloWorld程序

  5.2 一个Java源文件中可以定义多个class,一个class的定义会生成一个class文件。

  5.3 每个类都可以编写入口(一般不这么写)(这种情况和上面的一起实验)如图:
java小白零基础学习记录2:基础知识二与HelloWorld程序
java小白零基础学习记录2:基础知识二与HelloWorld程序
下一篇博客会写数据的相关知识,下周大概会更新三到四篇。欢迎各位大佬前来指点与教学!