- 博客(294)
- 收藏
- 关注
原创 SpringMVC入门案例
SpringMVC入门案例步骤1:创建Maven项目步骤2:补全目录结构步骤3:导入依赖包步骤4:创建配置类步骤5:创建Controller类步骤6:写个Servlet配置类,类似web.xml步骤7:配置Tomcat环境步骤8:启动Tomcat运行项目步骤9:浏览器访问步骤10:修改Controller返回值解决上述问题步骤11:设置返回数据为json。
2022-11-01 14:56:51
690
原创 mysql中添加字段,索引sql语句
mysql中添加字段,添加索引sql语句# 添加列alter table `tbl_stu` add column `stu_name` varchar(20) DEFAULT '' COMMENT '学生姓名' after `stu_no`;# 修改列alter table `tbl_stu` modify column `stu_name` varchar(30) DEFAULT '' COMMENT '学生姓名'; # 删除列alter table `tbl_stu` drop col
2021-09-23 20:04:07
1256
原创 hutool中Convert工具类的常用方法
hutool中Convert工具类的常用方法方法都是public static,以下省略不写。1、String numberToChinese(double number, boolean isUseTraditonal)功能:数字转中文。测试代码:
2021-04-17 19:53:41
4274
2
原创 jdk8新特性stream流式计算常用方法
jdk8新特性stream流式计算Stream的特点:(1)不存储元素;(2)不改变源数据;(3)具有延迟执行,类似懒加载。特此记录Stream的学习案例:先设计一个类:package com.pipi.test;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;import lombok.experimental.Accessors;import org.jun
2021-04-16 17:59:04
1159
原创 hutool中CollUtil工具类的常用方法
hutool中CollUtil工具类的常用方法其实Java也自带集合工具类的,这个类就是Collections。如果在Collections里面没找到想要使用的方法,可以在CollUtil再看看。1、< T > ArrayList< T > newArrayList(T… values)功能:获取一个新的ArrayList。测试代码:@Testpublic void m1() { // 获取普通List List<Integer> list
2021-04-16 17:28:09
25695
2
原创 Java中Objects类的常用方法
Java中Objects类的常用方法Objects类提供了一些工具方法,都是public static修饰的。而且Objects本身是工具类,不提供构造方法,不能继承。其构造方法源码为:public final class Objects { private Objects() { throw new AssertionError("No java.util.Objects instances for you!"); } // ...}设置几个类,方便测
2021-04-16 12:35:06
1069
原创 hutool中BeanUtil工具类的常用方法
hutool中BeanUtil工具类的常用方法在工作当中,经常碰到使用工具类处理数据。也没再看到过这样的代码:if (user != null) { // ...}都是被工具类的方法替代了,为此,特学习了hutool的一些常用工具类。先设计几个类,用来测试:package com.pipi.hutool.beanutil;import cn.hutool.core.bean.BeanUtil;import cn.hutool.core.date.DateUtil;import l
2021-04-15 19:46:57
19180
原创 Java中的Lock与synchronized的区别
Java中的Lock与synchronized的区别先弄清一个问题:一、什么是可重入锁?可重入锁就是说某个线程已经获得某个锁,可以再次获取锁而不会出现死锁。看一个synchronized的例子:package com.pipi.juc;public class WhatReentrant { public static void main(String[] args) { new Thread(new Runnable() { @Overrid
2021-04-14 19:57:33
389
原创 Java中不使用任何接口,实现两个正整数字符串的乘积计算
曾在笔试题中看到过这题,特此记录:如果能用接口实现,那就可以使用BigInteger类的multiply()方法。不用接口的实现代码:class A { public static String multiply(String num1, String num2) { // 先把string翻转 String n1 = new StringBuilder(num1).reverse().toString(); String n2 = new S
2021-04-14 17:18:21
387
2
原创 不使用synchronized和lock,如何实现一个线程安全的单例?
面试官:不使用synchronized和lock,如何实现一个线程安全的单例?1、饿汉式:利用静态代码只执行一次实例化一个对象:public class Singleton { private static Singleton instance = new Singleton(); private Singleton() { } public static Singleton getInstance() { return instance;
2021-04-13 20:42:48
451
3
原创 Mysql中的锁机制
mysql锁机制:1、什么是锁?锁是计算机控制多个进程或者线程,对统一资源访问的一种机制。2、锁的分类:按对数据操作的类型上分为:读锁,写锁;按照锁的粒度分为:表锁,行锁。读锁:即共享锁,针对同一份数据,多个操作可以同时运行而不会相互影响。写锁:即排它锁,当前写操作没有完成前,它会阻断其他写锁和读锁。3、共享锁例如:有两个线程,A和B线程。A线程先把user表加上读锁:lock table user read;此时,A线程只能读user表的数据,不能修改user表的数据,且不能读
2021-03-30 21:00:48
191
1
原创 Mysql中show profile的使用
Mysql中show profile的使用1、Show profile它是什么?是mysql提供可以用来分析当前会话中语句执行的资源消耗情况,可以用于sql的调优测量。默认情况下,参数处于关闭状态,并保存最近15次的运行结果。Show variable like ‘profiling’;2、开启profile:set profiling=on;开启后,mysql会记录所有sql语句的执行消耗信息。3、查看profiles:show profiles;信息包括:Query_ID(查询id)
2021-03-30 20:55:25
752
原创 Mysql中的慢查询日志
Mysql中的慢查询日志1、什么是慢查询日志?Mysql的慢查询日志是指mysql提供的一种日志记录,它用来记录在mysql中相应时间超过阀值的语句,具体指运行时间超过long_query_time值的sql,则会被记录到慢查询日志。Long_query_time的默认值为10秒,显然这时间有点长。默认情况下,mysql数据库没有开启慢查询日志,需要我们手动来设置这个参数。当然,如果不是调优需要的话,一般不建议启动该参数,因为开启慢查询日志或多或少带来一定的性能影响。2、查看mysql是否开启
2021-03-30 20:49:07
295
原创 Mysql中的explain查看执行计划
Mysql中的explain查看执行计划1、explain是什么?查看执行计划。2、怎么使用?explain + sql语句。3、执行计划包含的信息:id,select_type,table,type,possible_keys,key,key_len,ref,rows,Extra4、各个字段的意思:(1)Id: select查询的序列号,包含一组数字,表示查询中执行select字句或操作的顺序。Id有三种值:id相同,执行顺序由上至下。id不同,如果是子查询,id的序号会递增
2021-03-30 20:45:16
4159
原创 Mysql中的索引
Mysql中的索引1、什么是索引?Mysql官方给出的索引的定义:索引(Index)是帮助mysql高效获取数据的一种数据结构。我们可以简单理解为:已经排好序的快速查找数据结构。数据本身之外,数据库还维护着一个满足特点查找算法的数据结构,这些数据结构以某种方式指向数据,这样就可以在这些数据结构的基础上实现高级查找算法,这种数据结构就是索引。一般来说索引本身也很大,不可能全部存储在内存中,因此索引往往以索引文件的形式存储在磁盘上。我们平常所说的索引,如果没有特别指明,都是指B树(多路搜索树,并不一
2021-03-30 20:35:47
130
原创 Mysql的7种join理论
Mysql的7种join理论1、Mysql分层结构:(1)连接层(2)服务层(3)引擎层(4)存储层2、Mysql引擎十多种,主流的有两种:MyISAM,InnoDB对比项MyISAMInnoDB主外键不支持支持事务不支持支持行级锁表级锁,即使操作一条记录也会锁住表,不适合高并发行级锁,只锁住操作的那行数据,适合高并发缓存只缓存索引,不缓存真实数据不仅缓存索引,还缓存真实数据,对内存要求较高,内存的大小对性能有决定性影响表空间小
2021-03-30 17:19:30
220
原创 SpringBoot集成Redis缓存
SpringBoot集成Redis缓存1、新建SpringBoot项目后,引入redis依赖<!--redis--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency>2、编写yml配置文件serv
2021-01-29 15:34:59
896
2
原创 Redis缓存穿透和雪崩
redis缓存穿透和雪崩1、什么是Redis 缓存穿透?缓存穿透的概念很简单,用户想要查询一个数据,发现 redis 内存数据库没有,于是向持久层数据库查询。当用户很多的时候,缓存都没有命中,于是都去请求了持久层数据库。这会给持久层数据库造成很大的压力,这时候就出现了缓存穿透。2、缓存穿透的两种解决方案:(1)布隆过滤器布隆过滤器是一种数据结构,对所有可能查询的参数以 hash 形式存储,在控制层先行校验,不符合则丢弃,减小了对底层存储系统的查询压力。(2)缓存空对象当持久层数据库未查询
2021-01-29 15:13:47
332
原创 Redis哨兵模式
Redis哨兵模式1、介绍哨兵模式首先,哨兵模式是一种监控机制,并不是redis独有的。哨兵模式是一种特殊的模式,首先redis提供了哨兵的命令,哨兵是一个独立的进程,作为进程,它会独立运行。其原理是:哨兵通过发送命令,等待redis服务器响应,从而监控运行的多个redis实例是否存活有效。哨兵的作用:通过发送命令,监控主机和从机的运行状态;当哨兵监测到master宕机后,会自动将slave切换成master,然后通过发布订阅模式通知其他的从机,修改配置,连接新主机。然而一个哨兵进程对red
2021-01-29 15:01:32
113
原创 Redis主从复制
redis主从复制一主多从:一个主节点,多个从节点。每个redis默认都是主节点。查看redis的主机从机信息:info replication配置当前redis为从节点,即认谁做老大:slaveof ip port如果自己想当回主机:slaveof no one用命令配置的只是暂时的,重启后失效。真实情况下不会这么做,而是直接配置文件。在从机的redis配置文件中找到配置:#replicof 例如配置成:replicof 127.0.0.1 6379如果主机配置了密码,从机需要主机的
2021-01-29 14:53:11
155
原创 Redis持久化之AOF
Redis持久化之AOFRedis的持久化方式之一RDB是通过保存数据库中的键值对来记录数据库的状态。而另一种持久化方式 AOF 则是通过保存Redis服务器所执行的写命令来记录数据库状态。AOF默认是不开启的,需要我们自己去配置文件开启。1、AOF配置文件在 redis.conf 配置文件中APPEND ONLY MODE下:######################## APPEND ONLY MODE ############################ Redis 默认
2021-01-29 14:42:28
127
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人