Collections
Collections
Collections.singletonList:
不可修改性:使用 Collections.singletonList 创建的列表是不可修改的,意味着你不能通过添加、删除或修改元素来改变列表。这在一些情况下是有益的,特别是当你希望传递一个只读的列表,以防止外部代码对列表进行修改。
内存效率:在内部使用一个特殊的、只包含一个元素的列表实现,这可以提高内存效率,因为它不需要为存储多个元素而分配额外的内存。
语义明确:可以使代码更加语义明确。当你知道列表只包含一个元素时,通过这个方法创建列表可以清晰地传达这个信息,提高代码的可读性。
避免空指针异常:在某些情况下,如果你期望一个列表包含且仅包含一个元素,使用 Collections.singletonList 可以避免空指针异常。当传递一个期望非空列表的方法时,传递一个 null 值会导致空指针异常,而使用 Collections.singletonList 可以确保列表不为空。
chmod
更改文件的9个属性Linux文件属性有两种设置方法,一种是数字,一种是符号。
Linux 文件的基本权限就有九个,分别是 owner/group/others(拥有者/组/其他) 三种身份各有自己的 read/write/execute 权限。
先复习一下刚刚上面提到的数据:文件的权限字符为: -rwxrwxrwx , 这九个权限是三个三个一组的!其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:
r
4
w
2
x
1
每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: -rwxrwx— 分数则是:
owner = rwx = 4+2+1 = 7
group = rwx = 4+2+1 = 7
others= — = 0+0+0 = 0
挂载Windows文件
1234使用场景: 现在需要读取 同一局域网下windows服务器共享文件夹中的文件,没挂载之前,由于本地测试时, 后端在windows系统中运行,因此直接使用//ip+路径的形式可以进行文件的读写操作; 然而,客户现场环境是Ubuntu系统,并不能直接找到对应的路径,因此需要挂载到linux中
1. windows如何共享文件夹选择一个文件夹,右击属性==>共享==>高级共享==>共享此文件夹
2. Linux端挂载共享文件夹1mount -t cifs -o username=Administrator,password=123456 //192.168.0.87/task4 /mnt/
命令解读:
12345678mount: 挂载命令-t: 指定文件系统类型cifs: CIFS 是一个新提出的协议,它使程序可以访问远程Internet计算机上的文件并要求此计算机提供服务。-o: 挂载选项参数,使用,分隔username: 用户名password: 用 ...
777背景
dircolors >> ~/.bashrc
nano ~/.bashrc `
找到ow=34;42,删除;42
重新进入终端
JSONObject
将String转换为JSONObject对象,从JSONObject获取JSON对象,然后从JSON对象中获取JSON数组123String response = erpHttpRequest.syncMaterialFromErp(startTime);JSONObject jsonObject = JSONObject.parseObject(response);JSONArray jsonArray = jsonObject.getJSONObject("BillData").getJSONArray("Data");
这段代码的作用是通过进行 ERP HTTP 请求来获取响应,并将响应解析为 JSON 对象和 JSON 数组。
具体解释如下:
erpHttpRequest.syncMaterialFromErp(startTime): 这是一个 ERP HTTP 请求的方法调用,用于从 ERP 系统中同步材料数据。根据代码上下文,它接受一个 startTime 参数,表示同步的起始时间,并返回一个字符串类型的响应。
String re ...
新增root密码
运行此命令后需要先输入用户密码,然后输入两次root密码
1$ sudo passwd root
测试:输入root密码,切换为root
1$ su -
bean字典
bean字典参数判空常规写法,抛出自定义异常RppmBizException
1234String projectId = (String) params.get("project_id");if (StringUtils.isBlank(projectId)) { throw new RppmBizException(500, "项目id不能为空");}
bean字典使用dictAttrs()在数据字典生成属性123456@Override public List<MaiBeanDictionaryAttr> dictAttrs() { return Arrays.asList(MaiBeanDictionaryAttr.getBuilder().name("id").refName("id").varchar().data().build(), MaiBeanDictionaryAttr.getBu ...
log
1@Slf4j
在java类中使用以上注解,即可在代码中使用log.info()的方式在日志中输出内容
根据给定的代码片段:
1log.info("yacoo login response loginUser = {}", loginUser);
这是一条使用日志记录工具(例如 Log4j、Logback 等)输出日志的语句,用于在日志中记录关于登录响应的信息。
解释该代码的含义如下:
log: 这是一个日志记录器对象,用于记录日志信息。它通常是通过在类中声明一个 private static final Logger log = LoggerFactory.getLogger(ClassName.class); 的方式创建并初始化的。ClassName 是使用该日志记录器的类名。
info: 这是日志记录级别之一,表示记录信息级别的日志。通常的日志级别包括 trace、debug、info、warn 和 error,按照严重程度递增。
"yacoo login response loginUser = {}& ...
导入sql
mysql导入dump.sql
报错:
12[ERR] 1153 - Got a packet bigger than 'max_allowed_packet' bytes[ERR] -- MySQL dump 10.13 Distrib 8.0.33, for Linux (x86_64)
“max_allowed_packet” 是一个MySQL数据库中的参数,用于设置单个数据包的最大大小。它指定了MySQL服务器接受的最大数据包的大小限制。如果要将其翻译成简体中文,可以译为”最大允许数据包大小”。
解决方案:
1set global max_allowed_packet = 5 * 1024 * 1024 * 1024
这个语句设置了最大允许数据包大小为5GB。
数据库类型为text,使用mybatis查询时需要用selectByExampleWithBLOBs()
DBeaver转储数据执行脚本失败使用额外命令 --default-character-set=utf8
stream流
Stream流的skip方法12//分页显示List<Map<String, Object>> resultList = list.stream().skip((long) pageSize * (pageNo - 1)).limit(pageSize).collect(Collectors.toList());
skip(lang n) 是一个跳过前 n 个元素的中间流操作,skip()方法用于跳过前面n个元素,然后再返回新的流
(1)当n<0时,抛IllegalArgumentException异常;
(2)当n=0时,相当没有跳过任何元素,原封不动、完璧归赵;
(3)当0<n<length时,跳过n个元素后,返回含有剩下的元素的流;
(4)当n>=length时,跳过所有元素,返回空流。
对于limit()方法,它是用于限制流中元素的个数,即取前n个元素,返回新的流
(1)当n<0时,抛IllegalArgumentException异常;
(2) ...