java
文章平均质量分 64
小小探索者
即使只是一粒尘土,我也要漫天飞舞
展开
-
hashmap计算hashcode时为什么要把高位右移16位
写在前面:1、如有错误请看官斧正。2、建议把例子复制出去,自己用各种位运算算一下,然后也像我这样把异同处标出来,这样能在自己计算的过程中有更深的领悟。一、hashmap计算hashcode时为什么要把高位右移16位有一个hashcode值的二进制形式key.hashcode()二进制:0010-0101 1100-0100 0010-0101 1011-0110十进制:633611702上面这么写只是为了便于观察,并不遵循任何规范。key.hashcode() >原创 2021-04-17 00:09:24 · 6344 阅读 · 0 评论 -
递归查询森林结构所有子节点
一张表用来存储树形结构的父节点和叶子节点,大体是这样定义的。测试数据需求很简单:这张表表示的是一个数结构,其中groupid代表的是父节点,而nodeid代表的是相应的子节点,我们想要的是整个树结构的全部叶子节点。当然涉及到多棵树,就组成了森林结构,也就是查找指定森林结构的所有叶子节点。思路也很Easy:遍历每一颗树,利用写好的递归查询函数去查询每棵树的最终叶子结点,然后把它们保存到静态list中。import java.util.ArrayList;import java.util.List转载 2020-11-24 22:35:06 · 388 阅读 · 0 评论 -
map通过键获取不到值(记一次智障错误)
一、背景需要对接口进行测试,在接口文档中找到了测试方式二、问题使用postman工具进行传值跟踪到后台接口代码发现 LATN_ID 没能获取到对应的值排查了半天,原因竟然是测试文档中给的数据在 LATN_ID 后面多加了一个空格即“LATN_ID ”造成了键名的不匹配。如此智障的错误浪费了我一个多小时…贴出来给大家也做个警醒吧,程序没错的话要看看自己数据有没有问题。...原创 2020-10-29 10:00:28 · 2176 阅读 · 2 评论 -
缺少依赖包引起的Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:
一、问题描述公司要把已有的代码迁移到云道平台,以前的纯javaWeb工程中的依赖包要改成maven仓库,代码的改造方面,除了添加pom.xml文件外,也没多大变化,但是在构建war文件时,提示了好多缺少依赖包的错误,一个个添加后,最后报了这个错[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project httpjsoncuvd原创 2020-10-16 09:16:24 · 1445 阅读 · 1 评论 -
个人处理java.lang.OutOfMemoryError: Java heap space的一次记录
一、问题背景根据业务需求做了一个接口,主要功能是根据查询规则在数据库中查出数据,然后生成文件,校验文件,压缩文件,之后再把这三个文件上传到指定服务器。但由于数据量大,平时1kw+峰值则4kw+,虽然处理性能要求不高,但也不能跑太慢。按常规方法实现后跑1500w数据大概需要半个小时,还算符合业务需求。这两天数据量大,跑到2200w的时候出现了OOM。二、问题处理OOM的出现主要有两点,1.是内存真的不够了,执行的时候需要扩大堆内存。2.程序中出现了死循环有实例持有大量new对象得不到释放。针对这两点进原创 2020-10-10 09:50:25 · 686 阅读 · 0 评论 -
java从oracle中读取大量数据写出到文件
java从oracle中读取大量数据写出到文件背景:项目中需要从oracle中读取表字段并以指定间隔符拼接字段,输出到txt。每张表的数据量大概在2000W左右,因为是只需要读一张表指定字段的全部数据,也不需要考虑查询优化,只针对表读取规模进行优化即可。版本oracle 11G思路一:使用oracle语句对数据表进行分页读取,这里应注意到的是rowid效率和rownum效率问题,还有使不使用order bySELECT t.* FROM a t, (SELECT ROWNUM rn, c.*原创 2020-09-15 16:42:06 · 3447 阅读 · 8 评论 -
jar包外读取log4j的配置文件
jar包外读取log4j的配置文件背景:将配置文件全部外放,jar包中的配置文件我全给删除了。需要读取jar包同目录下的配置文件。xml文件貌似不用配置,可以直接读取。log4j的配置文件需要在main函数中添加如下语句(我添加到了main函数下的第一行)PropertyConfigurator.configure(System.getProperty("user.dir") + "/log4j.properties");注意:我这个properties文件默认是读取src目录下的貌似放原创 2020-09-09 14:27:17 · 1332 阅读 · 0 评论 -
服务器中通过java执行Linux语句
服务器中通过java执行Linux语句这里我只介绍一种应用,不对函数功能进行详细分析了。需求:把指定文件进行des3加密与简单执行语句不一样的地方是,这条加密语句中用到了管道符,所以不能直接使用下面这种语句Process process=Runtime.getRuntime().exec("ls ./");我剽来的代码是这么写的,注意exec里面的参数是 new String[]{“sh”,"-c",com}public static void main(String[] args) {原创 2020-09-09 09:54:44 · 155 阅读 · 0 评论 -
java求任意整数各个数位上的数字并输出(用了数组扩容)
某个公司采用公用电话传递数据信息,数据是小于8位的整数,为了确保安全,在传递过程中需要加密,加密规则如下: 首先将数据倒序,然后将每位数字都加上5,再用和除以10的余数代替该数字, 最后将第一位和最后一位数字交换。 请任意给定一个小于8位的整数, 然后,把加密后的结果在控制台打印出来。 题目要求解析: A:数据是小于8位的整数 定义一个int类型的数据 int number ...原创 2019-11-22 21:25:54 · 763 阅读 · 0 评论 -
java实现“*”的多种形状排列(超详细,提高篇)
引例上一篇我们说了怎么在编写靠左边的三角形,今天我们来说怎么写靠右边的三角形。>> 寻找规律> 1 2 3 4 5 6 7 1 。。。。。。* 2 。。。。。* * 3 。。。。* * * 4 。。。* * * * 5 。。* * * * * //第一行 for(int j=1 ; j<=6 ; j+...原创 2019-11-20 13:47:51 · 1334 阅读 · 0 评论 -
java实现“*”的多种星形排列(超详细,基础篇)
引例: public static void test(){ //输出三角形也好,菱形也罢主要是要搞清楚每行要输出多少,哪里该输出 //哪里不需要输出。 //理解好了每行的变化,再写程序就轻松多了。 //假如要输出一个由7行7列“*”拼凑成的直角三角形 //不采用嵌套FOR循环时 for(int y=1 ; y<=1 ; y++){ //输出第一行 Sy...原创 2019-11-19 21:41:05 · 2269 阅读 · 1 评论