java
文章平均质量分 57
givmchickenblood
try to like it,do it
展开
-
GenericObjectPool对象池化的介绍与用法
GenericObjectPool 是 Apache Commons Pool 库的一部分,它,允许用户在,而不是每次需要一个新实例时都创建一个。这种方法可以显著提高性能。原创 2024-06-16 16:02:06 · 889 阅读 · 0 评论 -
正则表达式 不包含xx 包含xx
该正则的目的是要匹配上第一个串、而不能匹配上第二个串。.*MiniProgram) 解释见。原创 2024-03-19 09:18:21 · 178 阅读 · 0 评论 -
BitSet原理与实践
JAVA中,,根据上述“位图”的概念,那么(无碰撞冲突时)。比如50个数字{0,1,10,…63},判定“15”是否存在,那么我们通常会首先将这些数字使用数组或者hashmap保存,然后再去判定,那么保存这些这些数据需要占用64 * 64位;。(如果换成50个字符串,那么其节约的空间可能更大)。BitSet只面向数字比较,比如set(int a,boolean value)方法,;此后可以。对于string类型的数据,如果像使用BitSet,那么可以。转载 2024-03-17 13:54:05 · 73 阅读 · 0 评论 -
SimpleDateFormat线程不安全及解决办法
SimpleDateFormat线程不安全的原因、以及如何线程安全的使用转载 2022-06-26 11:18:35 · 1777 阅读 · 0 评论 -
几种表达式引擎
JAVA使用ScriptEngine 解析脚本google aviator:轻量级Java公式引擎转载 2022-06-06 19:20:09 · 535 阅读 · 1 评论 -
性能分析工具 火焰图
https://arthas.aliyun.com/doc/profiler.htmlhttps://zhuanlan.zhihu.com/p/73385693https://www.ruanyifeng.com/blog/2017/09/flame-graph.htmlhttps://www.infoq.cn/article/a8kmnxdhbwmzxzsytlga转载 2021-11-23 11:00:27 · 177 阅读 · 0 评论 -
Java静态内部类与内部类
静态内部类static是不能用来修饰类的,但是成员内部类可以看做外部类中的一个成员,所以可以用static修饰,这种用static修饰的内部类我们称作静态内部类,也称作嵌套内部类.静态内部类适用于包含类当中,但又不依赖与外在的类,不能使用外在类的非静态属性和方法,只是为了方便管理类结构而定义。在创建静态内部类的时候,不需要外部类对象的引用。静态内部类就是个独立的类。之所以要弄这么个东西,只是起到一个注释的效果,而且这个注释可静态检查。比如有A,B两个类,B有点特殊,虽然可以独立存在,但只被A使用。这时转载 2021-10-11 17:42:50 · 372 阅读 · 0 评论 -
MYSQL的 decimal 和 Java的 BigDecimal:金额存储使用的类型
示例1问, 结果是多少? 0.01?No! 结果是0.009999999999999998!为什么会这样呢? 因为float和double都是浮点数, 都有取值范围, 都有精度范围. 浮点数与通常使用的小数不同, 使用中, 往往难以确定. 常见的问题是定义了一个浮点数, 经过一系列的计算, 它本来应该等于某个确定值, 但实际上并不是! 金额必须是完全精确的计算, 故不能使用double或者float, 而应该采用java.math.BigDecimal.mysql中的decimal , 在java转载 2020-10-09 19:56:05 · 4966 阅读 · 0 评论 -
@NotNull和@NonNull的区别
@NotNull用在Bean的字段注解上,它是 JSR303(Bean的校验框架)的注解。在controller的方法中,验证入参的属性在运行时是否为空,如果为空,则注解中的错误提示信息会保存到result中。@NonNull用在方法或构造函数的参数上,它是JSR 305(缺陷检查框架)的注解。@NonNull会生成一个空值检查语句,当代码检查(静态检查)有空值时会给出一个风险警告,运行时不报任何警告,根据实际值的情况运行时可能出现空指针异常。 目前这个注解只有IDEA支持。实际好多静态扫描工具中有此注解原创 2020-09-05 18:15:37 · 1908 阅读 · 1 评论 -
构建器builder模式 + lombok @Builder的介绍及使用
参考https://juejin.im/post/68449038626004664391、重叠构造函数的优化对Effective Java书中第二章第二条遇到多个构造器参数时要考虑使用构建器进行复盘。假设某个类,现在有3个必选属性,有5个可选属性.(为了代码简洁,后面都只写一个必选属性,2个可选属性.懂就行).那么现在想提供完善的创建该类的机制,该怎么办呢?1、首先是方法1-使用重叠的构造方法.这是大家都熟悉的方法,重载很多个构造方法,每个的参数都不一样,总有一款适合您!public cl转载 2020-08-27 10:23:35 · 2372 阅读 · 0 评论 -
获得程序当前路径System.getProperty(“user.dir“)
参考https://www.cnblogs.com/cnxkey/articles/6999208.html因为所有在java.io中的类都是将相对路径名解释为起始于用户的当前工作目录,所以应该清楚当前的目录。可以通过调用System.getProperty(“user.dir”) 来获得。/**获得当前类的完整路径。最后一句*/package org.outman.dms.server; import java.net.MalformedURLException;import转载 2020-07-21 15:22:38 · 313 阅读 · 0 评论 -
Java 接口中的default方法
在java8以后,接口中可以添加使用default或者static修饰的方法,在这里我们只讨论default方法,default修饰方法只能在接口中使用,在接口种被default标记的方法为普通方法,可以直接写方法体。1、实现类会继承接口中的default方法如果接口A中有default方法:public interface A { public default void a(){ S...转载 2019-11-22 23:17:37 · 3976 阅读 · 0 评论 -
Java的访问修饰符
参考https://blog.csdn.net/u010876691/article/details/72724415https://blog.csdn.net/leilu2008/article/details/6719591Java中提供了四个关键字在类的内部设置边界,控制类的访问权限,分别是:public、protected、default(friendly、package)、priv...原创 2019-11-22 20:51:38 · 194 阅读 · 0 评论 -
static的用法
参考https://www.cnblogs.com/a8457013/p/8078826.htmlhttps://www.cnblogs.com/lh-cml/archive/2019/07/12/11176930.html1、被static修饰静态变量static修饰的变量是静态变量,也叫类变量类变量随着类的加载而加载,即使此类还未new过对象,这个类变量也存在,而且仅一份由类...原创 2019-11-22 19:32:05 · 361 阅读 · 0 评论 -
Object中的方法
JDK1.7 Object类总共13个方法1.clone方法保护方法,实现对象的浅复制,只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedException异常。主要是JAVA里除了8种基本类型传参数是值传递,其他的类对象传参数都是引用传递,我们有时候不希望在方法里将参数改变,这是就需要在类中复写clone方法。2.getClass方法final...原创 2019-11-06 15:09:05 · 198 阅读 · 0 评论 -
Java 反射(整理的不好,有时间重看)
反射的用法:https://www.jianshu.com/p/9be58ee20deehttps://blog.csdn.net/huangliniqng/article/details/88554510Java中编译类型有两种:静态编译:编译时确定类型动态编译:运行时确定类型Java反射是Java被视为动态(或准动态)语言的一个关键性质。这个机制允许程序在运行时,透过Refl...原创 2019-10-17 19:23:08 · 149 阅读 · 0 评论 -
Java IO与NIO的区别、BIO、NIO、AIO
https://www.cnblogs.com/aspirant/p/8630283.html一、概念NIO即New IO,这个库是在JDK1.4中才引入的。NIO和IO有相同的作用和目的,但实现方式不同,NIO主要用到的是块,所以NIO的效率要比IO高很多。在Java API中提供了两套NIO,一套是针对标准输入输出NIO另一套就是网络编程NIO二、NIO和IO的主要区别下表总...转载 2019-03-31 20:43:43 · 4073 阅读 · 1 评论 -
java中的基本类型
java中8种数据类型所占字节数如下:boolean 这个试编译环境而定byte 1个字节short 2个字节char 2个字节int 4个字节long 8个字节float 4个字节double 8个字节在Java中整型、实型、字符型被视为简单数据类型,这些类型由低级到高级分别为:(byte,short,char)–int–long–float–double注意,整数比浮点...转载 2019-04-18 12:04:06 · 93 阅读 · 0 评论 -
Java 序列化和反序列化
https://www.cnblogs.com/ysocean/p/6870069.html1、什么是序列化与反序列化?序列化:指把堆内存中的 Java 对象数据,通过某种方式把对象存储到磁盘文件中或者传递给其他网络节点(在网络上传输)。这个过程称为序列化。通俗来说就是将数据结构或对象转换成二进制串的过程反序列化:把磁盘文件中的对象数据或者把网络节点上的对象数据,恢复成Java对象模型的过程...转载 2019-04-12 11:19:46 · 335 阅读 · 0 评论 -
java equals方法和hashCode方法
https://blog.csdn.net/qq_35580883/article/details/78514288当我们写了一个类的时候,我们一般要重写这个类的equals方法,因为所有类都继承Object,而Object中的equals方法是这么写的:public boolean equals(Object obj){ return this==obj;}也就是Object中...转载 2019-04-08 17:32:42 · 303 阅读 · 0 评论 -
通过JVM指令分析Java中i++与++i的区别
转自https://blog.csdn.net/s394500839/article/details/80878485通过jvm编译指令,来解析为何i++与++i运算过程的区别i++public void testFun(){ int y = 13; int x = y++;}对应指令结构public void testFun(); descriptor: ...转载 2019-04-02 11:33:02 · 316 阅读 · 0 评论 -
Java中的String为什么是不可变的?
https://blog.csdn.net/dearKundy/article/details/82355019什么是不可变对象?如果一个对象它被创建后,状态不能改变,则这个对象被认为是不可变的。String是如何实现其对象不可变?首先需要补充一个容易混淆的知识点:当使用final修饰基本类型变量时,不能对基本类型变量重新赋值,因此基本类型变量不能被改变。但对于引用类型变量而言,它保存的仅...转载 2019-03-27 20:54:16 · 231 阅读 · 0 评论 -
JDK1.7、JDK1.8 新特性(全)
https://blog.csdn.net/qq_29411737/article/details/80835658jdk1.8新特性知识点:1 jdk1.8对hashMap等map集合的优化2 Lambda表达式3 函数式接口4 方法引用和构造器调用5 Stream API6 并行流和串行流7 Optional容器Java 8引入Optional类来防止空指针异常,Option...转载 2019-03-27 20:46:51 · 7231 阅读 · 0 评论 -
java枚举类型的实现原理
转自https://blog.csdn.net/mhmyqn/article/details/48087247Java在1.5中添加了java.lang.Enum抽象类,它是所有枚举类型基类。提供了一些基础属性和基础方法。同时,对把枚举用作Set和Map也提供了支持,即java.util.EnumSet和java.util.EnumMap。如何定义枚举类型比如表示加减乘除操作,我们可以定义...转载 2019-04-18 15:14:52 · 416 阅读 · 0 评论 -
java 自定义一个类java.lang.System/String会发生什么
https://blog.csdn.net/tang9140/article/details/427384331、类加载器介绍类加载器可分为两类:一是启动类加载器(Bootstrap ClassLoader),是C++实现的,是JVM的一部分另一种是其它的类加载器,是Java实现的,独立于JVM,全部都继承自抽象类java.lang.ClassLoader。JDK自带了三种类加载器,...转载 2019-05-08 11:03:05 · 597 阅读 · 0 评论 -
java为什么是单继承?
1、单继承ClassTest会报错: ClassTest不能同时扩展c1和c2,因为c1和c2中有名字相同的方法,ClassTest不知道该调用哪个? class ClassTest extends C1,C2 { @Override public void fun() { System.out.println("ff"); ...原创 2019-05-06 19:15:07 · 7557 阅读 · 0 评论 -
java 枚举 Enum 详解
1、反遍Yi枚举类1.1 举例1:普通枚举类enum代码:public enum ColorEnum { RED, BLACK, BLUE; ColorEnum() { }}jad下载编Yi并反编Yi:反编Yi后的代码:多了values(),valueOf(String s)方法// Decompiled by Jad v1.5.8g. Copyrigh...原创 2019-06-05 17:12:30 · 190 阅读 · 0 评论 -
Google Guava 优雅的参数验证(Preconditions)
1、前言在我们的日常开发中,经常要对入参进行校验,比如是否为空、参数的取值范围是否符合要求等等。如果我们单独进行参数校验的话,代码的重复率比较高,也不是很优雅。Guava提供了PreConditions类来统一校验我们的参数,同时可以抛出对应的异常信息,将参数校验的工作进行了统一。前置条件: 让方法调用的前置条件判断更简单。2、PreConditions类中的几种校验方法checkArgu...原创 2019-07-29 22:08:44 · 4353 阅读 · 0 评论 -
Json 详解以及 fastjson 使用教程
https://blog.csdn.net/srj1095530512/article/details/82529759Json是一种轻量级的数据交换格式,采用一种 “键:值” 对的文本格式来存储和表示数据,在系统交换数据过程中常常被使用,是一种理想的数据交换语言。在使用Java做Web开发时,不可避免的会遇到Json的使用。下面我们就简单讲一下Json的使用以及fastjson.jar包的使用...转载 2019-07-20 18:54:53 · 2568 阅读 · 0 评论 -
待看知识点
1、schedulerx-worker 分布式调度 http://schedulerx2.taobao.net/#/InstanceList?_k=00zccs2、gc相关 哪些代码容易gc;fullgc如何排查处理;新生代、老年代、持久代https://blog.csdn.net/sted_zxz/article/details/72476673https://blog.csdn.net/...原创 2019-09-11 20:31:39 · 138 阅读 · 0 评论 -
java 判断对象的类型
1、instanceof关键字instanceof不仅可以判断对象是否是某个类的实例甚至连该类继承的基类和实现的接口也都能够被识别为truepublic static void main(String args[]) { Object i = new Integer(7); if (i instanceof Number) { System.out.pr...原创 2019-09-11 20:35:30 · 41644 阅读 · 1 评论 -
Java 内部类的作用
参考https://www.cnblogs.com/yangming1996/p/8869081.html众所周知,我们的 C++ 程序语言是多继承制的,而多继承明显的好处就是,相对而言只需要写较少的代码即可完成一个类的定义,因为我们可以通过继承其它类 来获取别人的实现。但是,它也有一个致命性的缺陷,容易出现「钻石继承结构」,例如:C 和 D 继承自 A,并得到 A 的 name 属性,...转载 2019-10-06 17:06:11 · 180 阅读 · 0 评论 -
深入理解Java对象的创建过程:类的初始化与实例化(实例化的几种方式)
超级棒的博客~https://blog.csdn.net/justloveyou_/article/details/72466416摘要:在Java中,一个对象在可以被使用之前必须要被正确地初始化,这一点是Java规范规定的。在实例化一个对象时,JVM首先会检查相关类型是否已经加载并初始化,如果没有,则JVM立即进行加载并调用类构造器完成类的初始化。在类初始化过程中或初始化完毕后,根据具体情.........转载 2019-03-30 16:38:59 · 2013 阅读 · 0 评论 -
JAVA 对象初始化过程 详解 及 面试题
https://blog.csdn.net/mmd0308/article/details/75453720对象的初始化流程如下:初始化父类的静态成员初始化父类的静态代码块初始化子类的静态成员初始化子类的静态代码块初始化父类的非静态成员初始化父类的非静态代码块初始化父类的构造方法初始化子类的非静态成员初始化子类的非静态代码块初始化子类的构造方法注: 父...转载 2019-03-30 16:10:59 · 241 阅读 · 0 评论 -
java中的大数BigInteger
转自 https://www.cnblogs.com/upstart/p/6011934.html 数据类型:数据类型 类型名 位长 取值范围 默认值布尔型 boolean 1 true,false false字节型 byte 8 -128-127 0字符型 char 16 ‘\u000’-\uffff ‘\u0000’短整型 short 16 -32768-32767 0...转载 2018-09-07 09:32:46 · 808 阅读 · 0 评论 -
java回调函数
参考 https://www.cnblogs.com/liboBlog/p/7107440.html今天在看java编程思想的时候看到回调函数这个问题,在这里总结一下自己对回调函数的理解加深一下印象。(回调函数,第一次见是在Java编程思想中,以及后来的观察者模式也应用了回调函数的思想。)回调函数,简单的从实际运用来给个定义啊。就是客户端调用服务起执行一个函数,当服务器端执行完成之后反...转载 2018-09-10 11:39:21 · 403 阅读 · 1 评论 -
JNDI 是什么,怎么理解
转自https://www.cnblogs.com/study-everyday/p/6723313.htmlJNDI 是什么JNDI是 Java 命名与目录接口(Java Naming and Directory Interface),在J2EE规范中是重要的规范之一,不少专家认为,没有透彻理解JNDI的意义和作用,就没有真正掌握J2EE特别是EJB的知识。那么,JNDI到底...转载 2018-08-30 09:08:53 · 198 阅读 · 0 评论 -
Java中BigDecimal的使用
转自 https://blog.csdn.net/cen_s/article/details/76472834 https://www.cnblogs.com/LeoBoy/p/6056394.html转载 2018-09-01 19:53:17 · 334 阅读 · 0 评论 -
java中保留2位小数的四种方法
转自https://blog.csdn.net/y999666/article/details/52332352/ 在写程序的时候,有时候可能需要设置小数的位数,那么java中有哪几种保留小数位数的方法呢?本文以两位小数为例给出四种方法。package CodeJava_Leet;import java.math.BigDecimal;import java.text.Decima...转载 2018-08-29 10:27:51 · 15529 阅读 · 0 评论 -
Java面试——从JVM角度比较equals和==的区别
转自 https://blog.csdn.net/seu_calvin/article/details/52089040 这篇文章讲的很好,涉及了基本数据类型的==、复合数据类型的==、String的==(引入了String的intern()方法)、Integer的-128--127的缓存等知识点。...转载 2018-08-21 23:10:01 · 199 阅读 · 0 评论