
Java
xlxxcc
这个作者很懒,什么都没留下…
展开
-
Eclipse CDT MinGW生成C++动态链接库及Java JNI的调用例子
Eclipse CDT + MinGW生成C++动态链接库 和 Java JNI的调用C++动态链接库原创 2016-04-06 19:01:52 · 1037 阅读 · 0 评论 -
commons-pool2和commons-pool对象池使用
概念 对象池(ObjectPool): 掌管对象的生命周期,获取,激活,验证,钝化,销毁等 池对象(PooledObject): 被创建在池中的对象,自己可以有一些附加信息 池对象工厂(PooledObjectFactory): 池中对象各个生命周期的具体实现,怎么创建,怎么验证,怎么销毁。 对象池化主要用于减少对象在创建和销毁上面的开销,如果是小对象则不需要池化,如果是大对象可以考虑池化,原创 2016-09-01 20:08:40 · 25097 阅读 · 0 评论 -
Java单例和多例的性能
公用类ThreadUtils,用于父线程等待子线程运行结束。import java.util.List;public class ThreadUtils { // 注册runnable public static synchronized void regist(Runnable runnable, List<Runnable> runnableList){ sync原创 2016-08-25 14:27:47 · 9135 阅读 · 0 评论 -
Runable和Thread
网上有人说,实现Runnable接口相对于继承Thread类来说,有如下显著的好处: (1)适合多个相同程序代码的线程去处理同一资源的情况,把虚拟CPU(线程)同程序的代码,数据有效的分离,较好地体现了面向对象的设计思想。 (2)可以避免由于Java的单继承特性带来的局限。(3)有利于程序的健壮性,代码能够被多个线程共享,代码与数据是独立的。当多个线程的执行代码来自同一个类的实例时,即称它们共享相同原创 2016-08-26 13:52:17 · 6471 阅读 · 0 评论 -
java wsgen和wsimport
wsgenwsgen 是在JDK自带的一个工具,该命 令的主要功能是用来生成合适的JAX-WS。它读取Web Service的类文件(Hello.class),同时生成所有用于发布Web Service所依赖的源代码文件、经过编译过的二进制类文件、WSDL文件和相关的xsd文件。-wsdl参数代表生成webservice-s参数代表生成的.java文件目录-d 参数代表生成的编译class文件目录-转载 2016-09-21 16:21:17 · 6413 阅读 · 0 评论 -
java关于xml的注解: JAXB(自动生成xml文件)
介绍: Java和xml的互相转换, 依靠强大的JAXBContext可以轻松实现。 JAXBContext是jdk自带的一个工具,包路径:javax.xml.bind.JAXBContext。 关于JAXB: JAXB能够使用Jackson对JAXB注解的支持实现(jackson-module-jaxb-annotations),既方便生成XML,也方便生成JSON,这样一来可原创 2016-10-11 17:11:19 · 13481 阅读 · 1 评论 -
内部类及静态内部类的实例化
内部类的实例化 如果内部类未声明为static,在实例化时首先需要new一个外部类的对象。并通过p.new Inner()的方式new 内部类,表明这个内部类指向该外部类。内部类的class类型为:Parent.Inner,而不是p.Inner,这个需要和new的方式区分开。public class Test { public static void main(String[] args) {原创 2016-10-11 21:49:40 · 13566 阅读 · 0 评论 -
调整VM Option优化JVM性能
1、堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。 典型设置: java -Xmx3550m -Xms3550m转载 2016-11-03 23:06:48 · 11229 阅读 · 0 评论 -
MyBaits 无法打印sql语句到控制台, Log4j和slf4j-api冲突解决方案
Mybatis内置的日志工厂提供日志功能,具体的日志实现有以下几种方式:SLF4JApache Commons LoggingLog4j 2Log4jJDK logging 具体选择哪个日志实现由MyBatis的内置日志工厂确定。它会使用最先找到的(按上文列举的顺序查找)。 如果一个都未找到,日志功能就会被禁用。 因此当您的maven工程中引入了SLF4J-API和Log4J, 而您使原创 2016-09-30 14:29:14 · 10784 阅读 · 0 评论 -
JAXB2 性能优化
jaxb2 实体类转xml public static String toXML(Object obj, String encode, boolean format, boolean fragment) { try { JAXBContext.newInstance(obj.getClass()); Marshaller mars原创 2017-01-19 09:27:49 · 11117 阅读 · 1 评论 -
如何揪出java程序占用cpu过高的线程代码
windows下的解决办法1、下载Process Explorer并安装, 该工具可以查看进程下的线程cpu占用率2、打开Process Explorer, 找到java程序, 我们可以看到java程序的cpu占用24.64%和pid是2152: 3、双击该java程序, 点击线程对话框,我们可以看到每一个线程的cpu占用率情况: 4、进入cmd, 打印堆栈信息: jstack -l 2152原创 2016-04-11 14:32:00 · 10050 阅读 · 0 评论 -
JVM Server与Client运行模式
JVM Server模式与client模式启动,最主要的差别在于:-Server模式启动时,速度较慢,但是一旦运行起来后,性能将会有很大的提升.原因是: 当虚拟机运行在-client模式的时候,使用的是一个代号为C1的轻量级编译器, 而-server模式启动的虚拟机采用相对重量级,代号为C2的编译器. C2比C1编译器编译的相对彻底,,服务起来之后,性能更高. java -version 可以直转载 2016-08-31 19:56:58 · 11973 阅读 · 0 评论 -
linux jstat 监控 java GC
性能测试过程中,我们该如何监控java虚拟机内存的使用情况,用以判断JVM是否存在内存问题呢?如何判断JVM垃圾回收是否正常?一般的top指令基本上满足不了这样的需求,因为它主要监控的是总体的系统资源,很难定位到java应用程序。在项目实践过程中,我们探索和使用了一款新工具--Jstat。\cal\color{fuchsia}{ 性能测试过程中,我们该如何监控java虚拟机内存的使用情况,用以判断转载 2016-08-31 19:48:05 · 9222 阅读 · 0 评论 -
JNI中string 、 char* 和 jstring 两种转换
JNI中char* 和 jstring 的互相转换JNI中string 和 jstring 的互相转换原创 2016-04-09 18:55:35 · 69812 阅读 · 9 评论 -
jdk8新特性
jdk8最大特性便是在于提供了函数式接口和Lambda表达式。Functional Interface(函数式接口,简称FI), 即只包含唯一一个抽象方法的接口, 称为FI 。 而 Lambada表达式是基于函数式接口之上的。不多说了,我们直接上代码,看一下jdk8特性的使用:package jdk8;import java.time.Clock;import java.time.DayOfWe原创 2016-04-14 16:56:44 · 1298 阅读 · 0 评论 -
SimpleDateFormat 的线程安全问题与解决方案
SimpleDateFormat 的线程安全问题与解决方案SimpleDateFormat 是一个以国别敏感的方式格式化和分析数据的具体类。 它允许格式化 (date -> text)、语法分析 (text -> date)和标准化。 但是 SimpleDateFormat 并不是一个线程安全的类,在多线程并发访问下会出现问题。推荐博文:http://blog.youkuaiyun.com/zq6023164转载 2016-07-30 12:49:02 · 6126 阅读 · 0 评论 -
Quartz 2.2 的实现原理和运行过程
一、Quartz 的几个概念类这几个概念类,是我们调用Quartz任务调度的基础。了解清楚之后,我们再来看一下如何去启动和关闭一个Quartz调度程序。1、org.quartz.Job 它是一个抽象接口,表示一个工作,也就是我们要执行的具体内容,他只定义了一个几口方法: void execute(JobExecutionContext context) 作用等同Spring的: org.原创 2016-08-03 19:59:13 · 20930 阅读 · 0 评论 -
quartz集群调度机制调研及源码分析
推荐博文:http://www.cnblogs.com/davidwang456/p/4205237.html 原文:http://demo.netfoucs.com/gklifg/article/details/27090179 针对扩展quartz, 进行集群分析非常透彻,原文是使用数据库方式改动原创 2016-08-03 20:15:26 · 6609 阅读 · 0 评论 -
Java Executors 和 ThreadPoolExecutor 线程池
Executors提供四种线程池,分别为:newCachedThreadPool 创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。线程池为无限大,当执行第二个任务时第一个任务已经完成,会复用执行第一个任务的线程,而不用每次新建线程。 创建方式: Executors.newCachedThreadPool();newFixedThreadPool原创 2016-08-04 00:21:24 · 11865 阅读 · 0 评论 -
Quartz 2.2 动态添加、修改和删除定时任务
Quartz 2.2 的实现原理和运行过程, 请阅读我的另一篇文章:http://blog.youkuaiyun.com/xlxxcc/article/details/52104463下面直接上代码: QuartzManager.java 动态添加、修改和删除定时任务管理类import org.quartz.CronScheduleBuilder;import org.quartz.CronTrigger;原创 2016-08-04 10:08:15 · 50315 阅读 · 22 评论 -
Spring+Quartz的版本兼容问题
使用Spring配置管理Quartz的时候会遇到下面的异常: Caused by: java.lang.IncompatibleClassChangeError: class org.springframework.scheduling.quartz.CronTriggerBean has interface org.quartz.CronTrigger as super class原因是Sp转载 2016-08-04 13:29:51 · 9406 阅读 · 1 评论 -
Spring task quartz 示例
说在前面:本文基于Spring 4.0.6, 我们新来了解一下Spring的关于task和集成quartz的一些版本特性。Spring 自3.0版本以后便自带的task,可以将它看成一个轻量级的Quartz,而且使用起来比Quartz简单许多。Spring 4.0.3以后task的源码可以在spring-context-4.0.3.RELEASE-sources.jar查阅, 源码包路径:org.原创 2016-08-04 11:59:20 · 7517 阅读 · 0 评论 -
Spring4.0.6 +Quartz 2.2.1动态添加、修改、删除、关闭定时任务
说在前面:Spring Quartz动态添加、修改、删除、关闭定时任务, 无非就是将 《Spring task quartz 示例 一文中的Spring quartz示例 和 《Quartz 2.2 动态添加、修改和删除定时任务》QuartzManager.java进行整合。 相对Spring Task的动态添加、修改、删除、关闭定时任务简单了许多。下面我们进入正题。需要引入 sprin原创 2016-08-04 14:17:27 · 29901 阅读 · 14 评论 -
jax-ws入门, 相关名词释义
术语SEI:Service Endpoint Interface JAX:Java API for XML Web Servcie JAX-WS RI:JAX-WS Reference Implementation创建 Web Service方式JAX-WS 2.0有两种创建Web Service的开发过程:自顶向下和自底向上。自顶向下方式指通过一个WSDL文件来创建Web Service;自底转载 2016-09-21 16:12:49 · 7247 阅读 · 0 评论