自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

pandamig的博客

panda的大厂梦

  • 博客(35)
  • 资源 (2)
  • 收藏
  • 关注

原创 Spring 安全漏洞 CVE-2020-5421复现

Spring 安全漏洞 cve-2020-5421复现漏洞概述CVE-2020-5421 可通过jsessionid路径参数,绕过防御RFD攻击的保护。先前针对RFD的防护是为应对 CVE-2015-5211 添加的。什么是RDF反射型文件下载漏洞(RFD)是一种攻击技术,通过从受信任的域虚拟下载文件,攻击者可以获得对受害者计算机的完全访问权限。影响版本Spring Framework 5.2.0 - 5.2.8Spring Framework 5.1.0 - 5.1.17Spring

2021-01-10 19:43:33 8091 6

原创 asList使用注意事项

asList使用注意事项

2022-08-28 10:33:12 356

原创 Gradle

gradle常用命令

2022-08-27 13:01:18 831

原创 PMP项目管理

项目管理一、项目管理介绍1.项目定义:项目是为创造独特的产品、服务或成果而进行的临时性工作。项目具备以下特点:在一个特定的计划内完成具体的目标有确定的开始时间和结束时间有经费限制消耗人力和非人力资源(如设备、资金)项目的例子:举行一次研讨会、开发一个软件、盖一栋大厦、组织一次活动都可以看作是一个项目。2.项目管理定义:将各种知识、技能、工具与技术应用于项目活动,以满足项目的要求。3.PMIPMI(Project Management Institute) 即美国项目管理

2021-11-07 22:43:21 884

原创 Swagger学习

文章目录一、前言二、Swagger常用注解2.1 @Api2.2 @ApiOperation2.3 @ApiImplicitParams、@ApiImplicitParam2.4 @ApiResponses、@ApiResponse2.5 @ApiModel2.6 @ApiModelProperty三、SpringBoot整合Swagger3.1 引入依赖3.2 配置类3.3 使用注解标注接口信息3.4 查看接口文档一、前言Swagger 是一个用于生成、描述和调用 RESTful 接口的 Web

2021-07-28 23:05:04 190

原创 synchronized底层实现原理及锁升级过程

文章目录一 前言二 底层实现原理三 锁升级过程3.1 对象内存结构3.2 锁升级过程四 总结一 前言synchronized是JDK自带的一个关键字,用于在多线程的情况下,保证线程安全;在JDK1.5之前是一个重量级锁,1.6之后进行了优化,性能有很大提升。synchronized可以用来同步方法、同步代码块、同步静态方法,具体用法可参见《Java多线程(三)——synchronized》,本文主要研究synchronized底层实现原理及锁升级过程。二 底层实现原理public class Sy

2021-07-13 16:54:16 1093 9

原创 文件编码批量转换

