随笔分类 -  Java

摘要:看到一个面试题,说说Class.forName() 与 ClassLoader.loadClass()的区别,特意记录一下,方便后续查阅。 在我们写java代码时,通常用这两种方式来动态加载一个java类,它们是Class.forName() 与 ClassLoader.loadClass()。 但是这两个方法之间也是有一些细微的差别,下面通过写代码实践的方式来看看结果。一、Clas... 阅读全文
posted @ 2019-12-11 22:50 zeng1994 阅读(1516) 评论(0) 推荐(0)
摘要:从2014年java8发布到现在已经有几个年头了,现在java11都发布了。公司最近把服务器环境重新搭建了一遍,jdk版本也从7换成了8,终于可以在代码里面写Lambda表达式了。作为一名java开发人员,java8的一些新东西也是必须要掌握的,今天就说说这Lambda表达式的使用。一、Lambda表达式简介(1)定义Lambda是一个匿名函数,我们可以把Lambda表达式理解为一... 阅读全文
posted @ 2019-06-19 11:19 zeng1994 阅读(1105) 评论(2) 推荐(2)
摘要:项目上线一周后,正准备看新闻的我突然接到了一个任务。线上突然出现了一条乱码的数据,需要解决这个bug。于是我放下了手中的保温杯,开始解决这个bug。经过一番折腾,发现是有一个同事在处理IO流上写得有点问题,导致了乱码的产生。一、问题的发现与分析(1)发现 针对这个乱码问题,我脑海中闪过了3种会导致乱码产生的情景。[1] 数据库表里面字符集设置错误[2] 由于未加编码过滤器导致Spri... 阅读全文
posted @ 2018-11-20 15:29 zeng1994 阅读(6563) 评论(6) 推荐(3)
摘要:最近有个需求需要获取一个指定包下的所有类的全类名,因此特意写了个获取指定包下所有类的全类名的工具类。在此记录一下,方便后续查阅一、思路 通过ClassLoader来查找指定包,如果是在classes文件夹下的class文件,则用遍历文件的方式来获取该包下的所有类名。如果这个包名是jar包里面的,那么需要通过遍历jar包内文件的方式来获取该包下的所有类的类名二、代码 ... 阅读全文
posted @ 2018-07-20 17:34 zeng1994 阅读(23801) 评论(0) 推荐(1)
摘要:碰到个需求,需要按用户名字的首字母来排序。这就需要获取汉字对应的拼音了,突然就想起了pinyin4j这个jar包,于是就开始写了个汉字转拼音的工具类。在此记录一下,方便后续查阅一、Pom依赖 com.belerweb pinyin4j 2.5.0 6 1 2 3 com.belerweb ... 阅读全文
posted @ 2018-05-09 14:54 zeng1994 阅读(11057) 评论(1) 推荐(0)
摘要:对zip压缩包的解压是比较常见的应用场景,java代码的实现也很简单。废话不多说,直接上代码吧一、代码 /** * zip解压 * @param srcFile zip源文件 * @param destDirPath 解压后的目标文件夹 * @throws RuntimeException 解压失败会抛出运行时异常 */ public stati... 阅读全文
posted @ 2017-12-29 09:42 zeng1994 阅读(33098) 评论(1) 推荐(4)
摘要:最近碰到个需要下载zip压缩包的需求,于是我在网上找了下别人写好的zip工具类。但找了好多篇博客,总是发现有bug。因此就自己来写了个工具类。 这个工具类的功能为:(1)可以压缩文件,也可以压缩文件夹(2)同时支持压缩多级文件夹,工具内部做了递归处理(3)碰到空的文件夹,也可以压缩(4)可以选择是否保留原来的目录结构,如果不保留,所有文件跑压缩包根目录去了,且空文件夹... 阅读全文
posted @ 2017-11-19 21:45 zeng1994 阅读(165022) 评论(16) 推荐(27)
摘要:今天在公司项目中,发现一个计算运费的妙招。由于运费规则各种各样,因此写一个公式存到数据库。下次需要计算运费时,直接取出这个公式,把公式的未知变量给替换掉,然后计算出结果就是ok了。一、先看几张图(1)数据库存的公式 (2)怎么在java代码中计算出结果,见下面2张图 这图,是在map集合中存了 key为"\\$w" value为重量的参... 阅读全文
posted @ 2017-10-26 20:53 zeng1994 阅读(4626) 评论(0) 推荐(1)
摘要:TreeSet排序相关总结 java的集合这一块在工作中用得还比较多,有些东西老是忘,因此在此记录下来。 TreeSet原理 1.特点 TreeSet是用来排序的, 可以指定一个顺序, 对象存入之后会按照指定的顺序排列 2.使用方式 a.自然顺序(Comparable) TreeSet类的add() 阅读全文
posted @ 2017-08-23 11:48 zeng1994 阅读(402) 评论(0) 推荐(0)
摘要:前段时间要个md5加密的工具类,网上找了一些,好多不合适,于是自己写了个工具类。在此把该工具类的代码留下,方便后续查询。下面直接上代码。一、代码package com.tomtop.core.util; import java.security.MessageDigest; /** * MD5Utils * @author ZENG.XIAO.YAN * @date... 阅读全文
posted @ 2017-08-22 16:44 zeng1994 阅读(663) 评论(0) 推荐(0)
摘要:前几天看了下公司代码中的一个单例类,发现居然是用静态内部类实现的。后面在网上找了下资料,发现使用静态内部实现的单例是懒加载的且线程安全。 从网上资料得出如下结论:加载一个类时,其内部类不会同时被加载。一个类被加载,当且仅当其某个静态成员(静态域、构造器、静态方法等)被调用时发生。 一、代码 1 pa 阅读全文
posted @ 2017-08-19 19:08 zeng1994 阅读(11048) 评论(0) 推荐(0)
摘要:1、正则表达式的概述和简单使用 A:正则表达式是指一个用来描述或者匹配一系列符合某个语法规则的字符串的单个字符串。其实就是一种规则。有自己特殊的应用。 作用:比如注册邮箱,邮箱有用户名和密码,一般会对其限制长度,这个限制长度的事情就是正则表达式做的 作用:专门用于操作字符串 特点:用一些特定的符号来表示一些代码的操作.这样就简化书写. ... 阅读全文
posted @ 2017-08-19 18:54 zeng1994 阅读(286) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2017-08-19 18:50 zeng1994 阅读(275) 评论(0) 推荐(0)
摘要:Java中枚举的写法和用法 在公司代码中,用了一大堆的枚举,看得我好懵逼。下面开始看看枚举怎么写和怎么用。 一、枚举的写法 关于枚举的写法,网上好多这方面的知识。这里直接贴一个我自己写的枚举类的代码。 (1)代码片段一 package com.tomtop.application.libraries 阅读全文
posted @ 2017-08-19 18:49 zeng1994 阅读(16472) 评论(0) 推荐(0)