Java

《重构:改善既有代码的设计》学习笔记

代码的坏味道 名称 说明 重构手法 神秘命名Mysterious Name 好的命名能够节省时间 改变函数神秘、变量改名、字段改名 重复代码Duplicated Name 重复代码让人不得不留意其中的细微差异 提炼函数、移动语句、函数上移 过长函数Long Function 函数越长,就越难理解 提炼函数、以查询取代临时变量、引入参数对象、保持对象完整、以命令取代函数、分解条

SpringBoot定义优雅全局统一Restful API 响应框架

假如现在有一个Java项目,老板让你做项目组长,定义项目基础框架,系统技术架构选型, 你应该如何设计一个规范的统一的Restful API 响应框架呢 思考 目前项目开发,都是基于前后端分离模式开发的,基于后端模板引擎那一套,可能已经不适用一些项目开发流程,和当下开发模式了,尤其在要写比较大型项目,前后端项目拆分,团队共同开发那是必不可少的 目前的前后端开发大部分数据的传输格式都是json,因此定

SpringBoot:如何使用不同环境的配置信息?

一、准备不同环境的配置文件 通用:application.yml   一定会被使用的配置信息,存放通用的配置。 生产环境:application-prod.yml   存放生产环境的配置信息,如生产数据库的连接配置。 开发环境:application-dev.yml   存放开发环境的配置信息,如测试数据库的连接配置。   二、指定使用哪个配置信息   方式一、在app

MySQL(十七)查询优化(二)与数据库主键设计

查询优化(二) 1 覆盖索引 什么是覆盖索引 ​ 看下面的例子,对于联合索引age_sno_name,当查询字段较少时能够使用索引,而字段较多的时候只能进行文件排序,这是由优化器判断通过索引加回表或者直接文件排序的成本来决定的。这种一个索引包含了满足查询结果的数据(select + where + join字句用到的列)就叫做覆盖索引。 二级索引包含主键,这种就是覆盖索引无需回表

01_JS技巧

1.判断对象数据类型 示例代码如下 知识拓展 js 一共有五种基本数据类型:Undefined、Null、Boolean、Number、String、Symbol(代表创建后独一无二且不可变的数据类型)、BigInt(表示任意精度格式的整数) 复杂(引用)数据类型:对象、数组和函数 二者之间的区别:存储位置不同 1、基本数据类型存储在栈(stack)中的简单数据段,占据空间小、大小固定,

nacos1.4读取properties配置文件中的数组对象,实现动态更新

  方法一:不可自动更新配置,有待检查。 配图     方法二:可以实现同nacos实时更新配置 最后在类中调用  

springboot整合rabbbitmq--注解方式+yml配置

maven依赖   1. 测试方法 controller  生产者 2 .消费者--监听 邮件和rabbitmq配置  

JS闭包理解

