1. java代码文件后缀必须是.java;
  2. java文件的名字,要与类名一致;
  3. java代码大多以类为单位,可以在一个java代码中写一个或者多个类;
  1. 一般情况下建议每个java代码写一个类就行;
  2. 写多个的时候需要注意:
  1. 多个类之间的关系是并列的,编译时候会一一对应生成相应的class文件;
  2. 编写的多个类只能有一个类用public修饰,且这个类需要与java文件名字一致;
  1. 在java类中可以编写属性,方法,构造器等代码;
  2. 使用Java命令编译运行一个java代码,有两步:
  1. javac Hello.java    -->javac 类名.java (编译器编译)  ;
  2. java Hello             -->java 类名           (解释器解释)   ;
  1. 一个类若要运行,java命令就会找一个叫做main的固定格式的方法:
  1. 普通类:可以用javac编译成class字节码文件,但是不能运行;
  2. 可以独立运行的类:有程序入口,可以直接运行,可以调用别的类;
  3. "一个叫做main的固定格式的方法"可以叫做main方法(主函数/main函数)-->public static void mian(String[] args){}
  1. jdk是向下兼容的,即高版本jdk编译的class文件,低版本jdk无法运行,低版本编译的class,高版本可以运行;
  2. 在书写java代码时候需要注意格式缩进的问题,tab键(相当于四个空格长度),这样做的目的不仅仅是为了美观,也是为了后期维护;
  3. 需要引入别人写好的类/代码,需要用到关键字import,目的是告诉jvm这个调用关系,从而在运行时候达到调用的目的,有两个特殊情况:
  1. 同包类无需导入;
  2. java.lang包下的类无需导入;
  1. jar包:
  1. 打包命令:
  1. Hello.class-->hello.jar:   jar -cvf hello.jar Hello.class   解释:将Hello.class打包到hello.jar;
  2. Hello.class , World.class --> hello.jar:  jar -cvf hello.jar Hello.class World.class;
  3. 目录下所有class文件打包到hello.jar:jar -cvf hello.jar *.class  解释:*--> 所有;
  4. 将xxx目录下但是【不包含】该目录打包到hello.jar:  jar -cvf hello.jar -C xxx .   ;
  5. 将xxx目录下但是【包含】该目录打包到hello.jar:  jar -cvf hello.jar xxx;
  1. 修改MF文件:(META-INF/MANIFEST.MF)
  1. 添加内容格式为:   key: value(冒号后面有个空格)
  1. Main-Class:包名.类名  ;
  2. 例如: Main-Class: Hello  
  3. 最后注意:文本最后需要留一个空行 ;
  1. 要运行的jar包调用了别的jar包:
  1. Hello.class调用了 Word.class 和 HelloWord.class;
  2. 三个class字节码文件分别都打了jar包;
  3. 需要在hello.jar的MF文件进行设置:
  1. Manifest-Version: 1.0
  2. Created-By: 1.8.0_102 (Oracle Corporation)
  3. Main-Class: xxx(包名).hello
  4. Class-Path: xxx.helloword.jar xxx.word.jar
  5. ------(此行为空)------
  1. jar包运行:
  1. 例如:java -jar hello.jar
  1. package对class的影响:
  1. package就是命名空间的设计;
  2. 例如:http://commons.apache.org/ 
  3. 上面的网址下的代码就是以pacakge org.apache.commons 开头的;
  4. 一个类加上包名,编译之后的class字节码文件是有相同的包结构的;
  5. 运行:
  1. package com.xxx.test;public class Hello{...}
  2. 编译后的class字节码文件在com/xxx/test/Hello.class;
  3. 运行时候要加入包名:java com.xxx.test.Hello;
  1. javac -d . Hello.java  可以指定编译之后的class文件存放位置;
  2. com.xxx.test.Hello-->Hello为简单类名  com.xxx.test.Hello为全限定名;
  3. 有关classpath的设置:
  1. 永久有效: 电脑的环境变量中设置;
  2. 当前窗口有效: set classpath=bin;
  3. 仅当前命令生效: java -cp bin Hello  ,注意:当前命令执行完就失效了 ;
  1. jdk4以后,带包的类调用不带包的类会报错;
  1. java文件和class文件存放规则:
  1. xxx.java  存放到src目录
  2. xxx.class 存放到bin目录