
JavaEE
文章平均质量分 69
zhangzeyuaaa
这个作者很懒,什么都没留下…
展开
-
JVM内存详情查看命令之jhat
jhat是jdk内置的工具之一。主要是用来分析java堆的命令,可以将堆中的对象以html的形式显示出来,包括对象的数量,大小等等,并支持对象查询语言。使用jmap等方法生成java的堆文件后,使用其进行分析。第一步:导出堆#jmap -dump:live,file=a.log pid除了使用jmap命令,还可以通过以下方式:1、使用 jconsole 选项通过 HotSpotDiagnosticMXBean 从运行时获得堆转储(生成dump文件)、2、虚拟机启动时如果指定了 -X转载 2021-09-23 18:37:49 · 1667 阅读 · 0 评论 -
JVM内存详情查看命令之 jmap
概述命令jmap是一个多功能的命令。它可以生成 java 程序的 dump 文件, 也可以查看堆内对象示例的统计信息、查看 ClassLoader 的信息以及 finalizer 队列。jmap 用法参数:option: 选项参数。 pid: 需要打印配置信息的进程ID。 executable: 产生核心dump的Java可执行文件。 core: 需要打印配置信息的核心文件。 server-id 可选的唯一id,如果相同的远程主机上运行了多台调试服务器,用此选项参数标识服务器。转载 2021-09-23 16:26:41 · 836 阅读 · 0 评论 -
Windows服务器下 Tomcat占用CPU过高排查(jstack的使用)
问题描述Tomcat下只部署了一个项目,但是CPU持续保持99%,看任务管理器发现Tomcat程序占大部分,mysql占小部分,推测是定时任务频繁访问数据库导致,先从java程序看起。查看java进程下的线程使用工具process explorer:Windows系统和应用程序监视工具。(自行百度下载)操作步骤1.双击打开监控工具这里可以看到tomcat的PID为12122.双击点开Tomcat进程,进入线程页面可以看到占用最高的线程ID是:44323.使用js.转载 2021-09-23 12:52:01 · 3841 阅读 · 0 评论 -
Quartz框架多个trigger任务执行出现漏执行的问题分析
一、问题描述使用Quartz配置定时任务,配置了超过10个定时任务,这些定时任务配置的触发时间都是5分钟执行一次,实际运行时,发现总有几个定时任务不能执行到。二、示例程序1、简单介绍采用spring+quartz整合方案实现定时任务,Quartz的SchedulerFactoryBean配置参数中不注入taskExecutor属性,使用默认自带的线程池。准备了15个定时任务,全部设置为每隔10秒触发一次,定时任务的实现逻辑是使用休眠8秒的方式模拟执行定时任务的时间耗费。2、配置文件信息如下(节转载 2021-05-27 10:54:30 · 3990 阅读 · 1 评论 -
JNDI服务提供者连接工厂之FSContextFactory
使用该服务提供者需要下载两个Jar包:fscontext.jar、providerutil.jar。代码如下:package com.zzj.jndi.provider;import java.util.Hashtable;import javax.naming.Context;import javax.naming.InitialContext;import javax.naming原创 2016-11-28 21:06:32 · 1179 阅读 · 0 评论 -
JDK Logger
自Java 1.4开始,JDK提供了一个日志框架包 java.util.logging。JDK 日志框架主要包括如下几个部件:Logger:日志记录对象。用于记录日志信息。Handler:用于处理日志信息的输出。在 Handler 类中,可以决定日志是输出到文件中还是控制台中(相当于log4j中的appender)。Filter: 用于过滤日志。在 Filt原创 2015-01-27 14:46:23 · 1079 阅读 · 0 评论 -
JDK Logger指定配置文件
默认情况下,JDK的LogManager会在JRE目录下的"lib/logging.properties"这个文件中读取配置。除此之外,LogManager还可以根据两个系统属性来允许用户控制日志的配置:"java.util.logging.config.class" "java.util.logging.config.file"其中,class这个属性优先有效,如果设置,会忽略fil...原创 2015-01-27 22:32:06 · 6090 阅读 · 1 评论 -
Java BeanValidation
JSR(Java Specification Requests,Java规范提案) 303 – Bean Validation 是一个数据验证的规范,2009 年 11 月确定最终方案。2009 年 12 月 Java EE 6 发布,Bean Validation 作为一个重要特性被包含其中。Hibernate Validator 是 Bean Validation 的参考实现 . Hibe原创 2016-01-12 12:39:00 · 7864 阅读 · 0 评论 -
HttpClient3.x文件上传
package com.zzj.http;import java.io.File;import java.io.IOException;import org.apache.commons.httpclient.methods.PostMethod;import org.apache.commons.httpclient.methods.multipart.FilePart;impor原创 2016-01-02 16:59:30 · 1988 阅读 · 0 评论 -
JNDI服务提供者连接工厂之RegistryContextFactory(RMI)
服务接口:package com.zzj.jndi.service;import java.rmi.Remote;import java.rmi.RemoteException;public interface JndiService extends Remote { public int getNext() throws RemoteException;}服务实现类:pack原创 2016-11-28 21:31:54 · 1566 阅读 · 0 评论 -
JNDI 学习
基于JNDI的应用开发 JNDI(The Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API.命名服务将名称和对象联系起来,使得我们可以用名称访问对象。目录服务是一种命名服务,在这种服务里,对象不但有名称,还有属性。 命名或目录服务使你可以集中存储共有信息,这一点在网络应用中是重要的,转载 2013-07-27 22:08:20 · 1124 阅读 · 0 评论 -
RMI之stubs和skeletons
存根类是一个类,它实现了一个接口,但是实现后的每个方法都是空的。 它的作用是:如果一个接口有很多方法,如果要实现这个接口,就要实现所有的方法。但是一个类从业务来说,可能只需要其中一两个方法。如果直接去实现这个接口,除了实现所需的方法,还要实现其他所有的无关方法。而如果通过继承存根类就实现接口,就免去了这种麻烦 什么是RMI 分布式计算系统要求运行在不同地址空转载 2013-07-28 14:28:13 · 2905 阅读 · 2 评论 -
java术语(PO/POJO/VO/BO/DAO/DTO)
PO(persistant object) 持久对象在o/r 映射的时候出现的概念,如果没有o/r映射,就没有这个概念存在了.通常对应数据模型(数据库),本身还有部分业务逻辑的处理.可以看成是与数据库中的表相映射的java对象.最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合.PO中应该不包含任何对数据库的操作.VO(value object) 值对象通常用转载 2014-02-18 22:42:07 · 1258 阅读 · 0 评论 -
将RMI的提供者和客户端部署到不同的机器上
服务接口:package com.zzj.jndi.service;import java.rmi.Remote;import java.rmi.RemoteException;public interface JndiService extends Remote { public int getNext() throws RemoteException;}接口实现类:pac原创 2017-09-24 14:58:28 · 1042 阅读 · 0 评论 -
RMI不支持远程注册(绑定)
两台机器:1.Linux(192.168.80.129)2.Windows(192.168.80.1)Linux作为服务注册机,Windows作为服务提供者。服务接口:package com.zzj.jndi.service;import java.rmi.Remote;import java.rmi.RemoteException;public interface Jn原创 2017-09-24 18:46:59 · 3523 阅读 · 0 评论 -
如何使JDBC插入数据的时候返回自动增长的主键值
通常插入数据时的代码如下:...String sql = "insert into table (name) values(?)"; PreparedStatement pstmt = conn.prepareStatement(sql);// 如果使用静态的SQL,则不需要动态插入参数 pstmt.setString(1, name); pstmt.executeUpdate()...原创 2018-12-30 15:48:35 · 2044 阅读 · 0 评论 -
Jackson使用PropertyNamingStrategy处理属性首字母为大写的情况
最近在项目中调用.NET的服务时,Jackson在解析返回的json字符串时始终报错,纠结很久之后才找到原因,原来是由于json字符串中的字母都是首字母大写,导致jackson找不到相应的KEY。可以使用PropertyNamingStrategy统一处理:ObjectMapper mapper = new ObjectMapper();mapper.setPropertyNamingSt原创 2015-11-30 10:43:08 · 18164 阅读 · 1 评论 -
同步、异步、阻塞和非阻塞
正常情况下,我们的程序以同步非阻塞的方式在运行。但是我们的程序总会出现一些耗时操作,比如复杂的计算(找出1到10亿之间的素数)和程序本身无法控制的操作(IO操作、网络请求)。包含这些耗时操作的方法我们可以把它称为阻塞方法,包含这些耗时操作的任务我们可以把它称为阻塞任务。阻塞与非阻塞是以是否耗时来定义的。如果程序中存在大量阻塞操作,就会影响程序性能。但是阻塞的存在是客观事实,我们的程序是无法改变原创 2015-12-12 17:04:37 · 923 阅读 · 0 评论 -
ireport 分页
Ireport 分页介绍 功能介绍 基于ireport 3.7.6版本介绍ireport如何进行分页 开发步骤 1. 在ireport 报表中添加分页需要的变量 2. 设定首页,上一页,下一页,末页的超链接 3. 用jasper调用设定好的报表文件 开发示例 分页信息 当前显示1- 10条 共32条 第1页 共4页 首页 上一页 下一页 末页 1、设转载 2013-08-21 18:16:22 · 2925 阅读 · 0 评论 -
持久化的概念
持久化是将程序数据在持久状态和瞬时状态间转换的机制。目录定义理解二个层面特点意义相关实现展开定义理解二个层面特点意义相关实现展开编辑本段定义持久化(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久化的主要应用是将内存中的对象存储转载 2013-08-22 11:13:51 · 1383 阅读 · 0 评论 -
大规模网站架构的缓存机制和几何分形学
缓存机制和几何分形学缓存机制在我们的实际研发工作中,被极其广泛地应用,通过这些缓存机制来提升系统交互的效率。简单的总结来说,就是在两个环节或者系统之间,会引入一个cache/buffer做为提升整体效率的角色。 而有趣的是,这种缓存机制令人惊奇并且优美的遵循着“几何分形”的规律,也就是几何分形学中的“自相似性”:从整体上看遵循某种组成规律或者特性,同时从每一个局部看,仍然遵循某种组成的规律转载 2014-10-24 11:46:35 · 1212 阅读 · 0 评论 -
J2EE 13种技术
J2EE平台由一整套服务(Services)、应用程序接口(APIs)和协议构成,它对开发基于Web的多层应用提供了功能支持,下面对J2EE中的13种技术规范进行简单的描述(限于篇幅,这里只能进行简单的描述): 1.JDBC(Java Database Connectivity):JDBC API为访问不同的数据库提供了一种统一的途径,象ODBC一样,JDBC对开发者屏蔽了一些细节问题,另外,JD转载 2015-02-09 16:43:39 · 773 阅读 · 0 评论 -
java web开发 高并发处理
java处理高并发高负载类网站中数据库的设计方法(java教程,java处理大量数据,java高负载数据) 一:高并发高负载类网站关注点之数据库 没错,首先是数据库,这是大多数应用所面临的首个SPOF。尤其是Web2.0的应用,数据库的响应是首先要解决的。一般来说MySQL是最常用的,可能最初是一个mysql主机,当数据增加到100万以上,那么,MySQL的效能急剧下降。常用的转载 2015-03-22 21:27:10 · 5606 阅读 · 0 评论 -
利用XStream将List<String>转为xml后指定String的别名
public class Test { public List tags = new ArrayList(); public List notags = new ArrayList(); public Test(String tag, String tag2) { tags.add(tag); tags.add(tag2);转载 2015-11-07 15:22:05 · 3461 阅读 · 0 评论 -
HttpClient Cookies设置
HttpClient Cookies简介 HttpClient支持自动管理Cookies,允许服务端设定Cookies,并在请求时自动返回客户端的Cookies信息。客户端也可以手动的设置Cookies发送到服务端。 不幸的是,同一时间内有太多的Cookies标准: Netscape Cookie, RFC2109, RFC2965 以及大量供应商不符合规范的自定义Cookie转载 2015-10-12 14:46:49 · 35025 阅读 · 0 评论 -
Json字符串和Java对象转换利器——Jackson
Maven配置: com.fasterxml.jackson.core jackson-databind 2.1.3实体类GetOrdersResponse:package org.jackson.jsontest.po;import java.util.List; /** * Generated by FreeMarker * */public class GetOrde原创 2015-10-27 17:07:51 · 5483 阅读 · 0 评论 -
httpclient用户名密码认证示例
package com.xs.waybill.eparcel;import java.io.File;import org.apache.commons.httpclient.HttpClient;import org.apache.commons.httpclient.UsernamePasswordCredentials;import org.apache.commons.http原创 2015-10-12 17:16:44 · 13938 阅读 · 0 评论 -
Xml字符串和Java对象转换利器——XStream
Maven配置: com.thoughtworks.xstream xstream 1.4.7实体类见博客《Json字符串和Java对象转换利器——Jackson》。所有的实体类除了包名不同,成员都一样。工具类XStreamUtil:package org.xstream;import java.io.Writer;import java.util.List;import原创 2015-10-27 17:25:42 · 5162 阅读 · 0 评论 -
XStream处理既有属性又有值的xml节点
Maven配置: com.thoughtworks.xstream xstream 1.4.7测试:package org.xstream;import com.thoughtworks.xstream.XStream;import com.thoughtworks.xstream.converters.Converter;import com.thoughtworks.xstre原创 2015-10-28 18:06:02 · 10209 阅读 · 2 评论 -
Base64使用案例
Base64是一种用64个字符来表示任意二进制数据的方法。Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,大家可以查看RFC2045~RFC2049,上面有MIME的详细规范。Base64编码可用于在HTTP环境下传递较长的标识信息。Base64的原理很简单,首先,准备一个包含64个字符的数组:['A', 'B', 'C', ... 'a', 'b', 'c',原创 2015-11-20 17:58:24 · 8214 阅读 · 0 评论 -
Jsonlib使用PropertyNameProcessor处理属性首字母为大写的情况
package com.zzj.jsonlib;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import net.sf.json.JSONObject;import net.sf.json.JsonConfig;import net.s原创 2015-11-18 23:18:43 · 4689 阅读 · 1 评论 -
Jsonlib实现Json字符串和Java对象的互相转换
版本:json-lib-2.2.3.jarpackage com.zzj.jsonlib;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import net.sf.json.JSONObject;import com.zzj.json原创 2015-10-29 14:38:53 · 5452 阅读 · 0 评论