自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 资源 (6)
  • 收藏
  • 关注

原创 JAVA 序列化和反序列化

JAVA 序列化和反序列化1. 实现方式及侧重点​ JAVA提供了两种接口实现方式,先看下相关接口结构图其中,1)实现Serializable接口的java类,默认会为内部所有字段(除去transient修饰属性和静态属性)实现序列化和反序列化处理逻辑,适用于序列化属性较多的情形,对于少量的需排除属性,可以使用transient修饰。2)实现Externalizable接口的java类,需要显式实现writeExternal和readExternal方法,且序列化和反序列化的属性顺序需要一致,适

2021-06-18 13:28:04 177 1

原创 OpenJDK8 TransferQueue内容

TransferQueue接口与常规的Queue实现不太一样,因此我把它单独拎出来做介绍。1. 类结构图图中的类/接口主要来自两个包。java.util包Queue接口AbstractQueue抽象类java.util.concurrent包(juc)BlockingQueue 阻塞队列接口TransferQueue 接口LinkedTransferQueueSynchronousQueue其中,Queue、AbstractQueue、BlockingQueue在前文都有所提

2021-04-28 23:40:50 221 4

原创 OpenJDK8 Queue和Deque

今天学习了一下队列相关内容,奈何内容比较多,一晚没有整理完,所以暂时先放一部分1. 整体类图(不全)从图上可以看到,内容主要可以分成2个部分,分别为Queue队列、Deque双端队列,其中Deque还提供了Stack栈的功能。2. Queue相关2.1 Queue接口提供了队列的通用操作方法声明。可以看做一个排队队伍,新来的人要排在队尾(新增/offer),按次序叫号,最先叫的都是队首(获取/poll)。/** * 队列接口 * 提供了两套操作队列方法: * 1)抛异常, add/rem

2021-04-21 00:58:58 204

原创 OpenJDK8 List接口相关

今天,主要看了下List接口及其实现类,整体的类结构图如下。主要的几个实现类为ArrayList, LinkedList, Vector,下面分别进行介绍。1. ArrayList1.1 数据结构数组1.2 扩容机制先扩容再插值当添加元素时,执行ensureCapacity(int minCapacity)方法执行扩容逻辑,具体源码如下: /** * 在列表末尾追加元素 */ public boolean add(E e) { // 执行扩容

2021-04-14 00:51:48 123

原创 OpenJDK8 Set相关内容

老规矩,先上整体的类结构图主要的三个类:HashSet, LinkedHashSet, TreeSet。其底层分别由三个对应的map实现:HashMap, LinkedHashMap, TreeMap。所以Set就是值为PRESENT常量的Map。其实,前文的EnumSet本应放在该文,它也是继承的AbstractSet抽象类,但为了勉强凑够Enum部分内容,想想还是不挪了把。1. HashSet底层由HashMap实现,其主要方法已经在AbstractSet、AbstractCollection

2021-04-12 23:24:26 92

原创 OpenJDK8 Map相关内容

还记得之前有过源码学习记录,这次重新回顾,还是有一些新的收获。今天的内容暂不包含JUC包下的Map类型,先上整体的类结构图。所有的类型实现Map接口,最最常见的是Hashtable和HashMap。其中,Hashtable线程安全(从1.0版本就有),而HashMap非线程安全(1.2版本),下文主要以两者的区分进行源码分析。1. Hashtable1.1 数据结构数组+链表1.2 初始化默认容量大小11默认负载因子0.751.3 扩容时机当put新元素时,先扩容再插入 priva

2021-04-08 22:32:59 94

原创 OpenJDK8 Enum相关

Enum枚举相关类Enum枚举类/** * 枚举常量名 */private final String name;/** * 返回枚举常量的名字 */public final String name() /** * 枚举常量的索引,从0开始 */private final int ordinal;/** * 返回枚举常量的索引位置,从0开始 */public final int ordinal() /** * 枚举类型专有构造器,由编译器触发,无法显示触发 */

2021-04-08 00:14:08 106 1

原创 OpenJDK8 StringBuilder和StringBuffer

类层次关系StringBuilder和StringBuffer都继承了AbstractStringBuilder抽象类,区别在于StringBuffer对相关操作都做了synchronized加锁处理,以确保多线程环境下的线程安全;而StringBuilder更适合于单线程环境,执行速度更快。StringBuffer/** * 字符串缓存,缓存最后一次调用toString()的值,对象修改时会自动清空缓存 */private transient char[] toStringCache;/

2021-04-07 00:25:44 137

原创 OpenJDK8 String类

String 字符串类型String是不可变对象,创建后值(引用地址)不可变;StringBuffer、StringBuilder 支持可变字符串提供了系列方法:单字符提取、字符串比较、字符串查询、字串提取、大小写字符串拷贝等public final class Stringimplements java.io.Serializable, Comparable, CharSequence {// 实际的字符存储,每个是一个char类型(Java中单个char为2字符)private final

2021-04-03 00:20:23 144

原创 OpenJDK8 Object类

JAVA Object类Object类是JAVA中所有对象的基类。/** * 返回运行时类 */public final native Class<?> getClass();/** * 返回对象hash值 * <1> 不改变对象属性的前提下。 * 程序的一次执行,同一对象先后获取的hashcode必须一致; * 而另一次执行时,可以与当前执行时对象的hashcode值不一致 * <2> equals方法返回true,则两个对象

2021-04-01 23:23:32 131

原创 【踩坑记录】springboot 报错 MissingPathVariableException

1. 背景有个接口,前端传的是id,后台由于用了Springdata,会自动根据id去TeacherDO实体对应的Repository(实际调的是SimpleJpaRepository)中调用findById方法,并将查询到的数据库结果转成TeacherDO,并作为接口的传入参数。中间过程都是由SpringData 代办。TeacherDO 实体部分字段内容正常情况效果图2. 问题描述之前使用该功能都没有问题,直到昨晚使用该功能时,传入了一个DB中不存在的id,这时候出了问题。2.1 问题

2021-01-13 11:28:09 8721

原创 【环境搭建】docker 安装ElasticSearch & Kibana

自己试着搭了一个实验环境,但服务器有限,只用了一台云服务器(外网地址A),单机部署ElasticSearch和Kibana。1. ES安装(单节点) // 拉取镜像 docker pull elasticsearch:7.4.1 // 运行生成容器 docker run --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -d elasticsearch:7.4.1其中,9200为http服务端口,9300为t

2020-12-01 17:56:10 129

原创 docker 容器离线迁移

这两天项目开发环境需要搬迁容器,需要将服务器A的容器迁至服务器B。主要有以下步骤:(服务器A)镜像持久化到本地docker save -o 【目的文件】【镜像】 // 以mongo镜像为例 docker save -o mongo.tar mongo:latest(服务器B)从本地文件加载docker镜像docker load -i 【目的文件】 // 以mongodb镜像为例 docker load -i mongo.tar启动docker镜像生成容器 docker run

2020-11-27 13:36:27 560

原创 【踩坑记录】Spring Data Mongodb插数据不生成索引

SpringData + MongoDB插数据不生成索引1. 问题描述通过MongoTemplate往一个新的集合(Collection)写入一条文档(document, 内部含有唯一索引和ttl索引)。发现正常写入了数据,但是所有的索引都没有生成。1.1 使用的依赖包 <dependency> <groupId>org.springframework.boot</groupId> <artifactId&

2020-11-13 12:49:45 2773 2

原创 nginx 处理后台http的重定向问题

项目背景项目接入了统一认证登录,同时注册了回调地址https://localhost/test(这里用了假的路径,只用作描述问题)。中间省去了nginx反向代理,整个登录流程:(1)点击登录,跳转到统一认证登录页面https(2)输入手机号及验证码,完成登录(3)统一认证平台回调地址(https://localhost/test?token=xx),服务后台根据token完成用户登录,之后...

2020-01-10 16:32:21 2232

原创 【使用技巧】实现便携、有选择地记录用户操作日志

背景平台后台接口已经完成,需求方提出了新的需求(需要针对某些具体业务,记录用户操作日志入库)。方案选择1. 通过为 每个/个别类似接口 编写一个AOP处理。 优点: 每个业务接口处理可以针对性处理,扩展灵活; 缺点: 需要编写很多AOP类,工作量略大2. 团队里技术人员的推荐。用aop+自定义注解的方式来灵活,通过判断自定义注解中是否有设置属性来区分是否要执行处理逻辑。...

2019-10-30 00:00:34 289

原创 【踩坑记录】docker服务器部署导致无法从es拉取数据

问题描述开发过程中,为了方便前端跟测试人员的工作进行,也为了保证各自数据的一致,最好使用同一套后台代码,所以采取了后台代码部署到服务器方案,避免因本地开发环境的频繁调试关闭阻塞他们的工作进展。同时,我想作为一个后台开发,应该都经历过手工打jar包,然后上传到服务器,再敲命令运行一系列繁琐且重复性很高的工作。可选的类似方案有一些:像是jenkins自动部署,docker推送,…。本次问题就出现在...

2019-09-10 09:50:07 591

原创 【问题记录】tomcat设置开机自启动事务不生效

一开始直接指定了操作运行文件为tomcat的startup.bat,看计划运行记录中也显示机器启动时有过运行,但进程中就是没找到。解决:自己手写了一个bat脚本文件,里面写上了执行命令start /d “你的Tomcat的bin目录” startup.bat再次重启tomcat正常启动...

2019-08-10 10:32:39 322

原创 【问题记录】RestTemplate 请求中添加headers项Host不生效

由于目前的项目中有如下场景:RestTemplate 发送Get请求到一ip,并要求请求头中带上跳转的Host,几经测试,未能走通,一直报的是403错误;而直接通过Postman 发送是没问题的。 RestTemplate template = new RestTemplate(); HttpHeaders headers = new HttpHeaders(); ...

2019-07-29 11:32:28 3511 2

原创 【踩坑记录】Idea打jar包,运行提示"A JNI error has occured..."

打包流程可参考【IntelliJ IDEA生成jar包】问题及解决直接双击运行jar文件,一直出现图示问题起初一直觉得是自己打包过程操作有误,实在不行才想到用cmd命令运行查看报错信息,类似如下:可以看到是版本问题,java运行时环境版本号与编译后的字节码class文件的版本号不一致,于是查看idea中的jdk版本,默认用了自带的jdk11.0.2,而我本地安装的是JDK 8…new ...

2019-07-05 12:09:23 2858 2

原创 【踩坑记录】SpringBoot 用Thymeleaf模版返回页面出现404错误

背景pom.xml中添加了对应的依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> <...

2019-06-14 16:00:35 8222 7

原创 SpringBoot @RestControllerAdvice统一异常处理记录

一、应用场景@RestControllerAdvice 和 @ControllerAdvice可实现对异常的统一拦截处理,有利于自定义异常返回格式。其中使用前者不再需要@ResponseBody指定,其返回为json格式。二、实现部分pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://m...

2019-06-13 19:53:43 4303 7

原创 SpringBoot 整合Spring Batch 问题解决

问题描述项目通过maven构建依赖<!-- 批处理Spring Batch依赖包 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-batch</artifactId></d...

2019-06-13 19:24:08 768

原创 SpringMVC @RequestBody 参数映射问题记录

问题描述前端通过fetch发送post请求,body中传递的是json字符串类型;后端通过@RequestBody 将json字符串自动注入到对象;出现了415报错,而不使用@RequestBody 直接用String 参数可以接收到正确的json字符串解决:本人用的是Spring5.1.1,查阅网上资料,定位到自己的问题:jackson jar包的缺失同时要确认xml文件中开启...

2019-06-04 10:24:03 1262

原创 [Leetcode] 114.二叉树展开为链表

给定一个二叉树,原地将它展开为链表。例如,给定二叉树 1 / \ 2 5 / \ \ 3 4 6将其展开为: 1 \ 2 \ 3 \ 4 \ ...

2018-12-14 20:19:02 228

原创 虚拟机新加硬盘及分区挂载(VMware + CentOS)

今天在部署环境的时候,碰到必须要挂载一个新硬盘,期间琢磨了蛮久,便在次小记,用作自己日后的回顾,同时也为有需要的学友们指条道。用root权限看一下当前系统中的挂载情况# df -h查看现有系统的磁盘分区#fdisk -l![在这里插入图片描述](https://img-blog.csdnimg.cn/20181120153805876.png?x-oss-process=image...

2018-11-20 16:59:50 731 1

原创 OpenJDK8 源码学习(二)Map

Map接口包位置 (java.util.Map)public interface Map&amp;amp;amp;amp;amp;amp;amp;amp;lt;K,V&amp;amp;amp;amp;amp;amp;amp;amp;gt; { int size(); // 键值对对数 boolean isEmpty(); // 是否为空 boolean containsKey(Object key); // 是否

2018-11-07 22:09:20 206

原创 OpenJDK8 源码学习(一)配置

OpenJDK8 源码学习(一)配置一直没有探索过jdk源码部分,这次借此机会开此博客定期记录我的学习过程,同时也算是对学习所得定期做个总结,由于本人知识有限,想必错误、遗漏肯定会有,还请各位博友帮忙提出,小弟必定及时改正/补充。衷心希望此文也能帮助那些同样在做这方面学习的博友。配置openjdk源码包下载(网上可以下到,这里提供一个我上传的资源openjdk-8u40)将包中open...

2018-11-05 10:34:50 952

kafkatools_x64_windows.rar

官网地址https://www.kafkatool.com/download.html,但是下载慢,所以这里放了一个下好的安装包

2021-06-02

mysql、posrgresql转成clickhouse db工具sync-master

db工具,将mysql/postgresql数据库转成clickhouse。 可跳转至github下载(https://github.com/long2ice/synch)

2021-02-07

javax.batch-api-1.0.jar

SpringBoot 整合SpringBatch所使用的jar包。

2019-06-13

jackson.rar

资源包含三个jar包,分别为:jackson-annotations-2.9.9.jar,jackson-core-2.9.9.jar,jackson-databind-2.9.9.jar,亲测可兼容Spring5.1

2019-06-04

openjdk-8u40

源码压缩包,解压缩后可参考/jdk/src/share/classes/java目录

2018-11-05

DirectX 三维场景+聚光灯+阴影贴图

由于本人在学习过程中,苦于没有找到一个比较完整的dx相关例子,虽然其中也借鉴了网上各方大佬们的教程,但是学起来很慢,现在总算是完成了一个简单的实现版本,特意分享出来给大家学习。 内有部分代码注释,至于代码布局…..希望大家别介意 Vs 打开记得更换项目的DirectX SDK路径

2017-11-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除