
java
vigel1990
这个作者很懒,什么都没留下…
展开
-
使用poi解析word文档打印到控制台
package com.insight.common.util;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.util.Iterator;import java.util.List;import org.apache.poi.xwpf.usermodel.XWPFDocument;import org.apache.poi.xwpf.usermodel.X..原创 2021-11-23 16:45:40 · 584 阅读 · 0 评论 -
自定义解析多层次复杂JSON的方法
/** * eg. * https://pubchem.ncbi.nlm.nih.gov/rest/pug_view/data/compound/6029/JSON/?response_type=display * molecular-weight jsonpath: * j:record->a:Section->j:{TOCHeading:Chemical and Physical Properties}->a:Section-> .原创 2021-11-01 18:13:59 · 513 阅读 · 0 评论 -
SSL连接MQTT异常 No subject alternative names matching IP address 解决
异常堆栈图: 网上查询大多说的是SSL证书中没有IP,但是,服务器上的代码和证书与本机一致。推测不是证书的问题,为了验证,将打成的jar包上传到一个新的服务上,启动。没有异常推断是本机的问题 。将证书复制到JAVA_HOME/lib 、JAVA_HOME/bin下。依然没有解决。最终对比发现JAVA小版本不同我本机的版本:服务器上的版本:下载新的JDK 解决。...原创 2021-02-16 17:58:42 · 5593 阅读 · 0 评论 -
Junit注解说明
一般标准测试方法必须使用 @Test 修饰测试方法必须使用 public void 进行修饰,不能带参数一般使用单元测试会新建一个 test 目录存放测试代码,在生产部署的时候只需要将 test 目录下代码删除即可测试代码的包应该和被测试代码包结构保持一致测试单元中的每个方法必须可以独立测试,方法间不能有任何依赖测试类一般使用 Test 作为类名的后缀测试方法使一般用 test 作为方法名的前缀一些常用注解:@Test:将一个普通方法修饰成一个测试方法 @Test(excepted=x原创 2020-10-30 11:54:21 · 316 阅读 · 0 评论 -
Java类加载过程
Java类加载需要经历一下7个过程:1.加载加载是类加载的第一个过程,在这个阶段,将完成一下三件事情: •通过一个类的全限定名获取该类的二进制流。 •将该二进制流中的静态存储结构转化为方法去运行时数据结构。 •在内存中生成该类的Class对象,作为该类的数据访问入口。2.验证验证的目的是为了确保Class文件的字节流中的信息不回危害到虚拟机.在该阶段主要完成以下四钟验证: •文件格式验证:验证字节流是否符合Class文件的规范,如主次版本号是否在当前虚拟机范围内,常量...原创 2020-10-14 11:05:31 · 2558 阅读 · 0 评论 -
java-GC调优
一.目的 GC 的时间够小 GC 的次数够少 发生 Full GC 的周期足够的长,时间合理,最好是不发生。二.调优的原则和步骤 1. 大多数的 java 应用不需要 GC 调优 2. 大部分需要 GC 调优的的,不是参数问题,是代码问题 3. 在实际使用中,分析 GC 情况优化代码比优化 GC 参数要多得多; 4. GC 调优是最后的手段三.GC调优的最重要的三个选项: 第一位:选择合适的 GC 回收器 第二位:选择合适的堆大小...原创 2020-10-13 16:22:07 · 532 阅读 · 0 评论 -
SM4加解密
基于开源项目:https://github.com/ZZMarquis/gmhelper@Test public void test(){ String str = "adf4976d917a07e0513dce45b6981919"; String miwei = "{\"你好\":\"2020\"}"; String abc = ""; byte[] cipherText = null; byte[] decr原创 2020-08-19 17:36:42 · 3846 阅读 · 0 评论 -
国密算法SM2加解密数据,解密出现异常
参考开源项目:https://github.com/ZZMarquis/gmhelper旧标准的加密排序C!C2C3 新标准 C!C3C2C1为65字节第1字节为压缩标识,这里固定为0x04,后面64字节为xy分量各32字节。C3为32字节。C2长度与原文一致。如果密文转成byte数组 第一个元素不是0x04,那么需要进行数组copy public void testYouChu(){//密文 String miwei = "gcFp1B4g6FZ3WzDk40WN1原创 2020-08-19 17:33:56 · 16425 阅读 · 1 评论 -
base64通过Gzip压缩和解密
import java.io.*;import java.util.zip.*;import org.apache.commons.codec.binary.Base64;import sun.misc.BASE64Decoder;import sun.misc.BASE64Encoder;public class Base64GzipUtils { public static File base64ToFile(String base64) { if(base64.原创 2020-08-10 17:41:25 · 2671 阅读 · 0 评论 -
使用logback一个类注册不同的logger写入不同的日志文件
需求:在同一个类中,需要处理程序执行日志。业务日志。要求日志互不干扰。控制点大约程序执行日志logback版本1.2.3logback.xml文件如下<?xml version="1.0"?><configuration> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{yyyy-MM-d原创 2020-05-29 10:52:34 · 1234 阅读 · 0 评论 -
java静态分派
/** * java静态分派 * java编译器在overload时通过参数的静态类型而不是实际的类型作为片段的依据的,并且静态类型是编译期可知的。 * 静态分派发送在编译阶段。 * @author idea-pcfff * */public class StaticDispatch { static abstract class Human{ }...转载 2018-04-15 21:12:35 · 333 阅读 · 0 评论 -
java通过SSH远程修改linux用户密码
转自:http://blog.sina.com.cn/s/blog_407956230100e7qt.html使用的第三方包下载:ganymed-ssh2-build210.jar代码如下:package com.util;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;...转载 2018-03-30 18:42:09 · 2237 阅读 · 1 评论 -
使用JDK的keytool工具生成密钥
命令: keytool命令例如: keytool -genkey -alias tomcat -keyalg RSA -keysize 1024 -validity 365 -keystore key-keystore说明:-genkey -alias 表示生成证书别名-keyalg 指定密钥算法-keysize 指定密钥长度,默认1024位-validity 指定证书有效期(天)-keystor...原创 2018-02-17 10:35:51 · 1227 阅读 · 0 评论 -
多线程中的Master-Worker模式
Master-Worker模式是常用的并行计算模式。核心是系统由两类进程协作工作:Master进程和Worker进程。Master负责接收和分配任务,Worker负责处理任务。当各个Worker子进程处理完成后,将结果返回给Master,由Master进行数据融合处理。(多线程任务下载,大数据应用)...原创 2018-02-14 17:17:40 · 595 阅读 · 0 评论 -
java winrm4j 中文乱码问题
由于编码问题,java通过远程调用winrm形式,在控制台返回字符中,包括中文时,显示???,出现中文乱码!通过调整$outputencoding的方式,依然出现乱码。所以采用曲线实现的方式,通过将结果重定向输入到文件(指定文件编码格式),再读取文件的形式,获得执行脚本的结果。代码如下:package com.test;import java.io.UnsupportedEncodingExc...原创 2018-04-26 14:17:56 · 1908 阅读 · 2 评论 -
多线程中的设计模式(Future模式)
Future模式(给你个引用 ,你在通过这个引用去获取数据。给你个钥匙,自己去拿)其中客户端实际使用时,采用线程等待形式,当other call 执行完成后,唤醒客户端请求。FutureClientpublic class FutureClient { public Data request(final String queryStr){ //1 我想要一个代理对象(Data接口的实现类)...原创 2018-02-14 16:58:42 · 318 阅读 · 0 评论 -
java通过winrm4j远程连接win执行命令
说明:为什么使用winrm? 在Linux /UNIX/WINDOWS系统中,一般通过远程连接的方式在远端执行脚本命令或者其他,是通过SSH或者Telnet。笔者之前写过几遍运用JAVA使用SSH或者TELNET连接操作系统执行命令的博客。但这些协议之间存在的差别的。在LINUX、UNIX系统中一般通过SSH协议来登录、执行命令;而在Windows操作系统中,由于没有自带SSH协议,一般通过...原创 2018-04-11 11:46:07 · 9628 阅读 · 16 评论 -
java通过Telnet 远程修改windows用户密码
DOS命令 :net user username newpassword如何使用java远程连接到windows :https://blog.youkuaiyun.com/kerafan/article/details/50180103改密代码:import java.io.IOException;import java.net.SocketException;import com.autoOps.ut...原创 2018-04-05 11:03:39 · 1719 阅读 · 0 评论 -
java运行时区域总结
如图: 程序计数器(Program Counter Register): 是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器、每条线程都需要有一个独立的程序计数器,各条线程之间计数器互不影响,独立存储。“线程私有”的内存。唯一没有规定任何OutOfMemoryError的区域。Java虚拟栈; 线程私有,生命周期与线程相同。用于存储局部变量表、操作数栈、动态链接...原创 2018-04-05 18:00:35 · 353 阅读 · 0 评论 -
java使用ssh连接AIX系统执行命令
之前写过一篇:《JAVA通过SSH方式修改AIX用户密码》通过ganymed-ssh2-build210.jar这个工具连接ssh,其无法执行passwd,原因在于通过该jar建立的连接,没有伪终端。发送的ssh连接命令是:ssh username@ip command;而可以在终端通过ssh -t username@ip command 可以正常执行;man ssh; 有这样的连接参数; -t ...原创 2018-04-18 14:36:51 · 1375 阅读 · 0 评论 -
alibaba.fastjson允许输出NULL并且把字符串输出为“”
使用JSON.toJSONString(str,SerializerFeature... serial);SerializerFeatureQuoteFieldNames———-输出key时是否使用双引号,默认为true WriteMapNullValue——–是否输出值为null的字段,默认为false WriteNullNumberAsZero—-数值字段如果为null,输出为0,而非null...原创 2018-05-01 12:07:06 · 3360 阅读 · 0 评论 -
jar包内文件替换
jar 参数参数 说明-c 创建一个jar包-t 显示jar中的内容列表-x 解压jar包-u 添加文件到jar包中-f 指定jar包的文件名-v 输出详细报告-m 指定MANIFEST.MF文件-0 生成jar包时不压缩内容-M 不生成清单文件MANIFEST.MF-i 为指定的jar文件创建索引文件-C...原创 2019-05-11 14:29:09 · 3085 阅读 · 1 评论 -
记一次tomcat部署war jstl异常
1.部署一个大约100M的war.一开始解析war包较慢,找了方法修改conf下的catalina.properties中 不扫描包(悲剧的开始)2.自动解包 还是很慢 大约3个小时。。。。so.等待完成之后 发现页面500 出现c标签引入问题。以为是版本情况,于是下版本(原先是1.8 现在换成1.7)之后 还是不行重新编译打包上传 ,依然不行。最后,重新弄的tomcat 才成功。...原创 2019-05-21 15:02:56 · 403 阅读 · 0 评论 -
mybatis输出sql到console
近期,在研究一个WAS日志文件,其输出大部分内容都是sql语句,于是想起之前配置过mybatis输出mysql语句用于开发测试,于是试了一下 ,有问题。果断上网google一下Mybatis内置的日志工厂提供日志功能,具体的日志实现有以下几种工具:SLF4JApache Commons LoggingLog4j 2Log4jJDK logging具体选择哪个日志实现工具原创 2016-12-15 10:51:49 · 3253 阅读 · 0 评论 -
公平锁与非公平锁
转自:https://www.dutycode.com/suo_gongping_feigongping.html 公平锁是指,在一段时间内,先对锁发起获取请求的一定被先满足。或者可以理解成期望获取锁的线程是一个先进先出的队列,等待时间最久的线程最优先获取到锁。而非公平锁是指,获取锁的顺序并不是有序的,可以随时优先获取。 一般情况下,公平的锁机制比非公平的效率低,因为公平的锁...转载 2018-02-14 16:28:02 · 464 阅读 · 0 评论 -
java中Queue
在并发队列中JDK提供了两种队列:ConcurrentLinkedQueue:支持高性能的QueueBlockingQueue:带阻塞的QueueConcurrentLinkedQueue是一种适用于高并发场景下的队列,通过无锁的方式,实现高并发状态下的高性能,通常性能优于BlockingQueue.是一种基于连接节点的无界线程安全队列。遵循FIFO原则,不允许NULL.注意:size 方法不是 ...原创 2018-02-14 16:20:51 · 662 阅读 · 0 评论 -
杨辉三角(Pascal三角)java实现的两种方式
直接代码走起: /** * 巴斯卡(Pascal)三角形(杨辉三角) * @author idea-pcfff * */public class Pascal { /** * 运用公式,迭代计算 * nCr = [(n-r+1)*nCr-1]/r nC0 = 1 * @param n 行row * @param r 列原创 2018-01-22 11:47:18 · 900 阅读 · 0 评论 -
Mybatis 运用泛型减少DAO层代码
MyBatis Dao 泛型原创 2017-12-28 11:32:56 · 1429 阅读 · 2 评论 -
jsp学习笔记
1.JSP标准指令:2.JSP程序代码元素: 3.JSP标准动作:" /> //先包含后处理//先处理后包含 必须同和一起使用。原创 2018-01-11 10:24:39 · 246 阅读 · 0 评论 -
冒泡排序
public class BubbleSort{ public static void main(String[] args) { int[] a = {9,5,6,7,8}; sort(a); } private static void sort(int[] a) { int le原创 2017-12-14 16:45:02 · 253 阅读 · 0 评论 -
springAOP认识
Spring AOP的认识1.常用到AOP的地方:日志记录、安全检查、事务管理等(避免了在多处编写同样的方法)2.AOP的三种织入方式:1)编译期,2)类装载器,3)运行期 两种典型的实现方式:1)AspectJ-- 最全的面向切面框架,2)Spring 的AOP实现-通过引用AspectJ,常与Spring的IOC整合一起使用 利用动态代理实现AOP--实现了转载 2017-10-13 17:33:56 · 308 阅读 · 0 评论 -
java 生成条码并保存为SVG
使用jar :barcode4j.jar代码如下:package com.test;import java.io.File;import javax.xml.transform.Result;import javax.xml.transform.Source;import javax.xml.transform.Transformer;import ja原创 2016-12-16 16:14:35 · 2489 阅读 · 0 评论 -
java 解析没有根节点的类xml文件
InputStream is = new FileInputStream(fileName); Enumeration streams = Collections.enumeration( Arrays.asList(new InputStream[] { new ByteArrayInp原创 2016-03-03 15:24:48 · 3777 阅读 · 0 评论 -
求质数 c与java
c:#include #include #include int main(){unsigned long *p = NULL; unsigned long t = 0L; bool found = false; size_t total = 0; size_t count = 0; int i = 0; pri原创 2014-04-11 16:21:05 · 574 阅读 · 0 评论 -
java面试题
本文由 ImportNew - miracle1919 翻译自 javacodegeeks。欢迎加入Java小组。转载请参见文章末尾的要求。本文我们将要讨论Java面试中的各种不同类型的面试题,它们可以让雇主测试应聘者的Java和通用的面向对象编程的能力。下面的章节分为上下两篇,第一篇将要讨论面向对象编程和它的特点,关于Java和它的功能的常见问题,Java的集合类,垃圾收集器,第二篇主要转载 2014-04-23 10:54:44 · 566 阅读 · 0 评论 -
JDK中的设计模式
结构型模式:适配器模式:用来把一个接口转化成另一个接口。java.util.Arrays#asList()javax.swing.JTable(TableModel)java.io.InputStreamReader(InputStream)java.io.OutputStreamWriter(OutputStream)javax.xml.bind.annotation.a转载 2014-03-10 17:32:18 · 537 阅读 · 0 评论 -
java 解压文件
package test;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileOutputStream;import java.util.Enumeration;import java.util.zip.ZipEntr原创 2017-12-29 14:43:34 · 993 阅读 · 0 评论 -
java语言介绍蒙特卡罗方法
代码: /** * 蒙特卡罗方法 * 1777年,法国数学家布丰(Georges Louis Leclere de Buffon,1707—1788)提出用投针实验的方法求圆周率π * 假设有一个圆半径为1,所以四分之一圆面积就为PI,而包括此四分之一圆的正方形面积就为1 * 如果随意的在正方形中投射飞标(点)好了,则这些飞标(点)有些会落于四分之一圆内,假设所投射的飞标(点)有 n点原创 2018-01-22 14:03:32 · 1736 阅读 · 0 评论 -
java同步类容器与并发类容器
同步类容器通过加锁来实现容器的复合操作(迭代、跳转及条件运算),同步类容器如(Vector、HashTable)在并发环境中进行复合操作容易产出ConcurrenModificationException异常。原因在于当容器迭代的过程中,被并发的修改了内容。这是因为在早起迭代器的设计中没有考虑并发的情况导致的、同步类容器是通过Collections.synchronized***等工厂方法去创建实...原创 2018-02-14 16:00:33 · 346 阅读 · 0 评论 -
java volatile关键字及Atomic类的使用
volatile关键字public class VolatileTest implements Runnable{ /* * volatile 标识变量在线程间可见,不具备原子性(赋值后,可能会导致子线程逻辑出错) * * 在java中,每一个线程都自有一块工作内存区,其中存放这所有线程共享的主内存中的变量值的copy. * 当线程执行时,线程在...原创 2018-02-11 20:20:29 · 733 阅读 · 0 评论