命令行参数
执行java程序时:
java <类名> [<命令行参数>]*
注意:
1. 参数须使用空格符及双引号分隔,作为实参传给main()
2. 双引号作为参数值,用两个双引号转义""
Example:
java TestCmdLineArgs Tom Kitty "Mr Brown"
系统属性
Key-Value
形式,记录当前操作系统和JVM等相关的环境信息- System.getProperties():获取所有可用的系统属性
- System或Properties类的getProperty(String):获取系统属性
System或Properties类的setProperty(String, String):添加系统属性
D:>java -Dkkk=vvv TestSystemProperties
应用场景不多,如:JDBC系统属性加载某种数据库驱动;使用系统属性指定邮件收发代理服务器的IP地址和端口号
这里写代码片
标准输入输出/标准IO
控制台输入输出
- System.out,标准输出,java.io.PrintStream类型
- System.in,标准输入,java.io.InputStream类型
- System.err,标准错误输出,java.io.PrintStream类型
- PrintStream类
- print()
- println()
- printf():提供数据格式化输出功能
读取输入的传统方法:
System.in,以字节为单位读入字节流;InputStreamReader以字符为单位,多次调用System.in读入;BufferReader提供readLine()方法读取对应数据源组成字符串返回这里写代码片
文件输入输出/文件IO
File类
- 创建File对象
这里写代码片
提供了目录管理的功能
File类的主要方法:
操作 主要方法 关于文件/目录名操作 String getName()
String getPath()
String getAbsolutePath()
String getParent()测试操作 获取常规文件信息操作 设置和修改操作 boolean delete()
void deleteOnExit():临时文件,jvm关闭自动删除目录操作
“读”操作相关类:
类名 说明 java.io.FileInputStream 以字节为单位 java.io.InputStreamReader java.io.FileReader 以字符为单位读取,InputStreamReader的子类 java.io.BufferedReader “写”操作相关类:
类名 说明 java.io.FileOutputStream 以字节为单位 java.io.OutputStreamWriter java.io.FileWriter OutputStreamWriter的子类 java.io.BufferedWriter java.io.PrintWriter 以字符为单位,支持汉字
可变参数
- 定义方法时,可指定使用任意数量的参数。用法:参数类型加
...
- 可变长度参数必须放在参数列表的最后,而且一个方法最多只能包含一个可变长度参数
- java中使用一维数组来处理可变参数的,所以可变参数可以通过
length
获取可变参数个数
这里写代码片
过时API
- 过时API存在替代物
- 移植Java代码时,可使用
-Xlint:deprecation
选项进行编译,以获取相关过时说明信息
javac -Xlint:deprecation TestDeprecation.java
- 用户自定义过时API
- 加入注释
@deprecated
- 加入注释
这里写代码片
注解(Annotation)
java语言采用了一类新的数据类型来描述注解——注解类型相当于类或接口,每一条注解相当于该类的一个实例。注解类型采用
@interface
标记来声明:public @interface Deprecated public @interface Override public @interface SuppressWarnings
- 元注解@Retention
Rentention 搭配 RententionPolicy使用;通过反射的方式读取。RetentionPolicy有3个值:
CLASS
注解的信息被保留在class文件(字节码文件)中当程序编译时,但不会被虚拟机读取在运行的时候RUNTIME
注解的信息会被编译器抛弃,不会留在class文件中,注解的信息只会留在源文件中SOURCE
注解的信息被保留在class文件(字节码文件)中当程序编译时,会被虚拟机保留在运行时
- 元注解@Retention
java.lang.Override注解
- 指明被注解的方法重写了父类中的方法,如果不是合法的方法重写则编译报错
java.lang.Deprecated注解
- 过时API
java.lang.SuppressWarnings注解
- 关闭编译器对指定的一种或多种问题的提示/警告
//关闭过时提醒 @SuppressWarnings(value={"deprecation"}) //其他写法 @SuppressWarnings(value={"deprecation","unchecked"}) @SuppressWarnings("deprecation") @SuppressWarnings("deprecation","unchecked")
Java归档工具
- 将多个文件或目录合并/压缩为单个java归档文件(jar, java archive)
jar主要作用:
- 发布和使用类库
- 作为程序组件或者插件程序的基本部署单位
- 打包与组件相关联的资源文件
语法:
jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] files ...
常用参数:
-C
:更改为指定的目录并包含以下文件
-v
:在标准输出中生成详细输出示例 1: 将两个类文件归档到一个名为 classes.jar 的档案中:
jar cvf classes.jar Foo.class Bar.class
示例 2: 使用现有的清单文件
'mymanifest'
并将foo/
目录中的所有文件归档到'classes.jar'
中:
jar cvfm classes.jar mymanifest -C foo/
将jar路径添加到系统变量
CLASSPATH
下,即可引用- 参考:classpath、path、JAVA_HOME的作用及JAVA环境变量配置
- JDK1.5以后,引用jre自带的类库,不再需要配置
CLASSPATH
- JDK所有java类,可在安装目录下
/jre/lib/rt.jar
找到