package com.panda.mig;import org.apache.commons.io.FileUtils;import java.io.File;import java.io.IOException;public class FileEncodeConvertor { public static void main(String[] args) { File file = new File("/Users/pandamig/IdeaProjects/p

2021-07-02 14:17:11 203

原创 mac通过brew安装配置MySql

mac 安装MySql1.安装brewbrew 是MacOS上的包管理工具,可以简化 macOS 和 Linux 操作系统上软件的安装。安装命令:/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"如果安装失败,使用国内镜像:/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/

2021-06-19 22:26:54 773 5

原创 Redis6安装入门教程

文章目录1.概述1.1 NoSQL简介1.2 非关系型数据库1.3 Redis简介2.Redis安装(mac)2.1 安装brew2.2 安装Redis2.3 启动Redis2.4 访问客户端3.五大常用数据类型3.1 Redis键操作(key)3.2 String3.2.1 Stirng操纵常用命令3.2.2 String数据结构3.3 List3.3.1 List常用命令3.3.2 List数据结构3.4 Set3.4.1 常用命令3.4.2 Set数据结构3.5 Hash3.5.1 常用命令3.5.2

2021-06-13 23:25:45 1150 16

原创 RabbitMQ 安装入门实战教程

RabbitMQ 安装实战教程1.概述1.1 什么是mqMQ(Message Quene) : 翻译为 消息队列,通过典型的 生产者和消费者模型,生产者不断向消息队列中生产消息,消费者不断的从队列中获取消息。因为消息的生产和消费都是异步的,而且只关心消息的发送和接收,没有业务逻辑的侵入,轻松的实现系统间解耦。别名为 消息中间件 通过利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。1.2 mq类型mq产品简介ActiveMQActi

2021-06-13 13:13:35 1282 2

原创 (2021)最新面试题及答案整理(持续更新中)

(2021)最新面试题及答案整理(持续更新中)文章目录(2021)最新面试题及答案整理(持续更新中)1. java基础1.创建对象有哪几种方式?2.请描述下什么是Java的类加载机制3.list,set,map的区别是什么?4.说下HashMap的底层实现原理5.多线程环境下如何使用HashMap集合6.ConcurrentHashMap的底层实现原理5.HashMap和HashTable他们之间有什么区别呢?6.简述Comparable和Comparator两个接口的区别7.HashMap,Linked

2021-05-23 15:16:42 1020

原创 tomcat 7报 “[=] is not a hexadecimal digit

tomcat6升级为tomcat 7后报错:“[=] is not a hexadecimal digit”org.apache.jasper.JasperException: java.lang.IllegalArgumentException: [=] is not a hexadecimal digit org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:549) org.ap

2021-05-10 18:10:40 304

原创 Spring不同版本Aop执行顺序差异

Spring不同版本Aop差异前言Spring4和Spring5版本之间的AOP差异是比较大的,Spring4的执行顺序是:正常情况: @Around前环绕通知–>@Before–>@Around后环绕通知–>@After–>@AfterReturning异常情况:@Around前环绕通知–>@Before–>@After–>@AfterThrowingSpring5的执行顺序是:正常情况:@Around前环绕通知–>@Before–&g

2021-05-09 21:35:03 589

原创 Java多线程——LockSupport

Java多线程——LockSupport概述java提供了三种线程的等待通知方式:wait/notify机制await/single机制park/unpart机制1.LockSupport核心方法LockSupport类的核心方法其实就两个:park()和unpark(),其中park()方法用来阻塞当前调用线程,unpark()方法用于唤醒指定线程。这其实和Object类的wait()和signal()方法有些类似,但是LockSupport的这两种方法从语意上讲比Object类的方

2021-05-05 17:29:15 140

原创 jvm常用参数

jvm常用参数参数 含义 默认值 备注 -Xms 初始堆大小 物理内存的1/64(<1GB) 等价于-XX:InitialHeapSize -Xmx 最大堆大小 物理内存的1/4(<1GB) -XX:MaxHeapSize -Xss 置单个线程栈的大小 一般默认为512~1024K 等价于-XX:ThreadStackSize,0代表默认出厂值 -Xmn 年轻代大小 默认为堆内存的1/3

2021-04-22 22:32:15 90

原创 java多线程(六)—— 线程池

java多线程(六)—— 线程池文章目录java多线程(六)—— 线程池1 概述2.三种常用线程池3.线程池7大参数4.线程池核心工作原理5.拒绝策略6.如何合理配置线程池参数1 概述线程池的主要特点为:线程复用,控制最大并发数,管理线程。线程池的好处:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗;提高响应速度。当任务到达时,任务可以不需要等待线程创建就能立即执行。方便管理线程。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统过得稳定性,使用线程池可以

2021-04-17 21:34:07 285 1

原创 Java多线程(五)--- volatile

文章目录Java多线程(五)--- volatilevolatile保证内存变量的可见性volatile不保证原子性如何保证原子性?volatile禁止指令重排Java多线程(五)— volatilevolatile的作用主要有两点:1.保证内存变量的可见性;2.禁止指令重排关键字volatile作为线程同步的轻量级实现,能保证数据的可见性,但不能保证原子性,使用场合是在多个线程中可以感知实例变量被更改了,并且可以获得最新的值使用,也就是用多线程读取共享变量时可以获得最新值使用。volatile保证

2021-04-17 11:30:26 193

原创 XStream CVE最新漏洞

XStream CVE漏洞啦啦啦,我只是官网搬运工:https://x-stream.github.io/index.html文章目录XStream CVE漏洞CVE-2021-21341CVE-2021-21342CVE-2021-21343CVE-2021-21344CVE-2021-21345CVE-2021-21346CVE-2021-21347CVE-2021-21348CVE-2021-21349CVE-2021-21350CVE-2021-21351CVE-2021-21341漏洞

2021-04-12 18:37:50 1418 1

原创 Fastjson首字母大小写问题

Fastjson首字母大小写问题最近由于项目里用到了多个json类库,fastjson,org.json,jackson都有用到,最终把json类库统一成了API最为简单的Fastjson。Fastjson替换org.json之后导致部分功能不可用,最终确定为fastjson的默认首字母小写机制造成的。maven依赖 <dependency> <groupId>com.alibaba</groupId> &l

2021-04-06 21:55:20 5846

原创 设计模式二:单例

设计模式二:单例1.定义单例(Singleton)模式的定义:指一个类只有一个实例,且该类能自行创建这个实例的一种模式。2.单例模式的优点和缺点单例模式的优点:单例模式可以保证内存里只有一个实例,减少了内存的开销。可以避免对资源的多重占用。单例模式设置全局访问点,可以优化和共享资源的访问。单例模式的缺点:单例模式一般没有接口,扩展困难。如果要扩展,则除了修改原来的代码,没有第二种途径,违背开闭原则。在并发测试中,单例模式不利于代码调试。在调试过程中,如果单例中的代码没有执行完

2021-04-06 20:48:16 76

原创 设计模式一

设计模式一:设计模式七大原则尚硅谷b站视频学习笔记:https://www.bilibili.com/video/BV1G4411c7N4?p=23&spm_id_from=pageDriver一 设计模式的目的1)代码重用性 (即:相同功能的代码,不用多次编写)2)可读性 (即:编程规范性, 便于其他程序员的阅读和理解)3)可扩展性 (即:当需要增加新的功能时,非常的方便,称为可维护)4)可靠性 (即:当我们增加新的功能后,对原来的功能没有影响)使程序呈现高内聚,低耦合的特性

2021-04-04 23:04:51 81

原创 停车场系统设计

笔试题-停车场系统设计题目设计一个大楼的停车场系统,在大楼的入口处有一个自动售票以及显示等待时间的仪表。该仪表能够显示下一个空车位的最少等待时间。例如,一个停车场有三个停车位分别为A,B,C。初始状态为空车位(Available)。假设场景9:00 AM一号汽车驶入,输入预计离开时间 11:00 AM. 系统查询车位,发现三个车位有空位,随机分发A号车位给一号汽车。一号汽车停入A号车位。9:30 AM二号汽车驶入,输入预计离开时间12:00PM.系统查询车位,发现有两个车位有空位,随机分发B

2021-04-01 20:57:53 962

原创 Java8函数式编程

Java8函数式编程1.引言Java 8的最大变化是引入了Lambda表达式,——一种紧凑的,传递行为的方式。它使开发者在写回调函数和事件处理程序时,不必纠缠于匿名内部类的冗繁和可读性,函数式编程让事件处理系统变得更加简。Lambda表达式是一个匿名方法,将行为像数据一样传递。Lambda表达式需要"函数式接口"的支持,函数式接口:接口中只有一个抽象方法的接口称为函数式接口,可以使用注解@FunctionalInterace修饰。2.Lambda表达式2.1 Lambda表达式基本形式//

2021-03-16 20:45:35 197

原创 Java多线程(四)——线程间通信

Java多线程(四)——线程间通信等待通知机制wait和notify:wait使线程停止运行,notify使停止的线程继续运行。在调用wait之前,线程必须获得该对象的对象级别锁,即只能在同步方法或同步代码块中调用wait()方法,如果调用wait()时没有持有适当的锁,则抛出IllegalMonitorStateException;方法notify()也要在同步方法或同步代码块中调用。public class MyThread1 extends Thread{ private Obj

2021-03-08 22:00:01 124

原创 Java IO学习笔记(一) —— IO基础

Java IO学习笔记(一) —— IO基础Java IO 流学习笔记1 什么是流内存与存储设备之间传输数据的通道。2 流的分类2.1 按方向输入流:将存储设备中的内容读取到内存中;输出流:将内存中的内容写入到存储设备中。2.2 按单位字节流:以字节为单位,可以读取所有数据;字符流:以字符为单位,只能读取文本数据。字节(Byte)是计量单位,表示数据量多少,是计算机信息技术用于计量存储容量的一种计量单位,通常情况下一字节等于八位。字符(Character)计算机中使用的字母

2021-03-07 20:09:01 96 1

原创 JAVA基础-集合

JAVA基础-集合1.概述JAVA容器分为两大类:Collection接口的子接口包括:List接口和Set接口;List接口实现类主要有ArrayList、LienkedList、Vector等;Set接口的主要实现类有HashSet、TreeSet、LinkedHashSet等;Map接口的实现类主要有HashMap、TreeMap、Hashtable、ConcurrentHashMap等;CollectionList|------- ArrayList|------- LinkedL

2021-02-09 15:50:18 159 1

原创 Java多线程(三)——synchronized

Java多线程(三)本章主要讨论synchronized。1.概述“非线程安全”问题会在多个线程对同一个对象中的实例变量进行并发访问时发生,产生的后果就是“脏读”,也就是取到的数据其实是被更改过的。而“线程安全”就是以获得的实例变量的值是经过同步处理的,不会出现脏读的现象。synchronzied用来保证线程安全。2.synchronized的用法synchronized的用法共有如下四种:(1)synchronized同步方法(2)synchronized(this)同步代码块(3)s

2021-01-31 23:46:29 211

原创 Java多线程(二)—— 停止线程

Java多线程(二)上一篇“Java多线程(一)”主要讨论的是线程的创建,本章主要讨论停止线程。1.概述停止一个线程意味着在线程处理完任务之前停掉正在做的操作,也就是放弃当前的操作。虽然这看起来很简单,但是必须做好防范措施,以便达到预期的效果。在java中有以下3中方法可以终止正在运行的线程:(1)使用退出标志,使线程正常退出,也就是当run方法完成后线程终止。(2)使用stop方法强行终止线程,但是不推荐使用这个方法,因为此方法已经过时。(3)使用interrupt方法中断线程。2.使

2021-01-24 16:03:06 96

原创 Java多线程(一)—— 线程的创建

Java多线程(一)1.进程和线程进程是操作系统结构的基础,是一次程序的执行;是一个程序及其数据在处理机上顺序执行所发生的活动;是程序在一个数据集合上运行的过程,它是操作系统进行资源分配和调度的一个独立单位。线程是在进程中独立运行的子系统2.线程的创建方式2.1 继承Thread类/** * 线程的创建方式一:继承Thread类 */public class MyThread extends Thread { @Override public void run()

2021-01-24 10:16:11 152

原创 JAVA垃圾回收机制及垃圾回收器

1. 什么是垃圾回收机制垃圾回收(Garbage Collection,GC)就是将JVM内存中长期未使用的或者已经死亡的对象清除,释放占用的内存空间,防止内存泄露。2. 如何判断对象可回收即如何判断一个对象是否是垃圾对象,有两种方式:引用计数法和可达性分析算法。2.1 引用计数法引用计数算法(Reachability Counting)是通过在对象头分配一块内存区域存放对象被引用的次数;如果该对象被其他对象引用,则次数加1,如果删除该对象的引用,则次数减1,当该对象的引用次数为.

2021-01-19 21:16:17 504

原创 JVM知识整理

2021-01-17 15:17:17 72

原创 Fastjson与Jackson序列化反序列化差异对比

Fastjson与Jackson序列化反序列化差异对比对基本数据类型boolean的处理当boolean类型字段以is开头,Fastjson与Jackson序列化结果一样,is被去掉。当使用的Jackson和Fastjson的字段转换注解(@JsonProperty(“isXXX”),@JSONFied(name=“isXXX”))时,Fastjson序列化后字段名为isXXX,Jackson序列化后生成两个字段isXXX和XXX。如果将字段isXXX映射为XXX(即使用注解@JsonPropert

2020-07-29 17:22:18 1821

原创 DAY8-照猫画虎一万行

上传数据文件,解析入库,分页展示。1.创建表ofs_employee:DROP TABLE IF EXISTS `ofs_employee`;CREATE TABLE `ofs_employee` ( `e_id` int(20) NOT NULL AUTO_INCREMENT, `e_name` varchar(50) NOT NULL, `e_age` int(20) NOT...

2020-03-27 18:22:39 320

原创 maven 打包出现com.sun.xml.internel....不存在

mven 打包出现com.sun.xml.internel…不存在当maven项目里面有用到JDK内部的一些类或者接口的时候,用maven编译一般会出现如下错误:软件包 com.sun.xml.internel.messaging.saaj.packaging.mime.util 不存在。网上找了很多,都是在pom文件中配置rt.jar.<plugin> <group...

2020-03-03 19:02:59 3976 6

原创 为什么SpringBoot零XML配置?

为什么SpringBoot零配置?首先我们来分析下传统的基于Spring MVC 的web项目搭建步骤:配置web.xml文件第一步就是配置加载spring容器;然后呢配置spring mvc前端控制器。<!-- 加载spring容器 --><context-param> <param-name>contextConfigLocation&l...

2020-02-07 15:49:31 2110

基于MFC的Sockets程序的设计和实现 客户端代码

基于windows的MFC windows的可进行socket通信的程序,客户端代码

2017-11-11

宿舍管理系统需求规格说明书

学生宿舍管理系统需求规格说明书,包含课题背景,子系统功能需求以及功能需求数据流图,用户界面设计等

2017-11-11

空空如也

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

TA关注的人

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