![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 74
zhou_fan_xi
这个作者很懒,什么都没留下…
展开
-
金额转换(数字转中文)
public static void main(String[] args) { double number = 23003600.00; DecimalFormat format = new DecimalFormat("#.00"); String num= format.format(number); System.out.println("转换前数字值:"+num); String result = numCoverC.原创 2020-05-29 17:16:27 · 360 阅读 · 0 评论 -
@JsonFormat、@JSONField、@DateTimeFormat的使用以及其区别
三者出处1、JsonFormat来源于jackson,Jackson是一个简单基于Java应用库,Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象。Jackson所依赖的jar包较少,简单易用并且性能也要相对高些,并且Jackson社区相对比较活跃,更新速度也比较快。2、JSONField来源于fastjson,是阿里巴巴...原创 2020-01-19 16:03:27 · 962 阅读 · 0 评论 -
集合中的那些事
集合中类默认大小及扩容大小List元素是有序的、可重复ArrayList、Vector默认初始容量为10Vector:线程安全,但速度慢 底层数据结构是数组结构 加载因子为1:即当 元素个数 超过 容量长度 时,进行扩容 扩容增量:原容量的 1倍 如Vector的容量为10,一次扩容后是容量为20ArrayList:线程不安全,查询速...原创 2020-01-07 18:07:01 · 228 阅读 · 0 评论 -
CopyOnWrite思想
写入时复制(CopyOnWrite,简称COW)思想是计算机程序设计领域中的一种优化策略。其核心思想是,如果有多个调用者(Callers)同时要求相同的资源(如内存或者是磁盘上的数据存储),他们会共同获取相同的指针指向相同的资源,直到某个调用者视图修改资源内容时,系统才会真正复制一份专用副本(private copy)给该调用者,而其他调用者所见到的最初的资源仍然保持不变。这...转载 2020-01-07 17:54:35 · 646 阅读 · 0 评论 -
Java List操作(分片 partition)
java中list 常用的操作大家都很熟悉了,有时候我们需要像在数据库中一样可以直接group by,select,where,partition来操作 list,如果直接for循环,比较麻烦,可以使用下面这些方法。将list(当然,也可以是其他集合)拆分成多份,常见的场景,比如批量执行sql、分批推送消息,都需要控制批量执行的条数,java传统的集合操作中并没有这样的方法,但是 google...原创 2019-12-26 18:04:25 · 5186 阅读 · 0 评论 -
解决字符流读入乱码
在字符流读取文件时发现读取出现了中文乱码代码:public class test1 { public static void main(String[] args) { try { BufferedReader br = new BufferedReader(new FileReader("e:\\a1\\d1.txt")); ...原创 2019-12-25 17:08:33 · 1074 阅读 · 0 评论 -
使用JDK中的URLConnection连接web接口
针对JDK中的URLConnection连接Servlet的问题,网上有虽然有所涉及,但是只是说明了某一个或几个问题,是以FAQ的方式来解决的,而且比较零散,现在对这个类的使用就本人在项目中的使用经验做如下总结: 1:> URL请求的类别: 分为二类,GET与POST请求。二者的区别在于: a:) get请求可以获取静态页面,也可以把参数放在URL字串后面,传递给ser...原创 2019-02-19 13:54:33 · 134 阅读 · 0 评论 -
Java 基本的定时任务
一 Java 基本的定时任务,总结方法有三种: 1、创建一个thread,然后让它在while循环里一直运行着,通过sleep方法来达到定时任务的效果; public static void main(String[] args) { Runnable runnable = new Runnable() { @Override ...原创 2019-02-20 16:26:44 · 125 阅读 · 0 评论 -
JAVA 获取某个时间段内所有的日期
输入格式:public List<String> getEndDay(String beginDate,String endDate) throws ParseException { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date dBegin = sdf.parse(...原创 2019-03-19 17:25:44 · 4529 阅读 · 2 评论 -
JAVA获取日期月内所有日期
public List<String> getMonthDay(String date) { List<String> list = getMonthFullDay(date); List<String> listDay = new ArrayList<>(); for (String date1 :...原创 2019-03-19 17:27:51 · 6456 阅读 · 0 评论 -
java 给时间增加几个小时方法
/** * 给时间加上几个小时 * @param day 当前时间 格式:yyyy-MM-dd HH:mm:ss * @param hour 需要加的时间 * @return */ public static String addDateMinut(String day, int hour){ SimpleDate...转载 2019-03-29 14:39:31 · 2905 阅读 · 0 评论 -
Java 8 引入的 Optional 类
从 Java 8 引入的一个很有趣的特性是Optional 类。Optional 类主要解决的问题是臭名昭著的空指针异常(NullPointerException) —— 每个 Java 程序员都非常了解的异常。本质上,这是一个包含有可选值的包装类,这意味着 Optional 类既可以含有对象也可以为空。Optional 是 Java 实现函数式编程的强劲一步,并且帮助在范式中实现。但...转载 2019-03-27 16:23:57 · 199 阅读 · 0 评论 -
json解析时自动判断是object还是array
最近解析json时遇到的问题,返回的json内容中可能为jsonArray,也可能是jsonObject,当只有一个信息时是jsonObject,有多个信息时是jsonArray,如果去修改json的返回格式有些不现实。通过字符判断的话又很麻烦。{"scm":{"key1":"vlaue1","key2":"vlaue2"}}{"scm":[{"key1":"vlaue1","key2...转载 2019-06-12 22:27:25 · 2359 阅读 · 0 评论 -
Java8新特性之Stream
一、为什么要使用Stream?Stream是什么?在Java中该怎么用呢?(1)为什么要使用Stream?Java 8 中的 Stream 是对集合(Collection)对象功能的增强,它专注于对集合对象进行各种非常便利、高效的聚合操作,或者大批量数据操作 (bulk data operation)。Stream API 借助于同样新出现的 Lambda 表达式...转载 2019-08-03 16:19:53 · 197 阅读 · 0 评论 -
统计字符串中某一字符出现的次数和批量替换字符
1、通过转换string到字符数组,循环比较字符是否相等。public static Integer getCount(){ String sql="update user SET user_name=?,age=?,sex=?password=? WHERE id=?"; Integer count = 0; char[] chars = ...原创 2019-02-19 10:14:13 · 535 阅读 · 0 评论 -
Eclipse下创建一个新的Maven项目
首先在电脑上配置好Maven环境第一步:在Eclipse中选择创建Maven ProjectNextNextFinish创建好后项目结构如下:第二步:讲项目转为Web项目,右键项目点击properties进行如下操作:选择OK后项目结构变为Web项目结构最后:还需要让它与项目的编译器版本设置保持一致即可右键项目properti...转载 2018-12-11 15:50:14 · 150 阅读 · 0 评论 -
RPC(RPCServiceClient)方式调用webservice SOAP调用
/** * 应用rpc的方式调用 这种方式就等于远程调用, * 即通过url定位告诉远程服务器,告知方法名称,参数等, 调用远程服务,得到结果。 * 使用 org.apache.axis2.rpc.client.RPCServiceClient类调用WebService * 【注】: 如果被调用的WebService方法有返回值 应使用 invokeBlocking 方法 该方法...转载 2018-12-26 14:10:00 · 4300 阅读 · 1 评论 -
二维码框架Zxing实现文字内容二维码
一 、引入Zxing依赖<dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.2.1</version> </de原创 2018-10-31 18:22:55 · 611 阅读 · 0 评论 -
eclipse下添加项目的Maven依赖包
我们在使用eclipse创建maven项目后,pom.xml文件中添加的依赖包在运行tomcat后会报错找不到类。如下:java.lang.ClassNotFoundException: org.springframework.web.filter.CharacterEncodingFilter严重: Exception starting filter Spring character e...原创 2018-11-09 12:12:17 · 13665 阅读 · 0 评论 -
解决编写lambda表达式时出现lambda expressions are not supported at this language level问题
一、问题原因 IDEA编写lambda表达式时报错:lambda expressions are not supported at this language level,意思是在此语言级别不支持lambda表达式,即lambda表达式是java8才支持的一种语法,所以检查idea编译运行环境是否是java8及以上版本二、问题解决 1. 打开 F...原创 2018-11-05 17:19:51 · 8875 阅读 · 0 评论 -
Java中xml转义字符和gt,gte,lt,lte缩写
java mybatis XML文件中不允许出现">"、"<"之类的符号。需要转义字段 符号 说明 &lt ; < 小于号 &gt ; > 大于号 &amp ; & 和 &apos ; ' 单引号 &quot ; "原创 2018-11-20 17:05:37 · 4488 阅读 · 0 评论 -
lambda表达式foreach和普通for循环性能比较
java 8的新特性之一就是lambda表达式,其中lambda表达式的foreach循环最为引人注目,现比较下lambda表达式foreach和普通for循环的性能测试。代码如下: public static void main(String[] args){ List<String> list = new ArrayList<>(); ...原创 2018-11-21 11:52:36 · 12412 阅读 · 1 评论 -
Mapstruct针对domain实体与Entity模型之间的映射操作
概述MapStruct是一种类型安全的bean映射类生成java注释处理器,是一种java对象转换框架。我们要做的就是定义一个映射器接口,声明任何必需的映射方法。在编译的过程中,MapStruct会生成此接口的实现。该实现使用纯java方法调用的源和目标对象之间的映射,MapStruct节省了时间,通过生成代码完成繁琐和容易出错的代码逻辑。MapStruct 可以将某几种类型的对象映射为...原创 2018-11-16 17:21:57 · 983 阅读 · 0 评论 -
针对list集合去重的几种方法
list集合去重分对整体对象去重和根据对象中某个字段去重,以下对这两种方式的去重进行区别。1、list集合中针对整体对象去重 这种方法就相对比较死板,必须集合的对象中每个字段都相同才能去重。 使用双重循环针对集合对象去重,实例代码如下:public static void main(String[] args) { remove(); } public s...原创 2018-11-15 12:15:52 · 1215 阅读 · 1 评论 -
Integer.valueOf和Integer.parseInt的区别
一、Integer.parseInt(s)用法 String s1 = "1000"; String s2 = "1000"; int n1 = Integer.parseInt(s1); int n2 = Integer.parseInt(s2); if (n1 == n2) { Syste...转载 2018-11-22 17:12:04 · 570 阅读 · 0 评论 -
Java中&、|、&&、||详解
1、Java中&叫做按位与,&&叫做短路与,它们的区别是:& 既是位运算符又是逻辑运算符,&的两侧可以是int,也可以是boolean表达式,当&两侧是int时,要先把运算符两侧的数转化为二进制数再进行运算,而短路与(&&)的两侧要求必须是布尔表达式。举例如下:12&5 的值是多少?答:12转成二进制数是1100(前四...转载 2018-11-23 10:30:20 · 39106 阅读 · 6 评论 -
list和string相互转换
一、list转stringStringUtils.join()和String.join():可用来把字符串数组拼接成整条字符串,效果一样只是用法稍有不同,StringUtils要引入jar包common-lang3, String.join()是JDK8新增方法。例子如下:public static void main(String[] args){ List list =...原创 2018-11-23 11:25:45 · 10500 阅读 · 0 评论 -
内存泄漏和内存溢出的区别和联系
1、内存泄漏memory leak :是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄漏似乎不会有大的影响,但内存泄漏堆积后的后果就是内存溢出。 2、内存溢出 out of memory :指程序申请内存时,没有足够的内存供申请者使用,或者说,给了你一块存储int类型数据的存储空间,但是你却存储long类型的数据,那么结果就是内存不够用,此时就会报错OOM,即所谓的内存溢出。 3、二...转载 2018-11-30 16:02:30 · 106 阅读 · 0 评论 -
Switch用string做参数
在jdk 7 之前,switch 只能支持 byte、short、char、int 这几个基本数据类型和其对应的封装类型。switch后面的括号里面只能放int类型的值,但由于byte,short,char类型,它们会 自动 转换为int类型(精精度小的向大的转化),所以它们也支持。注意,对于精度比int大的类型,比如long、float,doulble,不会自动转换为int,如果想使用,就必...原创 2018-11-28 17:08:51 · 268 阅读 · 0 评论 -
Properties类读取配置文件信息
一、Java Properties类 Java中有个比较重要的类Properties(Java.util.Properties),主要用于读取Java的配置文件,各种语言都有自己所支持的配置文件,配置文件中很多变量是经常改变的,这样做也是为了方便用户,让用户能够脱离程序本身去修改相关的变量设置。像Python支持的配置文件是.ini文件,同样,它也有自己读取配置文件的类ConfigPar...转载 2018-12-14 15:02:16 · 1273 阅读 · 0 评论 -
Java开发之@PostConstruct和@PreConstruct注解
从Java EE5规范开始,Servlet增加了两个影响Servlet生命周期的注解(Annotation):@PostConstruct和@PreDestroy。这两个注解被用来修饰一个非静态的void()方法.而且这个方法不能有抛出异常声明。使用方式,例如: @PostConstruct //方式1 ...转载 2018-12-14 15:07:56 · 133 阅读 · 0 评论 -
Java动态代理的两种实现方法
AOP的拦截功能是由java中的动态代理来实现的。说白了,就是在目标类的基础上增加切面逻辑,生成增强的目标类(该切面逻辑或者在目标类函数执行之前,或者目标类函数执行之后,或者在目标类函数抛出异常时候执行。不同的切入时机对应不同的Interceptor的种类,如BeforeAdviseInterceptor,AfterAdviseInterceptor以及ThrowsAdviseIntercept...转载 2018-10-31 15:47:05 · 248 阅读 · 0 评论