Java BIO,NIO,AIO
一丶IO模型&Java IO
Unix为程序员提供了以下5种基本的io模型:
blocking io: 阻塞io
nonblocking io: 非阻塞io
I/O multiplexing: io多路复用
signal driven I/O:信号驱动io
asynchronous I...[2023/4/6]
java -- Stringbuild、Date和Calendar类
Stringbuild类
由于String类的对象内容不可改变,每次拼接都会构建一个新的String对象,既耗时,又浪费内存空间
这时需要通过java提供的StringBuild类解决这个问题
StringBuilder又称为可变字符序列,它是一个类似于 String 的字符串缓冲区,可以看...[2023/4/6]
SpringBoot进阶教程(七十五)数据脱敏
无论对于什么业务来说,用户数据信息的安全性无疑都是非常重要的。尤其是在数字经济大火背景下,数据的安全性就显得更加重要。数据脱敏可以分为两个部分,一个是DB层面,防止DB数据泄露,暴露用户信息;一个是接口层面,有些UI展示需要数据脱敏,防止用户信息被人刷走了。
v需求背景
DB层面的脱敏...[2023/4/3]
阿里巴巴为什么这样强制从List中删除元素阿里巴巴为什么这样强制从List中删除元素
还是先举个例子,你侄女对天文知识感兴趣,然后你就用程序写了太阳系九大星系(水星、金星、地球、火星、木星、土星、天王星、海王星、冥王星)的运行轨迹图,然后拿给侄女看。然后她说错了错了,你的知识太旧了,多了一颗星。根据2006年8月24日国际天文联合大会召开,在会议上经过投票表决,冥王星被降级为矮行...[2023/4/3]
Java 8 中需要知道的4个函数式接口-Function、Consumer、Supplier、Predicate
前言
Java 8 中提供了许多函数式接口,包括Function、Consumer、Supplier、Predicate 等等。这 4 个接口就是本篇将要分享的内容,它们都位于 java.util.function 包下。
为什么需要知道这几个函数式接口?
因为这 4 个函数式接口是 Ja...[2023/4/3]
java中optional的一些常用方法总结
目录前言1. 创建Optional对象2. 获取Optional对象的值3. 判断Optional对象是否包含非空值4. 获取Optional对象中的值或默认值5. 获取Optional对象中的值或抛出异常6. 转换Optional对象中的值7. 过滤Optional对象中的值Java 9 增强补充...[2023/4/3]
java实现文件夹上传功能实例代码(SpringBoot框架)
目录前言一、前端如何设置上传组件并将资源上传到后台服务1)首先我们需要新建一个用来提交文件夹的form表单2)然后我们添加自己框架内的一些按钮来触发该隐藏的表单二、后台如何接收处理文件夹表单数据总结 前言
有时我们后台管理等服务可能会有这样一个简单需求,就是根据文件夹将整个文件夹下的所有资源都上...[2023/4/3]
Java BasePooledObjectFactory 对象池化技术Java BasePooledObjectFactory 对象池化技术
Java GenericObjectPool 对象池化技术--SpringBoot sftp 连接池工具类
一个对象池包含一组已经初始化过且可以使用的对象,而可以在有需求时创建和销毁对象。池的用户可以从池子中取得对象,对其进行操作处理,并在不需要时归还给池子而非直接销毁它。这是一种特殊的工厂对...[2023/3/31]
在云服务器上搭建个人版chatGPT及后端Spring Boot集成chat GPT
总结/朱季谦
本文分成两部分,包括【国内服务器上搭建chat GPT】和【后端Spring Boot集成chat GPT】。
无论是在【国内服务器上搭建chat GPT】和【后端Spring Boot集成chat GPT】,两个方式都需要魔法访问,否则是无法正常使用的,即需要具备正常访问谷歌...[2023/3/31]
更优雅的OrientDB Java API
OrientDB API v1.0.0(OrientDB 3.x)
Gitee
OrientDB介绍
OrientDB是一个开源的NoSQL数据库管理系统,同时也是一款高性能的图数据库,支持ACID事务以及原子操作。
官网
图数据库介绍
图数据库是以点、边为基础存储单元,以高效存储、查询图...[2023/3/31]
【命令设计模式详解】C/Java/JS/Go/Python/TS不同语言实现【命令设计模式详解】C/Java/JS/Go/Python/TS不同语言实现
简介
命令模式(Command Pattern)是一种数据驱动的设计模式,也是一种行为型设计模式。这种模式的请求以命令的形式包裹在对象中,并传给调用对象。调用对象再寻找合适的对象,并把该命令传给相应的处理者。即把请求或操作封装成单个对象,并使其可以被参数化和延迟执行,这种方式将命令和执行者进行了...[2023/3/31]
Spring Boot 中的 ApplicationRunner 和 CommandLineRunner
前言
一般项目中的初始化操作,初次遇见,妙不可言。如果你还有哪些方式可用于初始化操作,欢迎在评论中分享出来~
ApplicationRunner 和 CommandLineRunner
Spring Boot 应用,在启动的时候,如果想做一些事情,比如预先加载并缓存某些数据,读取某些配置等等。...[2023/3/29]
SpringBoot Windows 自启动 - 通过 Windows Service 服务实现SpringBoot Windows 自启动 - 通过 Windows Service 服务实现
SpringBoot 在Windows运行时,有个黑窗体,容易被不小心选中或关闭,或者服务器重启后,不能自动运行,注册为 Windows Service服务 可实现 SpringBoot 项目在Windows 中随系统自启动。也不用担心被关闭
下载 WinSW
https: github.co...[2023/3/27]
开发了一个Java库的Google Bard API,可以自动化与AI对话了开发了一个Java库的Google Bard API,可以自动化与AI对话了
开发了一个Java库的Google Bard API,可以自动化与AI对话了
Google Bard是Google提供的还在实验阶段的人工智能对话服务。这明显是对标ChatGPT来的,它可以提供更实时的答案,会基于Google强大的网页数据。
为了更方便的使用并实现自动化,我写了一个Java类...[2023/3/27]
【JavaScript快速排序算法】不同版本原理分析
说明
快速排序(QuickSort),又称分区交换排序(partition-exchange sort),简称快排。快排是一种通过基准划分区块,再不断交换左右项的排序方式,其采用了分治法,减少了交换的次数。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外...[2023/3/27]
非常小的一个东西,Spring依赖注入Bean类型的8种情况非常小的一个东西,Spring依赖注入Bean类型的8种情况
大家好,我是三友~~
今天来讲一个可能看似没有用但是实际又有点用的一个小东西,那就是@Autowired支持注入哪些Bean的类型。
为啥要讲这个呢?
故事说起来可能就比较长了。
不过长话可以短说,仅仅就是突然想起来之前有一个妹子问过我这个问题!
微信公众号:三友的java日记
...[2023/3/27]
当transcational遇上synchronized
工作当中经常会遇到既需要开启事务管理,同时也需要同步保证线程安全的场景。
比如一个方法
@Transactional
public synchronized void test(){
}
不知道大家有没有这样写过?
这样写会有问题吗?
众所周知,spring使用动态代理...[2023/3/24]
SpringBoot接入微信JSSDK,看这篇妥妥的
先给猴急的客官上干货代码
GitHub
接入微信JSSDK GitHub地址
Gitee
接入微信JSSDK GitHub地址
前言
事情的起因是因为疫情严重,领导要求做一个专题页,能够尽可能帮助所需要的人。
于是乎本狗与同事挑灯奋战,加班加点赶工出来。
部署上线完成,用微信内置浏览器...[2023/3/24]
day11-SpringBoot中注入Servlet&Filter&Listener
SpringBoot中注入Servlet&Filter&Listener
1.基本介绍
文档:SpringBoot中注入Servlet&Filter&Listener
考虑到实际开发业务非常复杂和兼容问题,SpringBoot支持将Servlet、Filte...[2023/3/24]
美团面试:熟悉哪些JVM调优参数?
本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点,欢迎star~
Github地址
面试网站
今天来...[2023/3/24]
java异步编程的7种实现方式小结
目录同步编程一、线程 Thread二、Future三、FutureTask四、异步框架 CompletableFuture五、 SpringBoot 注解 @Async六、Spring ApplicationEvent 事件七、消息队列 最近有很多小伙伴给我留言,能不能总结下异步编程,今天就和大家简...[2023/3/24]
Java Tomcat 启动闪退问题解决集
目录一、Java环境不对,Tomcat 不同版本需要的Java环境不同。二、环境变量没有配置好三、Tomcat端口被占用四、配置文件编码问题五、启动时需要的配置文件编写出错六、部分相关文件丢失七、免安装的tomcat闪退八、修改配置文件setcla path.bat九、等待更新 Tomcat 启动时...[2023/3/24]
前端设计模式——模板方法模式
前端设计模式中的模板方法模式(Template Method Pattern)是一种行为型设计模式,它定义了一个行为的骨架,将一些步骤推迟到子类中实现。这些步骤被称为“具体操作”(Concrete Operations),而整个行为的结构和顺序则被称为“模板方法”(Template Method...[2023/3/22]
设计模式(二十七)----行为型模式之解释器模式
1 概述
如上图,设计一个软件用来进行加减计算。我们第一想法就是使用工具类,提供对应的加法和减法的工具方法。
用于两个整数相加
public static int add(int a,int b){
return a + b;
}
?
用于两个整数相加
pu...[2023/3/22]
Java开发HashMap?key必须实现hashCode?equals方法原理
目录一、问题引入二、hashCode、equals方法都未实现三、只实现hashCode方法四、只实现equals方法五、hashCode、equals方法都实现六、总结 一、问题引入
平时在开发中,相信你多多少少都使用过HashMap,而当你用自定义对象作为key时,很多人会告诉你:你必须...[2023/3/22]
带你深入Java Log框架,彻底搞懂Log4J、Log4J2、LogBack,SLF4J带你深入Java Log框架,彻底搞懂Log4J、Log4J2、LogBack,SLF4J
最近系统被扫出来还在使用老旧的log4j,需要升级到最新的log4j。但是在升级的发现,Java相关的日志处理库有log4j, log4j2,slf4j和logback,初一看确实有点头大,那么区别是啥呢?之前也大概知道一些,查找了大量相关资料,这里好好总结一下,相信你读完就会熟练掌握
...[2023/3/20]
springboot 接入 ChatGPT
项目地址
https: gitee.com/Kindear/lucy-chat
介绍
lucy-chat是接入OpenAI-ChatGPT大模型人工智能的Java解决方案,大模型人工智能的发展是不可阻挡的趋势,我们环境无法创造工具,但是也要更好的使用工具,该包简化了接入流程,可以非常方便的引入...[2023/3/20]
三天吃透Spring Cloud面试八股文
本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点,欢迎star~
Github地址:https: github...[2023/3/20]
Java多线程开发CompletableFuture的应用
?做Java编程,难免会遇到多线程的开发,但是JDK8这个CompletableFuture类很多开发者目前还没听说过,但是这个类实在是太好用了,了解它的一些用法后相信你会对它爱不释手(呸渣男,咋对谁都爱不释手呢),好了我先简单举个列子,告诉你用它有多好。Single Dog拿一个Appoint...[2023/3/20]
设计模式(二十五)----行为型模式之访问者模式
1 概述
定义:
封装一些作用于某种数据结构中的各元素的操作,它可以在不改变这个数据结构的前提下定义作用于这些元素的新的操作。
2 结构
访问者模式包含以下主要角色:
抽象访问者(Visitor)角色:定义了对每一个元素(Element)访问的行为,它的参数就是可以访问的元素,它的方法...[2023/3/20]
Java项目是不是分布式,真有那么重要吗?
大家好,我是3y啊。
大概不知道从什么时候,「微服务」「分布式」这两个词又再次频繁出现在我的视线里。
「微服务」「分布式」在我刚毕业的时候还是比较关注的,那时候还入门了一把SpringCloud,写了一篇很长的文章,还是很顶的,有不少的大号都给我转载了,在知乎又获得了很多的赞。
那时候觉得...[2023/3/20]
SpringBoot使用Interceptor拦截器的实例
在springboot中使用拦截器也比较简单,实现HandlerInterceptor或者AsyncHandlerInterceptor接口,再从配置里添加一下拦截器就完成了;
AsyncHandlerInterceptor接口继承了HandlerInterceptor,多了一个afterCo...[2023/3/20]
JavaScript?DOM?API的使用教程及综合案例JavaScript?DOM?API的使用教程及综合案例
目录一. 什么是DOM二. 最常用的DOM API1. 选中页面元素2. 操作元素的属性2.1 事件概念2.2 获取/修改元素内容2.4 获取/修改元素属性2.5 获取/修改表单元素属性2.6 获取修改样式属性3. 操作页面节点3.1 新增节点3.2 删除节点三. 综合案例1. 猜数字2. 表白墙总...[2023/3/20]
JavaScript图片打印方案实例详解JavaScript图片打印方案实例详解
最近有个页面打印图片的小需求。就是系统界面展示有一些证件照片,我们希望可以点击图片旁边的打印小按钮,就可以将这张图片直接打印到A4纸张上,例如下图效果:
其实浏览器 window 对象提供了 print 方法,就可以对整个页面进行打印。只需要点击按钮执行以下方法即可。
window....[2023/3/20]
浅析Spring?中?Bean?的理解与使用
目录一、定义二、控制反转(IoC)1、什么是依赖注入与控制反转呢?先通过一个例子来理解一下2、让 Spring 控制类构建过程3、这就是 IOC三、 @Bean 注解的使用1、使用说明2、Bean 名称2.1、默认情况下 Bean 名称就是方法名(首字母小写),比如下面 Bean 名称便是 myBe...[2023/3/20]
【开源免费】使用Spring Boot和Html实现ChatGPT,1:亿还原,将就看
highlight: a11y-dark
简介
前段时间写了一个Chatgpt的Java版SDK开源地址:chatgpt-java欢迎使用。但由于原来OpenAI 并没有支持官网的chatgpt模型,所以使用起来相对没有官网那么智能完善,所以就没有写出一个demo项目,只开源了Open AI...[2023/3/17]
某大厂面试题:说一说Java、Spring、Dubbo三者SPI机制的原理和区别某大厂面试题:说一说Java、Spring、Dubbo三者SPI机制的原理和区别
大家好,我是三友~~
今天来跟大家聊一聊Java、Spring、Dubbo三者SPI机制的原理和区别。
其实我之前写过一篇类似的文章,但是这篇文章主要是剖析dubbo的SPI机制的源码,中间只是简单地介绍了一下Java、Spring的SPI机制,并没有进行深入,所以本篇就来深入聊一聊这三者的...[2023/3/17]
SpringBoot部署到外部Tomcat无法注册到Nacos服务端
事情经过
近期做一个项目投标演示(POC)环境支持,需要集成Nacos服务端。考虑到现有项目中已经有了Nacos相关依赖,那还不简单?新建个服务端,配置几下重启不就搞定了吗?然而事情远没有想得这么简单。同样的代码在我本地IDE里运行就能注册成功,在演示环境 Tomcat+War 部署就不行了。
...[2023/3/17]
Springboot之如何统计代码执行耗时时间
目录前言正文① StopWatch② System.nanoTime()③ new Date ()④ System.currentTimeMillis() 总结 前言
近日群里有萌新提到关于统计代码执行时间的事:
开始&n...[2023/3/17]
Spring Boot security 默认拦截静态资源的解决方法
Spring Boot security 会默认登陆之前拦截全部c , js,img等动态资源,导致我们的公开主页在登陆之前很丑陋
像这样:
网上很多解决办法都过时了比如还在使用WebSecurityConfigurerAdapte,antMatchers
public cla ...[2023/3/17]
深度解析单例模式
饥汉模式
package com.cz.single;
/**
* @author 卓亦苇
* @version 1.0
* 2023/3/11 21:31
*/
public cla Hungry {
private byte[] data1 = new byte[102...[2023/3/15]
【SpringBoot】还不会SpringBoot项目模块分层?来这手把手教你
前言
??缘由
经常看到网上很多优秀的开源项目中,代码简洁,模块分层完美。反观自己代码层级混乱,,却不知如何整理分层。此文手把手教你一步一步创建模块,左手右手一个慢动作。结合本人实际开发及个人项目中分层思路的分享,大神请勿喷。
??本文阅读时长
约25分钟
??主要目标
熟练掌握Spri...[2023/3/15]
微软出品自动化神器【Playwright+Java】系列(十二)测试框架的设计与开发
一、前言
大家好,我是六哥!
又有好长一段时间没更文了,不是我懒,而是确实在更文上,没有以前积极了,这里是该自我检讨的。
其实不是我不积极,而是相对更文学习来说,优先级不是最高。
对我而言,目前最重要的就是减肥,除了下雨下雪,我都坚持每天5公里,keep记录如下:
早在四天前就完成了p...[2023/3/15]
ServletWebServerApplicationContext创建Web容器Tomcat示例
目录正文创建Web服务一、获取Web服务器工厂1.1 选择导入Web工厂二、getWebServer:获取Web服务2.1 创建TomcatEmbeddedContext2.2. 创建TomcatWebServer2.2.1 启动Tomcat 初始化小结startInternal:启动In...[2023/3/15]
JavaScript+Canvas实现带跳动效果的粒子动画
目录前言实现过程运行效果总结 前言
用 HTML5 的 Canvas 元素实现一个带有跳动效果的粒子动画。会用到 Canvas 的2D渲染上下文,通过 JavaScript 编写绘图代码,实现画布上一系列粒子的随机运动和相互作用。还会使用 CSS3 动画属性,使得画布背景颜色和粒子颜色能够流畅地...[2023/3/15]
Spring?refresh()源码解析Spring?refresh()源码解析
目录正文一、prepareRefresh:初始化前的预处理1.1初始化属性值1.2属性校验二、obtainFreshBeanFactory:刷新Bean工厂三、prepareBeanFactory:Bean工厂预处理3.1 ApplicationContextDProce or:Aware执行器3....[2023/3/15]
Spring?populateBean属性赋值和自动注入Spring?populateBean属性赋值和自动注入
目录正文一、postProce AfterInstantiation:修改Bean实例二、autowireByName:根据名称自动注入三、autowireByType:根据类型自动注入四、postProce PropertyValues:处理属性值(@Resource、@Autowired、@Va...[2023/3/15]
Java并发小结01
Java并发小结01
主要参考自《实战Java高并发程序设计》。
需要知道的概念
- 同步与异步
- 并发与并行
- 临界区
- 阻塞与非阻塞
- 死锁、饥饿、活锁
同步与异步
同步:同步方法一旦被调用,必须等待方法返回后才能继续后续的行为。
异步:异步方法就像一个消息传递,被调用后方法...[2023/3/14]
java 中文繁简体转换工具 opencc4j 使用介绍 1.8.0
Opencc4j
Opencc4j 支持中文繁简体转换,考虑到词组级别。
在线体验
Features 特点
严格区分「一简对多繁」和「一简对多异」。
完全兼容异体字,可以实现动态替换。
严格审校一简对多繁词条,原则为「能分则不合」。
词库和函数库完全分离,可以自由修...[2023/3/14]
Spring MVC的请求处理逻辑
当大家了解了如何编写一个简单的Spring MVC程序后,大家心中应该会有一些好奇:这背后到底发生了什么?
Spring MVC是怎么把这些功能串联起来的?我们只是写了一个控制器而已,HTTP请求是怎么转换为控制器方法的调用的?结果又是怎么变成JSON的.....啊这小伙伴们是不是已经混乱了!...[2023/3/14]