自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 罗马数字 与 阿拉伯数字 互转工具类

罗马数字与阿拉伯数字互转

2023-02-06 15:29:24 356 1

原创 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 501

原创 【Java面试】ElasticSearch

Java面试ElasticSearch

2022-06-16 15:33:57 586 2

原创 【Java面试】RabbitMQ

Java面试RabbitMQ

2022-06-16 10:12:08 483

原创 【Java面试】Redis

Java面试Redis

2022-06-15 19:56:47 498

原创 【Java面试】SpringBoot

SpringBoot面试题

2022-06-15 16:09:27 363

原创 【Java面试】Linux

Java面试Linux

2022-06-14 22:07:41 631

原创 【Java面试】网络编程

Java面试网络编码

2022-06-14 18:45:24 220

原创 【Java面试】Java并发

Java面试并发

2022-06-14 11:18:37 244

原创 【Java面试】Java集合

Java面试集合框架

2022-06-13 20:17:52 467

原创 写一个线程安全的单例模式

写一个线程安全的单例模式

2022-06-13 17:41:24 1924

原创 【Java面试】Spring MVC

Java面试Spring MVC

2022-06-10 22:01:08 225

原创 【Java面试】Spring

Java面试Spring

2022-06-09 22:01:45 240

原创 【Java面试】Mybatis

Java面试Mybatis

2022-06-09 20:54:34 225

原创 【Java面试】MySQL

Java面试MySQL

2022-06-08 22:15:28 622

原创 【Java面试】JVM

Java面试JVM

2022-06-08 07:37:32 229

原创 【Java面试】Java多线程

Java多线程面试题

2022-06-05 16:06:46 235

原创 【Java面试】Java基础题

Java基础面试题

2022-06-05 13:38:15 367

原创 【Java面试】Java集合

Java集合面试题

2022-06-05 08:36:29 208

原创 【Java面试】Java基础

Java基础面试题

2022-06-05 08:07:01 233

原创 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 1140

原创 hutool中Convert工具类的常用方法

hutool中Convert工具类的常用方法方法都是public static,以下省略不写。1、String numberToChinese(double number, boolean isUseTraditonal)功能:数字转中文。测试代码:

2021-04-17 19:53:41 3674 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 1063

原创 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 21849 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 966

原创 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 17228

原创 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 347

原创 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 335 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 387 3

原创 Mysql中的锁机制

mysql锁机制:1、什么是锁?锁是计算机控制多个进程或者线程,对统一资源访问的一种机制。2、锁的分类:按对数据操作的类型上分为:读锁,写锁;按照锁的粒度分为:表锁,行锁。读锁:即共享锁,针对同一份数据,多个操作可以同时运行而不会相互影响。写锁:即排它锁,当前写操作没有完成前,它会阻断其他写锁和读锁。3、共享锁例如:有两个线程,A和B线程。A线程先把user表加上读锁:lock table user read;此时,A线程只能读user表的数据,不能修改user表的数据,且不能读

2021-03-30 21:00:48 140 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 656

原创 Mysql中的慢查询日志

Mysql中的慢查询日志1、什么是慢查询日志?Mysql的慢查询日志是指mysql提供的一种日志记录,它用来记录在mysql中相应时间超过阀值的语句,具体指运行时间超过long_query_time值的sql,则会被记录到慢查询日志。Long_query_time的默认值为10秒,显然这时间有点长。默认情况下,mysql数据库没有开启慢查询日志,需要我们手动来设置这个参数。当然,如果不是调优需要的话,一般不建议启动该参数,因为开启慢查询日志或多或少带来一定的性能影响。2、查看mysql是否开启

2021-03-30 20:49:07 236

原创 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 3884

原创 Mysql中的索引

Mysql中的索引1、什么是索引?Mysql官方给出的索引的定义:索引(Index)是帮助mysql高效获取数据的一种数据结构。我们可以简单理解为:已经排好序的快速查找数据结构。数据本身之外,数据库还维护着一个满足特点查找算法的数据结构,这些数据结构以某种方式指向数据,这样就可以在这些数据结构的基础上实现高级查找算法,这种数据结构就是索引。一般来说索引本身也很大,不可能全部存储在内存中,因此索引往往以索引文件的形式存储在磁盘上。我们平常所说的索引,如果没有特别指明,都是指B树(多路搜索树,并不一

2021-03-30 20:35:47 93

原创 Mysql的7种join理论

Mysql的7种join理论1、Mysql分层结构:(1)连接层(2)服务层(3)引擎层(4)存储层2、Mysql引擎十多种,主流的有两种:MyISAM,InnoDB对比项MyISAMInnoDB主外键不支持支持事务不支持支持行级锁表级锁,即使操作一条记录也会锁住表,不适合高并发行级锁,只锁住操作的那行数据,适合高并发缓存只缓存索引,不缓存真实数据不仅缓存索引,还缓存真实数据,对内存要求较高,内存的大小对性能有决定性影响表空间小

2021-03-30 17:19:30 169

原创 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 806 2

原创 Redis缓存穿透和雪崩

redis缓存穿透和雪崩1、什么是Redis 缓存穿透?缓存穿透的概念很简单,用户想要查询一个数据,发现 redis 内存数据库没有,于是向持久层数据库查询。当用户很多的时候,缓存都没有命中,于是都去请求了持久层数据库。这会给持久层数据库造成很大的压力,这时候就出现了缓存穿透。2、缓存穿透的两种解决方案:(1)布隆过滤器布隆过滤器是一种数据结构,对所有可能查询的参数以 hash 形式存储,在控制层先行校验,不符合则丢弃,减小了对底层存储系统的查询压力。(2)缓存空对象当持久层数据库未查询

2021-01-29 15:13:47 267

原创 Redis哨兵模式

Redis哨兵模式1、介绍哨兵模式首先,哨兵模式是一种监控机制,并不是redis独有的。哨兵模式是一种特殊的模式,首先redis提供了哨兵的命令,哨兵是一个独立的进程,作为进程,它会独立运行。其原理是:哨兵通过发送命令,等待redis服务器响应,从而监控运行的多个redis实例是否存活有效。哨兵的作用:通过发送命令,监控主机和从机的运行状态;当哨兵监测到master宕机后,会自动将slave切换成master,然后通过发布订阅模式通知其他的从机,修改配置,连接新主机。然而一个哨兵进程对red

2021-01-29 15:01:32 87

原创 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 82

原创 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 85

空空如也

空空如也

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

TA关注的人

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