Java - 军军小站|张军博客
Java

java的JNI本地调用代码

Jni中C++和Java的参数传递如何使用JNI的一些基本方法和过程在网上多如牛毛,如果你对Jni不甚了解,不知道Jni是做什么的,如何建立一个基本的jni程序,或许可以参考下面下面这些文章:利用VC++6.0实现JNI的最简单的例子JNI入门教程之HelloWorld篇SUNJNITutorial这些资料的例子中,大多数只是输入一些简单的参数,获取没有参数。而在实际的使用过程中,往往需要对参数进行处理转换。才可以被C/C++程序识别。比如我们在C++中有

系统 2019-08-29 22:48:06 2191

Java

java JNI 调用c或c++,windows 或 Linux系统

由于java程序需要调用C或C++的代码,不得不使用JNI。C的代码在Win32和Linux下都有相同功能的不同实现,就像JDK分几种平台版本(win32,linux,solaris等)。首先,看一看首先,看一看win32下调用dll文件。1,新建HelloWorld.java1publicclassHelloWorld2{3static4{5try6{7//此处即为本地方法所在链接库名8System.loadLibrary("HelloWorld");9

系统 2019-08-29 23:39:19 2190

Java

java*工程 slf4j+logback实现日志记录

1.目录结构2.java测试码packagecom.test.main;importjava.net.URL;importorg.slf4j.ILoggerFactory;importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;importorg.springframework.context.ApplicationContext;importorg.springframework.context.supp

系统 2019-08-29 23:22:39 2190

Java

Java对象持久化技术Hibernate入门

Hibernate是Java应用和关系数据库之间的桥梁,它负责Java对象和关系数据之间的映射。Hibernate内部封装了通过JDBC访问数据库的操作,向上层应用提供了面向对象的数据访问API。在Java应用中使用Hibernate包含以下步骤。(1)创建Hibernate的配置文件。(2)创建持久化类。(3)创建对象-关系映射文件。(4)通过HibernateAPI编写访问数据库的代码。本文通过一个简单的例子helloapp应用,演示如何运用Hiber

系统 2019-08-12 09:30:32 2190

Java

JAVA内存泄漏——内存泄漏原因和内存泄漏检测工

摘要虽然Java虚拟机(JVM)及其垃圾收集器(garbagecollector,GC)负责管理大多数的内存任务,Java软件程序中还是有可能出现内存泄漏。实际上,这在大型项目中是一个常见的问题。避免内存泄漏的第一步是要弄清楚它是如何发生的。本文介绍了编写Java代码的一些常见的内存泄漏陷阱,以及编写不泄漏代码的一些最佳实践。一旦发生了内存泄漏,要指出造成泄漏的代码是非常困难的。因此本文还介绍了一种新工具,用来诊断泄漏并指出根本原因。该工具的开销非常小,因

系统 2019-08-29 23:05:05 2189

Java

JAVA基础--方法传参

JAVA基础--方法传参为啥拿这个当话题?在初学者阶段,许多童鞋都对方法传参比较迷茫,知其然不知其所以然。一.先说说参数传递的几个术语:值调用(callbyvale):表示方法接收的是调用者传递的值。引用调用(callbyreference):表示方法接收的是调用者传递的变量地址。一个方法可以修改传递引用所对应的变量值,而不能修改传递值调用所对应的变量值;**JAVA语言总是采用值调用。也就是说,JAVA方法得到的是所有参数值的一个拷贝,方法不能修改传递给

系统 2019-08-29 22:32:28 2189

Java

java解惑你知多少(六)

41.instanceof与转型Java代码System.out.println(nullinstanceofString);//falseSystem.out.println(newObject()instanceofString);//false//编译能通过System.out.println((Object)newDate()instanceofString);//false//!!程序不具有实际意义,但编译时不能通过//!!System.out.

系统 2019-08-29 22:02:47 2189

Java

笔者带你剖析大规模分布式Java平台JVM性能调优

《笔者带你剖析大规模分布式Java平台JVM性能调优基础》前言其实说到对JVM进行性能调优早已是一个老生常谈的话题,如果你所在的技术团队还暂时达不到淘宝团队那样的高度,无法满足在OpenJDK的基础之上根据自身业务进行针对性的二次开发和定制调优,那么对于你来说,唯一的选择就是尽可能的熟悉JVM的内存布局,以及熟练掌握与GC相关的那些选项配置,否则JVM的基础性能调优不是痴人说梦?目录一、性能调优的一些概念和目标;二、性能调优的基本原则;三、新生代的性能调优

系统 2019-08-12 09:30:36 2189

Java

JAVA中几种常见集合的使用实例

Java.util.ArrayList(类):importjava.awt.*;importjava.util.*;publicclassCollectionTest{//List是一个能包含重复元素的已排序的Collection,有时list也称为序列,List第一个元素的下标为0publicStringcolors[]={"red","white","blue"};//定义一个字符数组//构造函数publicCollectionTest(){Array

系统 2019-08-29 22:44:14 2188

Java

Java线程:并发协作-死锁

Java线程:并发协作-死锁线程发生死锁可能性很小,即使看似可能发生死锁的代码,在运行时发生死锁的可能性也是小之又小。发生死锁的原因一般是两个对象的锁相互等待造成的。在《Java线程:线程的同步与锁》一文中,简述死锁的概念与简单例子,但是所给的例子是不完整的,这里给出一个完整的例子。/***Java线程:并发协作-死锁**@authorAdministrator2009-11-422:06:13*/publicclassTest{publicstaticv

系统 2019-08-12 09:29:31 2188

Java

Java NIO(二)Channel

JavaNIO的通道类似流,但又有些不同:既可以从通道中读取数据,又可以写数据到通道。但流的读写通常是单向的。通道可以异步地读写。通道中的数据总是要先读到一个Buffer,或者总是要从一个Buffer中写入。正如上面所说,从通道读取数据到缓冲区,从缓冲区写入数据到通道。如下图所示:Channel的实现这些是JavaNIO中最重要的通道的实现:FileChannel从文件中读写数据。DatagramChannel能通过UDP读写网络中的数据。SocketCh

系统 2019-08-29 23:17:48 2187

Java

java中的集合

在java的iterator中,如果想删除一个元素,比如删除第一个元素,则应该先调用next()方法,再remove()。否则会抛出异常IliegalStateException。java类提供的AbstractCollection类把基础方法size和iterator抽象化了,但是在它们的基础上实现了例行方法contains()等。一个具体的集合可以从abastractCollection超类实现了,而且一些方法已经实现。具体的集合提供iterator方

系统 2019-08-12 09:30:35 2187