类加载器 classloader会根据classpath环境变量中的路径去搜索class文件。
环境变量CLASSPATH
classpath环境变量隶属于Java语言,不是Windows操作系统的,与path环境变量不同
classpath环境变量是给classloader指路的
Java.a执行后,先启动JVM,JVM启动classloader,去硬盘上通过classpath找A.class文件,找到则执行,找不到则报错
若classpath没有配置,默认从当前路径下找class文件(解释了day3中的问题),配置后,classloader只会配好的路径找,不从当前路径找,所以最好不配。
或者配置为:classpath=.;某个路径,表示先从当前路径开始找,找不到再到指定路径找。目前可以先不进行该配置,只做了解。
编译时的乱码问题
UTF-8:支持全球所以语言(编译器使用的方法)
GDK:只支持简体中文(ediplus使用的方式)
解决方法:统一两者。
使编译器采用GDK方式编译,语法:javac -ending GDK A.java
使editpuls采用UTF-8方式。
Java程序的注释
作用:用于解释和说明代码,不会被编译器编译,也不会被程序执行,帮助程序员快速解读程序。
三种注释方式:
单行注释:双斜杠后面的内容被注释(该行内)
多行注释:“/*”和“*/”中间的内容都被注释
javadoc注释:编写在这里面的注释,可以被javadoc命令解析提却并生成到帮助文档中
目前不是很用得到,写更复杂代码且需要给别人看时,可以用,想具体了解可以去单独搜搜看。
第一个HelloWorld程序详解
public class HelloWorld{
public static void main(String[] args){
System.out.println("hello world!");
}
}
第一排
public:表示公开的
class:表示定义一个类
HelloWorld:给类起名
{}:“{”开始,“}”结束,这之间的内容称为类体,类体中不能直接编写Java语句
第二排
叫做main方法,也叫主方法,是JVM规定的固定写法,程序从该位置进来执行,是程序的入口
只有args这个变量名可以更改
public:表示公开
static:表示静态的
void表示main方法执行结束之后不返回任何数据
{}:“{”开始,“}”结束,这叫方法体,方法体中由一行行Java语句构成,每条java语句由“;”结尾,遵循自上而下逐行执行的
第三排
作用:将字符串“HelloWorld”打印输出到控制台,并且输出后会换行
println是换行的,print不换行
以上程序中的双引号和分号都是半角的,不能使用中文的
public class和class的区别
一个Java源文件可以定义多个class文件,编译后一个class会对应生成一个class文件
如果在一个Java文件中定义了一个public类,类名编写和源文件名保持一致
public类可以没有,但如果有只能有一个public类
每个类都可以编写入口main方法
class x
{
public static void main(String[] args){
System.out.println("执行x!");
}
}
class y
{
public static void main(String[] args){
System.out.println("执行y!");
}
}
class z
{
public static void main(String[] args){
System.out.println("执行z!");
}
}
编译后生成三个class文件,x.class, y.class z.class
需要执行时,java 类名
实际开发中,一个软件入口一般一个