修饰符适用范围
不用任何访问控制符就是包访问控制符;strictfp的作用是让浮点运算更加精确;native修饰的方法类似于抽象方法,但是是用C语言来实现,可以实现一些java不能完成的操作,但是也就失去的跨平台性。abstract和final不能同时使用;abstract和static不能同时使用;abstract和private不能同时使用;private和final同时使用无意义,因为private修饰的类本身不会被子类重写。
JAR文件
JAR文件是java档案文件通常是压缩文件
写的应用程序可以打包成JAR文件提供给别人,只要在别人系统的环境变量中添加这个就能提供给别人上使用
1.创建JAR文件:jar cf test.jar test
创建JAR文件并显示压缩过程:jar cvf test.jar test
不使用清单文件:jar cvfM test.jar test
自定义清单文件内容:jar cvfm test.jar manifest.mf test
key-value格式key:< >value
查看JAR包内容:jar tf test.jar
查看JAR包详细内容:jar tvf test.jar
解压缩:jar xf test.jar
带提示信息解压缩:jar xvf test.jar
更新JAR文件:jar uf test.jar Hello.class
更新时显示详细信息:jar uvf test.jar Hello.class
2.应用程序发布的另外两种方法:
JAR文件的运行方法:
3.用WinRAR解压JAR文件时,要手动建立META-INF路径,并在该路径下建立一个MANIFEST.MF文件(格式和自定义清单格式一样)
java还能生成WAR(Web应用文档)和EAR(企业应用文档)两种包
运行java的参数
程序入口的main必须用static修饰是因为JVM调用这个方法时,不会先创建这个方法的对象,然后通过对象调用它,JVM直接通过该类来调用主方法
scanner类:
scanner不仅可以读取用户输入还可以读取文件输入
系统相关
System类:它代表当前java程序的运行平台,程序不能创建System类的对象,可以直接调用System类提供的变量和方法。
加载文件和动态链接库主要对native方法有用。
它还提供了setIn()、 setOut()和 setErr(方法来改变系统的标准输入、标准输出和标准错误输出流。
System类还有两个获取系统当前时间的方法: currentTimeMillis(和 nanoTime(), 它们都返回一个long型整数。实际上它们都返回当前时间与UTC1970年1月1日午夜的时间差,前者以毫秒作为单位,后者以纳秒作为单位。
通过identityHashCode(Object x)方 法可以获得对象的identityHashCode 值(根据对象地址算出的,可以类似地址理解)
Runtime类:它代表了Java程序运行时的环境,每个java程序都有个对于的Runtime实例,通过该对象在运行时连接程序和环境。程序可以获取Runtime对象但是不能创建Runtime实例
Runtime 类也提供了gc0方法和runFinalization0方法来通知系统进行垃圾回收、清理系统资源,并提供了load(String filename)和loadLibrary(String libname)方法来加载文件和动态链接库。
它还可以直接单独启动一个进程来运行操作系统的命令(我理解的是可以直接调用在其他文件里面的代码)