Java 16进制 10进制 2进制数 相互的转换
在 Java 中,进行进制之间的转换时,除了功能的正确性外,效率和安全性也很重要。为了确保高效和相对安全的转换,我们通常需要考虑:
- 性能:使用内置的转换方法,如
Integer.toHexString()
、Integer.toBinaryString()
等,通常比手动实现转换更高效。 - 安全性:避免溢出和处理负数或符号位的问题。
以下是针对 16进制、10进制和2进制数的相互转换 的高效且相对安全的方法。
1. 十六进制(Hex) ↔ 十进制(Decimal)
十六进制到十进制: 使用 Integer.parseInt()
方法将十六进制字符串解析为十进制数字。
十进制到十六进制: 使用 Integer.toHexString()
方法将十进制数字转换为十六进制字符串。
示例代码:
public class BaseConversion {public static void main(String[] args) {// 十六进制到十进制String hex = "1A3F";int decimal = Integer.parseInt(hex, 16); // 使用 parseInt 方法将十六进制转为十进制System.out.println("Hex to Decimal: " + decimal);// 十进制到十六进制int decimalNum = 6703;String hexString = Integer.toHexString(decimalNum); // 使用 toHexString 方法将十进制转为十六进制System.out.println("Decimal to Hex: " + hexString.toUpperCase()); // 输出大写的十六进制}
}
输出:
Hex to Decimal: 6703
Decimal to Hex: 1A3F
2. 十六进制(Hex) ↔ 二进制(Binary)
十六进制到二进制: 首先将十六进制字符串转换为十进制,然后再转换为二进制。
二进制到十六进制: 首先将二进制字符串转换为十进制,然后再转换为十六进制。
示例代码:
public class BaseConversion {public static void main(String[] args) {// 十六进制到二进制String hex = "1A3F";int decimalFromHex = Integer.parseInt(hex, 16);String binaryFromHex = Integer.toBinaryString(decimalFromHex); // 十进制转二进制System.out.println("Hex to Binary: " + binaryFromHex);// 二进制到十六进制String binary = "1101000111111";int decimalFromBinary = Integer.parseInt(binary, 2); // 二进制转十进制String hexFromBinary = Integer.toHexString(decimalFromBinary); // 十进制转十六进制System.out.println("Binary to Hex: " + hexFromBinary.toUpperCase()); // 输出大写的十六进制}
}
输出:
Hex to Binary: 1101000111111
Binary to Hex: 1A3F
3. 十进制(Decimal) ↔ 二进制(Binary)
十进制到二进制: 使用 Integer.toBinaryString()
方法将十进制转换为二进制。
二进制到十进制: 使用 Integer.parseInt()
方法将二进制字符串解析为十进制数字。
示例代码:
public class BaseConversion {public static void main(String[] args) {// 十进制到二进制int decimal = 6703;String binary = Integer.toBinaryString(decimal); // 十进制转二进制System.out.println("Decimal to Binary: " + binary);// 二进制到十进制String binaryStr = "1101000111111";int decimalFromBinary = Integer.parseInt(binaryStr, 2); // 二进制转十进制System.out.println("Binary to Decimal: " + decimalFromBinary);}
}
输出:
Decimal to Binary: 1101000111111
Binary to Decimal: 6703
4. 高效与安全性考虑
- 高效性:
- 使用
Integer.parseInt()
和Integer.toBinaryString()
等标准库方法,通常比手动实现进制转换更高效。 - 不需要对负数特别处理,因为
parseInt()
和toBinaryString()
默认已经处理了符号位。
- 使用
- 安全性:
- 防止溢出:
Integer.parseInt()
方法的上限是Integer.MAX_VALUE
(即2147483647
)。如果你需要更大的数字,可以使用Long.parseLong()
或BigInteger
。 - 避免负数问题:
Integer.toBinaryString()
、Integer.toHexString()
和Integer.toString()
等方法都已自动处理负数的转换,适用于常见的整数类型。 - 使用大数字:对于超过 32 位的数字(比如
Long
类型或更大的数字),可以使用Long
或BigInteger
来处理,BigInteger
可以支持任意大小的整数。
- 防止溢出:
示例代码(使用 BigInteger
处理大数字):
import java.math.BigInteger;public class BaseConversion {public static void main(String[] args) {// BigInteger 适用于大数字转换String largeHex = "A3B2C4D5E6F7";BigInteger bigDecimal = new BigInteger(largeHex, 16); // 十六进制转大整数System.out.println("Large Hex to Decimal: " + bigDecimal);// 大整数转十六进制String bigHex = bigDecimal.toString(16); // 转回十六进制System.out.println("Large Decimal to Hex: " + bigHex.toUpperCase());}
}
输出:
Large Hex to Decimal: 181477716850295
Large Decimal to Hex: A3B2C4D5E6F7
总结:
- 十六进制 ↔ 十进制 使用
Integer.parseInt()
和Integer.toHexString()
。 - 十六进制 ↔ 二进制 使用
Integer.toBinaryString()
和Integer.parseInt()
。 - 十进制 ↔ 二进制 使用
Integer.toBinaryString()
和Integer.parseInt()
。 - 对于大数字,使用
BigInteger
类来处理超过 32 位的进制转换。
这种方法是 高效 的,并且通过 Java 内置的类,已经相对安全地处理了符号和溢出的问题。
以下是16进制、10进制和2进制之间的转换表格。这个表格展示了常见的数值在这三种进制之间的相互转换。
16进制、10进制、2进制数转换表
16进制 | 10进制 | 2进制 |
---|---|---|
0 | 0 | 0000 |
1 | 1 | 0001 |
2 | 2 | 0010 |
3 | 3 | 0011 |
4 | 4 | 0100 |
5 | 5 | 0101 |
6 | 6 | 0110 |
7 | 7 | 0111 |
8 | 8 | 1000 |
9 | 9 | 1001 |
A | 10 | 1010 |
B | 11 | 1011 |
C | 12 | 1100 |
D | 13 | 1101 |
E | 14 | 1110 |
F | 15 | 1111 |
10 | 16 | 10000 |
11 | 17 | 10001 |
12 | 18 | 10010 |
13 | 19 | 10011 |
14 | 20 | 10100 |
15 | 21 | 10101 |
16 | 22 | 10110 |
17 | 23 | 10111 |
18 | 24 | 11000 |
19 | 25 | 11001 |
1A | 26 | 11010 |
1B | 27 | 11011 |
1C | 28 | 11100 |
1D | 29 | 11101 |
1E | 30 | 11110 |
1F | 31 | 11111 |
20 | 32 | 100000 |
21 | 33 | 100001 |
22 | 34 | 100010 |
23 | 35 | 100011 |
24 | 36 | 100100 |
25 | 37 | 100101 |
26 | 38 | 100110 |
27 | 39 | 100111 |
28 | 40 | 101000 |
29 | 41 | 101001 |
2A | 42 | 101010 |
2B | 43 | 101011 |
2C | 44 | 101100 |
2D | 45 | 101101 |
2E | 46 | 101110 |
2F | 47 | 101111 |
30 | 48 | 110000 |
31 | 49 | 110001 |
32 | 50 | 110010 |
33 | 51 | 110011 |
34 | 52 | 110100 |
35 | 53 | 110101 |
36 | 54 | 110110 |
37 | 55 | 110111 |
38 | 56 | 111000 |
39 | 57 | 111001 |
3A | 58 | 111010 |
3B | 59 | 111011 |
3C | 60 | 111100 |
3D | 61 | 111101 |
3E | 62 | 111110 |
3F | 63 | 111111 |
相关文章:
Java 16进制 10进制 2进制数 相互的转换
在 Java 中,进行进制之间的转换时,除了功能的正确性外,效率和安全性也很重要。为了确保高效和相对安全的转换,我们通常需要考虑: 性能:使用内置的转换方法,如 Integer.toHexString()、Integer.…...
CPU 100% 出现系统中断 怎么解决
CPU 100% 出现系统中断 怎么解决 电脑开机时会掉帧,切换到桌面时就会卡顿,然后打开任务管理器就会看到系统中断的cpu占用率达到100%,过一段时间再打开还是会有显示100%的占用率,这个问题怎么解决? 文章目录 CPU 100% …...
Python-基于mediapipe,pyautogui,cv2和numpy的电脑手势截屏工具(进阶版)
前言:在我们的日常生活中,手机已经成为我们每天工作,学习,生活的一个不可或缺的部分。众所周知:为了我们的使用方便,手机里面的很多功能非常人性化,既便捷又高效,其中就有手机的截屏方式,它们花样繁多,如三指截屏,手势截屏等。那么怎么在电脑里面也实现这个功能呢?…...
设计转换Apache Hive的HQL语句为Snowflake SQL语句的Python程序方法
首先,根据以下各类HQL语句的基本实例和官方文档记录的这些命令语句各种参数设置,得到各种HQL语句的完整实例,然后在Snowflake的官方文档找到它们对应的Snowflake SQL语句,建立起对应的关系表。在这个过程中要注意HQL语句和Snowfla…...
2025年人工智能技术:Prompt与Agent的发展趋势与机遇
文章目录 一、Prompt与Agent的定义与区别(一)定义(二)区别二、2025年Prompt与Agent的应用场景(一)Prompt的应用场景(二)Agent的应用场景三、2025年Prompt与Agent的适合群体(一)Prompt适合的群体(二)Agent适合的群体四、2025年Prompt与Agent的发展机遇(一)Prompt的…...
[论文总结] 深度学习在农业领域应用论文笔记14
当下,深度学习在农业领域的研究热度持续攀升,相关论文发表量呈现出迅猛增长的态势。但繁荣背后,质量却不尽人意。相当一部分论文内容空洞无物,缺乏能够落地转化的实际价值,“凑数” 的痕迹十分明显。在农业信息化领域的…...
STM32 ADC单通道配置
硬件电路 接线图: ADC基本结构图 代码配置 根据基本结构框图 1.定义结构体变量 //定义结构体变量 GPIO_InitTypeDef GPIO_InitStructure;//定义GPIO结构体变量 ADC_InitTypeDef ADC_InitStructure; //定义ADC结构体变量 2.开启RCC时钟 ADC、GPIO的时钟&#x…...
Go学习:Go语言中if、switch、for语句与其他编程语言中相应语句的格式区别
Go语言中的流程控制语句逻辑结构与其他编程语言类似,格式有些不同。Go语言的流程控制中,包括if、switch、for、range、goto等语句,没有while循环。 目录 1. if 语句 2. switch语句 3. for语句 4. range语句 5. goto语句(不常用…...
Day50:字典的合并
在 Python 中,字典是一个可变的数据类型,经常需要将多个字典合并成一个字典。合并字典的方式有多种,今天我们将学习几种常见的方法。 1. 使用 update() 方法合并字典 update() 方法可以用来将一个字典中的键值对添加到另一个字典中。如果目…...
【C++动态规划 离散化】1626. 无矛盾的最佳球队|2027
本文涉及知识点 C动态规划 离散化 LeetCode1626. 无矛盾的最佳球队 假设你是球队的经理。对于即将到来的锦标赛,你想组合一支总体得分最高的球队。球队的得分是球队中所有球员的分数 总和 。 然而,球队中的矛盾会限制球员的发挥,所以必须选…...
LeetCode 热题 HOT 100
你好呀,欢迎来到 Dong雨 的技术小栈 🌱 在这里,我们一同探索代码的奥秘,感受技术的魅力 ✨。 👉 我的小世界:Dong雨 📌 分享我的学习旅程 🛠️ 提供贴心的实用工具 💡 记…...
从未标记图像中生成有标记图像特征的半监督分割方法
今天看到一篇文章很有意思,给大家分享一下。现在传统半监督分割网络训练时往往有标注数据与未标注数据分开训练,导致模型不好。这篇文章作者提出了一个很有意思的想法。它通过通道注意力从未标记的特征中重新加载标记的特征。这篇文章是AllSpark。 大家感…...
随笔 | 写在一月的最后一天
. 前言 这个月比预想中过的要快更多。突然回看这一个月,还有点不知从何提笔。 整个一月可以总结为以下几个关键词: 期许,保持期许出现休息 . 期许 关于期许,没有什么时候比一年伊始更适合设立目标和计划的了。但令人惭愧的…...
AI大模型开发原理篇-2:语言模型雏形之词袋模型
基本概念 词袋模型(Bag of Words,简称 BOW)是自然语言处理和信息检索等领域中一种简单而常用的文本表示方法,它将文本看作是一组单词的集合,并忽略文本中的语法、词序等信息,仅关注每个词的出现频率。 文本…...
DDD - 领域驱动设计分层架构:构建可演化的微服务架构
文章目录 引言1. 什么是DDD分层架构?1.1 DDD分层架构的演变1.2 四层架构的起源与问题1.3 依赖倒置和五层架构 2. DDD分层架构的核心层次2.1 用户接口层(User Interface Layer)2.2 应用层(Application Layer)2.3 领域层…...
Spring Boot项目如何使用MyBatis实现分页查询及其相关原理
写在前面:大家好!我是晴空๓。如果博客中有不足或者的错误的地方欢迎在评论区或者私信我指正,感谢大家的不吝赐教。我的唯一博客更新地址是:https://ac-fun.blog.csdn.net/。非常感谢大家的支持。一起加油,冲鸭&#x…...
CSS 值和单位详解:从基础到实战
CSS 值和单位详解:从基础到实战 1. 什么是 CSS 的值?示例代码:使用颜色关键字和 RGB 函数 2. 数字、长度和百分比2.1 长度单位绝对长度单位相对长度单位 2.2 百分比 3. 颜色3.1 颜色关键字3.2 十六进制 RGB 值3.3 RGB 和 RGBA 值3.4 HSL 和 H…...
搭建自己的专属AI——使用Ollama+AnythingLLM+Python实现DeepSeek本地部署
前言 最近DeepSeek模型非常火,其通过对大模型的蒸馏得到的小模型可以较轻松地在个人电脑上运行,这也使得我们有机会在本地构建一个专属于自己的AI,进而把AI“调教”为我们希望的样子。本篇文章中我将介绍如何使用OllamaAnythingLLMPython实现…...
【AI绘画】MidJourney关键词{Prompt}全面整理
AI绘画整理,MidJourney关键词。喜欢AI绘画的朋友必备,建议收藏,后面用到时供查阅使用。 1、光线与影子篇 中 英 闪耀的霓虹灯 shimmeringneon lights 黑暗中的影子 shadows in the dark 照亮城市的月光 moonlightilluminatingthe cit…...
如何将IP切换到海外:详细指南
在现代互联网应用中,IP地址成为了网络通信和数据交换的基础。然而,很多时候,由于区域限制或隐私保护的需求,用户可能需要将自己的IP地址切换到海外。无论是为了绕过地域限制访问内容,还是为了提高隐私安全,…...
蓝牙技术在物联网中的应用有哪些
蓝牙技术凭借低功耗、低成本和易于部署的特性,在物联网领域广泛应用,推动了智能家居、工业、医疗、农业等多领域发展。 智能家居:在智能家居系统里,蓝牙技术连接各类设备,像智能门锁、智能灯泡、智能插座、智能窗帘等。…...
YOLOv8:目标检测与实时应用的前沿探索
随着深度学习和计算机视觉技术的迅速发展,目标检测(Object Detection)一直是研究热点。YOLO(You Only Look Once)系列模型作为业界广受关注的目标检测框架,凭借其高效、实时的特点,一直迭代更新…...
LeetCode:62.不同路径
跟着carl学算法,本系列博客仅做个人记录,建议大家都去看carl本人的博客,写的真的很好的! 代码随想录 LeetCode:62.不同路径 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” &…...
范冰冰担任第75届柏林电影节主竞赛单元评委 共鉴电影佳作
近日,备受瞩目的柏林电影节迎来了新一届盛事,而华人演员范冰冰将以主竞赛单元评委身份亮相,引发了广泛关注。此前她已担任过戛纳国际电影节、东京国际电影节、圣塞巴斯蒂安国际电影节等众多电影节主竞赛单元评委。作为国际影坛的知名人物&…...
基于Python的药物相互作用预测模型AI构建与优化(下.代码部分)
四、特征工程 4.1 分子描述符计算 分子描述符作为量化分子性质的关键数值,能够从多维度反映药物分子的结构和化学特征,在药物相互作用预测中起着举足轻重的作用。RDKit 库凭借其强大的功能,为我们提供了丰富的分子描述符计算方法,涵盖了多个重要方面的分子性质。 分子量…...
【C语言】内存管理
【C语言】内存管理 文章目录 【C语言】内存管理1.概念2.库函数3.动态分配内存malloccalloc 4.重新调整内存的大小和释放内存reallocfree 1.概念 C 语言为内存的分配和管理提供了几个函数。这些函数可以在 <stdlib.h> 头文件中找到。 在 C 语言中,内存是通过…...
团体程序设计天梯赛-练习集——L1-029 是不是太胖了
前言 5分级别里面目前做到的最难的一道题,但是非常简单,5分的题看看写点代码就行了。 L1-029 是不是太胖了 据说一个人的标准体重应该是其身高(单位:厘米)减去100、再乘以0.9所得到的公斤数。已知市斤的数值是公斤数…...
appmatrix平台(一个汇集原创web APP的平台)服务规划
Appmatrix平台(一个汇集原创web APP的平台)服务规划 Web app是部署机器学习、深度学习等需要算力较大的应用的主要形式,一般都是独立、散在部署,对使用和相互交流造成了一定的不便。App Matrix将各类web应用汇集在一起࿰…...
vscode+WSL2(ubuntu22.04)+pytorch+conda+cuda+cudnn安装系列
最近在家过年闲的没事,于是研究起深度学习开发工具链的配置和安装,之前欲与天公试比高,尝试在win上用vscodecuda11.6vs2019的cl编译器搭建cuda c编程环境,最后惨败,沦为笑柄,痛定思痛,这次直接和…...
pytorch实现长短期记忆网络 (LSTM)
人工智能例子汇总:AI常见的算法和例子-CSDN博客 LSTM 通过 记忆单元(cell) 和 三个门控机制(遗忘门、输入门、输出门)来控制信息流: 记忆单元(Cell State) 负责存储长期信息&…...
洛谷P2651 添加括号III
题目链接:P2651 添加括号III - 洛谷 | 计算机科学教育新生态 题目难度:普及一 题目分析: a1肯定是分子,a2肯定是分母,那么尽可能多的是a3以后的变为分子,怎么办呢? a1/(a2/a3/a4/...)a1a3a4.../a2&#…...
Mysql进阶学习
目录 一.Mysql服务器内部架构(了解) 二.Mysql引擎 2.1 innodb引擎 2.2 myisam引擎 三.索引 3.1索引分类 3.2mysql索引数据结构 3.3聚簇索引和非聚簇索引 3.4回表查询 3.5索引下推 四.事务 数据库事务特征 事务隔离性,隔离级别 事务实现原理 五.锁 ①…...
白话DeepSeek-R1论文(二)| DeepSeek-R1:AI “升级打怪”,从“自学成才”到“全面发展”!
最近有不少朋友来询问Deepseek的核心技术,今天开始陆续针对DeepSeek-R1论文中的核心内容进行解读,并且用大家都能听懂的方式来解读。这是第二篇趣味解读。 DeepSeek-R1:AI “升级打怪”,从“自学成才”到“全面发展”!…...
WordPress eventon-lite插件存在未授权信息泄露漏洞(CVE-2024-0235)
免责声明: 本文旨在提供有关特定漏洞的深入信息,帮助用户充分了解潜在的安全风险。发布此信息的目的在于提升网络安全意识和推动技术进步,未经授权访问系统、网络或应用程序,可能会导致法律责任或严重后果。因此,作者不对读者基于本文内容所采取的任何行为承担责任。读者在…...
python 语音识别
目录 一、语音识别 二、代码实践 2.1 使用vosk三方库 2.2 使用SpeechRecognition 2.3 使用Whisper 一、语音识别 今天识别了别人做的这个app,觉得虽然是个日记app 但是用来学英语也挺好的,能进行语音识别,然后矫正语法,自己说的时候 ,实在不知道怎么说可以先乱说,然…...
2501,编写dll
DLL的优点 简单的说,dll有以下几个优点: 1)节省内存.同一个软件模块,若是源码重用,则会在不同可执行程序中编译,同时运行这些exe时,会在内存中重复加载这些模块的二进制码. 如果使用dll,则只在内存中加载一次,所有使用该dll的进程会共享此块内存(当然,每个进程会复制一份的d…...
Linux命令汇总
1、帮忙类 --help 直接在当前窗口显示帮助 command --help man 创建新窗口显示帮助 man command 2、目录操作类 2.1、查看目录 ls:以列表方式,查看目录中内容 tree:以树状方式,查看目录中内容 2.2、创建、删除文件及目录 touch:创建…...
漏洞扫描工具之xray
下载地址:https://github.com/chaitin/xray/releases 1.9.11 使用文档:https://docs.xray.cool/tools/xray/Scanning 与burpsuite联动: https://xz.aliyun.com/news/7563 参考:https://blog.csdn.net/lza20001103/article/details…...
Java手写简单Merkle树
Java手写Merkle树代码 package com.blockchain.qgy.component;import com.blockchain.qgy.model.MerkleTreeNode; import com.blockchain.qgy.util.SHAUtil;import java.util.*;public class MerkleTree<T> {//merkle树private List<MerkleTreeNode<T>> lis…...
vue之pinia组件的使用
1、搭建pinia环境 cnpm i pinia #安装pinia的组件 cnpm i nanoid #唯一id,相当于uuid cnpm install axios #网络请求组件 2、存储读取数据 存储数据 >> Count.ts文件import {defineStore} from piniaexport const useCountStore defineStore(count,{// a…...
升级到Mac15.1后pod install报错
升级Mac后,Flutter项目里的ios项目运行 pod install报错, 遇到这种问题,不要着急去百度,大概看一下报错信息,每个人遇到的问题都不一样。 别人的解决方法并不一定适合你; 下面是报错信息: #…...
力扣【1049. 最后一块石头的重量 II】Java题解(背包问题)
让石头分成重量相同的两堆(尽可能相同),相撞之后剩下的石头就是最小的。进一步转化成容量为重量总喝一半的背包最多可以装多少质量的石头。这样就转化成了背包问题。 最后求结果时,我们所最多能装的时dp[target],那另一…...
CSS 图像、媒体和表单元素的样式化指南
CSS 图像、媒体和表单元素的样式化指南 1. 替换元素:图像和视频1.1 调整图像大小示例代码:调整图像大小 1.2 使用 object-fit 控制图像显示示例代码:使用 object-fit 2. 布局中的替换元素示例代码:Grid 布局中的图像 3. 表单元素的…...
寒武纪MLU370部署deepseek r1
文章目录 前言一、平台环境准备二、模型下载三、环境安装四、代码修改五、运行效果 前言 DeepSeek-R1拥有卓越的性能,在数学、代码和推理任务上可与OpenAI o1媲美。其采用的大规模强化学习技术,仅需少量标注数据即可显著提升模型性能,为大模…...
Spring的AOP的JoinPoint和ProceedingJoinPoint
Spring的AOP的JoinPoint 在Spring AOP中,JoinPoint 是一个核心接口,用于表示程序执行过程中的一个连接点(如方法调用或异常抛出)。它提供了访问当前被拦截方法的关键信息的能力。以下是关于 JoinPoint 的详细说明: 一…...
每日一道算法题
题目:单词接龙 II 给定两个单词(beginWord 和 endWord)和一个字典 wordList,找出所有从 beginWord 到 endWord 的最短转换序列。转换需遵循如下规则: 每次转换只能改变一个字母。转换过程中的中间单词必须是字典中的…...
Node.js——body-parser、防盗链、路由模块化、express-generator应用生成器
个人简介 👀个人主页: 前端杂货铺 🙋♂️学习方向: 主攻前端方向,正逐渐往全干发展 📃个人状态: 研发工程师,现效力于中国工业软件事业 🚀人生格言: 积跬步…...
Java小白入门教程:两大类型的修饰符以及示例
目录 一、访问控制修饰符 1、default 就是啥都不写的那种 2、private 私有 3、public 公开 4、protected 受保护的 二、非访问控制修饰符 1、static 静态 2、final 最终 3、abstract 抽象 4、synchronized 锁 5、transient 瞬态 6、volatile 易变 一、访问控制修饰符…...
正则表达式入门
入门 1、提取文章中所有的英文单词 //1.先创建一个Pattern对象,模式对象,可以理解成就是一个正则表达式对象 Pattern pattern Pattern.compile("[a-zA-Z]"); //2.创建一个匹配器对象 //理解:就是 matcher匹配器按照p…...
云原生(五十二) | DataGrip软件使用
文章目录 DataGrip软件使用 一、DataGrip基本使用 二、软件界面介绍 三、附件文件夹到项目中 四、DataGrip设置 五、SQL执行快捷键 DataGrip软件使用 一、DataGrip基本使用 1. 软件界面介绍 2. 附加文件夹到项目中【重要】 3. DataGrip配置 快捷键使用:C…...