概念 在一个函数中嵌套另一个函数,嵌套(内部)函数对其容器(外部)函数是私有的。闭包是一个可以自己拥有独立的环境与变量的表达式(通常是函数,因为ES6有块级作用域的概念) 闭包是指有权访问另一个函数作用域中变量的函数。 闭包作用: 可以在函数外部访问到函数内部的局部变量; 让这些变量始终保存在内存中,不会随着函数的结束而自动销毁; 闭包经典案例:要求点击每个li标签,弹出对应的索引。(0,1

Docker 构建 elasticsearch + kibana

elasticsearch 环境准备 修改系统配置 重新加载配置 下载ik分词器 本次部署使用的是7.10.1版本,可在此处直接下载,其它版本请在github自行下载。 将ik分词器解压后上传到/usr/local/ik下 下载镜像 部署单节点 准备ik分词器 将ik分词器解压后上传到用户目录下 创建容器 cluster.name:配置es集群名称 node.name:节点名称 net

JAVA中的内存分配

JAVA中的内存分配 栈:方法运行时使用的内存,比如main方法的运行,进入方法栈中执行 堆:存储对象或数组,new来创建的,都存储在堆内存中 方法区:存储可以运行的class文件 本地方法栈:JVM在使用操作系统功能的时候使用,和我们开发无关 寄存器:给CPU使用   总结: 只要是new出来的一定在堆里面开辟了一个小空间 如果new了很多次,那么在堆里有多个小空间,每个小空间

SQL后半部和JDBC

SQL后半部 排序order by asc 升序desc 降序select *from 表名 order by 列名 asc ; select *from 表名 order by 列名 asc , 列名 desc ; 聚合 count select count(*) from 表名 where 列名 > 200 ; sum select sum(列名 )

SpringMVC02_整合SSM

一、SSM 概述 ​ Spring 作为一站式框架,其本质是一个容器,就是一个存放了一个个描述不同对象属性和方法的定义单元,需要使用的时候就通过反射机制根据把对象创建好,再将描述的属性初始化。 ​ 一般我们所说的 SSM 是指 Spring、SpringMVC 和 Mybatis 。我们所熟悉的数据持久层、业务逻辑层和表现层在 SSM 中体现为: ​ 表现层:SpringMVC,其中 Contr

浅聊Java核心技术之高可扩展利器SPI

SPI的概念 JAVA SPI = 基于接口的编程+策略模式+配置文件 的动态加载机制 SPI的使用场景 Java是一种面向对象语言,虽然Java8开始支持函数式编程和Stream,但是总体来说,还是面向对象的语言。在使用Java进行面向对象开发时,一般会推荐使用基于接口的编程,程序的模块与模块之前不会直接进行实现类的硬编码。而在实际的开发过程中,往往一个接口会有多个实现类,各实现类要么

闲聊 React hook,我们聊的是什么?

React hook 的由来 React hook 的由来,其实也可以看作是前端技术不断演进的结果。 在 world wide web 刚刚诞生的洪荒时代,还没有 js,Web 页面也都是静态的,更没有所谓的前端工程师,页面的内容与更新完全由后端生成。这就使得页面的任意一点更新,都要刷新页面由后端重新生成,体验非常糟糕。随后就有了 Brendan 十天创世、网景微软浏览器之争、HTML 的改进、W

8-001-并查集基本概念

并查集是一种用于处理不相交集合的合并和查询问题的数据结构。它可以把一些元素划分为若干个不相交的集合,并支持两种操作: 合并(Union):把两个不相交的集合合并为一个集合。 查询(Find):查询两个元素是否在同一个集合中。 并查集的思想是用一个数组表示了整片森林,树的根节点唯一标识了一个集合,我们只要找到了某个元素的的树根,就能确定它在哪个集合里。 为了让你更好地理解并查集的原理和操作,我将

MDC – Checkbox

前言 Checkbox 不是搭配 TextField 使用, 而是搭配 FormField. 所以独立一篇来写.   参考 Docs – Selection controls: checkboxes   效果   Step by Step install HTML CSS Style 注: 它的颜色是 secondary 哦. JavaS

day09-达人探店

功能04-达人探店 5.功能04-达人探店 5.1发布&查看探店笔记 5.1.1发布探店笔记 探店笔记类似点评网站的评价,往往是图文结合。对应的表有两个: tb_blog:探店笔记表,包含笔记中的标题、文字、图片等 tb_blog_comments:其他用户对探店笔记的评价 点击首页最下方菜单栏中的“+”按钮,即可发布探店图文: 需要注意的是: 发布照片和发布笔记这两个功能是分离

【必知必会的MySQL知识】③DML语言

目录前言准备插入数据语法格式插入完整行数据插入多行数据将检索出来的数据插入表更新数据准备两张表语法实践操作删除数据语法实践操作小结 前言 前面的两篇文章中,我们已经对MySQL有了基本了解。 并且知道了怎么用工具连接数据库?怎么创建数据库?怎么创建表? 这一篇呢我们就来看看怎么在我们创建的表中插入数据、删除数据和修改数据。也就是上一篇文章中提到的DML 数据操作语言 准备 根据上一章所说的,我们

ThreadLocal 详解

1.ThreadLocal是什么? / 为什么要使用ThreadLocal? ThreadLocal是什么?   ThreadLocal就是一个java类,这个类的作用和线程局部变量有关。线程局部变量作用域是当前单个线程,在线程开始时分配,线程结束时回收。   ThreadLocal类位于java.lang包下,由JDK包提供。如果创建了一个ThreadLocal变量,那么访问这个变量的每个线程都

学习jdbc时遇到的问题

jar包问题 问题描述: 如果是上述的问题 , 可能就是jar包的问题 我的Mysql 是8.0.26的 , 而我所用的Java包时 MySQL5的Java包 , 这时只要把jar包更改为 MySQL 8 的jar包即可解决问题成功使用

安装jdk

Hello World 1.新建文件夹 2.新建java文件 文件后缀名.java Hello.java 【注意】系统可能未显示文件后缀名,要手动打开 3.编写代码 4.编译javac Java文件 5.运行class文件,java class文件 ![](https://img2023.cnblogs.com/blog/3178571/202305/3178571-202305021111

Hello world

Hello World 1.新建文件夹 2.新建java文件 文件后缀名.java Hello.java 【注意】系统可能未显示文件后缀名,要手动打开 3.编写代码 4.编译javac Java文件 5.运行class文件,java class文件 ![](C:Users86178Pictures截图Screenshots屏幕截图 2023-05-02 104326.png) 可能遇到的情况

Redis 是在CentOS 5.7上学习入门&win10安装windows版Redis

Redis 是在CentOS 5.7上学习入门&win10安装windows版Redis   ~~~~~~~~~~~~~~~~~~~windows环境下redis设置密码和修改端口教程:在windows环境下启动redis服务,前提是你安装好了,启动如下:一,进入redis的安装目录下,在地址栏输入“cmd”, redis-server.exe redis.windows.con

linux安装jdk1.8

为防止操作权限不足,建议切换root用户,当然如果你对Linux命令熟悉,能够自主完成权限更新操作,可以不考虑此推荐。 环境:centos7.6 ssh连接工具:tabby(自从用了这个工具,我再也不用xshell了,这个工具自带文件上传,还有网页版) 创建目录 把jdk的压缩包上传到/opt/jdk目录下 压缩包自己百度下载或者直接在下面的网盘链接提取。 链接:https:

Spring Boot 整合邮件服务

参考教程 首先参考了 Spring Boot整合邮件配置,这篇文章写的很好,按照上面的操作一步步走下去就行了。 遇到的问题 版本配置 然后因为反复配置版本很麻烦,所以参考了 如何统一引入 Spring Boot 版本?。 FreeMarker 在配置 FreeMarker 时,发现找不到 FreeMarkerConfigurer 类,参考了 springboot整合Freemark模板(详尽版)

使用dubbo 2.7 编写接口,使用jmeter调用

创建spring-boot winddows 安装 zookeeper3.4.14 并启动 父项目用的boot创建的时候添加web依赖,其他用的是maven 父项目pom ` commo-api server-provider common 接口,实体类 server-provider 接口实现类 接口实现类 启动类 配置文件 运行启动类,看到这个就成了 使

gcc/g++编译

gcc/g++编译 gcc 本节来自「参考1」 简介 GCC 的意思也只是 GNU C Compiler 而已。经过了这么多年的发展,GCC 已经不仅仅能支持 C 语言,它现在还支持 Ada 语言、C++ 语言、Java 语言、Objective C 语言、Pascal 语言、COBOL语言,以及支持函数式编程和逻辑编程的 Mercury 语言等。 而 GCC 也不再单只是 GNU C 语

Three.js#04#Responsive Design&Scenegraph

参考https://threejs.org/manual/#en/responsive和https://threejs.org/manual/#en/scenegraph 前者主要是说怎样创建一个响应式的three.js应用,就是在变化屏幕大小的时候,画面不会畸形。后者是再说,怎么组合小的组件变成一个大的组件(依赖于一个空组件object3D) 下面是示例代码: index.html <!D

使用 Sharding Jdbc 实现读写分离

上一篇博客介绍了 MySQL 的主从复制的搭建,为实现读写分离创造了条件。对于一个网站来说,80% 来源于读操作,绝大多数情况下的网站宕机,都是由于过多的读操作导致的,因此在实际的生产环境中,经常会搭建一主多从的架构,主库只负责写操作,多个从库用来负责读操作,对于少量需要实时获取信息的读操作,可以从主库进行读取。 本篇博客将使用 Sharding Jdbc 在主从复制的基础上和已经开发好的项目上,

(一 ).react官网阅读 ———描述UI

这个系列笔记,会从头阅读react 官网文档内容,记录阅读笔记。 从react 官网首页可以(最重要部分是中间),分为两大块 内容: 学习React | API参考 快速入门: 同时还给出了react 框架思想: 学习React 部分分为四大块; 描述UI 添加交互 状态管理 应急方案 这四块部分,承接上面了react思想的步骤; 描述UI 目录 1. 第一个组件 2. 导入与导出组件

<<  <  1325  1326  1327  1328  1329  1330  1331  1332  1333  1334  1335  >  >>