logo 范 · 拾光录
网址收集 关于作者 Github Gitee
杂文随笔5
Hexo博客:基础使用Hexo博客:Next主题Hexo博客:Next进阶使用Hexo博客:Next高级配置基于Node的WIKI管理
前端知识16
HTML常用知识CSS常用知识CSS美化checkbox复选框JavaScript常用知识JavaScript格式化时间戳JavaScript窗口宽高处理JavaScript黑夜主题切换实现方案JavaScript数字转大写简易图片查看器TypeScript基础知识Threejs基础三要素Threejs网格辅助和轨道控制器Threejs物体绘制Electron基础使用Nodejs基础知识animate.css页面动画
Vue框架19
Vite的使用及扩展Vue3父子组件Vue3使用Marked解析MarkdownMermaid图表生成库初始化页面加载动画Axios表单提交二维码解决方案NProgress加载进度条Vue3动态菜单实现Vue3使用ECharts图表Vue3处理Excel导入导出keep-alive页面缓存及setup问题Element:文件上传Element:结合Pinia实现动态菜单Element:图片上传组件Element:自定义统一弹窗组件Element:表格自定义指令控制按钮显示(鉴权)可视化大屏使用缩放适配分辨率
UniApp15
UniApp的基础使用封装网络请求工具及文件上传uni-app的开发记录微信小程序分享原生文件上传Pinia取消滚动条(兼容小程序)tabbar消息数量显示scroll-view上滑到底部加载数据状态栏高度动态设配数据共享与传递uview-plus导航栏实现背景融合Wot UIWot UI实现顶部背景图融合uni-app x
Java基础知识10
基础知识面向对象Lambda表达式常用API常用知识积累try-with-resource注解反射多线程经纬度距离计算
SpringBoot31
application配置Maven创建聚合项目全局异常处理锁机制项目启动初始化数据方式邮件功能集成原生定时任务异步集成阿里云OSS阿里OSS预签名上传基于hutool读excelJSR303WebSocketWebSocket版AI接口流式调用Smart-Doc接口文档生成器application配置信息加密雪花算法工具AOP实现请求参数脱敏思路JWT生成Token及工具类SpringBoot默认JSON与对象转换若依框架:安装使用若依框架:优化和调整文件上传若依框架:管理后台页面优化若依框架:后端接口代码优化SpringAISpringBoot实现AI接口流式调用服务启动时创建MySQL连接自建项目工程树形结构处理工具微信支付代码微信手机号登录
SpringMVC14
跨域处理拦截器RESTful风格伪前后端分离Jackson转换器调整Thymeleaf基于拦截器做权限校验AOP打印接口请求响应日志AOP打印接口请求响应耗时文件上传和回显POST请求加解密实现(AES)POST请求加解密实现(RSA+AES)参数动态校验实现方案真实IP和归属地
MyBatis8
MyBatis基本使用与配置Mapper使用相关MaBatis多数据源配置MyBatisPlus数据统计类处理方案MyBatisPlus条件查询正向工程的实现(H2)mybatis-plus-join
SpringCloud15
Netflix:微服务与搭建Netflix:服务的消费与提供Netflix:EurekaNetflix:ActuatorNetflix:RibbonNetflix:FeignNetflix:HystrixNetflix:ZuulAlibaba:简介与搭建Alibaba:Nacos注册中心Alibaba:RibbonAlibaba:OpenFeignAlibaba:Nacos配置中心Alibaba:GetewayAlibaba:Sentinel
MySQL6
MySQL基础知识MySQL多表查询与事务MySQL常用函数及解决方案MySQL视图MySQL索引安装MySQL
Redis7
Redis介绍和安装Redis配置文件Redis持久化Redis集群Redis语法基础Redis相关问题及解决方案SpringBoot集成Redis使用记录
MongoDB10
Linux安装MongoDBMongoDB基础语法MongoTemplate及SpringBoot配置MongoTemplate中Update操作MongoTemplate中聚合查询MongoTemplate日期归档示例项目使用相关知识归纳地理位置存储与距离查询MongoDB副本集与事务获取类名和属性名工具类
其他数据库1
H2数据库
Python编程6
Python基础知识Python语法yolo目标检测OpenCV的使用及树莓派平台condauv
工具集合13
IDEAMavenGradleGitNginx安装Nginx配置VSCodeJMeter压测DockerOllamaRustFSPicGoObs录制
Linux知识11
Linux常用命令Jar启动脚本VirtualBox安装CentOSVirtualBox安装Ubuntu树莓派安装及使用frp内网穿透ArchLinux:基础系统安装ArchLInux:图形化界面安装ArchLinux:常用软件ArchLinux:深度优化ArchLinux:Niri
创意设计2
Blender:入门知识UI设计基础知识
AI相关9
Claude CodeHermes AgentOpenAI基本使用OpenAI工具调用OpenAI记忆管理OpenAI推理执行OpenAI开发框架Langchainllama.cpp

