Java不是完美的,Java的不足除了体现在运行速度上要比传统的C++慢许多之外,Java无法直接访问到操作系统底层(如系统硬件等),为此Java使用native方法来扩展Java程序的功能. 可以将native方法比作Java程序同C程序的接口,其实现步骤: 1.在Java中声明native()方法,然后编译: 2.用javah产生一个.h文件: 3.写一个.cpp文件实现native导出方法,其中需要包含第二步产生的.h文件(注意其中又包含了JDK带的jni.h文件): 4.将第三步的.…
在Java中native是关键字.它一般在本地声明,异地用C和C++来实现.它的声明有几点要注意:1)native与访问控制符前后的关系不受限制.2)必须在返回类型之前.3)它一般为非抽象类方法.4)native方法在异地实现,象抽象方法一样,所以没有方法体,以分号结束.如下列5种声明: native public void f();                         正确. private native void f();                        正确. p…
在非常多情况下,java须要调用其它语言的代码,比方c的代码.那么这个时候java中native方法就发挥作用了.以下就介绍native方法的使用. 一.JNI使用流程 a.编写带有native声明的方法的Java类 b.使用javac命令编译编写的Java类 c.使用java -jni ****来生成后缀名为.h的头文件 d.使用其它语言(C.C++)实现本地方法 e.将本地方法编写的文件生成动态链接库 二.实践 1.编写类代码 package com.sunny.demo; public c…
1.对象的创建和销毁 1.1 对象的创建 这里只介绍创建对象与构造方法的关系 (1).每实例化一个对象就会自动调用一次构造方法,实质上这个过程就是创建对象的过程,准确的说,在Java语言中使用new操作符调用构造方法创建对象. (2).当创建对象时,自动调用构造方法,也就是说在Java语言中,初始化与创建对象是捆绑在一起的. (3).每个对象都是相互独立的,在内存中占独立的内存地址,并且每个对象都有自己的生命周期,当一个对象的生命周期结束时,对象变成垃圾,由Java虚拟机回收处理. 1.2 对象…
前几天看了篇关于java中equals和hashCode方法的解析 1.Object类中的equals方法和hashCode方法. Object类中的equals和hashCode方法简单明了,所有的类都继承了这两个方法,只是有些类(String.Integer等)会重写这两个方法实现自己的更详细功能,之后会重点介绍. ① equals(): ? 1 2 3 public boolean equals(Object obj) {         return (this == obj);    …
Java虚拟机栈的特征 线程私有 后进先出(LIFO)栈 存储栈帧,支持Java方法的调用.执行和退出 可能出现OutOfMemoryError异常和StackOverflowError异常 Java本地方法栈的特征 线程私有 后进先出(LIFO)栈 作用是支撑Native方法的调用.执行和退出 可能出现OutOfMemoryError异常和StackOverflowError异常 有一些虚拟机(如HotSpot)将Java虚拟机栈和本地方法栈合并实现 栈帧的概念和特征 Java虚拟机栈中存储的…
Java 虚拟机可以看作一台抽象的计算机,如同真实的计算机,它也有自己的指令集和运行时内存区域. Java 虚拟机在执行 Java 程序的过程中会把它所管理的内存(运行时内存区域)划分为若干个不同的数据区域. 如下图所示: 一.程序计数器 Program Counter Register 1.定义:程序计数器是当前线程所执行字节码的行号指示器. 2.线程私有内存的原因:Java 中的多线程是线程间轮流切换并需要 CPU 给予时间片的方式实现的.在任何一个确定的时刻,都只有一个线程在执行指令.为了…
理解JAVA - 面向对象(object) - 属性,方法 多态的体现:    向上造型,父类接收子类对象:向上造型:    从父类角度看不到子类独有的方法:面向对象,人类认知世界的方式:生活中每天都在多态:    这个人是谁,这是个人,多态来看待他了:    他是老师  把它向下造型来看待了,他是老师,知道他能讲课了,老师是人下面的子类型:我们每天都已多态来接收事物,然后向下造型:    这是人,这人是老师:    这是车,这车是奥迪小时候,不知到是什么,就问这是什么东西,世间万物都能成为东西…
java中substring的使用方法 str=str.substring(int beginIndex);截取掉str从首字母起长度为beginIndex的字符串,将剩余字符串赋值给str: str=str.substring(int beginIndex,int endIndex);截取str中从beginIndex開始至endIndex结束时的字符串,并将其赋值给str; 下面是一段演示程序: public class StringDemo{ public static void main…
Java中Set的contains()方法 -- hashCode与equals方法的约定及重写原则 翻译人员: 铁锚 翻译时间: 2013年11月5日 原文链接: Java hashCode() and equals() Contract for the contains(Object o) Method of Set 本文主要讨论 集合Set 中存储对象的 hashCode 与 equals 方法应遵循的约束关系. 新手对Set中contains()方法的疑惑 import java.uti…