![](https://img-blog.csdnimg.cn/20191021175808291.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java
害你加班的BUG都是我写的
热爱编程
展开
-
BigDecimal工具类,简单而有效
使用链式变成的思想封装BigDecimal,支持四则运算,读者可以根据项目的要求自行添加方法import lombok.Data;import javax.validation.constraints.NotNull;import java.math.BigDecimal;/** * big decimal 工具类 * 大多数只支持double类型 */@Datapublic class BigDecimalUtil { private BigDecimal bigDecimal原创 2021-08-23 15:43:31 · 924 阅读 · 2 评论 -
跳表的实现 Java
一、什么是跳表?我们经常可以看到跳表这个词,但是却对里面的数据结构缺乏了解。相比于红黑树,跳表本身是一种基于链表的数据结构,所以他本身的插入和删除效率很高,而查找效率和红黑树相当,都是O(log2n)O(log_2n)O(log2n)。我们来看一下跳表的结构可以明显看到,跳表就是一种典型的以空间换时间的数据结构。该算法与哈希算法的另一个区别就是:哈希算法不会保存数据的顺序,而跳表内的所有元素都是排序的。因此对于跳表进行遍历会得到一组有序的数据。在JDK内部,也使用了该数据结构,比如Concurr原创 2020-10-31 16:00:06 · 365 阅读 · 0 评论 -
自定义注解详解
文章引用深入理解Java:注解(Annotation)自定义注解入门自定义注解详细介绍说在最前文章忽略特性的一些基本概念注解的本质是反射1. 自定义注解注解其实就是一种标记,可以在程序代码中的关键节点(类、方法、变量、参数、包)上打上这些标记,然后程序在编译时或运行时可以检测到这些标记从而执行一些特殊操作第一步:定义注解——相当于定义标记第二步:配置注解——把标记打在需要用到的程序代码中第三部:解析注解——在编译期或运行时监测到标记,并进行特殊操作1.2 基本语法注解类型转载 2020-07-03 16:33:50 · 1634 阅读 · 0 评论 -
安装本地jar包到maven仓库
首先进入下载好jar包的目录打开cmd,运行例如mvn install:install-file -DgroupId=com.aliyun -DartifactId=aliyun-sdk-vod-upload -Dversion=1.4.11 -Dpackaging=jar -Dfile=aliyun-java-vod-upload-1.4.11.jar实际如下mvn install:install-file -DgroupId=groupId -DartifactId=artificatedId原创 2020-06-02 23:03:42 · 163 阅读 · 0 评论 -
Java多线程和线程池详解
多线程1. 线程的声明周期新建 :从新建一个线程对象到程序start() 这个线程之间的状态,都是新建状态;就绪 :线程对象调用start()方法后,就处于就绪状态,等到JVM里的线程调度器的调度;运行 :就绪状态下的线程在获取CPU资源后就可以执行run(),此时的线程便处于运行状态,运行状态的线程可变为就绪、阻塞及死亡三种状态。等待/阻塞/睡眠 :在一个线程执行了sleep(睡眠)、suspend(挂起)等方法后会失去所占有的资源,从而进入阻塞状态,在睡眠结束后可重新进入就绪状态。终止 :原创 2020-05-09 16:15:12 · 857 阅读 · 0 评论 -
如何查看SpringBoot的application配置项
场景初学SpringBoot,经常要在application.properties/yml中对某些导入的包进行初始化配置例如在mysql中,我们要配置url,username,password,driverClassName等spring.datasource.url = jdbc:mysql://localhost:3306/DatebaseName(自己数据库名)spring.data...原创 2020-04-09 13:07:40 · 4543 阅读 · 1 评论 -
Session,Cookie和token的关系
本文转载自看完这篇 Session、Cookie、Token,和面试官扯皮就没问题了本文脉络如下Session和CookieHTTP协议是一种无状态协议,即每次服务端接收到客户端的请求时,都是一个全新的请求,服务器并不知道客户端的历史请求记录;Session和Cookie的主要目的就是为了弥补HTTP的无状态特性Session是什么客户端请求服务端,服务端会为这次请求开辟一块内存空间,...转载 2020-04-05 20:12:35 · 309 阅读 · 0 评论 -
Java maven项目中读取json资源文件
应用场景springboot maven项目,想读取resources资源目录下自定义的configuration.json文件时,通过下面的代码在本机测试时可以读取try{ //filename="configuration.json" URL url = JsonResourceUtils.class.getResource(filename); String path ...原创 2020-04-01 00:26:56 · 4648 阅读 · 0 评论 -
重定向和转发的区别
重定向(forward)的特点地址栏发生变化重定向访问其他站点(服务器)的资源重定向是两次请求。不能使用request对象来共享数据转发(redirect)的特点转发地址栏路径不变转发只能访问当前服务器下的资源转发是一次请求,可以使用request对象来共享数据...原创 2019-10-21 17:49:49 · 679 阅读 · 1 评论 -
Ubuntu14编译OpenJDK9
一、说明本文的所有操作都是在JVM虚拟机学习之(1)使用 Ubuntu 14.04 编译 OpenJDK 9的基础上完成最近在看《深入理解JVM虚拟机》这本书,文中第一章需要配置虚拟机和编译OpenJDK,因为书中的版本年代久远,有些资源很难找到,很难复现书中的内容,达到一模一样的效果。网上有很多用Ubuntu16来编译OpenJDK8的文章供参考,本身我的常用linux系统也是Ubuntu1...原创 2019-10-18 17:55:42 · 418 阅读 · 0 评论 -
Java的IO流
IO流字节流字符流转换流缓冲流数据流读写对象(序列化)NIO在大多数程序中,都需要对输入输出进行处理。例如我们中需要获取用户从键盘上的输入,需要在控制台输出结果等等。除此之外还有从文件中读取数据,向文件中写入数据等等。在 Java 中,我们把这些不同类型的输入输出源抽象地称为流,也就是Stream;在里面输入输出的数据则称为数据流(Data Stream),它们通常具有统一的接...转载 2019-09-28 20:30:48 · 249 阅读 · 0 评论