undetermine
文章平均质量分 67
undetermine
Dongguabai
这个作者很懒,什么都没留下…
展开
-
使用 Git Hooks 防止敏感信息泄露
在日常开发中,我们可能会不小心将敏感信息提交到 Git。为了防止这种情况,可以利用 Git Hooks 编写一个简单的脚本,当发现提交中包含敏感词时,给出提示。通过这种方式,可以有效地防止敏感信息的泄露。你可以根据需要添加更多的敏感词。原创 2024-07-04 18:27:13 · 468 阅读 · 0 评论 -
每天学习一点点之注解处理器 APT
APT 是一个可以在编译阶段发挥作用的强大工具,它能够识别并处理源代码中的注解。APT 的主要用途包括生成新的源代码、执行编译时检查以及生成文档等。APT 能够生成新的源代码文件,但它无法修改已经存在的源文件,此外如果我们的项目需要使用 APT 生成的代码,可能还需要通过反射来处理,这其实也不太方便。原创 2024-03-29 13:05:30 · 973 阅读 · 0 评论 -
性能与实用性:为什么我不推荐使用MapStruct
本文深入探讨了MapStruct的性能和使用成本。虽然MapStruct在性能上表现出色,但其引入的复杂度和学习成本可能会超过其性能优势带来的收益。在大规模工程化或技术成为流行趋势的情况下,性能并非首要考虑因素,更重要的是实用性、灵活性和性价比。因此,我们需要根据具体的场景和需求来选择最合适的工具,而不是盲目追求性能。要注意,即使我们选择不使用某个工具,但也可以从其设计和实现中学习有价值的知识。原创 2024-03-25 13:53:24 · 1790 阅读 · 3 评论 -
做一名有经验的开发人员(三)无意义的 null 检查
在Java开发中,过度的null检查可能会导致代码复杂和难读。理解库和框架:了解你正在使用的库和框架的行为,可以帮助你避免不必要的null检查。使用Optional类:Java 8的Optional类提供了一种优雅的方式来处理可能为null的值。使用注解:一些库和框架,如Spring,提供了注解(如@NonNull),可以帮助我们标记不应该为null的参数和返回值。重新考虑设计:如果代码中有大量的null检查,可能是设计问题。考虑是否有更好的方式来处理null值。原创 2024-03-11 13:49:01 · 930 阅读 · 0 评论 -
做一名有经验的开发人员(二)关于 Boolean 和 boolean
boolean是基本数据类型,它的值只能是true或false,默认值为false。如果你的变量必须有一个真/假值,并且不能为null,那么应该使用boolean。Boolean是boolean的包装类,它的值可以是truefalse或null。如果你的变量可能需要表示一个未定义的状态,那么应该使用Boolean。在Java Beans或者其他需要使用getter和setter的场景中,通常推荐使用Boolean,因为它可以处理null值。这在数据库交互中尤其有用,因为数据库中的布尔字段可能是。原创 2024-03-11 13:47:28 · 935 阅读 · 0 评论 -
Properties 文件顺序读取问题
是一个基于哈希表的数据结构,元素的存储位置是通过元素的键的哈希值计算出来的,而不是按照元素插入的顺序。因此,当你遍历哈希表的元素时,元素的顺序通常会看起来是随机的,这取决于元素键的哈希值。如果需要一个能保持插入顺序的键值对集合,可以使用。原创 2024-01-30 10:12:36 · 543 阅读 · 0 评论 -
永远不要使用双花括号初始化实例,否则就会OOM!
此时的小王被问的一脸懵逼,内心有无数个草泥马奔腾而过,心想你这头老牛竟然也和我争这颗嫩草,但内心却有一种不祥的预感,感觉自己要输,瞬间羞涩的不知该说啥,只能红着小脸,轻轻的“嗯?小王沉默了片刻,只是凭借着以往的经验来看,这“老家伙”还是有点东西的,于是敷衍的“哦~”了一声,仿佛自己明白了怎么回事一样,,其实内心仍然迷茫的一匹,为了不让其他同事发现,只得这般作态。生活中的尴尬无处不在,有时候你只是想简单的装一把,但某些“老同志”总是在不经意之间,给你无情的一脚,踹得你简直无法呼吸。转载 2023-01-31 19:38:34 · 6489 阅读 · 1 评论 -
每天学习一点点之字符编码
技术的发展就是在不停的解决问题和引入新的问题。说来惭愧,对字符编码一直都是似懂非懂的,昨天组内大佬又给讲了一遍。本文就是作为一个初学者对字符编码的一个学习笔记。在步入正题之前首先明确这么几点:计算机由逻辑电路组成,逻辑电路有两种状态开和关,可以使用使用 1 和 0 表示,说白了就是计算机只认识 0 和 1;我们人类使用的各种文字、数字、标点等计算机都不认识,这种 文字、数字、标点就称为字符,多个字符就是字符集;需要想办法把字符和 0、1 对应起来,在对应之前需要给每一个字符加一个唯一标识,类.原创 2021-11-25 22:16:43 · 766 阅读 · 0 评论 -
GB2312 编码
GB2312编码范围:A1A1-FEFE,其中汉字编码范围:B0A1-F7FE。GB2312编码是第一个汉字编码国家标准,由中国国家标准总局1980年发布,1981年5月1日开始使用。GB2312编码共收录汉字6763个,其中一级汉字3755个,二级汉字3008个。同时,GB2312编码收录了包括拉丁字母、希腊字母、日文平假名及片假名字母、俄语西里尔字母在内的682个全角字符。分区表示GB2312编码对所收录字符进行了“分区”处理,共94个区,每区含有94个位,共8836个码位。这种表示方式也称为转载 2021-11-25 14:21:13 · 3530 阅读 · 0 评论 -
解决 GitHub 访问慢,图片无法显示的问题
hosts文件中添加一下配置hosts文件路径mac: /etc/hostswin: C:\\WINDOWS\\system32\\drivers\etc\hosts# GitHub Start140.82.113.4 github.com140.82.114.4 github.com140.82.113.4 gist.github.com140.82.113.6 api.github.com185.199.108.153 asse..转载 2021-03-28 19:47:43 · 166 阅读 · 0 评论 -
java csv文件使用excel打开乱码
java csv文件导出后使用excel打开乱码昨天遇到一个问题,csv文件导出后,提示“文件未完全加载”。点击继续打开后,发现有两种情况:中文了乱码 列超出了excel所限制的范围 单元格中的字符超过了单元格所限制容纳最大字符数 针对这三种原因开始排查:一、中文乱码生成csv文件后时,已经设置了字符编码为utf-8,怎么还是乱码呢?于是使用notepad++打开,发现中文正常显示并没有乱码,然后关掉notepad++,再换excel打开,呐呢?乱码?什么情况,然后上网查询,发现使用not转载 2021-01-07 20:47:44 · 529 阅读 · 0 评论 -
Java 模拟耗时操作
平时我们模拟耗时操作都会使用 sleep 方法,但是有时候不太适合使用这个方法,这时候可以这样模拟: private static void workTime(long ms) { final long l = System.currentTimeMillis(); while (System.currentTimeMillis() <= l + ms) { } }...原创 2020-11-29 17:28:33 · 11721 阅读 · 3 评论 -
一个16进制的数占多少字节?比如19
1个字节是8位,二进bai制8位:xxxxxxxx 范围从00000000-11111111,表示0到255。一位16进制数(用二进制表示是xxxx)最多只表示到15(即对应16进制的F),要表示到255,就还需要第二位。所以1个字节=2个16进制字符,一个16进制位=0.5个字节。十六进制为Hexadecimal,简写为H。十六进制是计算机中数据的一种表示方法。它的规则是“逢十六进一”。进位制位置计数法是一种记数方式,故亦称进位记数法位值计数法,可以用有限的数字符号代表所有的数值。可使用数字符号的转载 2020-11-28 16:17:10 · 10853 阅读 · 0 评论 -
Cookie Domain设置错误引发的单点登录死循环问题
问题现象在业务系统B登录之后,打开B系统的一个内嵌iframe页面page1,page1需要访问业务系统A/create接口,屏幕出现一片白色,跟踪chrome network发现请求截图如下:可以发现,浏览器在不断的访问A/create接口,然后访问passport/serviceLogin接口,然后访问A/sts接口,然后再次访问A/create,再次访问passport/serviceLogin,再次访问A/sts,陷入死循环.单点登录流程图上方流程图是梳理了单点登录代码拦截器转载 2020-07-08 19:24:24 · 1103 阅读 · 0 评论 -
用最简单的方式理解同步和异步、阻塞与非阻塞
同步和异步、阻塞与非阻塞是耳熟能详的几个名词,但是却很难真正理解其含义,虽然也有很多资料以生活中的事例来进行了说明,但还是有一种模糊不清的感觉,其实很多解释都对,但是所站的角度不一样。这个问题也咨询了一些业界大佬,查阅了一些经典书籍,最终总结如下:阻塞与非阻塞是一种编程模型;而同步和异步是线程模型;同步和异步、阻塞与非阻塞是不一样的,不能混淆。同步和异步的区别在于任务执行方和任务发起方是否在同一线程或者进程;同步指任务的发起方和执行方在同一个线程中完成;异步是一种常见的提升吞吐的手段,指任务的发起方和原创 2020-06-29 16:29:36 · 511 阅读 · 2 评论 -
Chrome 清除 Cookie 的坑
平时清除 Cookie 直接这么清楚:但是有时候这么清除了会发现仍然没有退出登陆状态,这时候可以进入开发者工具查看是否还有 Cookie,然后再清除:原创 2020-06-12 12:23:37 · 817 阅读 · 0 评论 -
排查处理 Chrome 80 及以上版本用户登无法登录问题
早上用户反馈了一个比较严重的问题,系统无法登录了。异常信息如下:首先系统已经正常运行了两个多月,登录这种问题一般会暴露地很快,而且上线后一般不会修改相关逻辑,查看 Git 记录,并未修改相关代码;随后也排除了认证系统的问题,因为如果认证系统出现问题,那整个公司都会受到影响,而并没有其他系统并没有相关反馈。通过进一步向用户询问,获得如下信息: 最近才出现; 浏览器均使用...原创 2020-04-14 22:13:49 · 2614 阅读 · 0 评论 -
为什么 form 表单提交没有跨域问题
浏览器的策略本质是:一个域名下面的JS,没有经过允许是不能读取另外一个域名的内容,但是浏览器不阻止你向另外一个域名发送请求。所以form表单提交没有跨域问题,提交form表单到另外一个域名,原来页面是无法获取新页面的内容,或者说form提交后不需要返回,但是ajax是需要返回的。而ajax是想要读取响应内容,浏览器是不允许你这么做的。世界本无跨域,是浏览器不允许js访问别的域,但是浏览...转载 2020-04-14 18:53:10 · 2163 阅读 · 0 评论 -
Java 获取文件 ContentType
转载两篇。原文地址:https://blog.csdn.net/p812438109/article/details/83587315package com.oysept; import java.io.File;import java.io.IOException;import java.net.FileNameMap;import java.net.URLConnectio...转载 2020-02-12 23:35:16 · 1393 阅读 · 0 评论 -
Java 多线程下载大文件(断点续传)
前段时间在项目上遇到了一个上传大文件的问题,其实如果文件比较小,很好处理;但是如果文件过大就需要考虑带宽、内存等问题了。所以很自然的就会想到将文件分块上传,最后合并,同时也支持断点续传。其实断点续传是一个很常见的功能,比如在迅雷上下载电影,中途网断了,这时候下载会暂停,待网络恢复后会继续下载。其实想实现一个完备的这种系统是很难的,本文主要是以多线程下本地大文件传输为例简单介绍一下原理(下载网络资源...原创 2020-01-27 20:25:39 · 3210 阅读 · 0 评论 -
itextsharp报错 PdfReader not opened with owner password
itextSharp读取Pdf时报错:PdfReader not opened with owner password报错原因:pdf文件被用户加密了。解决办法:在创建pdfReader实例后,加一行代码:PdfReader.unethicalreading = true;...转载 2019-10-25 11:40:28 · 3983 阅读 · 0 评论 -
另一种思路比较2个日期是否相等的方式
转自:https://blog.csdn.net/zsg88/article/details/70185119我们在应用中经常会遇到2个日期比较是否同一年,或者同一个月或者同一日,等。常规方式,我们通过逐个年,月,日的比较,才能确定是否是同一年,或同一个月或同一日。我们换一种思路,把2个日期按同一个日期格式转换成字符串,然后比较这2个字符串就能确定是否是同一年,或同一个月或同一日。...转载 2018-11-19 15:00:03 · 1767 阅读 · 0 评论 -
Java日期比较大小
转自:https://blog.csdn.net/sinat_25175269/article/details/78141201import java.text.Format;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;/** * 日期比较大小的两种...转载 2018-11-19 16:11:00 · 496 阅读 · 0 评论 -
写AOP和MVC框架个人感受
其实基本实现不难,个人感觉主要有两个地方相对比较麻烦:1.MVC的多类型参数绑定问题 比如SpringMVC支持基本数据类型、json、pojo、集合的参数绑定,但是自己在框架中要处理这些复杂的参数绑定是比较麻烦的,思路是使用属性编辑器PropertyEditor。2.AOP多重嵌套问题 如果要实现自己的AOP框架,如果不考虑写自己的动态代理和类加载器的话,首选肯定是使...原创 2018-05-09 13:00:24 · 792 阅读 · 0 评论 -
Java 获取 CPU 占用率
转自:https://www.jianshu.com/p/015cc4805e29最近做一个Java性能统计的问题,需要统计当前进程占用CPU的情况,最开始使用Java MxBean来获取:OperatingSystemMXBean osMxBean = ManagementFactory.getOperatingSystemMXBean();double cpu = osMxBean...转载 2018-12-03 21:12:43 · 1038 阅读 · 0 评论 -
Java中有了基本类型为什么还要有包装类型?
转自:https://blog.csdn.net/min996358312/article/details/62894674Java中基本数据类型与包装类型有:基本类型 包装器类型 boolean Boolean char Character int Integer byte Byte short Short long...转载 2018-11-02 14:39:09 · 233 阅读 · 0 评论 -
Java文件路径问题
转自:https://www.linuxidc.com/Linux/2016-09/135544.htm前言项目部署到生产环境(CentOS 7)后在运行过程中多了一些不明文件目录,如下图: 项目中有相关的下载功能,所以需要在服务器端创建目录,但很明显创建失败了,不难发现图中的路径分隔是和windows操作系统一致的反斜杠: 但很遗憾在Linux操作系统中路径之间的分隔符和wi...转载 2018-11-14 23:58:00 · 2552 阅读 · 1 评论 -
Java在windows和linux系统中的换行符问题
转自:https://blog.csdn.net/io105485_/article/details/79626380在windows系统使用 String str = System.getProperty("line.separator"); 可以正常换行;但是部署到linux系统之后,打印出的txt文本换行消失;网上吸取前辈经验之后用一下方法解决:String str = "...转载 2018-11-14 23:47:50 · 1413 阅读 · 0 评论 -
MessageFormat使用占位符拼接字符串
MessageFormat.format()可以根据顺序和占位符来拼接字符串。public static void main(String[] args) { System.out.println(MessageFormat.format("{0},{1},{2},{3}", "a0", "b1","c2","d3"));//a0,b1,c2,d3 } ...原创 2018-11-05 14:13:29 · 1049 阅读 · 0 评论 -
关于System.err和System.out
先看一段测试代码:多运行几次,会发现每次的结果都不一样:会发现输出的顺序有时候会不一样(要注意这里不是重排序,重排序是针对共享变量的)。可以先参看官方文档的描述:/** * The "standard" output stream. This stream is already * open and ready to accept outp...原创 2018-11-07 12:38:52 · 506 阅读 · 0 评论 -
Java压缩/解压缩zip文件工具类
转自:https://blog.csdn.net/qq_38366063/article/details/83792343import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.util.zip.Z...转载 2018-11-07 12:16:55 · 451 阅读 · 0 评论 -
LOG使用规范(整理)
转自:https://www.jianshu.com/p/8551fe9c6354在开发B/S系统时,对于LOG,需要关注:日志信息的集中采集、存储、信息检索:在WEB集群节点越来越多的情况下,让开发及系统维护人员能很方便的查看日志信息 日志信息的输出策略:日志信息输出全而不乱,便于跟踪和分析问题 关键业务的日志输出:基于度量数据采集、数据核查、系统安全等方面的考虑,关键业务系统对输出...转载 2018-11-04 20:39:34 · 2056 阅读 · 3 评论 -
JDK 1.7 新特性之在数字字面量使用下划线
转自:https://blog.csdn.net/heartroll/article/details/78455045#%E5%9C%A8%E6%95%B0%E5%AD%97%E5%AD%97%E9%9D%A2%E9%87%8F%E4%BD%BF%E7%94%A8%E4%B8%8B%E5%88%92%E7%BA%BF在数字字面量使用下划线在JAVA SE 7和以后的版本中,下划线字符(_)...转载 2018-12-04 09:45:36 · 513 阅读 · 0 评论 -
JavaEE 的13个核心规范
规范很容易被忽略,但是很重要。转自:https://mp.weixin.qq.com/s/F0v8Kyt56elZ_EvvXx7H7A JavaEE的13个规范其实就是JavaEE的13个API文档,是一种比较抽象的标准。1、JDBC(Java Database Connectivity) JDBC 为访问不同的数据库提供了一种统一的方法,类似的API还有微软的ODBC。JDBC...转载 2018-12-21 11:49:15 · 254 阅读 · 0 评论 -
Java 集合排序
转自:https://www.cnblogs.com/pin-wang/p/5645044.html比如将一个List<Student>排序,则有两种方式:1:Student 实现 Comparable 接口:2:给排序方法传递一个 Comparator 参数:请看下面的举例:Student 类:package demo;//Student实现Comparab...转载 2018-12-11 13:29:56 · 261 阅读 · 0 评论 -
List 之按照中文拼音首字母排序
public class TestCompare { private static Comparator comparator=Collator.getInstance(java.util.Locale.CHINA); public static void main(String[] args) { List<String> personList=Arrays.asLis...转载 2019-09-19 16:14:14 · 1224 阅读 · 0 评论 -
表单重复提交注意事项
原文地址:https://mp.weixin.qq.com/s?__biz=MzU1OTgyMDc3Mg==&mid=2247483947&idx=1&sn=27697a1a1d52f08bfe83547f2b27522f&chksm=fc1038a0cb67b1b6d861b6d3a0caaf413c8f4537ce395cd3ce5f2e6db01d0e7762...原创 2019-08-24 23:03:41 · 177 阅读 · 0 评论 -
正则表达式 ---判断非空
转自:https://blog.csdn.net/qq_31808899/article/details/779662731、用来判断 textarea 是否全为空(不可全为空格和换行,允许字符前面和后面为空)/^[\s\S]*.*[^\s][\s\S]*$/[\s\S]* 前面可以为任意字符.*[^\s] 任意非空格和非换行字符...转载 2019-07-22 13:15:10 · 11497 阅读 · 0 评论 -
解决 telnet 提示 Escape character is '^]'.
转自:https://blog.csdn.net/yunweifun/article/details/78851314“^”是Ctrl键的意思!1、这个提示的意思是按Ctrl + ]会呼出telnet的命令行!2、telnet命令行出来后,就可以执行telnet命令了;3、退出telnet命令行的名为quit。实例演示[root@aliyunbaike ~]# telnet ...转载 2019-01-31 10:54:10 · 8772 阅读 · 0 评论 -
Mac OS 安装 Java 环境
进入终端:选择更多信息会自动进入 Java 官网(https://www.oracle.com/technetwork/java/javase/downloads/index.html)。 后面就是一路傻瓜式安装了。 其实这时候就可以正常使用了: 接下来配置环境变量(主要参考自:https://blog.csdn.net/vvv_110/article/...原创 2019-01-23 11:54:03 · 729 阅读 · 0 评论