- 博客(44)
- 资源 (1)
- 收藏
- 关注
原创 Duration详解
Duration是 Java 8 引入的类,用来表示基于时间的时间段。在java.time包下(不是老的不可变类(immutable),线程安全精度到纳秒(1秒 = 10亿纳秒)秒数 + 纳秒数// Duration 内部结构(简化版)// 秒数// 纳秒数(0-999,999,999)/*** 格式化为 "HH:MM:SS"*/// JDK 9+// JDK 9+/*** 格式化为中文 "X小时X分钟X秒"*/// JDK 9+// JDK 9+
2025-11-14 16:47:09
1040
原创 Java泛型完全指南
/ 泛型方法:交换数组中的两个元素// 泛型方法:获取数组的第一个元素// 使用// 自动推断类型为String// 返回1注意:泛型方法的类型参数<T>要写在返回类型前面,这是语法规定。类型擦除。简单说,泛型信息只在编译期存在,运行时会被擦除。// 运行时,两者的类型是一样的!// true// 编译前// 编译后(大致相当于)// T被擦除为Object优先使用泛型类型,而不是原始类型// 好// 不好使用有界类型参数来增强API的安全性。
2025-11-14 16:43:52
944
原创 Swagger从入门到实战
简单来说,Swagger 是一个接口文档生成工具。自动生成:根据你的代码自动生成接口文档实时更新:代码改了,文档自动跟着改在线测试:不用 Postman,直接在文档页面就能测试接口这就像是给你的接口装了一面"魔镜",代码长什么样,文档就长什么样。名称作用访问地址推荐度接口文档规范(标准)必须知道SpringDocSwagger 的 Spring Boot 实现(新)⭐⭐⭐⭐⭐ 强烈推荐SpringfoxSwagger 的 Spring Boot 实现(老)⭐⭐ 老项目才用Knife4j。
2025-11-11 11:53:32
878
原创 Java Stream流完全指南:从入门到精通
Stream是数据流水线:数据源 → 中间操作 → 终端操作函数式编程思维:声明"做什么",而不是"怎么做"延迟执行:中间操作不立即执行,只有终端操作才触发一次性使用:Stream只能消费一次代码清晰优先:可读性比微小性能差异更重要Stream流是Java 8最重要的特性之一,它改变了我们处理集合数据的方式。刚开始可能会觉得不习惯,但用多了你会发现真的回不去了。Stream的目标是让代码更清晰、更简洁、更优雅。
2025-11-08 21:48:08
622
原创 Arrays.asList()使用避坑指南 - 看似简单,实则有坑
Arrays.asList() 返回固定大小的 List- 不能 add/remove,只能 set基本类型数组会被当成一个元素- 记得用包装类型或 Stream返回的是原数组的视图- 修改会互相影响需要可变 List 时,包装一层 ArrayList- 这是最安全的做法最后,我的个人经验是:除非你 100% 确定只需要只读访问,否则永远用来创建 List。多打几个字符,换来的是少踩无数的坑。代码能跑 ≠ 代码正确。很多时候这个方法"恰好"能用,直到在某个边界条件下炸了。
2025-11-08 21:40:14
1073
原创 Java装箱与拆箱完全指南:从原理到实战
装箱(Boxing):基本类型 → 包装类型// 手动装箱(以前的做法)// 已过时,不推荐// 更好的做法拆箱(Unboxing):包装类型 → 基本类型// 拆箱// 手动拆箱两套类型系统基本类型:性能高,不是对象包装类型:功能强,可以为null装箱与拆箱装箱:基本类型 → 包装类型拆箱:包装类型 → 基本类型Java 5+自动进行,但有性能开销缓存机制Integer缓存-128到127其他包装类型也有类似缓存缓存范围内的对象是同一个常见陷阱==vs。
2025-11-08 21:39:43
923
原创 BigDecimal精确计算完全指南
/ ❌ 错误// ✅ 正确永远不要用double构造BigDecimal除法必须指定精度和舍入模式比较大小用compareTo,不用equalsBigDecimal是不可变的// 必须接收返回值金融系统必须用BigDecimal// 涉及金额,一律用BigDecimal。
2025-11-07 11:06:06
948
原创 Java包装类缓存机制--Long为什么127等于127但129不等于129
自动装箱(Autoboxing)。// 基本类型// 包装类型// 这里发生了自动装箱!当你写关键就在这个valueOf方法!你可能会问:为什么偏偏是-128到127,不是-100到100,也不是-200到200?这是经过精心设计的!-128到127是byte的取值范围这个范围内的数字最常用状态码:0, 1, 2, 3…数组索引:0, 1, 2, 3…循环计数:1, 2, 3…性能和内存的平衡占用内存:256个Long对象 ≈ 几KB节省时间:避免频繁创建小整数对象。
2025-11-07 10:09:59
1029
原创 Java注解从入门到精通
Java注解从入门到精通 - 摘要 本文全面讲解Java注解技术,涵盖从基础概念到高级应用。主要内容包括: 基础部分: 注解定义:Java代码中的元数据标签,用于提供附加信息 与注释的区别:注解可影响程序行为而不仅用于说明 三大作用:编译检查、代码分析、文档生成 核心注解: 内置注解:@Override、@Deprecated、@SuppressWarnings等详解 元注解:@Retention、@Target等控制注解行为的元数据 高级应用: 自定义注解语法与实现 注解处理器开发与反射读取 实际应用场景
2025-11-07 09:26:26
1289
原创 Lambda表达式和方法引用入门指南
方式代码量可读性适用场景正常方法多最好初学者、复杂逻辑Lambda表达式中中等简单逻辑、函数式编程方法引用少好只是调用已有方法。
2025-11-06 14:50:51
344
原创 docker创建mysql数据库时候设置表名不区分大小写
在命令行的结尾添加:--lower_case_table_names=1全部命令为:docker run -itd --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.29 --lower_case_table_names=1
2021-09-07 11:21:52
383
原创 使用layer时候,Select组件下拉选择框不显示的问题
使用layer时候,Select组件下拉不显示的问题在使用layer的时候,碰到了这样一个问题, 使用的ant-design组件哭的时候, Select组件中的下拉选择不显示,换了一个组件发现还是有同样的问题, 经过半天的摸索, 终于找到了问题的所在layer页面使用的定位, z-index的值很大:z-index的值达到了惊人的8位数!但是Select组件的下拉选项的z-index只有1050解决很简单, 只要在index.css或其他样式文件中设置z-index大于layer的z-inde
2021-08-27 15:56:02
767
原创 微信小程序异步分享
微信小程序异步分享小程序在2.12.0版本后开支支持异步分享代码:onShareAppMessage:function() { return new Promise((resolve) => { setTimeout(()=> { resolve({ title: "异步分享的标题", }) },1000) })}注意: 异步分享需要在Promise中3秒
2021-05-27 17:21:58
422
原创 防抖与节流
防抖与节流防抖定义:高频触发函数事件后,固定时间内函数只能执行一次,如果在等待触发时间内,函数事件再次被触发,那么将重新计算触发时间。例子:空调遥控器,固定时间内只发送最后一次指令给空调下面是一个非常简单的防抖例子: let setTimeoutId = null function func() { clearTimeout(setTimeoutId) setTimeoutId = setTimeout(() => { console.l
2021-05-26 17:43:55
57
原创 HTTP协议详解
HTTP协议详解简介 HTTP:超文本传输协议(HyperText transfer Prototcol),是一种用于分布式,协作式和超媒体信息系统的应用层协议。HTTP是万维网数据通信的基础。 它是从web服务器传输超文本标记语言(HTML)到本地浏览器的传送协议。用户通过网页浏览器或其他终端,发送一个HTTP请求到服务器上的指定端口。终端为用户代理程序(user agent),存储资源的应答服务器为源服务器。终端和原服务器之间可能存在多个中间层,如代理服务器、网关等原理 HTTP基
2021-05-26 11:54:39
205
原创 vscode中使用beautify设置格式化缩进为两个空格
在settions.json中添加 "beautify.config": { "indent_size": 2 },
2021-05-14 15:41:13
1228
原创 vscode资源管理器中文件夹目录修改为树形结构
vscode资源管理器中文件夹修改为折叠vocode资源管理器中显示的项目目录只有一个子目录是这样的这样不方便查看项目目录, 要修改为树形结构:打开设置找到用户->功能->资源管理器:将 Compace Folders取消勾线:然后显示目录就是树形结构了:...
2021-03-01 16:30:07
5895
1
原创 使用docker部署nacos并使用mysql数据库
使用docker部署nacos并使用mysql数据库部署mysql 5版本官网上推荐使用mysql5.6+, 最新版本的已经是 8.0+, 使用最新版本的会有问题, 这里使用 mysql:5.7.29下载mysql镜像docker pull mysql:5.7.29运行mysql容器docker run -itd --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.29配置数据库创建一个数据库 名为
2021-01-07 20:44:22
909
3
原创 vue/cli3.0及以上版本使用amfe-flexible和postcss-px2rem适配解决方案
vue/cli3.0及以上版本使用amfe-flexible和 postcss-pxtorem适配解决方案1.安装amfe-flexiblecnpm install amfe-flexible --save2.在main.js中引入import 'amfe-flexible'3.安装postcss-pxtoremcnpm install postcss-pxtorem --save4.设置postcss-px2rem换算基数在vue.config.js(如果没有就在项目的跟目录中新建
2020-11-09 16:46:29
710
1
原创 Docker安装rabbitMQ
Docker安装rabbitMQ拉取远程镜像docker pull rabbitmq:management拉取 management 版本的镜像, 该版本镜像中包含了web管理页面创建容器docker run --hostname rabbit --name rabbit -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=123456 -d -p 15672:15672 -p 5672:5672 rabbitmq:manageme
2020-10-30 13:45:51
59
原创 使用docker创建mongoDB数据库容器
使用docker创建mongoDB数据库容器下载mongo镜像docker pull mongo后面没有版本后默认下载最新的下载完成后查看docker images创建并启动mongo容器创建一个本地的文件夹, 用来进行数据文件夹映射数据文件保存在本地比较好, 这样即使删除了容器数据库文件还在,数据不会丢失创建启动容器docker run -d -p 27017:27017 --restart=always --name mongodb -v E:\Docker_file\
2020-09-03 11:14:33
1754
1
原创 docker在windows环境下安装mysql
docker在windows环境下安装mysql拉取mysql镜像拉取镜像命令为 docker pull 镜像名称:版本号如果没有版本号, 默认下载最新版本下载mysql镜像docker pull mysql然后docker images查看下载的镜像创建映射相关文件目录这一步按需执行, 最好是把data存放到当前的宿主机创建一个文件夹data, 作为mysql容器的data映射目录启动mysql服务运行docker run -d -p 3307:3306 -e MYSQ
2020-08-28 11:06:22
770
原创 create-react-app结合dva.js搭建项目实现路由的嵌套(子路由)
create-react-app结合dva.js搭建项目实现路由嵌套(子路由)不嵌套路由import React from 'react';import { Router, Route, Switch } from 'dva/router';import dynamic from 'dva/dynamic'import router1 from './router1'const allRouter = [...router1] // 多个router可以在这个地方整合function
2020-08-19 21:15:52
987
原创 spring IOC中bean的作用域
spring IOC中bean的作用域在 spring 中, 默认情况下, bean 是单实例对象设置单例还是多例在spring配置 bean 标签里面有属性 scope 用于设置单实例还是多实例scope 属性值singleton 默认值, 表示是单实例对象prototype 表示是多实例的对象设置多例<bean id="book" class="com.aniden.entity.Book" scope="prototype"> <propert
2020-08-19 11:26:48
233
原创 解决IDEA运行java Errorjava 错误 不支持发行版本 5
解决IDEA运行java Error:java: 错误: 不支持发行版本 5在使用IDEA创建一个maven项目的时候出现了这样一个问题:这个问题是因为maven没有指定编译的JDK版本时候, IDEA使用的默认编译版本是JDK1.5, 修改运行的JDK版本就行了解决方法有三种:1.修改idea配置打开设置 File -> Settings -> Build, Execution, Deployment -> Compiler -> Java Compiler找到项
2020-08-11 18:05:39
783
原创 docker在windows环境下安装redis
docker在windows环境下安装redis1. win10下载Docker Desktop Installer并安装安装步骤网上很多教程2. 下载redis镜像docker pull redis下载最新版本的redis3. 创建redis.conf文件 这个文件用来指定docker启动的redis的配置 不想自己配置的可以直接下载: 下载链接 放到本地的一个目录下, 并将 bind 127.0.0.1 这行注释掉,否则redis只能本地访问4. 创建并启动容器
2020-08-10 22:50:36
377
原创 node连接mysql:R_NOT_SUPPORTED_AUTH_MODEClientdoesnotsupportauthenticationprotocolrequestedbyserver
解决node或者eggjs连接Docker中的mysql时候:ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client 错误我在用eggjs搭建后台项目, 连接本地用Docker启动的mysql数据库时候, 报了一个错误ER_NOT_SUPPORTED_AUTH_MODE: Client does not
2020-07-29 14:09:09
386
原创 解决create-react-app结合dvajs使用axios请求发生异常时候,无法继续发送请求(请求发生阻塞)
解决create-react-app结合dvajs使用axios请求发生异常时候,无法继续发送请求(请求阻塞)在使用create-react-app结合dvajs封装axios请求时候, 发现了一个bug:当一次请求发生异常时候(如404或者500), 请求发生了阻塞, 也就是无法继续发送下一次请求这是封装的请求的方法:const postRequest = (url, data) => axios.post(url, data)如上图, 一次请求异常, 再次点击submit都不会发送请
2020-07-17 15:10:51
658
原创 解决create-react-app打包后, 本地打开页面空白的问题
解决create-react-app打包后, 本地打开页面空白的问题我们用create-react-app创建了一个项目后, 打包后本地打开页面空白, 查看控制台, 发现css和js引入的路径不对我们查看打包后的html页面这里用的全是绝对路径, 如果是服务器环境下访问没有问题, 但是本地打开就会找不到资源目录解决方法只需要打包时候, 将绝对路径替换为相对路径即可:在package.json中添加一行:"homepage":"."变成这样:homepage作用就是打包时候, 自动在资
2020-07-08 11:46:53
2484
原创 create-react-app结合dvajs2-使用axios封装请求方法
create-react-app结合dvajs2-使用axios封装请求方法接着上一篇封装请求方法在src目录下新建request文件夹, 导入axios 并分装请求方法,不会的可以参考react使用axios封装请求方法新建services层在services中新建service.js文件, 在这个文件中统一管理请求import $axios from '../request'const getCodeUrl = $axios.baseUrl + 'verCode/getCode'
2020-07-03 10:06:05
450
原创 linux centos7 系统安装最新jdk详细教程
linux centos7 系统安装最新JAVA JDK教程检查是否安装JDK输入java -version检查是否安装JDK如上面显示则没有安装JDK, 如果已经安装 请先卸载, 卸载方法请自行搜索官网下载JDK官方下载地址 https://www.oracle.com/java/technologies/javase-jdk14-downloads.htmlJDK14下载地址 https://download.oracle.com/otn-pub/java/jdk/14.0.1+
2020-07-02 16:18:15
208
原创 H5页面 在iphone ios系统虚拟键盘不会落的问题
H5页面 在iphone ios系统虚拟键盘不会落的问题在 H5 页面中,会发现在高版本的 IOS 系统中(ios12以上)和微信版本6.7.x以上,都会发现 input 等输入框,输入内容之后发现虚拟键盘消失,但是页面出现大面积白框。解决办法方法一在页面中添加下面的js代码document.addEventListener('focusout', () => { setTimeout(() => { let height = document.docu
2020-07-02 14:56:34
313
原创 java动态代理的实现
java动态代理特点: 字节码随用随创建,随用随加载作用: 不修改源码的基础上对方法增强分类:基于接口的动态代理涉及的类:Proxy提供者:JDK官方基于子类的动态代理涉及的类:Enhancer提供者:第三方cglib库基于接口的动态代理如何创建代理对象:使用Proxy类中的newProxyInstance方法创建代理对象的要求: 被代理类最少实现一个接口,如果没有则不能使用newProxyInstance方法的参数:ClassLoader:类加载器 它是
2020-06-21 00:16:37
110
原创 spring教程2- spring基于注解的IOC
spring教程2: spring基于注解的IOC1. spring中的常用注解 原来的xml配置<bean id="accountService" class="com.itheima.service.impl.AccountServiceImpl" scope="" init-method="" destroy-method=""> <property name="" value="" | ref=""></property> </b
2020-06-20 20:34:40
106
原创 create-react-app结合dva.js1-搭建项目整合dva.js
create-react-app结合dva使用dva: dva 首先是一个基于redux和 redux-saga 的数据流方案,然后为了简化开发体验,dva 还额外内置了 react-router 和 fetch,所以也可以理解为一个轻量级的应用框架。dva数据流向图创建项目弹出配置npm run eject导入dva.js安装dvacnpm install dva --save在src目录下新建views文件夹, 用来存放页面组件在views文件夹下, 新建一个Page1.jsx文
2020-06-16 15:58:39
862
原创 解决swiper操作后,不能自动轮播的问题
解决swiper操作后,不能自动轮播的问题在js使用swiper插件, 当手动滑动轮播图的时候, 发现轮播图不自动轮播了 var mySwiper = new Swiper('.swiper-container', { loop: true, pagination: { el: '.swiper-pagination', }, autoplay: true })还以为这是个swiper的bug, 看
2020-06-15 13:57:10
7446
5
原创 spring教程1-基础部分
spring学习笔记Ioc耦合: 程序间的依赖关系类之间的依赖方法间的依赖解耦: 降低程序间的依赖关系实际开发中: 编译器不依赖, 运行时才依赖 !使用反射创建对象, 避免使用new关键字通过读取配置文件来获取要创建的对象全限定类名将maven项目打成jar包:<packaging>jar</packaging>* bean 可重用组件* javaBean: * 不等于实体类, 要大于实体类* 创建service和
2020-06-14 22:27:09
122
原创 工厂类Class.forName()初始化抛出NullPointerException空指针异常
工厂类使用Class.forName()初始化(空指针)问题问题工厂类使用时候, 会抛出NullPointerException空指针异常!使用Class.forName()时候, java会自动初始化要加载的类, 所以在使用单例工厂函数时候需要注意:要生产的类中恰好用用到了 工厂类, 比如:public class BeanFactory { //定义一个Properties对象 private static Properties props; //定义一个Map,用
2020-06-12 18:03:41
1720
原创 html页面在ios中使用new Date()显示异常
开发移动端页面用到了 new Data(string) 在这个函数后端返回的字段是这样的 "2019-09-08 20:30:06" , 用的时候需要转为Date 对象, 于是就直接使用了 new Date("2019-09-08 20:30:06") 调试没问题, 上线测试!安卓手机没有问题, 但是在ios手机上发现时间显示根本不正常! 经过好一番折腾, 才发现原因, 原来这么写:var date = new Date("2019-09-08 20:30:06");js中的 new Date(
2020-06-11 09:44:47
770
spring笔记.zip
2020-06-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