![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 50
O溺水的鱼0
喜欢编程,乐在其中!
展开
-
dubbo-admin 2.5.3源码编译
dubbo-admin 2.5.3 基于jdk 1.8版本编译的war包文件,支持直接下载运行,支持arm架构下jdk1.8版本的运行原创 2023-10-16 09:29:27 · 134 阅读 · 0 评论 -
jdk的java.util.Base64编码 与 android.util.Base64 的区别
记录一次踩的坑java.util.Base64(简称标准Base64) 与 android.util.Base64(移动Base64) 的使用结论:1、移动Base64编码比标准Base64编码,最后会多一个换行符”\n“2、标准Base64编码的值,移动Base64可以正确解码3、移动Base64编码的值,标准Base64无法解码。 当把移动Base64编码的内容最后一位”\n“去掉后,标准Base64就可以正确解码了...原创 2021-09-10 12:19:58 · 2796 阅读 · 0 评论 -
AOP底层技术CGLIB示例
JDK实现动态代理需要实现类通过接口定义业务方法,对于没有接口的类,如何实现动态代理呢,这就需要CGLib了。CGLib采用了非常底层的字节码技术,其原理是通过字节码技术为一个类创建子类,并在子类中采用方法拦截的技术拦截所有父类方法的调用,顺势织入横切逻辑。JDK动态代理与CGLib动态代理均是实现Spring AOP的基础。示例代码:import org.springframework.cglib.proxy.Enhancer;import org.springframework.cglib.pro转载 2020-08-13 08:59:18 · 236 阅读 · 0 评论 -
redis的map和zset写入50万个数据的测试结果
需求描述某个项目中需要使用缓存工具缓存55万个分类信息,然后对每个分类进行计数统计,调研了redis的hashmap和zset的性能,最终决定使用zset。原因如下:hashmap和zset都写入55万个key,zset约要34秒,hashmap约要39秒hashmap读取55万个key的耗时3.3秒,zset读取55万个key约耗时1.4秒hashmap存储的key是无序的,zset存...原创 2019-11-30 16:31:28 · 3464 阅读 · 0 评论 -
Java线程:新特征-线程池
Sun在Java5中,对Java线程的类库做了大量的扩展,其中线程池就是Java5的新特征之一,除了线程池之外,还有很多多线程相关的内容,为多线程的编程带来了极大便利。为了编写高效稳定可靠的多线程程序,线程部分的新增内容显得尤为重要。 有关Java5线程新特征的内容全部在java.util.concurrent下面,里面包含数目众多的接口和类,熟悉这部分API特征是一项艰难的学习过程。原创 2013-01-24 21:55:48 · 844 阅读 · 0 评论 -
编码之间的转换
java 编码 转换 UTF-8 unicode原创 2010-10-28 13:42:00 · 1042 阅读 · 0 评论 -
利用jxl读取Excel的内容
jxl excel java原创 2010-06-13 00:41:00 · 7847 阅读 · 4 评论 -
Unrecognized Windows Sockets error: 0: JVM_Bind 异常解决办法
此异常的原因是服务器端口被占用 所以解决办法是:一:更改服务器的端口号;二:关闭占用当前端口的进程下边介绍第二种方法1.首先进入命令行 查看端口是否被占用 使用命令: netstat -ano我的服务器的端口是8080 此端口已被PID为2300的进程占用 2.查看该PID为 2300的进程使用命令:tasklist原创 2014-02-12 09:54:26 · 921 阅读 · 0 评论 -
PDF转图片的工具汇总
1.java服务器端转换工具pdfbox-1.8 java端转pdf为图片的jar及帮助文档 2.C++转换工具PPM转BMP的Vc++源码 3.C#转换工具下载的Pixelmap 工程源码原创 2013-10-28 22:27:18 · 1129 阅读 · 0 评论 -
谈谈Runtime类中的freeMemory,totalMemory,maxMemory几个方法
最近在网上看到一些人讨论到java.lang.Runtime类中的freeMemory(),totalMemory(),maxMemory ()这几个方法的一些问题,很多人感到很疑惑,为什么,在java程序刚刚启动起来的时候freeMemory()这个方法返回的只有一两兆字节,而随着 java程序往前运行,创建了不少的对象,freeMemory()这个方法的返回有时候不但没有减少,反而会增加。这些原创 2013-05-03 09:21:46 · 28696 阅读 · 4 评论 -
AES和RSA加密算法调研
一、AES(DES的升级版)(对称加密)执行时间[1] 测试数据这里以读取纯文本文件,一行一行的方式对字符串进行加密,并把加密后的内容存储到另外一个文件中,计算文件的加密时间。待文件加密完成后,同样通过一行一行的方式读取加密内容并解密,把解密后的文件存储到解密文件中。注:在测试大文件时,需要在虚拟机中增加配置(-Xmx1535M -Xms1536M)设置内存大小原创 2013-05-03 09:07:51 · 15819 阅读 · 4 评论 -
生产者和消费者实现(Java)
生产者和消费者是我们会经常遇到的问题,今天抽时间编写了这种场景的实现。所谓生产者就是产生某种数据的一个对象(通常是一个线程),生产者生产的数据放到一个仓库中,消费者直接从仓库中提取数据即可。所谓消费者就是从仓库中提取数据的对象,通常是另外一个线程。下面生产者生产面包,放到仓库中,供消费者使用的例子。1. 对象说明: Bread:生产者负责生产的面包 BreadCa原创 2012-11-11 19:41:55 · 767 阅读 · 0 评论 -
DES加密算法
import java.security.Key;import java.security.Security;import javax.crypto.Cipher;/** * *DES加密可逆算法version 1.0 */public class DESEncrypt { private static String strDefaultKey = "wuguowei"原创 2012-11-06 13:59:48 · 1551 阅读 · 0 评论 -
生成指定长度的随机字符串
/** * 生成指定长度的随机字符串 * * @param length * @return */ private String generateLenString(int length) { char[] cResult = new char[length]; int[] flag = { 0, 0, 0原创 2012-07-31 13:05:12 · 4251 阅读 · 0 评论 -
警告Access restriction 问题的解决及maven部署时包找不到的问题解决
今天在用maven打jar包的时候,发现如下错误: xxx.xxx.CImage[17,31]行,错误:程序包com.sun.image.codec.jpeg不存在 打开CImage类的17行,发现引用的“com.sun.image.codec.jpeg”包下的类,在类文件中的import位置,发现有警告信息,警告信息如下:原创 2012-02-24 10:14:18 · 7519 阅读 · 1 评论 -
ThreadPoolExecutor使用和思考(上)-线程池大小设置与BlockingQueue的三种实现区别
工作中多处接触到了ThreadPoolExecutor。趁着现在还算空,学习总结一下。 前记: jdk官方文档(javadoc)是学习的最好,最权威的参考。文章分上中下。上篇中主要介绍ThreadPoolExecutor接受任务相关的两方面入参的意义和区别,池大小参数corePoolSize和maximumPoolSize,BlockingQueue选型(Synchronous原创 2013-01-24 22:02:50 · 1249 阅读 · 0 评论 -
各种 Java Thread State 第一分析法则
使用 TDA 工具,看到大量 Java Thread State 的第一反应是:1,线程状态为“waiting for monitor entry”:意味着它 在等待进入一个临界区 ,所以它在”Entry Set“队列中等待。此时线程状态一般都是 Blocked:java.lang.Thread.State: BLOCKED (on object mon原创 2014-03-17 10:13:24 · 21526 阅读 · 0 评论 -
jmap、jstat、jconsole、MemoryAnalyzer等工具查看java内存情况
jmap (linux下特有,也是很常用的一个命令) 观察运行中的jvm物理内存的占用情况。 参数如下: -heap :打印jvm heap的情况 -histo: 打印jvm heap的直方图。其输出信息包括类名,对象数量,对象占用大小。 -histo:live : 同上,但是只答应存活对象的情况 -permstat: 打印permanent generation heap...原创 2018-10-26 09:17:45 · 1868 阅读 · 0 评论 -
apache的commons-email 类库开发示例
利用apache的commons-email类库发送邮件示例代码,commons-email类库地址:http://commons.apache.org/proper/commons-email/1、maven应用<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-email --> ...原创 2018-07-30 19:31:50 · 558 阅读 · 0 评论 -
GB2312、GBK、Unicode和UTF-8编码介绍
GB2312、GBK、Unicode和UTF-8编码介绍原创 2014-12-03 17:38:05 · 2871 阅读 · 0 评论 -
Java5中的线程池实例讲解
Java5增加了新的类库并发集java.util.concurrent,该类库为并发程序提供了丰富的API多线程编程在Java 5中更加容易,灵活。本文通过一个网络服务器模型,来实践Java5的多线程编程,该模型中使用了Java5中的线程池,阻塞队列,可重入锁等,还实践了Callable, Future等接口,并使用了Java 5的另外一个新特性泛型。 简介 本文将实现一个原创 2013-01-24 21:59:56 · 1221 阅读 · 0 评论 -
创建Java线程池
线程池的作用:线程池作用就是限制系统中执行线程的数量。 根据系统的环境情况,可以自动或手动设置线程数量,达到运行的最佳效果;少了浪费了系统资源,多了造成系统拥挤效率不高。用线程池控制线程数量,其他线程排队等候。一个任务执行完毕,再从队列的中取最前面的任务开始执行。若队列中没有等待进程,线程池的这一资源处于等待。当一个新任务需要运行时,如果线程池中有等待的工作线程,就可以开始运行了;原创 2013-01-24 21:54:40 · 888 阅读 · 0 评论 -
线程池ThreadPoolExecutor使用简介
一、简介 线程池类为 java.util.concurrent.ThreadPoolExecutor,常用构造方法为: ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue workQueue, RejectedEx原创 2013-01-24 21:58:39 · 1082 阅读 · 0 评论 -
Java线程池学习
Java里面线程池的顶级接口是Executor,但是严格意义上讲Executor并不是一个线程池,而只是一个执行线程的工具。真正的线程池接口是ExecutorService。下面这张图完整描述了线程池的类体系结构。首先Executor的execute方法只是执行一个Runnable的任务,当然了从某种角度上将最后的实现类也是在线程中启动此任务的。根据线程池的执行策略最后这个任务可能在新原创 2013-01-24 21:57:24 · 1043 阅读 · 0 评论 -
Linux下设置Java_Home
添加JAVA_HOME/JRE_HOME环境变量: 编辑用户目录下(root用户的目录为/root)的.bashrc或.profile文件。如果你想在所有用户的shell下都生效,就编辑/etc/profile文件。同样都是加入以下内容: 引用: export JAVA_HOME=/home/jdk1.6.0_17export JRE_HOME=$JAVA_HOME/jre原创 2014-03-25 17:19:31 · 29763 阅读 · 1 评论 -
java.net.UnknownHostException 异常处理
在linux系统下部署Java产品的集群环境时,后台报出如下异常,系统报找不到名为“QATest242”的主机: ERROR - Get local host name failed -com.trs.infra.cluster.ClusterConfig.getMemberHost(ClusterConfig.java:293)java.net.UnknownHos原创 2012-02-21 09:53:32 · 38529 阅读 · 0 评论 -
OpenOffice使用windows字体
OpenOffice使用windows字体 目前来看,虽然Linux在效率和稳定性上强于Windows,但是由于Windows已经普及,而且极易上手,我们有时不得不在Linux中使用Windows里常用的一些资源,比如字体,尤其对于我这种刚从Windows转过来的新手来说,更是如此。 在linux机器上利用OPenOffice对“.doc“文档进行转化时候,转化后的pdf文件出现乱原创 2012-02-28 15:46:08 · 4993 阅读 · 1 评论 -
Java中如何序列化一个对象
<br /><br />Java中如何序列化一个对象<br />我们都知道java中无法保存一个对象到文本文件中,但是当我们有这种需求的时候,我们可以通过java的序列化功能把当前对象的一些属性以二进制的形式保存到文件中。当我们需要这个对象的时,只需要从二进制文件中还原为保存前的对象即可。从这里我们可以得到启发,如果想把机器A上的一个Student对象发送到机器B上,我们可以把Student对象序列化成二进制,然后把该二进制发送给机器B,机器B就可以根据二进制数据还原成Stu原创 2011-05-24 22:11:00 · 17134 阅读 · 6 评论 -
RunTime.getRunTime().addShutdownHook用法
Runtime.getRuntime().addShutdownHook 钩子 Tomcat catalina 示例原创 2010-08-31 23:40:00 · 46841 阅读 · 9 评论 -
利用jxl向Excel中导入数据示例代码
jxl excel 导入原创 2010-06-17 14:19:00 · 1706 阅读 · 1 评论 -
java向文件写数据的3种方式
java 写 文件 方法原创 2010-06-18 19:53:00 · 32449 阅读 · 2 评论 -
synchronized关键字的使用
一、结论 1.synchronized可以用于一个类的方法,如public synchronized void writeA,那么同步代码锁定的对象将是当前实例对象,任何现成访问该实例对象的其他同步方法将必须等待,直到方法writeA执行完成 2.synchronized 也可以作用于一个代码块,如synchronized(this){} 3.synchronized 还可以同步一个对象,如synchronized(object){}二、示例代码 1.TestSync原创 2010-08-08 16:12:00 · 1749 阅读 · 0 评论 -
java类中的静态成员和构造函数与子类中的顺序
主要测试父类与子类中静态成员和静态代码块与构造函数的启动顺序。编写一个基类:Car,再编写一个子类,AudiCar,在方法中添加一些调试信息,代码如下.1.Car类的代码如下:package com.test.classLoader.order;/** * 测试基类 * * @author rey * */public class Car { static{ System.out.println("[Car]中:静态方法块!"); } /** * 构造函数 */ public Car() { s原创 2010-06-05 14:25:00 · 2100 阅读 · 0 评论 -
读取classes目录下的文件的方法
最近在开发项目的时候,想读取一个配置文件,主要是利用properties来读取配置文件。所以摸索了一下如何读取类似的配置文件,先把读取配置文件的代码贴出来。假如在classes目录下有个配置文件,config.properties。那么只需要把这个变量传给下边的方法就可以计算出配置文件在服务端的绝对路径。欢迎楼下的贴出更多的方法,多写。 /** * 根据资源名称,计算当前资源的绝对路原创 2010-05-29 16:26:00 · 4075 阅读 · 0 评论 -
Comparable与Comparator的区别
上次描述了Arrays.sort与Collections.sort的区别,这里讲述一下Comparable与Comparator的接口的区别。1.Comparable是对象内部需要实现的接口,如果一个对象要想用利用Array.sort进行排序,那么这个对象必须实现Comparable的接口,比较的实现是在对象的内部进行的。2.Comparator接口是在对象外实现的接口,主要是方便了对没有原创 2010-05-15 14:10:00 · 2650 阅读 · 1 评论 -
利用Collator和Collections.sort对list进行中文排序,注意与Arrays.sort的区别
//两者的关系:1.Coollections.sort的内部实现是用Arrays.sort来实现的。//2.如果要排序的list中的对象已经实现了Comparable接口,那么可以用Arrays.sort来排序//3.如果要排序的list中的对象没有实现Comparable接口,那么用Collections.sort来排序,同时需要自己实现一个Comparator接口的实例。Collect原创 2010-05-13 15:41:00 · 6665 阅读 · 2 评论 -
java中读取文件的方式
经常遇到java中读取文件的方式,有时候需要指定编码,有时候不需要指定编码,被搞的挺晕的,抽时间整理了一下java读取文件的方式,主要是对字符型的处理,二进制的暂时不考虑。1.readFile方法,主要采用FileReader来读取文件,不能指定编码2.readFileByInputStream方法,采用InputStreamReader来读取文件,可以指定编码3.readFileBy原创 2010-05-13 19:46:00 · 1912 阅读 · 0 评论 -
servlet编写和配置
servelet 配置 编写原创 2010-06-30 22:39:00 · 2784 阅读 · 0 评论 -
如何开发自己的线程类
<br />当我们在做java开发的时候,经常需要自己编写一个线程类来实现自己的逻辑,我们知道实现线程有两种方式:<br />1. 类继承Thread类,重载run方法即可<br />2.继承Runnable接口,实现run方法<br /> <br />当我们用第一种方法实现自己的线程的时候,我们新写的线程类就不可以继承其他的类了,这是由于java中的线程是单继承的关系导致的。如果我们在编写自己线程类的时候,同时还想我们这个线程类继承别的类,那么可以采用第2种方法,因为第2中方法是实现接口,所以还可以继承其原创 2010-06-25 20:46:00 · 964 阅读 · 0 评论 -
如何查看JVM的系统属性
我们获取jvm系统属性的时候,我们都是通过System.getProperty(“paramName”),当我们再仔细看下System对象的时候,我们发现还有个getProperties方法。阅读下说明,果然是返回当前JVM的系统属性。原创 2011-04-19 22:31:00 · 8237 阅读 · 3 评论