【第2天】Java环境变量、第一个Java程序、Java中的软件包结构以及常用Java工具命令

版权声明:©2018 本文為博主來秋原創,轉載請註明出處,博主保留追責權利。 https://blog.csdn.net/qq_30257081/article/details/83792849

1 环境变量

1.1 与JAVA相关的三个环境变量

       有些环境变量只是为了简化开发流程提高开发效率,可以不设置。环境变量分为:PATH、CLASSPATH、JAVA_HOME。其中CLASSPATH、JAVA_HOME是Java特有的环境变量,PATH的默认变量值为C:\Windows\System32目录。

名称 作用对象 作用
PATH 操作系统 让操作系统更加快捷地找到并使用这个路径下的命令(应用程序的名字)。
CLASSPATH 类加载器 让类加载器明确去哪里寻找.class。
JAVA_HOME 其他程序 告诉其他程序或来访机器JDK的位置,多用于网络、WEB等开发。
  • PATH可类比“C:\Windows\System32中计算器、记事本通过控制台找到并使用”理解,在这里的意义是让操作系统通过PATH可以找到java、javac等指令,来执行它们各自对任意目录下源文件、字节码文件的操作。
  • .java文件编译成功后在当前目录生成.class文件,如果CLASSPATH设置为E:\java,类加载器只会到E:\java下寻找.class文件,无法搜索其他目录的.class文件(这个变量通常不设置,默认为".",指当前.java文件所在目录)。

1.2 配置环境变量

1.2.1 在控制台中设置(一次性)

       在Linux/Unix中常用,在Windows中不常用。

set XXX=值

		  set PATH=C:\Program Files\Java\jdk1.X.0_XX\bin
		  set PATH = 值		[错误的 等号两边不能加空格]
		  set PATH			[意为找到所有以PATH开头的环境变量的值]
		  set				[意为找到所有的环境变量的值]

		  set CLASSPATH=.   [默认可以不写,意为找到所有的环境变量的值]
		  set PATH=C:\Program Files\Java\jdk1.X.0_XX\bin
		  或
		  set CLASSPATH=.   [默认可以不写,意为找到所有的环境变量的值]
		  set JAVA_HOME=C:\Program Files\Java\jdk1.X.0_XX
		  set PATH=%JAVA_HOME%\bin
  • “%%”的意义是取双百分号“%%”中间环境变量名中的路径,如果设置了JAVA_HOME,在PATH中直接使用“%JAVA_HOME%\bin”即可。需要注意的是,Windows10系统的PATH变量要写绝对路径,否则会出现bin目录中只有“java”指令可以使用的情况。
  • 环境变量的名字尽量大写(Windows不区分大小写;但是Linux/Unix区分大小写,必须要)。
  • 若有多个环境变量路径,其之间使用分号“;”隔开。

1.2.2 添加到“此电脑”属性中(长效)

       右键 此电脑–>属性–>高级系统属性–>环境变量,以此修改系统或者用户的PATH路径。

2 第一个Java程序

//定义一个公共的类,类名叫HelloWorld
//class:表示下面要定义的是一个类,class是java中的关键字,创建对象的模板
//HelloWorld:类名,标识符(名词)
//public修饰的类,main方法类名需要和文件名一模一样。一个文件里面最多可以出现1个public修饰的类
//{}:类体
class HelloWorld{
    //方法的定义需要三个部分:
	//修饰符 + 返回类型 + 方法签名(方法名 + 参数)
	//修饰符(形容词):public static 
	//public static void main(String[] args){}
	//public:公共的,表示谁都可以访问的
	//static:静态的
	//void:表示没有返回类型(方法执行结束之后,返回给我们数据的类型)
	//main:方法名,作为程序的入口,程序一旦执行底层只找main方法
	//():方法参数,方法执行的过程中,需要我们提供的数据
	//String[]:参数,String为官方提供的核心类*,[]表示数组
	//args:参数名 标识符  
	//{}:方法体
	//意为定义一个公共的/静态的/没有返回类型的main方法
	public static void main(String[] args){
		//打印显示内容
		//System:Sun公司官方提供的核心类*
		//“.”:表示“的”,java中的调用用.表示		
		//out:表示输出
		//println:打印显示一行数据(print line)
		//“;”:java中每个语句的结束需要加";"
		System.out.println("Hello World : )");
	}
}
  • *Sun公司官方提供的核心类:查看方法:jdk目录–>src目录
  • 修饰符:public、static等,形容词。
  • 标识符:类名、方法名、引用等自定义的名词。
  • 关键字:官方保留的具有特殊意义的名词。
  • 保留字:源码已被官方收编但是还没有赋予意思的名词,属于关键字的一种,比如unit。
  • 返回类型:方法执行结束之后,返回给我们的数据。
  • 方法参数:方法执行的过程中,需要我们提供的数据。
  • :中午请你帮我带饭:
		调用者:我
		执行者:你
		执行的方法:带饭

		修饰符+返回类型 + 方法签名(方法名 + 参数)
		public 饭 带饭(double money){
		}

		学信网 通过身份证查询一个学生的信息
		修饰符 + 返回类型 + 方法签名(方法名 + 参数)
		public Student 查询(String id){		
		}

		注册QQ的时候 需要用户提供用户名和密码
		修饰符+返回类型 + 方法签名(方法名 + 参数)
		public User getUser(String name,String passWord){		
		}
  • 面试题:public static和static public有区别吗
    没有区别,但是习惯上将修饰词摆在第一位。当看到修饰符为private,后面的就都不用看了,这样效率更高。

