
开发常见问题
tonglingtou1875
这个作者很懒,什么都没留下…
展开
-
统计Hive所有数据库中所有数据表的记录数
通过Hive元数据,可快速统计Hive所有数据库中所有数据表的记录数。1、 首先找到 Hive 元数据所在的 Mysql 库;2、在 Hive 元数据所在的 Mysql 库执行下面的SQL语句即可。注:同理,调整查询语句可获取其他数据。SELECT d.NAME '数据库名',t.TBL_NAME '数据表名', COALESCE((SELECT tp.PARAM_VALUE FROM TABLE_PARAMS tp WHERE tp.TBL_ID=t原创 2022-04-09 09:34:10 · 7154 阅读 · 1 评论 -
Java 将返回结果按照中文字段(姓名等)排序
将返回结果按照中文字段排序。以姓名排序为例,示例代码如下:// 将返回结果按照用户名字排序personList.sort((o1, o2) -> { Comparator<Object> compare = Collator.getInstance(java.util.Locale.CHINA); return compare.compare(o1.getUserName(), o2.getUserName());});...原创 2022-01-14 14:52:36 · 550 阅读 · 0 评论 -
org.json.simple.JSONObject 解析 json 替代 Alibaba FastJson
示例代码如下:import org.json.simple.JSONObject;JSONObject json = (JSONObject)JSONValue.parse(reader);return (String)json.get("id");原创 2021-09-19 09:53:20 · 920 阅读 · 0 评论 -
Markdown 中的表格合并单元格
Markdown中没有合并单元格的语法,但是Markdown是兼容HTML的,可以通过HTML的方式实现单元格合并。示例代码及效果如下:<table> <tr> <th>属性</th> <th>属性值</th> <th>描述</th> </tr > <tr > <td rowspan="3">type</td>原创 2021-09-03 10:14:29 · 3926 阅读 · 0 评论 -
图解 Java、JDK、JRE、JVM、Java平台、J2ME、J2SE、J2EE、EJB、Spring的定义及联系
综述,Java 是一门面向对象编程语言;JDK 是 Java 语言的软件开发工具包;Java 平台是由Java编程语言所撰写的软件赖以运行的平台,有三种标准:J2ME、J2SE、J2EE;EJB 是 J2EE 定义的13种技术中的一种;Spring 的作用与 EJB 相似。一句话解释:使用Java编程语言,在JDK工具包的辅助下,按照 Java 平台的标准(J2EE等),使用 EJB (或者满足 J2EE 标准的 Spring 等框架)完成 Java 应用开发。1 JavaJava:是一门面向.原创 2021-08-30 11:05:10 · 462 阅读 · 0 评论 -
Java 开发中微服务 RPC 和 JAR包 调用的对比与使用场景选择
1 RPC 和 JAR包 调用的对比微服务把重复的代码集中在一起,如果把这些逻辑写在一个模块,将这个模块打成JAR包,被别的需要的模块直接引入JAR包,也可以达到省下重复代码的功效。什么场景该使用哪种实现怎么选择呢?RPC调用即微服务之间的调用,首先分析一下两者的优缺点。调用方式优点缺点RPC1、减少重复代码2、将功能模块解耦,大规模的项目开发高效,便于维护3、业务升级方便,当服务提供方需要更改业务代码时(接口参数不变,只改代码逻辑),调用方无需做任何改动1、受网络环原创 2021-08-28 15:08:12 · 2332 阅读 · 0 评论 -
阿里巴巴 FastJson 解析列表和获取对象字段
示例代码如下:import com.alibaba.fastjson.JSON;String s = "[]";JSONArray objects = JSON.parseArray(s);for (int i = 0; i < objects.size(); i++) { JSONObject jsonObject = JSON.parseObject(objects.get(i).toString()); String temp = jsonObject.get("nam原创 2021-05-25 15:13:02 · 666 阅读 · 0 评论 -
win10 软件安装出现错误代码 2502/2503
1、先打开任务管理器(快捷键ctrl+shift+esc),点击文件,点击运行新任务;2、找到软件所在路径,复制路径粘到打开哪里,在路径后加一个反斜杠,电脑会自动找到软件,选择软件;然后把以系统管理权限创建此任务勾上,确定即可。...原创 2021-05-20 17:07:53 · 2277 阅读 · 0 评论 -
Win10 清除 PowerShell 命令行历史记录的方法
window10 power shell 命令行使用后,通过键盘上下键查看历史命令。运行一下命令即可彻底清空,关闭窗口,再打开窗口用键盘上下键不会再出现历史命令。Remove-Item (Get-PSReadlineOption).HistorySavePath原创 2021-04-28 15:45:35 · 5196 阅读 · 0 评论 -
SpringBoot 启动后 RestController 与 RequestMapping 不起作用,出现“找不到路径 404 异常”一站式解决
序言:从前,有一次 Spring 项目启动后,让浏览器和 PostMan 发送请求,后端工程始终收到请求,前端则显示找不到路径,报“404异常”,这也太坑了 ???? ???? ????经过漫长的摸索,找到了“404异常”的几种原因。1、检查是否缺少相关注解,比如:@RestController、@RequestMapping等// 如果注解异常,注意是否漏掉了依赖<dependency> <groupId>org.springframework.boot</原创 2021-03-23 14:33:11 · 8856 阅读 · 3 评论 -
idea debug 调试时程序运行速度 有时快 有时慢 问题解决
问题原因使用 debug 模式运行程序时,一般是因为调试经过复杂方法(比较耗时、有双重循环等的方法)使用了单步运行,导致程序运行很慢。解决方法方法一:使用 run 模式运行程序,速度会恢复正常。方法二:需要使用 debug 模式时,1、经过复杂方法且不需进入方法内部时,不要单步运行,使用恢复程序跑过复杂方法;2、当复杂方法内部有断点且需要进入方法内部时,执行单步运行或恢复程序均可。问题总结调试过程中使用单步运行要慎重,特别是经过复杂方法时,尽量使用恢复程序。...原创 2021-02-04 18:10:30 · 1919 阅读 · 0 评论 -
Java 计算代码运行时间(秒、毫秒、纳秒)
1、以秒为单位计时long startTime = System.currentTimeMillis();// 要获取运行时间的代码片long endTime = System.currentTimeMillis();System.out.println("程序运行时间:" + (double) (endTime - startTime) / 1000 + "s");2、以毫秒为单位计时long startTime = System.currentTimeMillis(); // 要获取原创 2021-02-03 09:46:11 · 6791 阅读 · 1 评论 -
对象 List 遍历生成 Map 时将相同 Key 值的 Value 合并为 List
问题场景对象 List 遍历生成 Map 时,部分对象使用的 Key 值是相同的,需将将 Value 合并为 List 存储,即:List<Object> 遍历后转换为 Map<Object, List<Object>>实现方法实现代码如下,实际使用中根据对象调整即可。// 获取到要转换的 List<Object> objectList 之后进行遍历Map<Object, List<Object>> objectMap =原创 2021-02-03 09:36:02 · 2974 阅读 · 0 评论 -
idea maven reimport 不会更新依赖的 jar 包问题解决办法
问题描述使用 maven 的工程,远程仓库 jar 包更新,本地需要更新为最新 jar 包,但执行 reimport 后无效,无法更新本地 jar 包。解决办法使用 maven package 命令即可,原理如下。原理解释:1、package 命令执行时,会先从远程仓库下载最新 jar 包,在 reimport 无效时,可起到代替 reimport 的效果2、同理,使用 maven install 也可,但会生成的 jar 包到本地仓库;使用 maven deploy 也可,但会生成的 jar原创 2021-01-28 11:59:23 · 5655 阅读 · 0 评论 -
Java8 stream 对象 List 根据的某一字段过滤、排序
将对象 List 根据的某一字段过滤、排序,使用 Java8 stream 的 map 操作实现非常便捷。示例代码如下: List<String> newList = objectList.stream().filter(object -> object.getVar().equals("Value")) .sorted(Comparator.comparing(Object::getVa原创 2021-01-21 15:30:47 · 16113 阅读 · 0 评论 -
Java8 stream 对象 List 根据的某一字段生成 Map
得分原创 2021-01-21 15:24:23 · 8107 阅读 · 0 评论 -
Lombok 中 @Data、@AllArgsConstructor、@NoArgsConstructor、@Builder 注解的含义与使用
一、@Data使用 @Data 注解后,在编译时会自动添加 Getter、Setter、equals、canEqual、hasCode、toString 等方法,不必再手动编写,高效且代码非常简洁。二、@AllArgsConstructor使用 @AllArgsConstructor 注解后,在编译时会自动添加一个含有所有已声明字段的构造函数,不必再手动编写含有所有已声明字段的构造函数。三、@NoArgsConstructor使用 @NoArgsConstructor 注解后,在编译时会自动添加一原创 2021-01-21 11:05:04 · 5852 阅读 · 0 评论 -
Java8 stream 提取对象 List 中的某一字段生成新的 List
将所有对象的某一字段提取出来生成一个新列表,使用 Java8 stream 的 map 操作实现非常便捷。示例代码如下: List<String> newList = objectList.stream().map(Object::getVar).collect(Collectors.toList());将 Object 替换为需要提取的对象即可。...原创 2021-01-15 16:41:00 · 48683 阅读 · 0 评论 -
操作 Arrays.asList() 生成的 List 报 java.lang.UnsupportedOperationException 异常问题原因及解决方法
问题描述: 在项目中对List进行操作时报错java.lang.UnsupportedOperationException,后来发现操作的List是由数组转换而成的,通过看源码发现问题,并写测试程序如下。测试代码:public class ListTest { public static void main(String[] args) { String[] array = {"1","2","3","4","5"}; List<String> l原创 2021-01-08 19:59:19 · 657 阅读 · 0 评论 -
优快云 Markdown 调整插入图片的大小及位置方法
原图写法:图片显示效果:图片分辨率为:160*881 调整插入图片的大小调整图片宽、高各放大 2 倍写法:注意:“=”前必须有空格,“=”后不能有空格图片显示效果:2 调整插入图片的位置调整图片居中写法:HDFS失败时自动切换主备节点配置
问题描述 由于异常、手动设置等因素,在读取高可用(HA)HDFS上的文件时,HDFS主备节点可能发生改变,导致从配置的节点读取文件失败。 若每次都手动调整节点地址,涉及到的代码较分散,容易遗漏;实现读取失败时主备节点自动切换,即可适应此场景,减少频繁修改HDFS工具类。解决方法1、配置多个hdfs地址,使用 try-catch 捕获异常,判断出可用的hdfs地址。注:不建议使用此种捕获异常切换的方法。2、 配置 HDFS 的 Configuration 对象实现自动切换主备节点。将所原创 2020-12-28 10:59:25 · 1395 阅读 · 5 评论 -
Java8 stream 实现对象List根据对象某一指定字段进行去重操作
Java8 stream 可简洁实现对象List根据对象的某一字段进行去重。实现代码如下:根据去重场景修改代码中的对象及去重字段即可。//根据Student对象的age进行去重studentList = studentList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(Student :: getAge)原创 2020-12-25 14:43:39 · 7797 阅读 · 0 评论 -
解决谷歌浏览器安装插件失败:无法从该网站添加应用、扩展程序和用户脚本
问题描述:在谷歌浏览器安装插件时,经常会遇到如下图的问题,“无法从该网站添加应用、扩展程序和用户脚本”的问题,导致安装失败。解决过程:1、要先看一下开发者模式是否打开。打开扩展管理页面。浏览器输入地址“ chrome://extensions/ ”进入扩展程序页面,开启开发者模式;2、安装插件的两种方法。如出现上述安装失败的情况,直接使用方法2 “zip文件安装” 即可。crx文件安装:将crx文件拖拽到“chrome://extension”页面, 完成安装zip文件安装:将zip包解压原创 2020-12-25 09:27:43 · 12177 阅读 · 0 评论 -
Idea启动项目报错:Command line is too long. Shorten command line 问题解决
问题描述:Idea启动项目报错:Command line is too long. Shorten command line for className or also for JUnit defaultconfiguration.解决方案:1、在项目中找到 .idea 文件夹;2、打开 .idea 文件夹中的 workspace.xml 文件;3、在 workspace.xml 中搜索 “PropertiesComponent”,找到如下代码片:<component name="Prop原创 2020-12-24 11:37:21 · 2105 阅读 · 1 评论