
程序开发
CloudDouble
努力让自己变的优秀,然后让别人适配你!
展开
-
log4j2通过PatternLayout参数限制日志中打印的日志的长度
1、有时候如果打印的日志的长度很长的话可以对部分长度很长的日志进行限制,按照我们定义的长度进行打印,配置如下:<!-- 联机或批量日志 [%-1X{transDate}] --> <property name="test"> <![CDATA[onl_bat_pattern [%-5p] [%d{HH:mm:ss,SSS}][%t][%-1X{token}][%-1X{transSeq}][%-1X{taskid}][%-1X{jobid}][%-1X原创 2021-04-06 20:47:28 · 6020 阅读 · 0 评论 -
log4j2通过PatternLayout参数过滤日志中的大字段
在日志打印中会有一些很长的字符串,有时候会很影响我们查日志的效率,通过配置PatternLayout参数实现过滤日志中的大字段打印,配置如下:<PatternLayout> <replace regex="(([\w]+[=])|(["])|([, ]))([\w+/=]{100,})" replacement="$1********" /></PatternLayout>注:以上配置说明在日志中有存在长度超过100的字段值,则将该字原创 2021-04-06 20:38:59 · 1340 阅读 · 0 评论 -
java实现冒泡排序的三种方式
冒泡排序主要思想是比较前后两个元素的大小如果a[i]>a[i+1]则交换两个元素的值import java.util.Random;public class SortTest { static int a[] = new int[100000]; static{ for (int i = 0; i < 100000; i++) { Random random = new Random(100000); a[原创 2020-08-12 11:10:27 · 5107 阅读 · 1 评论 -
用java实现二叉搜索树
二叉搜索树的特点:1、父节点的值大于左子树的值;父节点的值小于等于右子树树的遍历方式:1、先序遍历:先序遍历根节点,然后遍历左子树,最后遍历右子树2、中序遍历:中序遍历左子树,然后遍历根节点,最后遍历右子树3、后序遍历:后序遍历左子树,然后遍历右子树,最后遍历根节点代码实现:package com.phome.mapdemo.treedemo;public class BinarySearchTree { // 定义一个二叉树节点 private Bin原创 2020-08-10 14:31:21 · 166 阅读 · 0 评论 -
HashMap源码分析(jdk7)
HashMap的结构图示 jdk1.7的HashMap采用数组+单链表实现,尽管定义了hash函数来避免冲突,但因为数组长度有限,还是会出现两个不同的Key经过计算后在数组中的位置一样,1.7版本中采用了链表来解决。 从上面的简易示图中也能发现,如果位于链表中的结点过多,那么很显然通过key值依次查找效率太低,所以在1.8中对其进行了改良,采用数组+链表+红黑树来实现,当链表长度超过阈值8时,将链表转换为红黑树.具体细节参考我上一篇总结的深入理解jdk8中的HashMap 从上面图中.转载 2020-08-06 11:13:06 · 230 阅读 · 0 评论 -
快速计算十进制转二进制的方式
在计算机中一切数据都是用0和1来表示的,我们常规计算二进制的方式是把某个数字除以2能除尽则是0,除不尽则取1然后接着除,最后将取出的0和1向前排序就是最终的二进制数。这种方式相当费时费力还容易出错,其实找到其中的规律就可以很快计算出二进制数。1、首先我们需要知道2的幂次方的数的二进制就是1后面n个0,如下:2的n次方 十进制 二进制 1 2 10 2 4 100 3 8 1000 4 16 10000 5...原创 2020-08-05 14:45:23 · 11807 阅读 · 0 评论 -
用java实现一个ArrayList
通过查看ArrayList底层代码发现ArrayList有以下属性:ArayList:1、ArrayList如果初始化的时候没有指定容量则默认大小为10,如果容量不够则按照“newCapacity=oldCapaCity+(oldCapaCity >> 1)”算法进行扩容(原容量的1.5倍进行扩容);2、ArrayList线程不安全,若要实现线程安全可以使用synchronized关键字或Collections.synchronizedList()方法初始化,如下List lis原创 2020-08-04 17:34:56 · 774 阅读 · 0 评论 -
用java实现单链表并实现CRUD
单链表有两个关键变量:存储的元素(object)以及指向下一个节点的引用(next)public class Node{ // 保存的元素 public Object data; // 指向下一个节点 public Node next; public Node() { this(null); } public Node(Object data) { this.data = data; } @O原创 2020-08-04 14:44:35 · 207 阅读 · 0 评论 -
深入理解Java中方法的参数传递机制
原文地址:https://www.cnblogs.com/sum-41/p/10799555.html形参和实参我们知道,在Java中定义方法时,是可以定义参数的,比如:public static void main(String[] args){ }这里的args就是一个字符串数组类型的参数。在程序设计语言中,参数有形式参数和实际参数之分,先来看下它们的定义:形式参数:是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传入的参数,简称“形参”。实转载 2020-07-27 14:22:46 · 274 阅读 · 0 评论 -
log4j2通过PatternLayout参数实现日志敏感字段脱敏
1、首先了解一下 正则表达式:.*,.*?,.+?的匹配方式public static void main(String[] args) { String content ="hello world"; String param1 = ".*"; String param2 = "hell.*?o"; String param3 = "hel.+?l"; Pattern p1 = Pattern.compile(para原创 2020-07-13 17:18:36 · 4194 阅读 · 1 评论 -
java中类加载顺序
package com.phome.classloader;public class ClassLoaderDemo2 { static class A2{ B2 b2 = new B2(); static{ System.out.println("A static"); } public A2() { System.out.println("A2()"); } .原创 2020-07-02 10:36:54 · 160 阅读 · 0 评论 -
java中内部类的作用及使用
原文地址:https://blog.youkuaiyun.com/u013728021/article/details/87358517文章目录内部类的作用1.可以无条件地访问外围类的所有元素2.实现隐藏3.可以实现多重继承4.通过匿名内部类来优化简单的接口实现内部类与外部类的关系内部类的分类静态内部类和非静态内部类的区别局部内部类匿名内部类实际开发中内部类有可能会引起的问题内部类会造成程序的内存泄漏什么是内部类:定义在类中的类内部类的作用我们为什么需要内部类?或者说内部类为啥要存在转载 2020-07-01 16:16:14 · 413 阅读 · 0 评论 -
java中反射机制的使用
1,JAVA反射机制是在运行状态中对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。2、反射机制的使用定义一个Animal类:package com.phome.reflection;public class Animal { public String name1; private int age; public String原创 2020-06-24 17:09:43 · 176 阅读 · 0 评论 -
try,catch中将捕获到的异常堆栈信息打印出来
try{ ............}catch(Exception e){ logger.error(“错误信息为:”+e);}原创 2018-09-25 10:54:06 · 19222 阅读 · 0 评论 -
java将日期转换为其他格式的日期
/** * 将其他日期格式转换为自定义日期格式 * @param dateStr 需要转换的日期(注意日期格式必须为年月日的标准格式) * @param format 需要转换成的格式(如果不输默认为yyyyMMdd) * @return 输出结果 */ public static String dateFormatSwitch(Strin...原创 2018-08-02 10:22:07 · 1674 阅读 · 0 评论 -
如何在项目中配置验证码
选中项目->右击选择里面的Build path -> Configbuild Path -> Libraries -> Web App Libraries -> Access rules -> 选中后点击右面的Edit -> 选择里面的Add -> Resolution -> 里面选择Accessible -> Rule Pattern中填写 com/sun/** 配置完成原创 2014-05-20 16:41:32 · 488 阅读 · 0 评论 -
java生成二维码
转载处:http://blog.youkuaiyun.com/pxr1989104/article/details/512835851、二维码的生成 1.1 将Zxing-core.jar 包加入到classpath下。 1.2 二维码的生成需要借助MatrixToImageWriter类,该类是由Google提供的,可以将该类拷贝到源码中,这里我将该类的源码贴上,可以直接使用。转载 2017-02-04 17:39:07 · 291 阅读 · 2 评论 -
关于list中存储map数据重复问题
以下两段代码中存储的数据有所差异public static void main(String[] args) { List list = new ArrayList(); list.add("a"); list.add("b"); list.add("c"); // 第一组 List list1 = new ArrayList(); Map map = new Hash原创 2017-03-08 12:34:18 · 6310 阅读 · 0 评论 -
去除字符串中的换行空格等符号
package sunline.common.logic.Utils;import java.util.regex.Matcher;import java.util.regex.Pattern;/** * 去掉字符串中的空格,回车符 * @author * */public class Test { /** * 方法一、正则表达式去掉数据中的空格和回车符 * @par原创 2017-03-27 15:52:46 · 3021 阅读 · 0 评论 -
java中String,json,Map之间的转换
测试代码:public static void main(String[] args) { Map map = new HashMap(); map.put("a", "\"测试\""); map.put("b", "\"f\""); map.put("c", "\"3\""); // map转str String str1 = map.toString(); Sy原创 2017-05-11 14:43:57 · 1872 阅读 · 0 评论 -
RSA加解密
原文链接:https://my.oschina.net/u/1377935/blog/537873?p=1原则:1、公钥加密数据 2、私钥解密数据 3、公私钥互加解密密钥源码:package com.zlbank.rsa;import java.io.BufferedReader;import java.io.ByteArrayOutputStrea转载 2017-04-25 20:19:13 · 1232 阅读 · 0 评论 -
怎么解决java.lang.NoClassDefFoundError错误
原文出自:http://blog.youkuaiyun.com/jamesjxin/article/details/46606307前言在日常Java开发中,我们经常碰到java.lang.NoClassDefFoundError这样的错误,需要花费很多时间去找错误的原因,具体是哪个类不见了?类明明还在,为什么找不到?而且我们很容易把java.lang.NoClassDefFoundE转载 2017-06-13 16:28:03 · 543 阅读 · 0 评论 -
java中静态成员与非静态成员之间的访问关系
转载地址:http://blog.youkuaiyun.com/zhouwubin123/article/details/6623308程序最终都将在内存中执行,变量只有在内存中占有一席之地时才能被访问。类的静态成员(变量和方法)属于类本身,在类加载的时候就会分配内存,可以通过类名直接去访问;非静态成员(变量和方法)属于类的对象,所以只有在类的对象产生(创建类的实例)时才会分配内存,然后通过类的对转载 2017-08-14 17:01:03 · 3771 阅读 · 0 评论 -
Web系统大规模并发——电商秒杀与抢购
本文原创地址:http://www.youkuaiyun.com/article/2014-11-28/2822858一、大规模并发带来的挑战 在过去的工作中,我曾经面对过5w每秒的高并发秒杀功能,在这个过程中,整个Web系统遇到了很多的问题和挑战。如果Web系统不做针对性的优化,会轻而易举地陷入到异常状态。我们现在一起来讨论下,优化的思路和方法哈。 1. 请求接口的合理设转载 2017-11-13 17:47:46 · 420 阅读 · 0 评论 -
java中IO流实例
package com.phome.demo1;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.FileReader;原创 2017-02-13 19:31:50 · 388 阅读 · 0 评论 -
jmap和MAT分析JVM堆内存
转自:https://blog.youkuaiyun.com/alli0968/article/details/52460008MAT安装及使用:https://blog.youkuaiyun.com/wizard_rp/article/details/73266194ava的内存泄露多半是因为对象存在无效的引用,对象得不到释放,如果发现Java应用程序占用的内存出现了泄露的迹象,那么我们一般采用下面的步骤分析:1. 用...转载 2018-06-28 16:36:38 · 1353 阅读 · 0 评论 -
spring程序的开发过程
1.首先建立一个java project命名为spring,在里面建立几个包:com.phome.dao;com.phome.service;com.phome.main。分别在各个包中添加类DAO,Service,Main.2.建好之后在里面引入spring所需要的jar包3.代码展示com.phome.dao -〉DAOcom.phome.service ->Servi原创 2014-04-13 19:19:40 · 469 阅读 · 0 评论