如何在cmd里面编译运行:
1. 打开cmd,此时默认在c盘,如果源文件在E:\课件\HelloWorld.java
2. 需要先切换盘符:E:回车
3. 进入目录:cd 这个源文件所在的文件夹(将所在的文件夹拖拽进来)
4. 编译阶段:javac HelloWorld.java,必须给出扩展名,Windows中可不区分大小写
5. 运行阶段:java HelloWorld,不给出扩展名,因在JVM上运行,所以一定区分大小写

3 软件包结构

       包结构 = 操作系统中的目录/文件夹

3.1 目录(包)的作用

  1. 按照文件的功能、性质进行分类,方便查找
  2. 给出不同的命名空间,从而让重名的文件可以同时存在

3.2 打包语句

       package com.xx.xx;

3.3 打包需要注意的问题

  • 打包语句必须将此放在.java源文件的第一行,需要注意的是,打包语句是package,导包语句是import,一个程序中必须有这两种时,打包语句一定在首行。另外导包时需要注意,Java中java.lang包(包含String等)的内容是都不需要导入的,其它必须导入,Java中底层加载的时候就用java.lang,因为省资源。

  • 包名(目录/文件名)不能命名为:

    1. com1-com9:打印机设备
    2. con:网络设备
    3. nul:空设备
  • 具有包名时控制台调试有所改变:

    • 编译阶段:
      以前:javac XXX.java
      现在:javac -d . XXX.java (这里的“-d”的意思是后面的这个参数将指定目录且指定的目录一定存在;第一个“.”指的是当前目录;如果.java中指定的package位置不存在,本条语句将自动创建包路径的目录)
    • 运行阶段:
      以前:java XXX
      现在:java 包结构.xx.xx(如com.xx.xx)

3.4 例子

       需求:在桌面写一个程序,定义包名为a.b,且将包编译到E盘根目录下并运行

package a.b;
class Exec110604{
	public static void main(String[] args){
		System.out.println("Hello World : )");
	}
}

编译运行过程

4 常用工具命令(非重点)

       这些工具命令的应用程序均在jdk–>bin目录下,这里着重介绍四个:java、javac、javadoc、jar

4.1 java

       编译指令

4.2 javac

       运行指令

4.3 javadoc

       javadoc -d 目录 XXX.java
       意为在这个目录(如果没有自动创建)下生成XXX.java的帮助文档(说明书)

注意:

  1. 能出现在文档中的注释都是标注在公共类、公共类的公共方法、公共变量上的
  2. 注释的方式只能是“/***/”

4.4 jar

       简要说其中一种压缩的语句: jar cvf XXX.jar YYY.class
       意为将编译完成的字节码文件YYY.class生成可执行的压缩归档文件XXX,jar

注意:

  1. 如果想将jar文件改为双击即可执行的应用程序,可查看.jar的压缩包,在META-INF目录下找到“MANIFEST.MF”清单文件,并在文档末尾添加一行“Main-Class: XXX”并在这行下面再另起一个空行,XXX代表主类类名
  2. 不过能双击的可执行jar文件是少数,多数不可执行。

4.5 native2ascii

可以将汉字转为对应的ASCII编码

猜你喜欢

转载自blog.csdn.net/qq_30257081/article/details/83792849