![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA学习
文章平均质量分 71
一名假人
已经不是大学了,要开始工作了,继续记录自己的成长。
展开
-
Log4j2漏洞复现
Log4j2漏洞复现一、前言最近Log4j2的漏洞算是刷屏了。博主也就跟风学习了一下,虽不说开发能力有啥提升,但是也算是学了点知识吧。这次就分享一下Log4j2漏洞的复现场景,以供大家参考。二、参考文章Apache Log4j2远程代码执行漏洞本文的示例也都是按照这里面敲的,文章还有很多大佬评论大家可以多看看三、漏洞触发流程图这里使用LDAP服务进行演示解释:Web服务为受害者对象,LDAP和HTTP服务为攻击者对象。一句话概括:攻击者利用log4j2的JNDI技术发送恶意请求,使原创 2021-12-14 11:36:40 · 8348 阅读 · 0 评论 -
JAVA的JSON序列化和二进制序列化优缺点对比
JAVA的JSON序列化和二进制序列化一、前言 最近在一个项目中因为序列化不一致问题出现了项目的卡壳。问题出现在一个后端组员修改了一个后端共享序列化类,但是测试后没有及时提交这块代码,导致其他开发成员在发序列化对象时,出现了序列化异常。 但是在开发的时候也出现过修改bean,但是没有出现过序列化异常的问题。于是经过对比后发现出现异常的bean使用二进制序列化,无异常出现的bean使用json二进制序列化。 于是决定写一个粗劣的对比。但是推荐看看本文章的参考文章,可以学习到很多的二进制反序列化的原创 2021-05-03 12:19:50 · 2568 阅读 · 0 评论 -
关于volatile提供的可见性无法保证并发编程的思考
关于volatile提供的可见性无法保证并发编程的思考题主最近在准备面试,正好复习到了多线程编程的知识点。其中有关validate于并发上的使用引起了我的思考。一、介绍volatile1. 什么是volatile? 有关volatile的介绍网上有很多介绍,题主总结能力有限就引用一下百度上的描述:volatile是Java提供的一种轻量级的同步机制。Java 语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量,相比于synchronized(synchronized通常原创 2021-04-11 15:25:41 · 312 阅读 · 0 评论 -
jar 无法访问resources的内部文件
jar包运行模式下无法访问resources的内部文件文章目录jar包运行模式下无法访问resources的内部文件一、前言二、问题描述解决三、问题解析缺点一、前言本次项目中,有一需求是读取 Resources的内部文件,但是在这个简单的需求缺在实际的生产环境上出现了问题。项目环境:Springboot二、问题描述描述,需要读取springboot项目中resources文件夹下面的一个文件,index.vue。代码为:try{ file = ResourceUtils.getFi原创 2021-04-04 15:03:24 · 601 阅读 · 0 评论 -
Activiti7 通过BpmnModel部署流程并启动实例
activiti7通过BpmnModel创建流程并启动实例activiti7通过BpmnModel创建流程并启动实例一、前言二、正文三、结尾一、前言博主在学习activit7中,涉及到有关bpmnModel来维护整个工作流的内容。其中最先要实现的功能是创建出BPMN流程图。对此在进行翻阅资料后,大致总结出以下一套模板。注意:1.本篇文章目前并不针对Activiti7提供的所有的BpmnModel.class进行解析。只涉及代码的编写流程。2.本篇文章默认读者已经搭建好了S原创 2021-02-15 23:56:19 · 2966 阅读 · 5 评论 -
Springboot2连接mongodb4注意事项
Springboot2连接mongodb4注意事项一、前言Springboot2连接mongodb4的时候博主遇到了点困难,现在博主讲连接步骤重新发出来,并且把易错的地方标注出来。二、正文第一步导入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mo原创 2021-02-07 14:37:08 · 367 阅读 · 1 评论 -
Mybatis-plus解决selectOne查询多个会报错的问题
123原创 2020-12-27 15:37:35 · 21955 阅读 · 10 评论 -
org.xml.sax.SAXParseException; lineNumber: 1225; columnNumber: 40; 在 CDATA 节中找到无效的 XML 字符 (Uni
123原创 2020-12-20 13:55:33 · 588 阅读 · 0 评论 -
二进制妙用——实现权限控制(JAVA)
文章目录前言一、模拟环境及需求1. 开发环境2. 功能需求二、实现步骤1.创建实体2.编写逻辑3.编写测试环境4.代码结构总结前言本文章是对我之前一篇有关Linux操作系统通过二进制实现用户权限控制原理的java代码实现上扩充。一是为了巩固知识点,另一方面是想让那一篇的理论知识落到实处。项目源码会在文章中放出。注意:实现并不是完全按照Linux的模型进行实现,主要是让大家明白二进制的运算在本例的作用。一、模拟环境及需求1. 开发环境IDEA 2019.1.4JDK1.8mavenpom.原创 2020-12-13 11:40:20 · 693 阅读 · 0 评论 -
el-admin 角色权限控制方式
el-admin 角色-权限在基于使用el-admin这个开源的后台管理框架的时候遇到了一个非常尴尬的问题,就是角色表的设计问题。当然这个问题可能会由于项目需求不同而消失,不是一定出现的。一、问题描述角色表角色id角色名称角色level角色描述1admin1管理员2staff2职工3visitor3游客权限表权限id权限内容1所有应用接口2前台全部应用部分3前台游客应用部分4后台职工应用部分原创 2020-10-24 18:59:46 · 1921 阅读 · 0 评论 -
mvn package出现 com.sun.xml.internal.messaging.saaj.soap 程序包不存在
mvn package出现 com.sun.xml.internal.messaging.saaj.soap 程序包不存在一、前言在本次的项目学习初期中,在打包别人整合的rabbitmq消息队列的项目的时候出现了打包错误,经过各种排查找到了原因,因为是深入代码内部的排查可能不太使用大部分问题,但是希望给大家一个mvn报错时的思路。二、步骤1.打包时确定 com.sun.xml.后面的包,定位问题网上有很多类似的问题,都是com.sum.xml.*出现的问题,但是程序包具体是不一样的,我的就是mes原创 2020-10-04 10:01:29 · 2898 阅读 · 0 评论 -
单线程业务优化策略
单线程业务优化策略 最近在学习海康设备的API接口的对接,在调用其接口的时候发现每次项其设备发送请求的时间基本上超过了1秒以上。而往往一次请求的业务不全是依赖这个接口返回的信息,有的是单独请求其他服务接口,还有其他的需要涉及到IO的存储,这就导致某些接口变得笨重。 针对这种情况,我模拟了一种极简的事务模型去做还原。一、模拟业务代码public class Threaless { public static void main(String[] args) {原创 2020-09-06 16:58:05 · 359 阅读 · 0 评论 -
读书笔记《深入理解java虚拟机》-- Java对象于HotSpot探秘
Java对象于HotSpot探秘导论这篇文章是从内存上大致总结在HotSpot中JAVA对象的部分实现的细节。首先我们先从java对象的创建出发,了解java对象的内存分配的方式和内部布局的细节。之后为了引出jvm的重点之一垃圾回收(本篇文章先不涉及),我们需要再了解java虚拟机内部是怎么找到到Java对象的。这个就是本篇文章的阅读思路。一、JAVA对象的创建于内存的变化JAVA对象内存划分的两种方式1. 指针碰撞假设Java堆中内存是绝对规整的,所有被使用过的内存都被放在一边,空闲原创 2020-08-16 10:07:09 · 208 阅读 · 0 评论 -
读书笔记《深入理解java虚拟机》-- Java内存区域
JAVA内存区域一、图解二、解释1. 方法区2.Java 堆(重点)定义Java堆是被所有线程共享的一块内存区域,在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例,Java世界里“几乎”所有的对象实例都在这里分配内存。个人解读3. 虚拟机栈(重点)定义虚拟机栈描述的是一个java方法执行的线程私有的线程内存模型:每个方法被执行的时候,Java虚拟机都会同步创建一个栈帧(Stack Frame)用于存储局部变量表、操作数栈、动态连接、方法出口等信息。原创 2020-08-09 14:07:03 · 153 阅读 · 0 评论 -
leecode刷题-20200526-easy-125. 验证回文串
声明:作者不是什么大佬,只是想写写算法,提高一下自己的内功。所以代码可能会非常凌乱,(大佬们就当个笑话看就可以了),但我会认真注释。最后如果有路过的大佬,希望可以留下你们的建议和看法,谢谢!125. 验证回文串一、原题链接125.验证回文串二、题目介绍给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。三、测试用例1.示例输入: “A man, a plan, a canal: Panama”输出: .原创 2020-05-26 22:38:29 · 154 阅读 · 0 评论 -
java反射常用API小结
java反射API前言本篇博客不设计反射的原理及其过程,主要是教会大家使用java反射常用的API,能够在日常编码中使用到它。正文通过反射创建一个对象通过反射调用方法通过反射访问对象的属性...原创 2020-03-06 21:09:02 · 253 阅读 · 0 评论 -
JAVA注解开发介绍
JAVA注解介绍前言在我们的日常学习和编写项目的时候可能会遇到一些写在类、方法上或者是变量上的注解,比如:@Componetpublic class Hello{ @Override public String toString(){ return ""; }}这些注解有的可以帮助我们解决很多的问题,比如:@Override帮我们解决方法是否是重写的,Spring中的@Co...原创 2020-03-05 18:22:01 · 318 阅读 · 0 评论 -
IDEA导入jar架包
使用IDEA 导入jar包第一步第二步第三步第四步第五步完成此时可以在 编写个 class对自己刚刚导入的jar进行测试原创 2019-08-12 11:02:47 · 1033 阅读 · 0 评论 -
Eclipse 导入jar方式
使用Eclipse 导入jar包第一步第二步第三步完成此时可以在 编写个 class对自己刚刚导入的jar进行测试IDEA的jar导入方式原创 2019-08-12 11:19:15 · 302 阅读 · 0 评论 -
IDEA让包分层显示的方式
IDEA中java包分层显示的方式初次使用IDEA的朋友,有部分的包显示是如此显示但是这么显示,有时会因为包的同级显示,使得包使得包的显示过多,此时就可以改变显示的方式:小齿轮 >> Flatten Packages && Middle Packages 即可第一步第二步...原创 2019-08-26 14:48:21 · 24806 阅读 · 3 评论 -
IDEA 自动生成实体类
IDEA自动生成实体类写数据库有很多人都会遇到,表的实体类的对应方式,有时候自己写往往会因为一些小错误导致domain的实体写错。但是IDEA是有一个快捷创建实体类的方式:第一步第二步第四步第五步此时实体类就已经生成完毕!!总结但是这种生成java实体类的方式,其类型对照有是不是我们想要的。比如IDEA默认是把所有的int类型的数据转成java的long型。下面的文章会...原创 2019-08-26 15:31:47 · 2942 阅读 · 0 评论 -
IDEA 修改自动生成实体类的类型对应
IDEA 修改自动生成实体类的类型对应IDEA本身自带的有实体类生成方式,但是这种生成方式存在一种问题就是,javaBean类的每一个属性的类型不是我们需要的。如:tinyint>>long int>>long 等等此时我们就可以修改我们需要的对应的实体类的类型转换第一步Scratches and Consoles >> Extensions ...原创 2019-08-26 15:50:58 · 3462 阅读 · 1 评论 -
IDEA连接mysql8
IDEA连接Mysql8IDEA作为一种强大的集成开发环境,是可以直接操作数据库的,本文讲的就是IDEA连接Mysql8的方式第一步Database >> “+” >> Data Source >> Mysql第二步Mysql8的连接需要在URL的数据库名后加上 “?&useSSL=false&serverTimezone=UT...原创 2019-08-26 16:11:01 · 3455 阅读 · 4 评论 -
IDEA实现Tomcat的热部署
IDEA实现Tomcat的热部署使用IDEA自己搭建小的web项目时往往会大频繁的修改文件,但是如果没有都重启的服务器的话,未免过于浪费时间。此时就可以使用到IDEA提供的热部署功能目前通过本方法可以实现的热部署文件有 .js .jsp .css 等文件。至于java的文件的热部署需要额外的插件,此处不再细说第一步第二步此时热部署设置完成如何使用...原创 2019-08-26 16:53:38 · 350 阅读 · 0 评论 -
JAVA基本容器总结(学习笔记)
JAVA基本容器总结1. 容器继承在java的容器里面存在两大分支分别是Collection和Map,但无论是哪一种它们共同的基本作用是储存数据Collection图Map图此图只涉及基本的容器类型,有部分的容器并没有列出Collection家族迭代器Iterable虽然迭代器本身作为Collection的顶级接口,但是Iterable并没有任何有关容器的规范约定。但是这...原创 2019-08-06 20:07:41 · 206 阅读 · 0 评论