java
天涯泪小武
开源贡献者,有代码洁癖。京东coder。
展开
-
随机获取某个集合中的某个元素,多次获取时不重复
倘若用random的nextInt方法,当只有两三个元素时,则很可能多次请求返回的都是同一个,体验很差。譬如想随机获取某个集合中的某个数,用户多次请求时尽量不给用户返回重复的数。所以我们应该尽快让多次请求时,返回的不重复。原创 2024-01-16 17:17:07 · 728 阅读 · 0 评论 -
使用Retryer优雅地实现对Callable各种各样的重试调用
Runnable和Callable都是多线程编程中常用的接口,通常是通过实现该接口编写业务逻辑后,再由new Thread去发起线程调用。主要区别在于Runnable没有返回值,而Callable有返回值。下面就来看一个重试框架Retryer,针对Callable做的各种重试策略方法。 API 接口调用异常, 网络异常在我们日常开发中经常会遇到,这种情况下我们需要先重试几次调用才能将其标识...转载 2019-11-28 10:24:45 · 1974 阅读 · 0 评论 -
高级开发必须理解的Java中SPI机制
本文通过探析JDK提供的,在开源项目中比较常用的Java SPI机制,希望给大家在实际开发实践、学习开源项目提供参考。1 SPI是什么SPI全称Service Provider Interface,是Java提供的一套用来被第三方实现或者扩展的API,它可以用来启用框架扩展和替换组件。整体机制图如下:Java SPI 实际上是“基于接口的编程+策略模式+配置文件”组合实现的动态...转载 2019-10-25 15:25:13 · 618 阅读 · 0 评论 -
如何复制一个java对象(浅克隆与深度克隆)
在项目中,有时候有一些比较重要的对象经常被当作参数传来传去,和C语言的值传递不同,java语言的传递都是引用传递,在任何一个地方修改了这个对象的值,就会导致这个对象在内存中的值被彻底改变。但是很多时候我们并不想去真正的改变这个对象,只是使用它的某些属性,却因为不小心改变后忘记了恢复,或者被团队中不知情的别人给改变了。这样的话,后果将是不可预料的,可能会花上很久也发现不了自己的对象在哪被改了,尤其在原创 2014-11-12 15:03:22 · 2447 阅读 · 0 评论 -
快速排序算法
快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。总的说来,要直接默写出快速排序还是有一定难度的,因为本人就自己的理解对快速排序作了下白话解释,希望对大家理解有帮助,达到快速转载 2016-03-15 17:00:28 · 738 阅读 · 0 评论 -
7Java学习笔记之数据结构——HashMap
原文地址:http://www.importnew.com/20386.htmlJava为数据结构中的映射定义了一个接口java.util.Map,此接口主要有四个常用的实现类,分别是HashMap、Hashtable、LinkedHashMap和TreeMap,类继承关系如下图所示:下面针对各个实现类的特点做一些说明:(1) HashMap:它根据键的hash转载 2017-04-05 15:31:53 · 1022 阅读 · 0 评论 -
Java中关于内存泄漏出现的原因以及如何避免内存泄漏
转账自:http://blog.csdn.net/wtt945482445/article/details/52483944Java 内存分配策略Java 程序运行时的内存分配策略有三种,分别是静态分配,栈式分配,和堆式分配,对应的,三种存储策略使用的内存空间主要分别是静态存储区(也称方法区)、栈区和堆区。静态存储区(方法区):主要存放静态数据、全局 static 数据和常量。这块内存在程序编译时转载 2017-07-24 10:06:52 · 2833 阅读 · 0 评论 -
Could not copy property 'intro' from source to target; nested exception is java.lang.reflect.Invocat
在使用BeanUtil copyProperties时,对两个不同的对象,但是大部分字段相同的对象进行复制时,出现了上面的错误,里面还有一些ClassCastException之类的。但是复制失败的对象明明是个String,并不是什么null赋值到int上之类的。百思不得其解。而且诡异的是只有部分string会报错,别的string就能正常运行。后来研究明白,发现是Hibernate的...原创 2018-12-11 12:50:47 · 3736 阅读 · 0 评论