JNI技术对于多java开发的朋友相信并不陌生,即(java native interface),本地调用接口,主要功能有以下两点:
1、java层调用C/C++层代码
2、C/C++层调用java层代码
可能有些人会觉得jni技术破坏了Java语言的跨平台性,有这种想法可能是因为你对java理解得还不够深,如果你看看jdk源码,你会发现在jdk里面大量使用了jni技术,而且java虚拟机就是用本地语言写的,所以导致jvm并不能跨平台性,所以说java的跨平台性并不是100%的跨平台的。相反你应该看到使用...
分类:
移动开发 时间:
2015-01-05 13:01:33
阅读次数:
245
一、JDK source code命令行中:sudo apt-get install openjdk-7-source下好的jdk源码在 Linux 在目录 usr/lib/jvm/openjdk-7/src.zipWindows在目录 C:\Program Files\Java\jdk1.6.0....
分类:
系统相关 时间:
2014-12-18 18:13:28
阅读次数:
311
我们知道,所有整数都是通过二进制编码的形式存储在内存中的。比如32位的整数,最高位是符号位,0代表正数,1代表负数。那么怎么才能够将整数的二进制编码形式打印出来呢?Integer类提供了一个公有静态方法toBinaryString能够达到这一目的。我们来看看这段源码:public static St...
分类:
其他好文 时间:
2014-12-14 11:51:18
阅读次数:
286
在 JAVA 中四舍五入采用 Math.round(T a) 函数,函数返回的是一个 long 类型的长整型,参数 a 可以是 double 也可以是 float。查看 JDK 源码: public static long round(double a) { if (a != 0x1...
分类:
其他好文 时间:
2014-12-06 16:49:20
阅读次数:
154
通过看jdk源码发现Java字符串中有如下关系:
接口中的方法默认都是抽象的可以写也可以不写。
public interface CharSequence {
int length();
char charAt(int index);
CharSequence subSequence(int start, int end);
...
分类:
编程语言 时间:
2014-12-02 22:38:36
阅读次数:
254
前段时间为了研究JVM,于是去下了OpenJDK6编译一把,就因为少声卡驱动,又没查到如何解决,结果总是编译不成功,遂放弃。但是近来调试jdk源码的时候,发现很多调试信息都没有,看得我那个辛苦啊。正好一朋友成功编译了OpenJDK7,我就又去下了一个试编,虽然在CentOS下成功了,但是我Mac下又用不了,所以我就花了点时间再次在Mac下弄一次。整体来说还算顺利,现在已经很开心的用上了。...
分类:
系统相关 时间:
2014-12-01 14:22:38
阅读次数:
640
首先,从JDK源码来看,HashMap和HashTable都实现了Map接口:
可以看出,HashTable是从JDK1.0就有的,HashMap而是从JDK1.2才有的。
二者实现的接口一致。
因此,对外方法API也基本一致:
内部存储方式也基本一致,都是邻接表形式:
基本操作也基本一致,以put方法为例,都是先算Key的hashCode,然后以【has...
分类:
其他好文 时间:
2014-11-04 00:16:46
阅读次数:
223
从JDK源码可以看出,StringBuffer和StringBuilder都是继承自AbstractStringBuilder,其实这两个类的功能实现都是在AbstractStringBuilder实现的,两个子类只是简单地调用了一下super的方法。
差别在于StringBuffer的每个方法都加了synchronized修饰符,而StringBuilder没有,因此StringBuffer是...
分类:
其他好文 时间:
2014-11-03 00:06:11
阅读次数:
298
不理解多线程程序设计, 就无法真正理解 JavaSE 和 JDK 源码; 因为线程特性已经与Java 语言紧密地融合在一起。 如何学习多线程程序设计呢? 那看上去似乎总是显得有些神秘。首先, 必须透彻理解并发程序设计的基本原理和机制, 否则, 只是学习使用那些关键字、类的招式,恐怕只能...
分类:
编程语言 时间:
2014-10-20 20:56:17
阅读次数:
355
在本节中,简析java.util包所包含的工具类库,主要是集合相关的类库,其次还有正则、压缩解压、并发、日期时间等工具类。
本篇内容大致、简单的对于java.util包进行了一个描述,以后会逐渐进行内容补充,本篇文章相当于一个占位符,所谓先有了骨架,才能逐渐丰满。...
分类:
编程语言 时间:
2014-10-14 15:27:38
阅读次数:
164