![](https://img-blog.csdnimg.cn/20190927151124774.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
基础代码分析专栏
文章平均质量分 71
不解决实际项目问题,对于一些代码的分析理解
一棵小白菜#
Talk is cheap Show me the code
展开
-
Comparison method violates its general contract! 神奇的报错
Comparison method violates its general contract原创 2024-06-21 17:20:07 · 1206 阅读 · 0 评论 -
合理利用Optional 来避免NPE
在Java中什么异常最容易出现,那肯定是NullPointerException,空指针就像一个定时炸弹,总给我们带来些麻烦,在开发过程中都会碰到需要判断Null值以防止空指针的情况,以往的方式要么是抛异常,要么是if{}else{},直到Optional的出现,你可以更优雅的解决NPE问题。原创 2023-05-18 18:21:06 · 807 阅读 · 0 评论 -
有趣的byte与0xff
为啥Integer.toHexString(0xFF & bArray[i])这个方法里要写成0xFF & bArray[i]????这句代码的最终目的是把byte[]转换为16进制字符串,toHexString()是把一个int转换为十六进制String ,&0xFF是为了保证byte类型转int后其二进制的一致,即补零扩展..原创 2022-12-06 17:18:39 · 885 阅读 · 0 评论 -
关于数据库设计的一点心得
数据库设计,首先想到什么?数据库三范式? 起初认为那几句话晦涩的很,不妨一起回忆一下。第一范式:确保表中每一列数据的原子性,不可再分!第二范式:在满足第一范式的基础上,确保列数据要跟主键关联,不能出现部分依赖。第三范式设计表:再满足第二范式的基础上,保证每一列数据都要跟主键直接关联,不能出现传递依赖。我现在的理解大概意思就是:属性具有原子性,不可再分解,例如存地址不能用一个address字段概括,尽量拆分成省市区分别存储;要求记录有惟一标识,即实体的惟一性,例如上面的省市区是不是存在原创 2022-05-26 00:02:08 · 1380 阅读 · 0 评论 -
Lambda表达式遍历结合常用的一些操作
Lambda 表达式是JDK 8的一个新特性,Lambad 可以取代大部分匿名内部类,写出更好的Java代码,尤其在集合的遍历和其它集合操作中,可以极大的优化代码结构。Lambda 由参数列表、箭头符号 -> 和函数体组成。stream()不是一种数据结构,它只是某种数据源的一个视图,数据源可以是一个数组,Java容器或I/O channel等。为函数式编程而生。原创 2023-06-13 18:56:59 · 1781 阅读 · 2 评论 -
日期、时间工具类--持续更新
指定时间前几天指定日期间隔指定日期最大最小时间等等原创 2023-03-01 15:23:16 · 122 阅读 · 0 评论 -
开发工具快捷键 intellij idea、微信开发者工具
网上关于idea的快捷键介绍的很多,有一些不是经常用的到,这篇文章记录一下我自己使用过程中的常用快捷键一、代码编写快捷键Ctrl+Alt+O优化导入的类和包Alt+Insert 生成代码(如get,set方法,构造函数等)Ctrl+Alt+T生成try catch 和if 或synchronizedCtr+shift+U大小写转化ALT+回车 导入包,自动修正ALT+/ 代码提示Ctrl+X 删除行Ctrl+D ...原创 2021-07-23 11:15:09 · 972 阅读 · 0 评论 -
关于编码知识的整理
背景: 计算机就是0和1的世界,所有的东西都是0和1演变而来,对字符来说,也是如此,每个字符在计算机内存中便是就是数字转换成的二进制0、1组合,这个数字就称为该字符的编码。一、 先谈ASCII码ASCII (American Standard Code for Information Interchange): 美国信息交换标准代码美国人首先对其英文字符进行了编码,也就是最早的ASCII码,用一个字节的低7位来表示英文的128个字符,高1位统一为0,0-127对应的英文中0-9,a-z...原创 2021-05-17 20:47:47 · 1110 阅读 · 3 评论 -
跨域理解与解决方案
一 、跨域是啥 为啥会发生? 跨域本质是浏览器基于同源策略的一种安全手段,是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。同源策略会阻止一个域的javascript脚本和另外一个域的内容进行交互。浏览器执行JavaScript脚本时,会检查这个脚本属于哪个页面,如果不是同源页面,就不会被执行。所谓同源(即指在同一个域)就是两个页面具有相同的协议(protoco...原创 2021-02-24 11:10:26 · 3908 阅读 · 1 评论 -
如何避免字节流读取文本乱码
一、问题的发生当我们尝试用字节流处理读取文档时候public static void main(String[] args) throws IOException { FileInputStream fis=null; try { // File file = new File("d:/hello/1.png"); File file = new File("d:/hello/demo.txt");原创 2021-05-17 20:38:49 · 1812 阅读 · 1 评论 -
List<T>中根据实体的属性去重
背景:想要得到 统计所有人在房间情况,集合personOutList为所有外出人员统计,集合personAllList为所有房间人员统计,简而言之personOutList(优先级更高) 覆盖personAllList人员id相同的数据实现方法:推荐 distinctByCompare2 写法更简洁package com.wang;import java.util.*;import java.util.stream.Collectors;/** * List中根据某个实体的属性去重..原创 2020-12-24 10:57:29 · 559 阅读 · 0 评论 -
foreach能改变集合中的元素么?
Talk is cheap. Show me the code--废话少说,放马(码)过来public class ListTest { public static void main(String[] args) { List<Man> list = new ArrayList(); list.add(new Man("张三")); for (Man m : list) { m.setName("赋值");原创 2021-04-11 21:42:23 · 1101 阅读 · 0 评论 -
MyBatis多参数传递之@Param究竟加还是不加?
背景:传递多个参数,常用的三种实现方式1.@Param注解传参2.Map传参法3.Java Bean传参法那么@Param 使用场景都有哪些呢?为啥平时写代码有的时候不加会报错,有的时候不写也没问题?一 、MyBatis多参数传递 四种情况需要加@Param1.方法有多个参数,需要 @Param 注解2.当需要给参数取一个别名的时候,需要 @Param 注解List<Device> getDeviceListTest(@Param("deviceId") S...原创 2020-12-07 14:58:52 · 13891 阅读 · 12 评论 -
nohup.out是什么文件?nohup.out如何写?
一、 介绍nohup 是 no hang up 的缩写,就是不挂断的意思,但没有后台运行,终端不能标准输入,所以说添加 & ( 表示“and”的符号)到命令的尾部。nohup 我们经常用来后台启动Java 程序,在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中nohup java -jar shop-admin-s.jar &二、nohup.out的查看日志方法// 实时查看tail -f nohup.out// 查看最后1000行日志文本tai原创 2021-03-27 14:29:36 · 21562 阅读 · 4 评论 -
Java是值传递还是引用传递
值传递(pass by value)是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。引用传递(pass by reference)是指在调用函数时将实际参数的地址直接传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数。public class TestValue { public static void main(String[] args) { TestValue s = new TestValue();原创 2021-04-11 21:48:41 · 192 阅读 · 0 评论