Math类API

方法 说明
abs 获取绝对值
ceil 向上取整
floor 向下取整
round 四舍五入
max 最大值
pow 幂计算
random 随机值,范围[0,1)

System类API

方法 说明
exit 终止当前运行的虚拟机
currentTimeMillis 当前系统时间戳
arraycopy 数组拷贝

Runtime类API

方法 说明
getRuntime 当前系统的运行环境对象
exit 停止虚拟机
availableProcessors 获得CPU的线程数
maxMemory JVM能从系统中获取总内存大小(单位byte)
totalMemory JVM已经从系统中获取内存大小(单位byte)
freeMemory JVM剩余内存大小(单位byte)
exec 运行cmd命令

Object类API

方法 说明
toString 返回对象的字符串表示形式
equals 比较两个对象是否相等
clone 对象克隆

如果一个接口里面没有抽象方法,表示当前的接口是一个标记接口。如果Cloneable被实现,那么当前类的对象可以被克隆,否则不能被克隆

克隆步骤:

浅拷贝与深拷贝:

BigInteger大整数

BigInteger.valueOf(1);
new BigInteger("整数");

对于-16~16,BigInteger已经提前创建,该范围的对象创建都是同一个,其余才会重新创建,而BigInteger的任何计算操作都是产生一个新的对象

方法 说明
add
subtract
multiply
divide 取整
divideAndRemainder 取余
equals 相等(已重写)
max 最大
min 最小
pow
intValue 转int整数
longValue 转long整数

BigDecimal精确计算

0-10已经创建好

new BigDecimal("2.35").setScale(1, BigDecimal.ROUND_HALF_UP);

时间相关

格林尼治时间(Greenwich Mean Time)简称GMT,目前世界标准时间(UTC)已经替换为原子钟,中国属于地球东八区,所以是世界标准世界+8小时

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateStr = sdf.format(new Date());

new SimpleDateFormat("HH:mm:ss").parse("09:00:00");
字母 说明
G Era标识符
y
M 年中的月份
w 年中的周数
W 月份中的周数
D 年中的天数
d 月份中的天数
F 月份中的星期
E 星期中的天数
a AM/PM标记
H 一天中的小时数(0-23)
k 一天中的小时数(1-24)
K AM/PM中的小时数(0-11)
h AM/PM中的小时数(1-12)
m 小时中的分钟数
s 分钟中的秒数
S 毫秒数
z 时区
Z 时区

Calendar日历类:是个抽象类,无法直接创建对象

public static Calendar getInstance()
方法 说明
public final Date getTime() 获取日期对象
public final setTime(Date date) 给日历设置日期
public long getTimeInMillis() 获取时间毫秒值
public void setTimeInMillis() 给日历设置毫秒值
public int get(int field) 取日历中的某个字段信息
public void set(int field, int valur) 修改日历的某个字段信息
public void add(int field, int amount) 为某个字段增加/减少指定的值

注意:月份从0开始,而星期一实际为星期日

Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);

JDK8为何新增时间类?

          ZoneId:时区
        /
       /
Date类 -- Instant:时间戳(世界标准世界)
       \
        \
          ZonedDateTime:带时区的时间

日期格式化类 -- DateTimeFormatter:用于时间的格式化和解析

          LocalDate:年、月、日
        /  
       /
日历类 -- LocalTime:时、分、秒
       \
        \
          LocalDateTime:年、月、日、时、分、秒

          Duration:时间间隔(秒、纳秒)
        /
       /
工具类 -- Period:时间间隔(年、月、日)
       \
        \
          ChronoUnit:时间间隔(所有单位)

格式化示例

ZonedDateTime zoneTime = Instant.now().atZone(ZoneId.of("Asia/Shanghai"));
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss EE a");
System.out.println(dtf.format(zoneTime)); // 2023-02-23 11:05:11 星期四 上午

时间间隔工具示例

LocalDateTime now = LocalDateTime.now();
LocalDateTime time = LocalDateTime.of(2022, 1, 1, 0, 0, 0, 0);
long between = ChronoUnit.DAYS.between(time, now);
Math类API
System类API
Runtime类API
Object类API
BigInteger大整数
BigDecimal精确计算
时间相关