Java与运行环境交互
来源:互联网 发布:unity3d建模 衣服褶皱 编辑:程序博客网 时间:2024/05/17 02:12
1. 垃圾回收
- 垃圾回收机制只负责回收堆内存中的对象,不回收任何物理资源,如数据库连接,网络IO等;
- 在垃圾回收机制回收对象之前,总会先调用它的finalize()方法,该方法可能使对象重新复活(让一个引用变量重新引用该对象),从而导致垃圾回收机制取消回收;
对象在内存中的状态:
a. 可达状态:当一个对象被创建后,若有一个以上的引用变量引用它,则这个对象在程序中处于可达状态,程序可以调用该对象的属性和方法;
b. 可恢复状态:当一个对象没有任何引用变量引用它时,就进入可恢复状态;
c. 不可达状态:没有任何引用,且调用了finalize方法后依然没有使该对象变成不可达状态,此时这个对象将永久性地失去引用,最后变成 不可达状态;只有一个对象处于不可达状态时,系统才会真正回收该对象所占有的资源;- 强制垃圾回收:
- a. 两个方法:
i. System的静态方法:System.gc();
ii. Runtime对象的实例方法:Runtime.getRuntime().gc(); - b. 查看垃圾回收后的提示信息:
i. Java -verbose:gc 类名
获取键盘输入
: a. Scanner类
: b. BufferedReader类i. BufferedReader不能读取基本类型的输入项,总是读取String对象;
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
String line = null;
try {
while ((line = bufferedReader.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}- 在Java中使用C语言
a. 对于一些特殊的功能,如访问操作系统底层硬件设备等,Java程序无法实现,必须借助C语言来完成;
b. 步骤:
i. Java程序中声明native()方法,类似于abstract方法,只有方法签名,没有实现。编译该Java程序,生成一个class文件;
ii. 用javah编译第一步生成的class文件,将产生一个.h文件;
iii. 写一个.cpp文件实现native方法,其中需要包含第2步产生的.h文件(.h文件中又包含了JDK带的jni.h文件);
iv. 将第三步的.cpp文件编译成动态链接库文件;
v. 在Java中用System类的loadLibrary..()方法或Runtime类的loadLibrary()方法加载第四步产生的动态链接库文件,Java程序中就可以调用这个native文件了; - System类
a. getenv、getProperties、getProperty等方法来访问程序所在平台的环境变量和系统属性;
b. gc方法通知系统进行垃圾回收;
c. runFinalization()通知系统进行资源清理;
d. 获取时间:currentTimeMillis()和nanoTime();都返回一个long型整数,都是与UTC1970年1月1日午夜的时间差;前者以毫秒为单位,后者以纳秒为时间单位;
e. identityHashCode(Object x)方法,返回指定对象的精确hashcode值,也就是根据该对象的地址计算得到的hashcode值。即使类的hashcode()被重写后,依然是根据对象的地址计算得到hashcode值;
f. 获取环境变量
// 获取系统所有的环境变量
Map
- 在Java中使用C语言
阅读全文
0 0
- Java与运行环境交互
- Java-----9、与运行环境交互
- 与运行环境交互
- Java学习笔记-----Java几个与运行环境交互类
- 与运行环境交互总结
- Java知识点复习2 与运行环境交互
- 疯狂Java学习笔记(32)-----------与运行环境交互
- Java学习笔记(32)-----------与运行环境交互
- 第7章 与运行环境交互
- 【14/9/5】与运行环境交互
- 疯狂JAVA讲义---第九章(上):与运行环境交互
- Java总结系列之与运行环境交互及常用工具类
- 运行环境交互
- WiFidog运行环境及与authpuppy交互数据
- FKJAVA读书笔记--第七章--与运行环境的交互
- 第九章与运行环境交互2015-05-26
- 第九章与运行环境交互2015-05-28
- 第九章与运行环境交互2015-05-28
- 微信支付之公众号支付
- HDOJ 2101 A + B Problem Too水题
- 【JavaSrcipt】substring方法小解析
- vim编辑器显示行数
- 【分享】记一次前端跨域请求后台无法set-cookie经历
- Java与运行环境交互
- js 查找标签属性
- 10月13日 并查集(生物链)
- OpenStack Tacker介绍
- LeetCode 56 Merge Intervals
- 匿名内部类持外部引用造成内存泄漏问题
- 面试题
- idea+maven+testNG,设置reportNG
- PageHelper的简单使用