Java
文章平均质量分 77
灵动代码~
这个作者很懒,什么都没留下…
展开
-
Java:单例模式的七种写法
第一种(懒汉,线程不安全): 1 public class Singleton { 2 private static Singleton instance; 3 private Singleton (){} 4 public static Singleton getInstance() { 5 if (instance ==原创 2015-12-02 10:35:49 · 619 阅读 · 0 评论 -
java理解“回调函数”
java理解“回调函数”所谓回调,就是客户程序CLIENT调用服务程序SERVER中的某个函数SA,然后SERVER又在某个时候反过来调用CLIENT中的某个函数CB,对于CLIENT来说,这个CB便叫做回调函数。例如Win32下的窗口过程函数就是一个典型的回调函数。一般说来,CLIENT不会自己调用CB,CLIENT提供CB的目的就是让SERVER来调用它,而且是CLIENT不得不提供原创 2013-08-29 14:31:04 · 497 阅读 · 0 评论 -
ant编译需要的build.xm文件
以下代友Copy一下,改改就可用,工具给咱不自动生成build.xml,咱可以改嘛!<?xml version="1.0"encoding="UTF-8"?><!--================================================--><!-- Build an Androidproject. --><原创 2013-08-29 14:33:09 · 885 阅读 · 0 评论 -
java中throw和throws的区别
1、throws关键字通常被应用在声明方法时,用来指定可能抛出的异常。多个异常可以使用逗号隔开。当在主函数中调用该方法时,如果发生异常,就会将异常抛给指定异常对象。2、throw关键字通常用在方法体中,并且抛出一个异常对象。程序在执行到throw语句时立即停止,它后面的语句都不执行。通过throw抛出异常后,如果想在上一级代码中来捕获并处理异常,则需要在抛出异常的方法中使用throws关键字在原创 2013-08-29 14:32:35 · 922 阅读 · 1 评论 -
Eclipse反编译工具Jad及插件JadCli…
Jad是一个Java的一个反编译工具,是用命令行执行,和通常JDK自带的java,javac命令是一样的。不过因为是控制台运行,所以用起来不太方便。不过幸好有一个eclipse的插件JadClipse,二者结合可以方便的在eclipse中查看class文件的源代码。下面介绍一下配置: A.下载JadClipse,http://jadclipse.sourceforge.net/wiki原创 2013-08-29 14:33:48 · 990 阅读 · 0 评论 -
JNI异常处理
在 Java 程序中使用本机方法,就以某种基本的方式破坏了 Java 安全性模型。因为 Java程序在一个受控的运行时系统(JVM)中运行,所以 Java平台设计师决定通过检查常见运行时系统错误(如数组下标、越界错误、空指针错误)来帮助程序员。从另一方面讲,由于 C 和 C++不使用此类错误检查,所以本机方法程序员必须自己处理所有错误情况,而在运行时,这些错误可以在 JVM 中被捕获。例原创 2013-08-29 14:33:52 · 797 阅读 · 0 评论 -
JNI引用Java对象
引用 Java 对象 基本类型(如整型、字符型等)在Java和平台相关代码之间直接进行复制。而Java 对象由引用来传递。虚拟机必须跟踪传到平台相关代码中的对象,以使这些对象不会被垃圾收集器释放。反之,平台相关代码必须能用某种方式通知虚拟机它不再需要那些对象,同时,垃圾收集器必须能够移走被平台相关代码引用过的对象。 全局和局部引用 JNI 将平台相关代码使用的对象引用分成原创 2013-08-29 14:33:57 · 930 阅读 · 0 评论 -
Java回调函数的理解
所谓回调,就是客户程序C调用服务程序S中的某个函数A,然后S又在某个时候反过来调用C中的某个函数B,对于C来说,这个B便叫做回调函数。例如Win32下的窗口过程函数就是一个典型的回调函数。一般说来,C不会自己调用B,C提供B的目的就是让S来调用它,而且是C不得不提供。由于S并不知道C提供的B姓甚名谁,所以S会约定B的接口规范(函数原型),然后由C提前通过S的一个函数R告诉S自己将要使用B函数原创 2013-08-29 14:33:59 · 566 阅读 · 0 评论 -
c++与java释放内存的比较
1, c++中允许创建局部对象,局部对象在代码块执行完后自动释放2, Java中部允许创建局部对象,只能通过new来创建对象所以如果MyClass是一个类名的话MyClass a;这句话如果在c++中,那么它就创建了一个MyClass对象而在Java中仅仅是声明了一个引用,它并没有创建对象3, C++中如果用new来创建对象,那么程序员必须通过delete来释放对象,否则会造成原创 2013-08-29 14:34:03 · 1019 阅读 · 0 评论 -
java里字节和字符分别
这不光是 Java 的概念,我们知道机器只知道字节,而字符却是语义上的单位,它是有编码的,一个字符可能编码成1个2个甚至3个4个字节。这跟字符集编码有关系,英文字母和数字是单字节,但汉字这些自然语言中的字符是多字节的。一个字节只能表示255个字符,不可能用于全球那么多种自然语言的处理,因此肯定需要多字节的存储方式。 当我们在处理 Java 时,比如 InputStream,原创 2015-11-17 10:39:10 · 814 阅读 · 0 评论 -
JVM崩溃问题分析
jni调用.dll的时候,经常碰见这类问题,于是在网上查了相关的资料,但最终也没有找到最合理的解释,就整理一些思路: 1、修改jvm的内存大小,非常频繁的输出大量的Log到控制台上JVM的处理有问题(也怀疑本身频繁的输出大量的Log到文件中JVM的处理有问题)。(每1秒钟就输出170k的Log)。 2、造成严重错误的原因有多种可能性。Java虚拟机自身的Bug是原因之一,但原创 2013-08-29 14:34:01 · 1180 阅读 · 0 评论 -
在Java中实现回调过程
在Java中实现回调过程摘要: Java接口提供了一个很好的方法来实现回调函数。假如你习惯于在事件驱动的编程模型中,通过传递函数指针来调用方法达到目的的话,那么你就会喜欢这个技巧。 作者:John D. Mitchell 在MS-Windows或者X-Window系统的事件驱动模型中,当某些事件发生的时候,开发人员已经熟悉通过传递函数指针来调用处理方法。而在Java原创 2013-08-29 14:31:02 · 416 阅读 · 0 评论 -
在JNI编程中避免内存泄漏(二)
JAVA 中的内存泄漏JAVA 编程中的内存泄漏,从泄漏的内存位置角度可以分为两种:JVM 中 Java Heap 的内存泄漏;JVM 内存中native memory 的内存泄漏。Java Heap 的内存泄漏Java 对象存储在 JVM 进程空间中的 Java Heap 中,Java Heap 可以在 JVM 运行过程中动态变化。如果Java 对象越来越多,占据 Java Heap原创 2013-08-29 14:34:09 · 795 阅读 · 0 评论 -
JNI避免内存泄漏(一)
JAVA 中的内存泄漏JAVA编程中的内存泄漏,从泄漏的内存位置角度可以分为两种:JVM 中 Java Heap 的内存泄漏;JVM 内存中 nativememory 的内存泄漏。Java Heap 的内存泄漏Java 对象存储在 JVM 进程空间中的 Java Heap中,Java Heap 可以在 JVM 运行过程中动态变化。如果 Java 对象越来越多,占据 Java Heap原创 2013-08-29 14:34:14 · 919 阅读 · 0 评论 -
在JNI编程中避免内存泄漏
总结本文阐述了 JNI 编程可能引发的内存泄漏,JNI 编程既可能引发 Java Heap 的内存泄漏,也可能引发 nativememory 的内存泄漏,严重的情况可能使 JVM 运行异常终止。JNI软件开发人员在编程中,应当考虑以下几点,避免内存泄漏:native code 本身的内存管理机制依然要遵循。使用 Global reference 时,当 native code 不再需要原创 2013-08-29 14:34:11 · 936 阅读 · 0 评论 -
弱引用(weakReference)和softRef…
WeakReference:弱引用对象,它们并不禁止其指示对象变得可终结,并被终结,然后被回收。弱引用最常用于实现规范化的映射。 假定垃圾回收器确定在某一时间点上某个对象是弱可到达对象。这时,它将自动清除针对此对象的所有弱引用,以及通过强引用链和软引用,可以从其到达该对象的针对任何其他弱可到达对象的所有弱引用。同时它将声明所有以前的弱可到达对象为可终结的。在同一时间或晚些时候,它将那些原创 2013-08-29 14:31:13 · 713 阅读 · 0 评论 -
System.load和System.loadLibrary
System.load 和 System.loadLibrary详解1.它们都可以用来装载库文件,不论是JNI库文件还是非JNI库文件。在任何本地方法被调用之前必须先用这个两个方法之一把相应的JNI库文件装载。2.System.load 参数为库文件的绝对路径,可以是任意路径。例如你可以这样载入一个windows平台下JNI库文件:Java代码 和 System.loadLib原创 2013-08-29 14:32:54 · 792 阅读 · 0 评论 -
Ubuntu bash: ./java: cannot execute binary file
问题现象描述:到orcal官网上下载了两个jdk:(1)jdk-7u9-linux-i586.tar.gz ------------>32位(2)jdk-7u9-linux-x64.tar.gz ------------>64位没管那么多就先安装了jdk-7u9-linux-x64.tar.gz,具体安装步骤百度下吧,这里就不说了。安装后环境变量也配好后,但问题出现了:bash:原创 2013-08-29 14:32:45 · 2073 阅读 · 0 评论 -
JNA编程之一:入门
自从接触Java编程以来,有个问题一直缠绕着我:怎样才能在Java中调用以前用C/C++开发的劳动成果(函数库)?于是开始百度、Google了若干下,初步发现有个叫JNI的“小伙子”,一下子把它的简介读完后,让人觉得仿佛要“围着Java打转转”的味道。对于我这个一直钟情于C语言开发的人来说,有点难以接受:“别太嚣张了,厚道点嘛,C/C++才是真正的老大啊”。于是继续搜索,幸好Java还是有点“原创 2013-08-29 14:33:43 · 1216 阅读 · 0 评论 -
JNI对象操作
AllocObjectjobject AllocObject(JNIEnv *env, jclass clazz);分配新Java 对象而不调用该对象的任何构造函数。返回该对象的引用。clazz参数务必不要引用数组类。参数: env:JNI 接口指针。 clazz:Java类对象。返回值:原创 2013-08-29 14:33:55 · 825 阅读 · 0 评论 -
什么是Java的弱引用(Weak Referenc)
之前一直没有接触过弱引用这个概念,今天看到以后觉得挺新鲜,就查了查资料总结一下,希望对大家有所帮助。 要理解弱引用,首先要先了解一下强引用(Strong Reference), 其实我之前也并不了解强引用,虽然天天都在用。举例来说: String abc = new String ("abcdf");这就是创建了一个String的实例然后在变量abc中保原创 2013-08-29 14:31:10 · 570 阅读 · 0 评论 -
JNA实现Java调用C++动态链接库
今天偶然看到了JNA的介绍,下载下来试了一下,很好用,相比较JNI要简单很多。做了一个可以callback的c++动态链接库,实现了java和c++的互相调用。 1、开发环境: 开发工具:Netbeans6.8,包含了Java和C++开发插件,用一个工具比较方便,可以同时开发C++的dll和Java代码。C++环境:MingW 5.1.6+MSYS、g++ 3.4.5Java环境:JDK原创 2013-08-29 14:33:41 · 1066 阅读 · 1 评论