无题
JAVA基础每周学一点,根据工作中遇到的问题来进行具体的补充;
时间类问题什么叫时间戳,为什么需要时间戳?
时间戳(timestamp)是指某一事件发生的日期和时间,通常以一个数值或字符串的形式表示。时间戳通常记录自特定日期(如1970年1月1日00:00:00 UTC)或某个系统启动以来的秒数。时间戳在计算机领域中广泛应用,例如在操作系统中记录文件的创建时间、上次修改时间和访问时间,也用于数据库的记录(如创建时间,更新时间)等。时间戳还可以用于计算两个事件之间的时间间隔。
对于日期、相关数据的计算这些,在代码层面和sql层面都能实现的情况下,一般都写在SQL中,以减少系统的压力,因为这样能够更高效地利用数据库的优化处理能力
日志类问题1234private final static Logger logger = Logger.getLogger(MsgConctroller.class);//这边的如参为什么是一个类名,是将类名放在日志的关键字上吗?、
日志错误的输出方式:
时间戳的生成与解析demo
123456789101112131415public static v ...
JAVA基础
JAVA基础之流相关序列化及反序列化
对于一个java对象,若想对其进行网络传输、持久化保存,则该对象必须实现序列化
疑问一: 对于在代码中没有实现序列化的java对象,为什么也能够保存在数据库中,并且能够在网络中传输?
解答一:在Java中,对于没有实现序列化的Java对象,不能直接保存在数据库中或在网络中传输。序列化是一种将对象转换为字节流的过程,它主要用于对象的持久化存储或网络传输。
如果一个Java对象没有实现序列化接口(即实现Serializable接口),则在尝试将其保存到数据库中或在网络中传输时,会抛出NotSerializableException异常。
然而,有一些情况下,即使对象没有实现序列化接口,仍然可以间接地将其保存在数据库中或在网络中传输。这通常是通过其他方式实现的,例如将对象转换为其他格式(如JSON或XML)或者使用特定的ORM框架(对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。如Hibernate)。
ORM框架可以自动将对象转换为关系数据库中的表,并在数 ...
无题
RocketMQ参考文档:RocketMq-CSDN博客
Redis学习
Redis(单线程的)
Redis 教程_redis教程,只有一个主进程
任务列表:
redis集群介绍和散列插槽原理
redis分布式锁介绍和原理
redis主从介绍和主从同步原理
redis哨兵作用和工作原理
redis持久化
应用场景(21条消息) Redis使用场景_redis 用在哪些方面_Leigel_java的博客-CSDN博客
缓存
任务队列
消息队列
分布式锁
代替集群的session共享 补充:session是tomcat的内存空间,存入session的数据般是基本信息不是全部信息
数据类型
指的是value的值,键的值统一是字符类型
写的很详细:Redis 的五种基本数据类型redis的五种数据类型喵先森爱吃鱼的博客-CSDN博客
ZSet(有序集合)是 Redis 数据库提供的一种数据结构,它是一种有序的字符串集合,每个成员都关联着一个浮点数类型的分值(score),用于进行成员之间的排序。ZSet 的特点是能够保持成员的插入顺序和根据分值范围或成员获取数据,同时还支持快速的插入、删除和更新操作。
Stream是Redis5.0 ...
设计模式之六大原则
设计模式之六大原则单一职责原则(SRP)
一个类或一个方法只负责单一的职责
定义:单一职责是为了防止一个类或方法内有多个职责,当后续需要对某个职责进行改动时,可能会对另一个职责造成影响,因此在开发过程中,尽量要让一个类或方法只承担一个职责。
当然在实际开发过程中,需要根据具体的业务情况来处理,总来的说,不论是设计原则还是设计模式,都是需要在实践中不断总结,积累经验的,因此与其看视频,不如自己动手去做😏
单一职责原则是实现高内聚、低耦合的指导方针,在很多代码重构手法中都能找到它的存在,它是最简单但又最难运用的原则,需要设计人员发现类的不同职责并将其分离,而发现类的多重职责需要设计人员具有较强的分析设计能力和相关重构经验。所以走上了代码这条路,就别想着溜了,老老实实为老板写代码来积累自己的经验吧
开闭原则(OPC)
开放扩展,关闭修改
定义:当软件需要增加或者修改某个功能时,尽量满足通过扩展来实现目标,而不是修改已有的代码。
实现开闭原则,一般的方法是抽象出接口或者类(回顾一下哎,抽象类不一定有 ...
设计模式之行为型模式
设计模式之行为型模式模板模式定义:定义一个操作中算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变算法的结构即可重定义该算法的某些特定步骤。即完成一件事情,有固定的数个步骤,但是每个步骤根据对象的不同,而实现细节不同;就可以在父类中定义一个完成该事情的总方法,按照完成事件需要的步骤去调用其每个步骤的实现方法。每个步骤的具体实现,由子类完成。
模板模式的特点:抽象父类、具体类
适用场景:流程一般固定,但是具体实现有区别
参考博客: 模版模式的应用实际举例模板模式应用场景实例张彦峰ZYF的博客-CSDN博客
demo抽象父类
1234567891011121314151617181920/** * TODO protected void someEat() 为什么会报错? * * @author huihui * @date 2023/9/11 21:51 */public abstract class AbstractEat { protected void someEat(){ this.eat(); this.a ...
Mybatis基础
Mybatis基础知识Mybatis配置文件特别注意:在idea的resource下要建目录的话必须采用com/hui/mybatis/mapper的形式,不能是com.hui.mybatis.maper的形式,因为resource目录与java目录不同,没有“包”的概念!!!
### 配置文件层级关系
12345678910111213141516171819<?xml version="1.0" encoding="utf-8"?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><!-- 配置 --> <properties /><!-- 属性 --> <settings /><!-- 设置 - ...
MySQL基础
MySQLMySQL基本语句(2条消息) Mysql 最最最基本语句(大全)mysql数据库基础知识一个笨小孩哎呀的博客-CSDN博客
(2条消息) MySQL增删改查(基础)_朱wwww的博客-CSDN博客
MySQL中添加字段
1alter table car_evidence add `unit_name` varchar(64) comment '单位'
MySQL中修改字段
123ALTER TABLE 表名 MODIFY COLUMN 字段名 字段类型 [属性];alter table user MODIFY new1 VARCHAR(10); #修改一个字段的类型alter table user CHANGE new1 new4 int; #修改一个字段的名称,此时一定要重新指定该字段的类型
MySQL中删除字段
12alter table 表名 drop column `unit_name`; truncate table tb_user #清空表中的数据
case when 语句
1234select name,case when (age & ...
碳水循环计划
碳水循环计划身体数据
身高:175
体重:69kg
基础代谢:1680大卡
运动系数 :1.2 x 1680 =所需热量 2010大卡
若要减脂 需要少摄入 200大卡以内的热量
摄入碳水
7天需要摄入总碳水:69x2x7=966g
7天需要摄入总脂肪:69x0.8x7 = 386.4g
7天需要摄入总蛋白 :69x1x7 = 483g
碳水循环日期
高碳日两天(用于拉高基础代谢、选择易消化、好吸收的食物、一般在力量训练(腿、背)后吃效果好)
碳水 (966x0.5) / 2 =241.5g
脂肪 (386.4x0.15) / 2 =28.98g
适用食物:馒头、水果等
中碳日三天(肩、背、手臂、胸的训练可以放在这一天,这几天热量比较低,可以用蔬菜弥补)
碳水 (966x0.35) / 3 =112.7g
脂肪 (386.4x0.35) / 3 =45.08g
低碳日两天(不要让自己饿肚子、不要有力量训练、慢跑快走这些可以有)
碳水 (966x0.15) / 2 =72.45g
脂肪 (386.4x0.5) / 2 =96.6g
红薯(少吃、对胃影响不太好)、 ...