自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 Optional.ofNullable()方法

解释代码含义:如果list集合不为空,将list集合赋值给newList;如果list集合为空创建一个空对象集合赋值给newList,保证list集合永远不为空,也就避免了空指针异常。

2024-02-23 16:44:27 634

原创 3分钟看懂设计模式02:观察者模式

依赖关系,使得每当一个对象。

2024-02-23 16:39:50 1183

原创 Arrays.asList()是个坑

当你向这个List添加或删除一个元素时,程序就会抛出异常(用此方法得到的List的。

2024-02-22 16:12:35 371

原创 classpath到底是什么

顾名思义,classpath就是class的path,也就是类文件(*.class的路径)。一谈到文件的路径,我们就很有必要了解一个java项目(通常也是web项目)它在真正运行时候,这个项目内部的目录、文件的结构。这样,我们才好分析、理解classpath。

2024-02-22 15:21:09 744

原创 3分钟看懂设计模式01:策略模式

那我们知道了策略模式怎么实现,也就是已经有了一把锤子在手上了,那什么时候用这把锤子呢?1. 系统中需要动态地在几种算法中选择一种。2. 一个对象有很多的行为,如果不用策略模式就只能用一大堆的if…else…来实现。3. 不希望客户端知道复杂的、与算法相关的数据结构。在具体策略类中封装算法和相关的数据结构,提高算法的保密性与安全性。1.假设平台支持多种支付方式,比如微信、支付宝、银行卡等。2.如果你有一个应用程序,它可以以多种格式输出数据,比如XML、JSON或CSV。3.

2024-02-22 15:06:37 1093

原创 CORS就是跨域吗?

同源策略(Same-Origin Policy)是浏览器中的一项安全机制,用于保护用户的隐私和安全。它限制了一个网页或者脚本只能从同一个源加载的资源进行访问,而不能访问其他来源的资源。这样做可以防止恶意网站利用用户身份信息进行跨站请求伪造(CSRF)攻击,保护用户的数据安全。跨站请求伪造(CSRF,Cross-Site Request Forgery)是一种网络攻击方式。在 CSRF 攻击中,攻击者利用已认证的用户身份(例如用户在银行网站上登录后的会话信息)来伪造请求,以执行未经授权的操作。

2024-02-20 17:23:10 1379

原创 复习一下JVM内存结构

程序计数器内存很小,可以看作是所执行字节码的。有了它,程序就能被正确的执行。因为有的存在,则每个线程必须有各自独立的程序计数器,即的内存。这里再解释一下什么是,线程切换指的是:单处理器在执行多线程时所进行的线程切换,多线程的会产生同时运行的错觉。程序计数器不会发生OOM原因:占用内存非常小,当线程结束时程序计数器也会随之回收。

2024-02-20 09:35:44 890

原创 翻译,师爷师爷什么叫事务!

然后在计算机领域进行引申扩展,尤其在数据库管理和分布式系统中,含义为一系列操作作为一个整体被执行,要么全部成功,要么全部失败,以保证数据的完整性和一致性。也就是说,倒退200年,英文语境中的 transaction 并没有当前 transaction 作为计算机术语所包含的概念。当英文的 apple 翻译过来时,我们把对应脑海里的概念移植过去就可以很轻易的理解什么是 apple。我们学习 apple 如此简单,就是因为我们对苹果这个概念的理解已经通透到不能再通透。哇,终于舒服了,透气了!

2024-02-18 17:15:07 325

原创 消息队列使用的四种场景介绍

消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能,高可用,可伸缩和最终一致性架构。使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ。

2024-02-06 16:49:21 1796

原创 Java锁到底是个什么东西

尽管java实现的锁机制有很多种,并且有些锁机制性能也比synchronized高,但还是强烈推荐在多线程应用程序中使用该关键字,因为实现方便,后续工作由jvm来完成,可靠性高。只有在确定锁机制是当前多线程程序的性能瓶颈时,才考虑使用其他机制,如ReentrantLock等。

2024-02-06 16:45:21 1037

原创 聚簇索引、回表与覆盖索引

就是把单列的非主键索引修改为多字段的联合索引,在一棵索引树上就找到了想要的数据,不需要去主键索引树上,再检索一遍这个现象,称之为。在 innodb 中,在聚簇索引之上创建的索引称之为辅助索引,非聚簇索引都是辅助索引,像复合索引、前缀索引、唯一索引。而可以想象,回表就意味着更多磁盘IO,也就意味着慢。辅助索引叶子节点存储的不再是行的物理位置,而是。,从名字上也应该可以猜出什么是覆盖索引了。聚簇索引就是将数据存储与索引放到了一块,当然这样也会导致索引的存储空间,相当于。(如果存在主键索引的话)。

2024-02-04 18:12:23 394

原创 各类型判空操作

开发中经常遇到需要判空的地方,比如对字符串进行判空操作。而有时候工具包太多不知道用哪个。就像下图,光一个 StringUtils 就有十几个包弹出来。怎么选?其实用哪个都行。有了自己专属的开发习惯,不管客观上这个习惯是否是最优的,但一定要有一套,然后随着经验积累和实践,将这套习惯不断修整精进,达到个人开发效率的最高程度。

2024-02-01 18:50:06 392

原创 纪念JDBC

我们是学 java 的,我们要操作数据库,我们怎么办?聪明的 Sun 公司想了个办法,我们定义一套 java 接口,一套标准的操作数据库的 API,你们各家数据库公司都按我的来,不按我来的都给我滚。于是就有了 JDBC,JDBC 就是这套接口的名字,全称叫(Java 数据库连接)。我们也就应该知道,你光有接口是操作不了数据库的,所以你要用 MySQL 数据库,就得装上 MySQL 驱动。用谁家的数据库,就装谁家的数据库驱动。比如:</</</</

2024-01-30 15:37:25 395

原创 SpringBoot实现动态数据源配置

DynamicDataSource继承AbstractRoutingDataSource。@Override这里的determineCurrentLookupKey方法,需要返回一个数据源。又有同学问了:DynamicDataSourceContextHolder 又是什么东西?看到 Context 应该很熟悉了,跟程序上下文有关。它的作用就是你查询数据库的时候用哪个数据源,就 setDataSource 哪个。还有点懵?没事,继续往下看。

2024-01-29 16:11:50 1766

原创 师爷,翻译翻译什么叫AOP

也就是抽离出功能模块。先随便写个类。然后就直接一个@Aspect就行了,那这个类就是一个切面类。还要再加一个@Component将该类纳入Ioc容器。就这么简单,狗来了都会写。@Aspect@Component也就是确认功能代码加在哪。先随便写一个方法。然后就直接一个@Pointcut就行了,那这个方法就是一个切点。还要再加上表达式,让系统知道代码加到什么位置。@Aspect@Component这时候有同学问:啊这个execution是什么?里面那又是一坨什么?根本看不懂。

2024-01-18 13:52:28 971

原创 0.o?让我看看怎么个事儿之SpringBoot自动配置

是用来简化 Spring 原生的复杂的 xml 配置的进阶框架。我们用另外一个问题回答这个问题。在新手村时期,我们照着教程生搬硬抄的时候可能也想过这个问题,今天就来简单探究一下。再次强调:看明白本篇内容需要前置知识点,尤其是注解。这一切都要从注解讲起。

2024-01-17 16:47:58 780

原创 Arrays.asList()是个坑

当你向这个List添加或删除一个元素时,程序就会抛出异常(java.lang.UnsupportedOperationException)。用此方法得到的List的。

2024-01-10 16:39:46 317

原创 不是银趴~是@Import!

首先我们要明确:@Import 注解是 Spring 提供的。

2024-01-10 15:18:46 852

原创 @Conditional+@Configuration有没有搞头?

首先明确第一点:@Conditional 是 Spring 提供的。其次明确第二点:Conditional 中文译为:有条件的,依...而定的。

2024-01-08 15:11:14 359

原创 SpringBoot项目搭建

创建项目如下:5. 启动项目在浏览器中输入地址:http://localhost:8080/index浏览器输出如下,则说明项目搭建成功!

2024-01-04 13:49:51 351

原创 学会@ConfigurationProperties月薪过三千

我们在讲 @Value 时知道了如何将配置文件的属性注入到变量中,废话不多说,直接上代码。麻烦?写完之后整整齐齐,帅!如果有人觉得帅,一定还没成长成一个合格的程序员。我们程序员追求什么?优雅。优雅最重要的一条原则是什么?不写重复代码!所以怎么办?有办法。下面我们讲一下。

2024-01-04 13:44:32 1006

原创 @Value是个什么东西

首先我们要明确:@Value 是 Spring 框架的注解。它有什么作用呢?

2024-01-03 11:48:50 428

原创 Java注解,看完就会用

元注解 public @interface 注解名称 {属性列表;

2024-01-02 09:56:54 321

原创 终于搞懂动态代理了!

我们从设计模式中的代理模式开始说。

2024-01-01 11:38:35 970

原创 学一点关于JVM类加载的知识

Java 虚拟机把描述类的数据从 Class 文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的 Java 类型,这个过程被称作虚拟机的类加载机制。

2023-12-27 15:36:32 314

原创 Java反射,看完就会用

Java反射,看完就会。

2023-12-17 17:54:02 30

原创 FinalShell远程连接服务器

我们的服务器一般在远方的机房中,那么想要操作服务器最方便的方式就是进行远程的连接访问。

2022-02-13 17:07:32 1375

原创 mysql新建一张表

USE database01;CREATE TABLE IF not EXISTS setmeal(id int(11) PRIMARY KEY AUTO_INCREMENT,name VARCHAR(32),code VARCHAR(32),helpCode VARCHAR(32),sex VARCHAR(32),age VARCHAR(32),price float(5,2),remark VARCHAR(128),attention VARCHAR(128),img VARCH.

2022-02-06 15:19:37 759

原创 数据库date格式返回前端为一串数字

问题描述:mysql数据库中存储字段类型为date,当从数据库中查出来打印日志是没问题的,但是不经操作直接set到对象中返回前端显示不是yy-mm-dd格式的日期,而是一串长数字。修改操作:1. 改变日期格式SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");String format = sdf.format(date);2. 将返回对象中orderDate数据类型改为String然后返回前端(因为

2022-02-06 15:02:08 2831

原创 Mybatis/Mybatis-Plus驼峰式命名映射

方法一:在springboot配置文件application.yml中写入配置信息如下:mybatis-plus: configuration: #在映射实体或者属性时,将数据库中表名和字段名中的下划线去掉,按照驼峰命名法映射 address_book ---> addressBook map-underscore-to-camel-case: true方法二:通过mybatis配置文件:<?xml version="1.0" encoding="UT

2022-02-05 22:19:45 4111

原创 mysql添加数据的同时返回自增主键id

方法一(实测可用):<insert id="add" useGeneratedKeys="true" keyProperty="id" parameterType="com.zhengfeng.health.pojo.Order"> insert into t_order (id, member_id, orderDate, orderType, orderStatus, setmeal_id) VALUES(null, #{memberId}, #{ord

2022-02-05 21:58:46 2416

原创 查询mysql某时间段内数据

需求:前端发送ajax请求,参数为int year, int month, 需要返回给前端对应月份下的数据。实现方法一(利用工具类静态方法实现):public class DayofMonthUtils { /** * 获取某年某月的第一天 * @param year * @param month * @return */ public static String getFisrtDayOfMonth(int year,i

2022-01-28 12:19:53 246

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除