HelloWorld

Java语言特点

面向对象性:
  两个要素:类、对象
  三个特征:封装、继承、多态
健壮性:① 去除了C语言中的指针 ②自动的垃圾回收机制 -->仍然会出现内存溢出、内存泄漏
跨平台型:write once,run anywhere:一次编译,到处运行
功劳归功于:JVM

 

JDK、JRE、JVM的关系

 

配置环境变量 

为什么要配置环境变量path?
    开发程序,需要使用JDK中提供的工具,工具在JDK安装目录的bin目录下(java.exe/javac.exe)。
    在DOS命令下使用这些工具,就要先进入JDK的bin目录下,
    这个过程就会非常麻烦(1、来回切换目录 2、生成一堆源文件和字节码文件,它们会跟这些工具混淆在一起)。
    如果不进入JDK的bin目录下,这些工具就不能使用,会报错。
    配置环境变量的意义:告诉操作系统,我们使用的JDK开发工具具体在那个目录下。
    要想在任意目录下都可以使用jdk的开发工具,就必须配置环境变量。
为什么要配置环境变量classpath?
    没有配置classpath,类加载器从当前路径下加载class文件。
    classpath是java的一个环境变量,用来给classloader指路,告诉类加载器到指定的位置去搜索字节码文件。
    如果使用 JDK1.5 以上就不需要配置CLASSPATH这个环境变量!JRE 会自动搜索当前路径下的类文件及相关jar文件。

配置步骤:
  1、右击"电脑"找到属性这一项--->点击"高级系统属性"--->点击"环境变量"
  2、在系统变量中新建JAVA_HOME变量,并配置JDK的完整路径(C:\Program Files\Java\jdk1.8.0_291)。
  3、在用户变量中新增JDK中bin的路径,可以是直接路径(C:\Program Files\Java\jdk1.8.0_291\bin)或者相对路径(%JAVA_HOME%\bin)。
    4、在系统变量中新增CLASSPATH变量,并配置路径(.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tool.jar;)。
    4、配置完成后保存,关闭已经打开的CMD黑窗口,并重新启动,环境变量才会生效。
    5、在CMD黑窗口中输入 java或者java -version命令,检查环境变量是否配置成功。

 

HelloWorld

public class HelloWorld{
    public static void main(String[] args){
        System.out.println("Hello,World!");
    }
}
步骤:
    1、在DOS窗口中,切换当前目录到Java源程序所在的目录。 
        命令:cd java文件所在的目录。
    2、编译源文件,生成字节码文件。
        命令:javac HelloWorld.java
    3、运行Java源文件。
        命令:java HelloWorld

程序解析:
  HelloWorld 类名,
        一个源文件可以有多个类、带有public的类要与文件名保持一致。
        类名使用 UpperCamelCase 风格,但以下情形例外:DO / BO / DTO / VO / AO / PO / UID 等。       
    public 权限修饰符,代表全局所有。
    static 状态修饰符,代表静态的。
        它描述的变量、方法以及块在类加载时运行,只能通过类名进行调用。
        静态修饰的东西存在于方法区/元空间中。      
    void 返回值类型,代表返回值为空。
    main 主函数,程序执行的唯一入口。
    String[] args 方法的参数列表,[]数组
    System.out.println()
        System 是系统类。
        out 是标准输出对象。
        println() 是一个方法,表示换行输出。如果不想换行输出就用print()。
        这句话的用法是调用系统类 System 中的标准输出对象 out 中的方法 println()。
        
运行原理:
    1、根据环境变量配置,java通过编译器(javac.exe)对源代码(XXX.java)进行语法的检查,如果语法是正确的,则编译通过,生成字节码文件。
    2、启动类加载器ClassLoader,类加载器从当前路径下找字节码文件(XXX.class),找到之后再加载到JVM当中。
    3、JVM将字节码文件解释成二进制文件。
    4、操作系统读取二进制文件,并于硬件进行交互。
    
可能会出现的错误:
    报错1、找不到文件:Test.java
    可能出现以下原因:源文件名不存在或者写错;当前路径错误;后缀名隐藏问题。
    报错2、找不到或者无法加载主类Test
    可能出现以下原因:类文件名写错,尤其是文件名与类名不一致;类文件不在当前路径下,或者不在classpath指定路径下。
    报错3、类Test是公共的,应在名为Test.java的文件中声明
    可能出现以下原因:声明为public的类与文件名一致,否则编译失败。
    错误4、需要“;”。
    可能出现以下原因:根据提示,找到出错代码出现的位置,添加“;”。
    报错5、Bad command or file name或 javac:command not found
    可能出现以下原因:反复检查jdk安装是否出现问题,特别是可执行路径的位置。
    报错6、java.lang NoClassDefFoundError
    可能出现以下原因:仔细检查出问题的类名。
    报错7、test(t为小写)
    可能出现以下原因:重新执行命令 java Test
    报错8、Welcome/java
    可能出现以下原因:错误地输入了Java Welcome.java ,应该重新输入 java Welcome
    错误9、虚拟机没有找到相关类
    可能出现以下原因:检查环境变量。
    报错10、javac 不是内部或外部命令……
    可能出现以下原因:Path 变量配置错误导致没有找到 javac 命令 
    报错11、NoSuchMethodError:main 
    可能出现以下原因:找不到 main 方法,应该是 main 方法书写有误。
    报错12、文件夹中可以看到 Welcome.java 文件,在编译时出现’javac 找不到文件……
    可能出现以下原因:可能是操作系统显示设置的问题,隐藏了文件的扩展名。
    报错13、编码GBK的不可映射字符
    可能出现以下原因:指定utf-8的编译方式( javac -encoding utf-8 helloworld.java)

 

posted @ 2022-09-21 17:00  小孙不是程序员  阅读(305)  评论(0编辑  收藏  举报
Live2D