Java SE
文章平均质量分 53
Java基础知识
格子衫111
梦想不能只是梦和想...
展开
-
重写Java的equals方法,一般用于对象判重
【代码】重写Java的equals方法,一般用于对象判重。原创 2024-01-21 17:20:08 · 465 阅读 · 0 评论 -
手把手教你,如何先梳理业务逻辑再写代码
需求文档是业务逻辑的一种展现形式,而代码不过是业务逻辑的另一种表现形式;如果逻辑本身有问题,那么它的各种展示形式自然也是错的,所以写代码前应该先思考清楚业务逻辑。原创 2023-09-12 10:28:05 · 1093 阅读 · 0 评论 -
枚举类参考
【代码】枚举类参考。原创 2023-08-18 10:47:39 · 89 阅读 · 0 评论 -
利用String格式化打印日志
利用String格式化打印日志原创 2023-04-19 16:27:25 · 333 阅读 · 1 评论 -
map的遍历
map的遍历示例原创 2023-04-19 15:00:45 · 222 阅读 · 0 评论 -
如何在Java程序中获取自己的进程号
在分布式系统中,对于一个需要全局唯一ID的需求,我们可能会按照如下的格式来定一个ID的组成:**机器编号 + 进程号 + 时间戳 + 流水号**按照上面这个逻辑,我们可能会得到一个类似 08C5 00375 20210320232030 0001 这样的ID。原创 2023-04-18 14:36:52 · 2779 阅读 · 0 评论 -
java8中的stream的用法实践
java8的stream用法实践原创 2023-03-30 17:52:51 · 223 阅读 · 0 评论 -
校验数字工具类
校验数字工具类例子:原创 2023-03-30 15:25:04 · 167 阅读 · 0 评论 -
枚举类型的获取
枚举类型的获取,这里提供一个示例,直接参考原创 2023-03-06 15:15:42 · 239 阅读 · 0 评论 -
根据List中的对象的某个属性,求和
根据List中的对象的某个属性,求和、求平均值、最小值、最大值转载 2023-03-02 17:59:48 · 3819 阅读 · 0 评论 -
Java获取当前类名和方法名
Java获取当前类名和方法名原创 2023-02-17 15:43:19 · 972 阅读 · 0 评论 -
java8中的Collectors.groupingBy进行分组用法
Collectors.groupingBy根据一个或多个属性对集合中的项目进行分组转载 2023-01-11 11:10:07 · 3230 阅读 · 0 评论 -
发送邮件工具类,非常实用
发送邮件工具类,非常实用。普通邮件,正文带表格邮件,带附件邮件,均有示例。原创 2022-12-16 11:43:43 · 956 阅读 · 0 评论 -
加载配置文件工具类
加载配置文件工具类原创 2022-12-13 18:09:36 · 142 阅读 · 0 评论 -
AES加解密工具类
这里,提供一个AES加解密的工具类原创 2022-12-13 16:20:24 · 602 阅读 · 0 评论 -
Java泛型中<?>和<T>的区别
##### 1、从定义上看T和?运用的地方有点不同,?是定义在引用变量上,T是类上或方法上##### 2、从用途上看"T>"和"",首先要区分开两种不同的场景:第一,声明一个泛型类或泛型方法;第二,使用泛型类或泛型方法。**类型参数“T>”主要用于第一种,声明泛型类或泛型方法****无界通配符“”主要用于第二种,使用泛型类或泛型方法**原创 2022-12-12 13:42:11 · 5312 阅读 · 0 评论 -
面试题:线程池常见10问【重要】
一、使用线程池比手动创建线程好在哪里?1、减少线程生命周期带来的开销。如:线程是提前创建好的,可以直接使用,避免创建线程的消耗。2、合理的利用内存和CPU。如:避免线程创建较多造成的内存溢出,避免线程创建较少造成CPU的浪费。3、可以统一管理资源。如:统一管理任务队列,可以统一开始或结束任务。/** * 例子: 用固定线程数的线程池执行10000个任务 */ public class ThreadPoolDemo { public static void main(原创 2021-06-14 14:38:41 · 1818 阅读 · 0 评论 -
面试题:线程安全3问
一、一共有哪 3 类线程安全问题?什么是线程安全:当多个线程访问一个对象时,不需要考虑不能同时写入或者读写不能并行的问题,也不需要做额外的同步操作,那么就说这个对象是线程安全的。1)运行结果错误:如两个线程同时访问共享变量i,执行1000次 i++操作,未加同步操作;2)发布和初始化引发的线程安全问题:如子线程还未给一个对象初始化,主线程就去访问,得到的是null;3)活跃性问题,死锁:如两个线程各拿到对方的锁不愿意释放;活锁:如消息队列中报错的消息被重复放到队列头进行执行;饥饿:如某个线程原创 2021-06-13 19:36:17 · 303 阅读 · 0 评论 -
面试题:线程基础5问
一:为何说只有 1 种实现线程的方法?1.创建线程,本质上就一种,通过new Thread()实现;但实现线程执行内容有两种方式,也是我们最常见的,1)继承Thread类;2)实现Runnable接口。其他方式,例如线程池,Timer只是对new Thread()的封装。2.实现Runnable接口相比继承Thread类的好处:1)结构上分工更明确,线程本身属性和任务逻辑解耦;2)某些情况下性能更好,直接把任务交给线程池执行,无需再次new Thread();3)可拓展性更好,实现接口可以多个原创 2021-06-13 17:47:02 · 123 阅读 · 0 评论 -
Java BigDecimal类型的 加减乘除运算及扩展
Java BigDecimal 类型的加减乘除运算不能直接用相关运算符号(如:+,-,*,/),需要调用方法,方法如下:加法:add减法:subtract乘法:multiply除法:divide可参考下面代码:BigDecimal bignum1 = new BigDecimal("10");BigDecimal bignum2 = new BigDecimal("5");BigDecimal bignum3 = null;//加法bignum...原创 2021-06-01 11:15:12 · 2726 阅读 · 0 评论 -
要想彻底避免线程竞争,来看一下ThreadLocal的使用
1.介绍在处理多线程并发安全的方法中,最常用的方法,就是使用锁,通过锁来控制多个不同线程对临界区的访问。但是,无论是什么样的锁,乐观锁或者悲观锁,都会在并发冲突的时候对性能产生一定的影响。那有没有一种方法,可以彻底避免竞争呢?答案是肯定的,这就是ThreadLocal。从字面意思上看,ThreadLocal可以解释成线程的局部变量,也就是说一个ThreadLocal的变量只有当前自身线程可以访问,别的线程都访问不了,那么自然就避免了线程竞争。因此,ThreadLocal 提供了一种与众不同的线程原创 2021-05-10 14:44:37 · 394 阅读 · 0 评论 -
Java中的IntStream range()方法的使用
前言:Java中,IntStream是一个接口,继承BaseStream。里面有很多方法,如:filter()、map()、sorted()、empty()等,下面,介绍一下它的一个常用静态方法:range()方法。源码: /** * Returns a sequential ordered {@code IntStream} from {@code startInclusive} * (inclusive) to {@code endExclusive} (exc.原创 2021-05-08 15:41:17 · 17291 阅读 · 0 评论 -
使用MySQL或Java对查询结果中的手机号、身份证号等进行脱敏处理
为了保障客户数据的隐私,系统或者APP往往需要对手机号进行脱敏处理,因为前端仅仅是为了展示。那什么是脱敏处理呢?就是把用户的一些敏感信息(如身份证号、邮箱、手机号等)进行加密。举例:假如手机号原本是18645461234,那么脱敏后的手机号则为:186****1234。下面介绍实现脱敏的两种方式:1、mysql方式:sql:-- 对手机号进行脱敏SELECT common_phone,INSERT(common_phone,4,4,'****') from ctm_custome原创 2021-04-28 17:39:06 · 6503 阅读 · 0 评论 -
如何根据日期+数字生成流水号
生成流水号,在企业中可以说是比较常见的需求,尤其是订单类业务。一般来说,需要保证流水号的唯一性。如果没有长度和字符的限制,那么直接使用UUID生成一个唯一字符串即可,具体可参考我的这篇文章:java生成类似token的唯一随机字符串也可以直接使用数据库表中的主键,主键就是唯一的。那么,如果限制了流水号必须多少位,这种怎么生成呢?可以采用"前缀+日期+数字"的方式(ps:此方式是需要用到缓存的)前缀:为了更好的标识这个流水号是属于哪种类型;日期:为了防止重复;数字:为了表示当前的流水所处序号。原创 2021-04-22 19:57:45 · 9425 阅读 · 7 评论 -
List去除重复数据的五种方式
链接:https://blog.csdn.net/qq_37939251/article/details/90713643List在Java开发中用得非常多,数据处理方面,咱们经常需要对重复数据去重。以下介绍五种-不同的方法去除 Java 中ArrayList中的重复数据1、使用LinkedHashSet删除arraylist中的重复数据LinkedHashSet是在一个ArrayList删除重复数据的最佳方法。LinkedHashSet在内部完成两件事:删除重复数据保持添加到其中的数据的顺序转载 2021-02-22 10:43:07 · 1539 阅读 · 0 评论 -
isEmpty 和 isBlank 区别?
来源 |jianshu.com/p/98e7593ca0e2org.apache.commons.lang.StringUtils类提供了 String 的常用操作,最为常用的判空有如下两种isEmpty(String str)和isBlank(String str)。分析我们通过源码来分析区别:publicstaticbooleanisEmpty(Stringstr){returnstr==null||str.length()==0;}p...原创 2021-02-10 17:29:59 · 269 阅读 · 2 评论 -
一篇文章搞懂多线程
前言多线程几乎是面试的必考点,重要性不言而喻。但是工作中如果没经常使用,其相关知识就会很快忘记。下面我对多线程的知识点梳理一下,以便下次需要的时候可以随时查阅。为方便理解,我尽量使用通俗易懂的语言表述。一、基本概念1、程序 数据结构 + 算法,主要指存放在硬盘上的可执行文件。换言之,就是编写的代码。2、进程 主要指运行在内存中的可执行文件。 换言之,就是正在运行的程序,如下图所示,电脑中会有很多单独运行的程序,这些就是进程3、线程 线程就是进程内部的程序流...原创 2020-10-06 22:38:51 · 903 阅读 · 2 评论 -
JAVA操作IO流四部曲,简单好记
当我们需要从文本文件中读取内容,或者需要写入内容到文件中的时候,就需要用到JAVA中的流。流包括输入流和输出流,读:使用输入流,写:使用输出流。为了方便记忆,分别拆分成以下4个步骤。一、读取1、新建文件输入流 FileInputStream (字节流,只能读取一个字节,fis.read())FileInputStream fis = new FileInputStram(fileP...原创 2018-08-20 21:01:17 · 1397 阅读 · 0 评论 -
java将字符串进行MD5加密
对于一个明文,为了安全,有时我们需要对其进行MD5加密,下面提供2个java工具方法,直接调用其中一个即可。方法1:/** * MD5加密 */public class MD5Util { /** * Encodes a string 2 MD5 * * @param str String to encode * @return Encoded String原创 2017-12-09 15:06:14 · 43417 阅读 · 12 评论 -
java生成类似token的唯一随机字符串
有时候,后台需要生成随机字符串,提供给调用方,用于验证身份。生成随机字符串可直接使用java.util包下面的UUID类,其为我们提供了一个生成方法,randomUUID()。下面给出一个方法(去掉了横线拼接符): /** * 生成token * @return */ public static String GetGUID() { return UUID.ra原创 2017-12-09 14:59:40 · 23226 阅读 · 2 评论 -
JAVA字符串详解
一、字符串替换1、replace方法 该方法的作用是替换字符串中所有指定的字符,然后生成一个新的字符串。经过该方法调用以后,原来的字符串不发生改变。例如: String s = “dudaduda”; String s1 = s.replace(‘a’,‘1’); 2、replac原创 2017-11-30 17:14:15 · 719 阅读 · 0 评论 -
创建、删除文件或目录java工具类
这是创建文件或者目录的工具类,比较实用。原创 2017-08-07 11:18:51 · 945 阅读 · 0 评论 -
Java使用JDBC连接mySQL数据库小例子
Java连接mySQL数据库时,需要使用到一个Jar包,如"mysql-connector-java-5.0.5-bin.jar",此为连接数据库的驱动包,将其导入所在工程的lib目录下,并Build Path,即可进行引用。原创 2016-08-23 16:37:37 · 10803 阅读 · 3 评论 -
怎么计算两个经纬度之间的距离
1.用经纬度大致计算距离地球赤道上环绕地球一周走一圈共 40075.04公里而一圈分成360°而每1°(度)有60'每一度一秒在赤道上的长度计算如下:40075.04km/360°=111.31955km111.31955km/60'=1.8553258km=1855.3m而每一分又有60秒每一秒就代表 1855.3m/60=30.92m任意两点距离计算公式为d=111.12转载 2016-01-13 16:45:06 · 10524 阅读 · 0 评论