存储
风铃峰顶
个人项目经历请搜索:
http://www.haoranhaoshi.top/
展开
-
Java的getDeclaredMethods是否获取父类方法
转载:https://www.dazhuanlan.com/2020/03/14/5e6c39378e762/getDeclaredMethods方法的注释:Returns an array containing Method objects reflecting all the declared methods of the class or interface represented by this Class object, including public, protected, default转载 2021-07-08 17:37:26 · 2715 阅读 · 0 评论 -
合并JSON
public class DataMerge { private static JSONObject allData = new JSONObject(true); public static void main(String[] args) { mergeData("{\"a\": \"1\"}"); mergeData("{\"b\": \"2\"}"); mergeData("{\"c\": \"3\"}"); Sys原创 2021-07-06 16:08:47 · 165 阅读 · 0 评论 -
为什么StringBuilder的效率要比String高?
先看一个例子:标题从上面的例子可以看到,StringBuilder的运行时间只有简单字符串拼接的千分之一,那是什么原因造成的呢?String在java中是不可变长的,一旦初始化就不能修改长度,简单的字符串拼接其实是创建新的String对象,再把拼接后的内容赋值给新的对象,在频繁修改的情况下会频繁创建对象,而StringBuilder则不会,从头到尾只有一个实例对象,那StringBuilder是怎么实现的呢?其实StringBuilder在append时并不是用String存储,而是放到..转载 2021-01-03 22:42:39 · 247 阅读 · 0 评论 -
POJO、DO、DTO、AO、BO、VO、JB、DAO、EJB
POJO(Plain Old Java Object):纯洁老式的Java对象。只有私有变量和Getter、Setter方法,没有类继承或接口实现。 根据业务角度对应有: DO( Data Object):数据对象。如果对应表,必须和表结构完整对应。 DTO(Data Transfer Object):数据传输对象。 AO( Application Object):应用对象。 BO(Business Object) :业务对象。 VO(View Object)...原创 2020-10-19 14:30:44 · 610 阅读 · 0 评论 -
BIO、NIO、多路复用IO、AIO
BIO(Blocking IO):阻塞IO(有的资料称同步阻塞IO),面向Stream。NIO(Non-Blocking IO):非阻塞IO(有的资料称同步非阻塞IO),面向Channel。多路复用IO(Multiplexing IO):也称事件驱动IO(event driven IO)或者Reactor模式(反应器模式)。AIO(Asynchronous IO,也称NIO 2.0):异步IO(有的资料称异步非阻塞IO,也称Proactor模式(主动器模式)),面向Channel。有的资料称同步才原创 2020-10-19 11:25:54 · 271 阅读 · 2 评论 -
Java transient、Serializable、Externalizable
transient关键字可以防止序列化,对Serializable 实现类有效。请源码上身,加持你我(ArrayList是浅克隆):public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable{ /** * The array buffer into whic原创 2020-08-05 20:30:27 · 334 阅读 · 0 评论 -
Java的Modifier
class的getModifiers()方法能获取类的修饰信息。 /** * The {@code int} value representing the {@code public} * modifier. */ public static final int PUBLIC = 0x00000001; /** * The {@code int} value representing the {@code privat原创 2020-08-04 07:24:11 · 406 阅读 · 0 评论 -
getConstructor 和 getDeclaredConstructor区别
public Constructor<T> getConstructor(Class<?>... parameterTypes) throws NoSuchMethodException, SecurityException 获取参数列表匹配的公共构造器public Constructor<T> getDeclaredConstructor(Class<?>... parameterTypes) throws NoSuchMe...原创 2020-08-03 22:17:57 · 360 阅读 · 0 评论 -
检查本地文件和Jar包内文件是否存在
private static void fileCheckInJar(String jarName, String pathInJar){ try { // 本地文件:Windows系统下可以写file:/,Linux下本地文件必须file:///,否则报:java.net.UnknownHostException: home URL url = new URL("jar:file:///" + System.getProperty("...原创 2020-07-29 20:42:00 · 1052 阅读 · 0 评论 -
Java Void
Void是void的包装类:public finalclass Void { /** * The {@code Class} object representing the pseudo-type corresponding to * the keyword {@code void}. */ @SuppressWarnings("unchecked") public static final Class<Void> TYPE = (原创 2020-07-24 15:23:23 · 164 阅读 · 0 评论 -
Java 注解
反编译注解类可看到注解的本质:继承Annotation接口的接口。注解中的变量强制public static final,方法不写方法体,强制public abstract,即实现接口必须实现接口的方法。JDK1.8引入了default修饰符,方法加上了default修饰符就可以写方法体了。一个类可实现多个接口,这些接口中可以有相同的不被default修饰的方法,但不可以有相同名方法名,有被default修饰,如果想使用这个方法,必须复写,加Override注解。这个类不能使用这些.原创 2020-07-24 17:00:16 · 124 阅读 · 0 评论 -
Java 解析lst、archive、plist(propertylist,Mac上常用)文件
lst文件、archive文件后缀修改为plist文件进行解析。Mac上解析plist:https://www.jianshu.com/p/e2b1ec14dade查看plist:https://www.jianshu.com/p/5f6e7d995a58Java解析plist文件(转载):plist文件有xml、binary(二进制)、ASCII三种存储格式。binary格式用xml方式解析会报:前言不允许有内容。plist文件用Notepad++打开,编码-转为UTF-8编码原创 2020-06-22 14:06:19 · 1006 阅读 · 1 评论 -
Invalid header signature
java.io.IOException: Invalid header signature; read -2300849302551019537, expected -2226271756974174POI包不支持xlsx文件,将xlsx文件另存为xls即可,如果仍报此错,看一下target目录下和resources相同路径的xls文件是否损坏(打开后乱码,和resources下的原始文件不同),如果损坏,将resources下的原始文件拷贝一下到target下进行覆盖。...原创 2020-06-18 17:00:02 · 1305 阅读 · 0 评论 -
Java 子项加入集合后替换子项
// 子项加入集合后替换子项,集合中的子项不会被替换 Node node = new Pane(); Group group = new Group(); Vector<Node> nodeVector = new Vector<>(); List<Node> nodeList = new ArrayList<>(); Map<String...原创 2020-06-16 10:30:35 · 156 阅读 · 0 评论 -
Java 分割\ / .空格 多个空格
System.out.println("1/1".split("/")); System.out.println("1\\1".split("\\\\"));原创 2020-06-16 10:26:51 · 842 阅读 · 0 评论 -
Java 捕获进程被关闭
package DestroyProcessTest;/** * @Author: ZhangHao * @Description: 销毁进程测试 * @Date: 2020/6/6 11:12 * @Version: 1.0 */public class DestroyProcessTest { public static void main(String[] args) throws InterruptedException { new DestroyProce.原创 2020-06-06 15:47:14 · 384 阅读 · 0 评论 -
Java Pattern 正则
import java.util.ArrayList;import java.util.List;import java.util.regex.Matcher;import java.util.regex.Pattern;/** * @Author: ZhangHao * @Description: 匹配测试 * @Date: 2020/4/30 9:44 * @Version...原创 2020-04-30 09:51:27 · 194 阅读 · 0 评论 -
Java 时间工具类 获取当前时间,时间比较
package com.program.face.util;import java.text.SimpleDateFormat;import java.util.Date;/** * @Author: hao * @Description: 时间工具类 * @Date: 2020/4/2 18:55 * @Version: 1.0 */public class DateUt...原创 2020-08-25 08:29:18 · 494 阅读 · 0 评论 -
Java 判断中英文、解析中文字符占用的字节、获取字符串相对于汉字的个数
Java中判断字符串的编码有两种思路:一种是根据byte的长度判断,英文的字母数字好标点符号都是一个byte,且值在0-255之间另一种是根据中文的Unicode取值范围判断,这个就是把所以的范围都包含,才能判断正确,参考unicode中文范围:示例代码:import java.util.regex.Matcher;import java.util.regex.Pattern;...转载 2020-04-06 19:08:10 · 1797 阅读 · 0 评论 -
Jdom和Dom4j对比
1、JDOM JDOM的目的是成为 Java 特定文档模型,它简化与 XML 的交互并且比使用 DOM 实现更快。由于是第一个 Java 特定模型,JDOM 一直得到大力推广和促进。正在考虑通过“Java 规范请求 JSR-102”将它最终用作“Java 标准扩展”。从 2000 年初就已经开始了 JDOM 开发。 JDOM 与 DOM 主要有两方面不同。首先,JDOM 仅使用具...转载 2019-10-30 09:58:39 · 1852 阅读 · 1 评论 -
Java Jdom操作XML
依赖注入: <dependency> <groupId>org.jdom</groupId> <artifactId>jdom</artifactId> <version>2.0.2</version> </dependency>读...原创 2019-10-30 09:46:14 · 144 阅读 · 0 评论 -
Java Map按照key或value排序
import java.util.*;public class MapKeySort { public static void main(String[] args) { Map<String, String> map = new LinkedHashMap<>(); map.put("Wang", "B"); ...原创 2019-10-28 15:11:15 · 245 阅读 · 0 评论 -
http 工具类
package util;import java.io.BufferedReader;import java.io.DataOutputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.URL;import java.util.List;import ...转载 2019-02-26 22:05:43 · 259 阅读 · 0 评论 -
关于Java的PreparedStatement的executeBatch方法及海量数据存储时的主键重复问题
PreparedStatement的executeBatch方法在执行insert语句时主键重复异常会被SQLiteException捕获,不会被BatchUpdateException捕获,被BatchUpdateException捕获可根据getUpdateCounts方法得到已更新的记录数。executeBatch方法本身是int[],它的length是成功执行的记录数,但执行时遇到异常...原创 2018-12-01 14:35:32 · 3269 阅读 · 0 评论 -
Java 类型转换:byte数组和其他类型转换
// 字节转成UCHAR型,由于Java不支持UCHAR类型,所以这里转换成short类型 public static short byte2Uchar(byte[] b, int off) { int temp = b[0]; if (b[0] < 0) { temp = temp + 256; } ...原创 2019-08-03 09:37:20 · 611 阅读 · 0 评论 -
序列版本ID、序列方式深拷贝(包含JDK的序列化、反序列化)、序列化选型
package deep_clone_serialization;import java.io.*;public class DeepCloneBySerialization { public static void main(String[] args) throws Exception { Teacher teacher = new Teacher(); ...原创 2019-07-21 13:47:12 · 247 阅读 · 0 评论 -
读取Jar包文件夹里的所有jar包文件名;生成连续解压jar包的命令行;生成连续的本地非Maven仓库型依赖
package tool;import java.io.File;public class DealJarFolder { public static void main(String[] args){ String filePath = "C:/Users/Administrator/Desktop/MyJarFolder"; searchJar...原创 2018-10-31 13:18:24 · 1066 阅读 · 0 评论 -
得到文件夹里所有Moudle名称(Moudel为二级归类模式)
package tool;import java.io.File;public class DealTwoLevelFolder { public static void main(String[] args){ String filePath = "D:/MyMoudles"; DealTwoLevelFolder dealJarFolder =...原创 2018-11-05 15:46:10 · 435 阅读 · 0 评论 -
Java文本文件读写
// 读文件String filePath = "";// new File("").getAbsolutePath()能得到模块根目录// this.getClass().getResorce("").getPath() 能得到此类的绝对路径// this.getClass().getResourceAsStream("") 能直接得到InputStream。""中/开头为模块内Sou...原创 2018-11-16 18:24:08 · 818 阅读 · 0 评论 -
Java 文件行数计算
public class FileLineNumberSearch { public static void main(String[] args) { String filePath = new File("").getAbsolutePath() + "/src/file/" + "waitUse" + ".txt"; // readLine方式 ...转载 2018-11-17 10:26:06 · 277 阅读 · 0 评论 -
Java读写db文件及图片在db文件中的读写
import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.InputStream;import java.sql.Connection;import java.sql.DriverManager;import java.sql.Prepa...原创 2018-11-27 13:36:56 · 5011 阅读 · 0 评论 -
Java将图片从网上下载至本地
ImageIO.write(RenderedImage im, String formatName, File output)实例:String urlString = "http://tile.openstreetmap.org/1/0/0.png";Image image = new Image(urlString, true);File output = new File("D:/"...原创 2018-12-04 16:58:48 · 683 阅读 · 0 评论 -
Java从网络中获取InputStream
URL url = null; try { System.out.println(urlString); url = new URL(urlString); } catch (MalformedURLException e...原创 2018-12-06 14:29:01 · 2144 阅读 · 0 评论 -
Java从db文件中读取InputStream获取Image
package GetImage;import javafx.application.Application;import javafx.scene.Scene;import javafx.scene.image.Image;import javafx.scene.image.ImageView;import javafx.scene.layout.Pane;import java...原创 2018-12-06 15:05:14 · 1012 阅读 · 0 评论 -
Java读取InputStream长度,以及available、readAllBytes、read、mark、reset方法介绍
/** 根据InputStream对应的字节数组读取InputStream长度,会将InputStream指针移动至InputStream尾,不利于后续读取,readInputStream(inputStream).length等同于inputStream.readAllBytes().length,readAllBytes从当前指针位置读取,读取后指针留在最后的位置 */ p...原创 2018-12-06 16:18:51 · 20477 阅读 · 2 评论 -
解决:该文件夹包含名称过长且无法放入回收站的项目
一个包含路径超过255个字符的文件的文件夹,无法直接删除,需从叶子文件开始删。import java.io.File;import java.util.ArrayList;import java.util.Collections;import java.util.List;/** * 一个包含路径超过255个字符的文件的文件夹,无法直接删除,需从叶子文件开始删 */pu...原创 2019-02-10 13:38:09 · 4583 阅读 · 4 评论 -
DES加解密
package tool;import java.security.Key;import java.security.SecureRandom;import javax.crypto.Cipher;import javax.crypto.KeyGenerator;import sun.misc.BASE64Decoder;import sun.misc.BASE64Encoder;...转载 2018-11-05 15:43:12 · 318 阅读 · 1 评论 -
Java 保留double类型数值指定的小数位数
// 四舍五入,保留number类型数值的decimalDigit位小数位数 // 传入double类型的数值和想要保留的小数位数 private static double numberFormat(double number, int decimalDigit){ NumberFormat numberFormat = NumberFormat.get...原创 2019-07-12 15:52:46 · 1002 阅读 · 0 评论 -
系统属性:setProperty(String key, String value)和System.getProperty(String key)总结
// 自带的System.out.println("java版本号:" + System.getProperty("java.version")); System.out.println("Java提供商名称:" + System.getProperty("java.vendor")); ...转载 2019-06-24 22:06:28 · 443 阅读 · 0 评论 -
Java 共享内存
对UNIX系统来说,共享内存分为一般共享内存和映像文件共享内存两种,对windows实际上只有映像文件共享内存一种。所以java应用中也是只能创建映像文件共享内存。使用共享内存,有如下几个特点:1、可以被多个进程打开访问。2、读写操作的进程在执行读写操作时其他进程不能进行写操作。3、多个进程可以交替对某一共享内存执行写操作。4、一个进程执行了内存的写操作后,不影响其他进程对该内存的...转载 2019-06-11 20:00:08 · 2345 阅读 · 0 评论