java
文章平均质量分 80
下雨天_____
擅长领域:智慧城市,信息安全,电信业务
展开
-
JNI超级入门教程(示例)
1.java以其跨平台的特性深受人们喜爱,而又正由于它的跨平台的目的,使得它和本地机器的各种内部联系变得很少,约束了它的功能。解决JAVA对本地操作的一种方法就是JNI。 JAVA通过JNI调用本地方法,而本地方法是以库文件的形式存放的(在WINDOWS平台上是DLL文件形式,在UNIX机器上是SO文件形式)。通过调用本地的库文件的内部方法,使JAVA可以实现和本地机器的紧密联系,调用系统级原创 2014-09-04 15:28:36 · 743 阅读 · 0 评论 -
JNI中很有用的jstring 与 const char* 的相互转换函数
JNT中很有用的jstring 与 const char* 的相互转换函数我们使用JNI的时候经常碰到jstring 与 const char*转换的问题,以及中文编码问题,这里从网上看到的2个比较好的相互转换函数,今天把它摘录下来,以备用之。呵呵。//将const char类型转换成jstring类型jstring CStr2Jstring( JNIEnv* env,原创 2014-09-04 17:00:00 · 525 阅读 · 0 评论 -
javah命令导出头文件遇到的相关问题的解决
使用javah命令式经常出现很多问题的同学们正确的使用方法是:1. 类名要使用全路径类名,不带扩展名2. 自己要处于合适的目录,3. 正确设置工作类路径4. 正确设定系统类路经。********************************************************************************前言: 在 D:\buff原创 2014-09-04 13:50:26 · 483 阅读 · 0 评论 -
Java生成唯一GUID UUID
Java生成唯一GUID UUID GUID(Global unique identifier)全局唯一标识符,它是由网卡上的标识数字(每个网卡都有唯一的标识号)以及 CPU 时钟的唯一数字生成的的一个 16 字节的二进制值。GUID 的格式为“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”,其中每个 x 是 0-9 或 a-f 范围内的一个十六进制的原创 2014-10-22 18:50:39 · 1798 阅读 · 0 评论 -
NIO 详解
上图就是这个项目的总体结构图,从图中可以看出该程序分为这几大块:连接侦听线程、连接对象队列、发送线程池、接收线程池、分发线程、事件处理对象、监控处理对象。下面我将描述下整个连接处理过程:1、 连接侦听线程循环接收一个连接请求,如果有连接请求过来,则返回一个连接Socket对象,否则该线程就阻塞等待,直到有一个连接请求过来。2、 封装该返回的Socket对象(主要是封装获取完整包数据原创 2014-10-23 09:21:48 · 440 阅读 · 0 评论 -
Java NIO Socket通信
一 套接字通道1. 阻塞式套接字通道 与Socket和ServerSocket对应,NIO提供了SocketChannel和ServerSocketChannel对应,这两种通道同时支持一般的阻塞模式和更高效的非阻塞模式。 客户端通过SocketChannel.open()方法打开一个Socket通道,如果此时提供了SocketAddress参数,则会自动开始连原创 2014-10-23 09:25:45 · 486 阅读 · 0 评论 -
Java 枚举7常见种用法
DK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。用法一:常量在JDK1.5 之前,我们定义常量都是: publicstaticfianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。 Java代码 public enum Color {原创 2014-11-08 11:30:49 · 337 阅读 · 0 评论 -
NetworkInterface的使用
1. java.net.NetworkInterface类的使用 1.3. java.net.NetworkInterface的方法。 NetworkInterface定义了很多获取网络接口信息的方法,其中很多是jdk1.6版本以后才加入进去的。主要有以下方法: String displayName() 获取网络接口的显示名称 byte[] getHardwareA原创 2014-11-07 15:10:56 · 960 阅读 · 0 评论 -
远程通信的几种选择(RPC,Webservice,RMI,JMS的区别)
RPC(Remote Procedure Call Protocol)RPC使用C/S方式,采用http协议,发送请求到服务器,等待服务器返回结果。这个请求包括一个参数集和一个文本集,通常形成“classname.methodname”形式。优点是跨语言跨平台,C端、S端有更大的独立性,缺点是不支持对象,无法在编译器检查错误,只能在运行期检查。 Web Service原创 2014-10-23 11:56:05 · 410 阅读 · 0 评论 -
jdk1.6环境下开发web service的简单例子
在jdk1.6环境下开发web service是非常方便,因为jdk1.6已经集成了JAX-WS,大大减低了开发中的编码难度。首先定义服务接口package com.lovo;import javax.jws.WebMethod;import javax.jws.WebService;import javax.jws.soap.SOAPBinding;impor原创 2014-10-25 09:56:19 · 490 阅读 · 0 评论 -
Java序列化与反序列化
基本概念:序列化是将对象状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化,它将流转换为对象。这两个过程结合起来,可以轻松地存储和传输数据。昨天在一本书上看到了,好好实践了一下,序列化为一般文件,也序列化为XML文件(使用XStream)。用于序列化的实体类Person.java 代码如下(记得需要实现Serializable接口):import java.原创 2014-11-12 20:36:33 · 334 阅读 · 0 评论 -
Java反射之JDK动态代理实现简单AOP
JDK动态代理实现简单AOP JDK 动态代理是 java 反射的一个重要特性。它在某种方面为 java 提供了动态性的特性,给应用带来了无限的空间。大名鼎鼎的 Hessian 、 Spring AOP 基于动态代理实现。本文将简单的介绍 JDK 动态代理使用。 关于代理模式 代理模式是非常常用的一种设计模式,在我们的应用中经常被使用。一般场景是,我们有一个现成的类,转载 2014-11-12 13:10:19 · 411 阅读 · 0 评论 -
java jdk1.6内置支持的webservice使用示例
webService是一种跨语言的系统间交互标准。在java中使用webservice根据服务器端的服务根据描述生成WSDL文件,并将应用与此WSDL文件一起放入HTTP服务器中,借助服务工具根据WSDL文件生成客户端STUB代码。此代码的作用是将产生的对象请求信息封装成标准的SOAP格式数据,并发送到服务器端,服务器端根据接收到的SOAP格式数据进行转换,并最终通过反射调用响应类的响应方法。转载 2014-10-25 12:55:55 · 510 阅读 · 0 评论 -
Java远程通讯可选技术及原理
在分布式服务框架中,一个最基础的问题就是远程服务是怎么通讯的,在Java领域中有很多可实现远程通讯的技术,例如:RMI、MINA、ESB、Burlap、Hessian、SOAP、EJB和JMS等,这些名词之间到底是些什么关系呢,它们背后到底是基于什么原理实现的呢,了解这些是实现分布式服务框架的基础知识,而如果在性能上有高的要求的话,那深入了解这些技术背后的机制就是必须的了,在这篇blog中我们将来原创 2014-11-12 13:44:33 · 399 阅读 · 0 评论 -
Thrift下Java客户端与服务器端的开发
1创建Thrift文件Thrift文件与编程语言无关,用于定义数据类型和服务接口,然后生成用来构建RPC客户和服务器所需的全部代码。1.1编写testJava.thrift[html] view plaincopyprint?#!/usr/local/bin/thrift --gen java namespace jav转载 2014-10-27 09:51:15 · 587 阅读 · 0 评论 -
java中queue的使用
Queue接口与List、Set同一级别,都是继承了Collection接口。LinkedList实现了Queue接 口。Queue接口窄化了对LinkedList的方法的访问权限(即在方法中的参数类型如果是Queue时,就完全只能访问Queue接口所定义的方法 了,而不能直接访问 LinkedList的非Queue的方法),以使得只有恰当的方法才可以使用。BlockingQueue 继承了Q原创 2014-10-27 14:23:51 · 474 阅读 · 0 评论 -
JAVA线程池例子
用途及用法 网络请求通常有两种形式:第一种,请求不是很频繁,而且每次连接后会保持相当一段时间来读数据或者写数据,最后断开,如文件下载,网络流媒体等。另一种形式是请求频繁,但是连接上以后读/写很少量的数据就断开连接。考虑到服务的并发问题,如果每个请求来到以后服务都为它启动一个线程,那么这对服务的资源可能会造成很大的浪费,特别是第二种情况。因为通常情况下,创建线程是需要一定的原创 2014-10-28 11:32:28 · 516 阅读 · 0 评论 -
JAVA的远程调用
Java 远程处理 Java远程方法调用(RMI)提供了Java程序语言的远程通讯功能,这种特性使客户机上运行的程序可以调用远程服务器上的对象,使Java编程人员能够在网络环境中分布操作。 创建一个简单的Java分布式远程方法调用程序可以按以下几个步骤操作, 一、定义远程接口: 在 Java 中,远程对象是实现远程接口的类的实例, 远程接口声明每个原创 2014-10-28 10:23:46 · 546 阅读 · 0 评论 -
Java线程池的原理及几类线程池的介绍
刚刚研究了一下线程池,如果有不足之处,请大家不吝赐教,大家共同学习、共同交流。在什么情况下使用线程池? 1.单个任务处理的时间比较短 2.将需处理的任务的数量大 使用线程池的好处: 1.减少在创建和销毁线程上所花的时间以及系统资源的开销 2.如不使用线程池,有可能造成系统创建大量线程而导致消耗完系统内存以及”过度切换”。原创 2014-10-28 11:41:09 · 372 阅读 · 0 评论 -
jdk6原生态webservice
近期做cas 单点登录的时候由于要同步用户信息,所以准备在里面加个webservice,开放端口给子系统,于是想用jdk6自带的webservice,使用注解。 开发过程如下: 1,保证使用的是jdk6。 2,编写开放出来的接口并实现,如下 Java代码 public interface UserService {原创 2014-10-28 09:13:25 · 643 阅读 · 0 评论 -
Java.util中的线程池和Spring框架对这个类的扩展
Java.util中的线程池和Spring框架对这个类的扩展1.单独通过java里的ThreadPoolExecutor这个类,可以创建线程池,如果系统采用Spring框架设计,可以采用ThreadPoolTaskExecutor这个类来扩展控制,这个对维护线程池最大值和最小值易扩展(这个可以在配置文件里修改)。其他Spring框架里ThreadPoolTaskExecutor是对Thre原创 2014-10-28 11:55:48 · 574 阅读 · 0 评论 -
RMI简单实例
分布式对象技术主要是在分布式异构环境下建立应用系统框架和对象构件。在应用系统框架的支撑下,开发者可以将软件功能封装为更易管理和使用的对象,这些对象可以跨越不同的软、硬件平台进行互操作。目前,分布式互操作标准主要有Microsoft的COM/DCOM标准、Sun公司的Java RMI标准和OMG组织的CORBA标准。 Java RMI简介 远程方法原创 2014-10-27 15:10:33 · 454 阅读 · 0 评论 -
在eclipse中新建maven工程
注:本文是以ecclipse 4.3 为基础,低版本的eclipse不能这样设置,请参考网上其他文章 1.eclipse安装maven插件 2.配置maven的setting.xml文件,放在对应目录下,如C:\Users\Administrator\.m2Java代码 "http://maven.apache.org/SETTINGS原创 2014-10-28 13:21:20 · 529 阅读 · 0 评论 -
java中几个json工具分析测试
Java中几个json工具分析1, 环境JDK1.6+IDE(IntelliJ IDEA)+windowsXP+GBK编码2,分析对象jackson1.8.2 http://jackson.codehaus.org/gson1.7.1 http://code.google.com/p/google-gson/jsob_lib2.4 http://json-lib.sourc原创 2014-10-29 14:01:14 · 533 阅读 · 0 评论 -
eclipse使用Maven插件创建一个web project
首先创建一个Maven的Project如下图我们勾选上Create a simple project (不使用骨架)这里的Packing 选择 war的形式由于packing是war包,那么下面也就多出了webapp的目录由于我们的项目要使用eclipse发布到tomcat下面,这里我们需要先把项目转成dynamic web proj原创 2014-10-28 17:15:33 · 484 阅读 · 0 评论 -
myeclipse10配置maven
一:Maven的下载安装准备工作:1)安装环境 Windows xp2)需安装JDK ,并配置环境变量(略)3) Maven版本3.0.54)下载地址:http://mirror.bit.edu.cn/apache/maven/maven-3/3.0.5/binaries/apache-maven-3.0.5-bin.zip5)zip包解压。路径为:原创 2014-10-28 14:15:30 · 466 阅读 · 0 评论 -
@ResponseBody 乱码
spring3使用@ResponseBody 输出乱码,加入此配置Xml代码 bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" > property name="messageConverters">原创 2014-10-29 13:59:59 · 486 阅读 · 0 评论 -
Java中获取路径的各种方法
1、 java文件中获得路径Thread.currentThread().getContextClassLoader().getResource("") //获得资源文件(.class文件)所在路径ClassLoader.getSystemResource("")Class_Name.class.getClassLoader().getResource("")原创 2014-10-12 10:03:15 · 441 阅读 · 0 评论 -
java反射详解
本篇文章依旧采用小例子来说明,因为我始终觉的,案例驱动是最好的,要不然只看理论的话,看了也不懂,不过建议大家在看完文章之后,在回过头去看看理论,会有更好的理解。下面开始正文。【案例1】通过一个对象获得完整的包名和类名123456789101112131415package Reflect;原创 2014-10-29 19:58:51 · 328 阅读 · 0 评论 -
spring学习笔记1-spring框架概述
Spring◆简介 目的:解决企业应用开发的复杂性功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能范围:任何Java应用Spring 框架是一个分层架构,由 7 个定义良好的模块组成。Spring 模块构建在核心容器之上,核心容器定义了创建、配置和管理 bean 的方式。 组成 Spring 框架的每个模块(或组件)都可以单独存在,或原创 2014-10-30 14:04:59 · 589 阅读 · 0 评论 -
java泛型
什么是泛型?泛型(Generic type 或者 generics)是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类。可以把类型参数看作是使用参数化类型时指定的类型的一个占位符,就像方法的形式参数是运行时传递的值的占位符一样。可以在集合框架(Collection framework)中看到泛型的动机。例如,Map 类允许您向一个 Map 添加任意类的对象原创 2014-10-30 09:16:27 · 339 阅读 · 0 评论 -
java.util.List接口的方法subList()的使用注意事项
JDK中,List接口有一个实例方法List subList(int fromIndex, int toIndex),其作用是返回一个以fromIndex为起始索引(包含),以toIndex为终止索引(不包含)的子列表(List)。 但值得注意的是,返回的这个子列表的幕后其实还是原列表;也就是说,修改这个子列表,将导致原列表也发生改变;反之亦然。 下面是一段实例代码:原创 2014-10-30 17:48:39 · 458 阅读 · 0 评论 -
hibernate 双向多对多 注解
其实它的和 一对多 差不多,但是按照网上写法出现了一个问题,使得 双向的关系变成了单向的。Person类[java] view plaincopypackage cn.lzg; import java.util.ArrayList; import java.util.List; import ja原创 2014-11-18 17:13:18 · 451 阅读 · 0 评论 -
Java分布式缓存框架
在开发中大型Java软件项目时,很多Java架构师都会遇到数据库读写瓶颈,如果你在系统架构时并没有将缓存策略考虑进去,或者并没有选择更优的缓存策略,那么到时候重构起来将会是一个噩梦。本文主要是分享了5个常用的Java分布式缓存框架,这些缓存框架支持多台服务器的缓存读写功能,可以让你的缓存系统更容易扩展。1、Ehcache – Java分布式缓存框架Ehcache是一个Java实现的原创 2014-11-19 09:20:51 · 648 阅读 · 0 评论 -
Log4j.properties配置详解
一、Log4j简介Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局)。这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出。综合使用这三个组件可以轻松地记录信息的类型和级别,并可以在运行时控制日志输出的样式和位置。1、LoggersLoggers组件在此系统中被分为五个级别:DEBUG、INFO、WARN、原创 2014-11-19 09:38:27 · 392 阅读 · 0 评论 -
Apache DBUtils使用总结
DBUtils是个小巧的JDBC轻量级封装的工具包,其最核心的特性是结果集的封装,可以直接将查询出来的结果集封装成JavaBean,这就为我们做了最枯燥乏味、最容易出错的一大部分工作。 在使用DBUtils之前,应该注意一些问题: 1、DBUtils是JDBC的简单封装,可以和JDBC混合使用。 2、DBUtils对结果集自动封装为JavaBean是原创 2014-10-17 19:31:47 · 387 阅读 · 0 评论 -
getGenericSuperclass,getSuperclass
一.说明1.Class getSuperclass():返回本类的父类2.Type getGenericSuperclass():返回本类的父类,包含泛型参数信息二.例子1.ClassA.javaJava代码 public class ClassA { private T obj; public v原创 2014-10-17 15:32:09 · 533 阅读 · 0 评论 -
Java的synchronized加在方法上或者对象上有什么区别?
Java的synchronized可以加在方法上,也可以直接加在对象上,从而保证一段代码只能有一个线程在运行,保证线程的同步。那么这两者究竟有啥区别呢?我们可以看下面的示例代码。public class SyncTest { public static synchronized void testSyncOnStaticMethod() { System.out.println原创 2014-11-20 14:57:51 · 14823 阅读 · 5 评论 -
Java 并发编程之线程池的使用 (二)
目录(?)[+]设置线程池的大小如果线程池过大,那么可能会耗尽资源 ,如果过小,那么 将导致许多空闲的处理器无法工作,从而降低吞吐率。要设置正确的线程池大小,需要分析计算环境,资源预算和任务的特性,cpu数量,内存大小,任务是计算密集型还是I/O密集型,还是二者皆可。它们是否需要像JDBC连接这样的稀缺资源,下面给出一个计算公式N(threads)=N(cpu)原创 2014-11-20 19:51:16 · 641 阅读 · 0 评论 -
JAVA处理线程超时
超时控制一般使用阻塞时间比较长的操作上,有可能是和远程数据库的连接,也有可能是网络下载,在程序超时后, 往往需要进行一些操作,比如退出线程,或者重新执行. 二.实现方法 方法1.(原创) 实现描述:使用一个守护线程作为计时器,并且在计时结束时抛出一个未检测异常。 具体实现: 类1:守护线程类 /** * 本线程设置了一个超时时间 *原创 2014-11-20 19:28:42 · 1572 阅读 · 0 评论