随笔分类 - Java
java常见用法汇总及常用的工具类封装
摘要:1.情景展示 java二进制如何转成十进制? 十进制如何转换成二进制? 2.具体分析 二进制:用0和1表示(最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小); 十进制:10个阿拉伯数字(0~9)共计10个数字表示。 3.解决方案 二进制转十进制 /* * 二进制转十进制(支持用负数
阅读全文
摘要:1.情景展示 2进制如何转16进制? 16进制如何转成2进制? 2.具体分析 二进制:用0和1表示(最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小); 十六进制:10个阿拉伯数字(0~9)和6个英文字母(a~f)共计16个字符表示。 3.解决方案 二进制转十六进制 /* * 二进制
阅读全文
摘要:1.情景展示 java基本数据类型数组如何转list? 2.具体分析 在java当中,我们知道:数组转list的方式是: List<T> list = Arrays.asList(array); 但是,只知其一不知其二: 通过Arrays.asList方法转换为List,List的元素必须是包装类,
阅读全文
摘要:1.情景展示 在javaWeb开发过程中,我目前遇到的json类型一共有4种,它们分别是: json,fastjson,Jackson和Gson,下面介绍它们的区别。 2.基本介绍 net.sf.json 查看代码 <dependency> <groupId>net.sf.json-lib</gro
阅读全文
摘要:1.情景展示 使用gson进行反序列化(json转java对象)的时候,你可能会遇到明明key对应的值是整数,而进行反序列化后,却变成了小数(后面加上了.0)。 如何解决这个问题? 2.具体分析 准备工作 查看代码 /** * 数值类型实体类 * @description: 包含整数和小数 * @a
阅读全文
摘要:RSA算法实现 公钥加密,私钥解密; 私钥签名,公钥验签。 导包 import code.marydon.encapsulation.dataType.Base64Utils; import code.marydon.encapsulation.file.IOUtils; import lombok
阅读全文
摘要:1.情景展示 在实际生活中,随着图片的质量和尺寸越来越大,我们在用图片进行网络传输的时候,往往受制于网速或者网站的影响,导致图片加载不出来; 没有办法的办法,就是:通过压缩图片的质量(清晰度)或者图片的尺寸(大小、像素),在java中,如何实现? 2.准备工作 我参考了网上通过java来实现的缩小图
阅读全文
摘要:1.情景展示 当我们需要将IP存进mysql数据库的时候,数据库的设计是:建议我们存入IP转换成的数值。 作者建议当存储IPv4地址时,应该使用32位的无符号整数(UNSIGNED INT)来存储IP地址,而不是使用字符串。 相对字符串存储,使用无符号整数来存储有如下的好处: 节省空间,不管是数据存
阅读全文
摘要:1.情景展示 java如何获取操作系统的环境变量? 2.具体分析 环境变量:对于系统来说,指的是:操作系统中的系统变量。 系统变量:对于java来说,指的是:java自身配置的一些变量。 3.解决方案 如何获取java系统变量? 通过System.getProperty("key")获取; 可通过S
阅读全文
摘要:1.情景展示 在java开发过程中,如何获取当前项目所在的磁盘路径(绝对路径)和桌面路径? 2.获取项目根路径 第一种方式:纯java项目 如果是main方法运行,可以使用这种方式。 System.getProperty("user.dir") 如果是web项目,就不能使用这种方式了。 它获取的是e
阅读全文
摘要:1.情景展示 snowflake算法是Twitter开源的分布式ID生成算法,结果是一个long类型的ID 。其核心思想:使用41bit作为毫秒数(41位的长度可以使用69年),10bit作为机器的ID(5bit数据中心,5bit的机器ID),12bit作为毫秒内的流水号(意味着每个节点在每个毫秒可
阅读全文
摘要:1.情景展示 在实际开发过程中,可能会遇到将前端传的日期格式转成LocalDateTime插入到数据库的情况,如何将日期转成LocalDateTime呢? 2.原因分析 在Java8中,日期类不同于以前版本的java.util.Date工具类,Date类可以存日期也可以存时间,还能存日期+时间,统统
阅读全文
摘要:1.文件转byte[] 方式一:文件输入流 File file = new File("C:\\Users\\Marydon\\Desktop\\个人信用报告.pdf"); try { FileInputStream fis = new FileInputStream(file); // 强转成in
阅读全文
摘要:1.情景展示 如何通过Java代码将文件移到回收站中,而不是直接删除呢? 将文件删除到回收站,我们还可以撤销,有踪迹追寻; 不放回收站直接删除,连个反悔的余地都没有,单靠日志能记录个啥。 2.问题分析 Java9以下通过jna来完成; Java9及以上通过自带Java类Desktop.class来完
阅读全文
摘要:1.情景展示 在实际开发过程中,对于文件的读写操作也是经常碰到的,如何用java完成对文件的准确无误的读写呢? 2.场景分析 在java中,我们可以通过数据流(二进制)来完成对文件的操作; 其中,数据流有2种,一种是字节流,一种是字符流,这两种流各有特点,都能实现对文件的操作。 举个例子: 已知日志
阅读全文
摘要:情景展示 判断String类型里是否包含指定字符 String lineText = "cz8108_1接口业务参数:{\"EInvoiceNumber\":\"0003656276\",\"EInvoiceCode\":\"41060221\",\"AgencyCode\":\"000051000
阅读全文
摘要:情景展示 在实际开发过程中,我们通常使用StringBuilder或StringBuffer来完成字符串的拼接工作,有时需要进行数据清空操作。 清空StringBuilder或StringBuffer有哪些方式能够实现?哪种方式最快? StringBuilder sb = new StringBui
阅读全文
摘要:1.情景展示 用java编辑word文档 2.准备工作 通过docx4j实现 所需jar包 <!-- https://mvnrepository.com/artifact/org.docx4j/docx4j-JAXB-Internal --> <dependency> <groupId>org.do
阅读全文
摘要:1.所需jar包 <!--PDF转图片--> <dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>pdfbox</artifactId> <version>2.0.20</version> </dependency> 如果需要改
阅读全文
摘要:1.情景展示 有时候,我们需要这样一种场景: 我们知道,在java中,往同一文件中写入内容,如果该文件已经有内容的话,将要写入的内容会自动拼接到原内容后面(不会破坏原文件内容) 但是,如果我们不想保留原有内容的话,在写入内容之前需要进行内容清空,如何实现? 2.方式一(推荐使用) import ja
阅读全文