java

shiro550反序列学习

Shiro550 shiro550和fastjson作为攻防演练的利器,前面学习了fastjson的相关利用和回显,本篇主要来学习一下shiro550的漏洞原理。 1、漏洞原因 在 Shiro ⇐ 1.2.4 中,AES 加密算法的key是硬编码在源码中,当我们勾选remember me 的时候 s ... »

Java面试题资料合集

Java面试题资料合集 2021年最新版--Java+最常见的+200++面试题汇总+答案总结汇总.pdf BIO,NIO,AIO,Netty面试题 35道.pdf Dubbo面试题 47道.pdf ElasticSearch面试题 30道.pdf Git常用命令面试题 60道.pdf Java基础 ... »

chenqiwei

Springboot中整合knife4j接口文档

在项目开发过程中,web项目的前后端分离开发,APP开发,需要由前端后端工程师共同定义接口,编写接口文档,之后大家都根据这个接口文档进行开发。 什么是knife4j 简单说knife4j就swagger的升级版API文档的一个框架,但是用起来比swagger方便多了,UI更加丰富。 界面欣赏 主页 ... »

netty系列之:netty中的核心解码器json

简介 程序和程序之间的数据传输方式有很多,可以通过二进制协议来传输,比较流行的像是thrift协议或者google的protobuf。这些二进制协议可以实现数据的有效传输,并且通过二进制的形式可以节省数据的体积,在某些速度和效率优先的情况下是非常有效的。并且如果不同的编程语言之间的相互调用,也可以通 ... »

Java随想1

1If(条件){输出} Else{ } 2Switch确定范围 定值 Switch(i1){ Case 值: 输出 Break 3Do while循环 定值 Do{ 输出 运算 }while(范围) 4For循环 for(常量;范围;运算){ 输出() } 5while循环 While(条件){内容 ... »

java自带的四种线程池

java预定义的哪四种线程池? newSingleThreadExexcutor:单线程数的线程池(核心线程数=最大线程数=1) newFixedThreadPool:固定线程数的线程池(核心线程数=最大线程数=自定义) newCacheThreadPool:可缓存的线程池(核心线程数=0,最大线程 ... »

【SpringBoot实战】实现WEB的常用功能

前言 通常在 Web 开发中,会涉及静态资源的访问支持、视图解析器的配置、转换器和格式化器的定制、文件上传下载等功能,甚至还需要考虑到与Web服务器关联的 Servlet相关组件的定制。Spring Boot框架支持整合一些常用Web框架,从而实现Web开发,并默认支持Web开发中的一些通用功能。本 ... »

hjk-airl Java

netty系列之:netty中的核心编码器bytes数组

简介 我们知道netty中数据传输的核心是ByteBuf,ByteBuf提供了多种数据读写的方法,包括基本类型和byte数组的读写方法。如果要在netty中传输这些数据,那么需要构建ByteBuf,然后调用ByteBuf中对应的方法写入对应的数据,接着套用netty中标准的模板即可使用。 对于byt ... »

Java 8的18个常用日期处理

Java 8的18个常用日期处理 一、简介 伴随 lambda表达式、streams 以及一系列小优化,Java 8 推出了全新的日期时间API。 Java处理日期、日历和时间的不足之处:将 java.util.Date 设定为可变类型,以及 SimpleDateFormat 的非线程安全使其应用非 ... »

面试突击42:synchronized和ReentrantLock有什么区别?

在 Java 中,常用的锁有两种:synchronized(内置锁)和 ReentrantLock(可重入锁),二者的功效都是相同得,但又有很多不同点,所以我们今天就来聊聊。 区别1:用法不同 synchronized 可用来修饰普通方法、静态方法和代码块,而 ReentrantLock 只能用在代 ... »

《手把手教你》系列基础篇(九十四)-java+ selenium自动化测试-框架设计基础-POM设计模式实现-下篇(详解教程)

1.简介 上一篇宏哥用PageFactory实现了POM,宏哥再介绍一下如果不用PageFactory如何实现POM。 2.项目实战 在这里宏哥以百度首页登录的例子,如果用POM实现,在测试脚本中实际代码就几行。 2.1代码设计 1.先新建一个pageObjects包,然后在pageObjects包 ... »

一文解决浏览器跨域问题

1. 概述 老话说的好:大处着眼,不贪一时之利。太贪心,只会失去更多,知足才能常乐。 言归正传,今天我们来聊聊 如何解决浏览器跨域的问题。 2. 跨域问题 2.1 什么是跨域 跨域,简单说就是访问的页面域名是 www.a.com,而在此页面中 Ajax 请求接口,请求的是 www.b.com 的接口 ... »

Java 线程安全 与 锁

#Java 线程安全 与 锁 ##多线程内存模型 线程私有栈内存 每个线程 私有的内存区域 进程公有堆内存 同一个进程 共有的内存区域 ##为什么会有线程安全问题? 多个线程同时具有对同一资源的操作权限,又发生了同时对该资源进行读取、写入的情况,那么就会出现重复操作的情况 ##如何解决线程安全问题呢 ... »

classicltl

手写事件发布订阅框架

一、前言 ​ 发布订阅模式也叫观察者模式,利用该模式可以进行代码解耦,很多框架都用到该设计模式,比如Spring的事件机制,guava的EventBus(事件总线)等,不清楚观察者模式的话可以查看本人之前写的博客《设计模式之观察者模式》。 ​ 为了更好的了解现有的事件框架实现原理,便手写了一个简单的 ... »

【SpringBoot实战】视图技术-Thymeleaf

前言 在一个Web应用中,通常会采用MVC设计模式实现对应的模型、视图和控制器,其中,视图是用户看到并与之交互的界面。对最初的Web应用来说,视图是由HTML元素组成的静态界面;而后期的Web应用更倾向于使用动态模板技术,从而实现前后端分离和页面的动态数据展示。Spring Boot框架为简化项目的 ... »

hjk-airl Java

如何配置JAVA环境并安装IEAD软件

安装IDEA软件之前需要做哪些准备? 在安装IDEA软件之前,需要先确定电脑中有没有JDK,如果没有需要先安装JDK。 JDK是整个JAVA的核心,包括了Java运行环境,Java工具(javac/java/jdb等)和Java基础的类库。 如何检查有没有安装jdk? win + R键输入cmd进入 ... »

【Java分享客栈】我曾经的两个Java老师一个找不到工作了一个被迫转行了

前言 写这篇文章的初衷主要是最近发生了两件事,让我感慨良多,觉得踏入这个行业的初始,有些事情就应该长远考虑,这样对职业发展才更有利,仅仅停留在技术的追求上固然能壮大自身,可逆水行舟的程序员们终究会面临职业转折点,如何避免自己成为弃子是一个沉重又不得不思考的话题。本篇的两个故事就是我分享给大家的真实情 ... »

【MQ】java 从零开始实现消息队列 mq-02-如何实现生产者调用消费者?

前景回顾 上一节我们学习了如何实现基于 netty 客服端和服务端的启动。 【mq】从零开始实现 mq-01-生产者、消费者启动 【mq】java 从零开始实现消息队列 mq-02-如何实现生产者调用消费者? 那么客户端如何调用服务端呢? 我们本节就来一起实现一下。 消费者实现 启动类的调整 Ser ... »

houbbBlogs