- 博客(23)
- 资源 (1)
- 收藏
- 关注
原创 JVM总结
JVM前言一、java内存区域java运行时内存数据区,它的划分具体如下:(1)虚拟机栈:虚拟机栈是线程私有的数据区,java虚拟机栈的生命周期与线程相同,虚拟机栈也是局部变量的存储位置。方法在执行过程中,会在虚拟机栈中创建一个栈帧(stack frame)。每个方法执行的过程就对应了一个入栈和出栈的过程,栈帧中包括:局部变量表、操作数栈、动态链接和返回地址(2)本地方法栈:本地方法栈也是线程私有的数据区,本地方法栈存储的区域主要是Java中使用native修饰的方法。(3)程序计数器:程
2022-08-01 14:38:00
271
原创 Spring Boot
Spring一、IOC(控制反转)Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。因为由容器帮我们查找及注入依赖对象,对象只是被动的接受依赖对象1.Autowired和Resource两者都是bean注入时使用的。但@Resource并不是Spring注解。它是Javax.annotation.Resource。Autowired注解是按照类型装配对象。
2022-06-20 11:04:55
178
原创 剑指offer 2
常见算法对常见算法题目总结归纳文章目录常见算法(1)找出数组中任意重复的数字(2)二维数组中查找(3)替换空格(4) 从尾到头打印链表(5)重建二叉树(6)反转二叉树(7) 填充二叉树的左右指针(8) 将二叉树展开称为链表(9)用两个栈实现队列(10) 斐波那契数列(11) 旋转数组中最小数字(12)矩阵中的路径(1)找出数组中任意重复的数字int findRepNums(int[] nums) { HashMap<Integer, Integer> map = new
2022-04-20 23:41:49
1982
原创 Java 锁机制
JAVA 锁机制文章目录JAVA 锁机制线程上下文切换一、对象锁synchronized锁机制1.sychronized使用方式:2.实现两个线程交替打印思路:3.线程同步?线程互斥?4.线程池 ThreadPoolExcutor5.线程池中线程复用原理6 callable 和 future7 线程池的核心线程数如何设置8 ThreadLocal 原理9 CAS 乐观锁二、AQS (abstractQueueSychronized)1.synchronized 和 reentrantLock有什么不同2
2022-04-13 21:53:57
473
原创 MYSQL
MYSQL mysql优化的过程就是遵循一些原则,让mysql优化器按照预想的方式运行,提高执行效率MYSQL 优化``文章目录MYSQLMYSQL 优化MYSQL架构一、SQL语句的执行过程?二、自增主键2.索引3.索引的底层数据结构4.索引的使用场景4.索引失效的场景5.最左匹配原则6.mysql的事务7.数据库的隔离级别8.mysql的主从复制MYSQL架构mysql可以分为应用层、逻辑层、数据库引擎层、物理层应用层:主要负责和客户端进行链接,响应客户端请求、返回数据等;逻辑层:包括
2022-04-09 17:45:48
328
原创 【ThreadLocalMap】
文章目录前言一、ThreadLocalMap是什么?二、详解1.ThreadLocalMap2.ThreadLocalMap设计时的对上面问题的对策:总结前言提示:以下是本篇文章正文内容,下面案例可供参考一、ThreadLocalMap是什么?ThreadLocalMap类的定义是在ThreadLocal类中,真正的引用却是在Thread类中二、详解1.ThreadLocalMap代码如下(示例):static class Entry extends WeakReference<..
2021-12-06 22:26:04
1240
原创 【JAVA中的四种引用级别--强、软、弱、虚】
爱自己是终身浪漫的开始 --王尔德文章目录前言一、JAVA中有哪些引用的四种级别?二、具体内容1.强引用2.软引用 (SoftReference)3.弱引用(WeakReference)虚引用(PhantomReference)前言本篇内容总结的java中引用的类型一、JAVA中有哪些引用的四种级别?强引用、软引用、弱引用、虚引用;Java执行GC判断对象是否存活有两种方式其中一种是引用计数。从JDK 1.2版本开始,对象的引用被划分为4种级别,从而使程序能更加灵活地控制对象的生命周.
2021-12-06 21:45:58
412
原创 设计模式--桥接模式】
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、桥接模式的使用场景?二、具体思路1.新手实现2.桥接模式总结前言我们可能看了很多讲设计模式的书籍,看后既忘无法将它用到实际的业务场景中去,这个系列的文章将结合具体场景分析各种模式的使用。提示:以下是本篇文章正文内容,下面案例可供参考一、桥接模式的使用场景?示例:结合实际经验来说,我们常见的一种场景(支付场景)目前支付三方平台将支付宝、微信等集中起来提供给商家,同时支持人脸指纹密码等多种支付方式。抽象来看就是多支
2021-12-03 20:58:01
263
原创 awk学习记录
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、awk是什么?二、使用步骤1.awk 语法模式2.内置变量3.示例总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、awk是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.awk
2021-05-01 15:48:52
143
原创 SpringBoot拦截器和过滤器
因为项目中有用到过滤器和拦截器这里做一下总结:之后会不断补充~实际开发中我们会有需求在SpringBoot 中使用filter 处理请求以及返回。比如说我们常见的跨域攻击处理、处理参数、以及设置Header返回参数、Filter实现签名认证鉴权等所谓的跨域攻击就是:1,JavaScript由于安全性方面的考虑,不允许页面跨域调用其他页面的对象,那么问题来了,什么是跨域问题?答:这是由于浏览器同源策略的限制,现在所有支持JavaScript的浏览器都使用了这个策略。那么什么是同源呢?所谓的同源是指三
2020-12-04 21:41:08
522
原创 开发常用工具汇总
对于开发人员而言,开机必备的几样工具以及安装详情记录一下方便安装。Homebrew安装/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"卸载/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"2.Linux 和 macOs
2020-11-24 21:22:08
225
原创 ES学习记录
学习目标:ES +spark mlib提示:这里可以添加学习目标例如:ES 海量数据搜索原理ES原理:例如:1、 Elasticsearch概念Elasticsearch 是一个分布式可扩展的实时搜索和分析引擎,一个建立在全文搜索引擎 Apache Lucene™ 基础上的搜索引擎.当然 Elasticsearch 并不仅仅是 Lucene 那么简单,它不仅包括了全文搜索功能,还可以进行以下工作:分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索。实时分析的分布式搜索引擎。El
2020-11-22 18:35:15
148
原创 vim 使用心得
vim使用vim 命令强大而且好用,但是命令比较多。这里做一下记录方便查询和记忆文章目录vim使用前言一、vim的三种命令模式二、vim 的查找替换功能1.vi/vim 中可以使用 : s 命令来替换字符串。该命令有很多种写法,记录几种2.删除操作3.撤销修改4.vim下面的搜索总结前言提示:以下是本篇文章正文内容,下面案例可供参考一、vim的三种命令模式命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)命令模式:用户刚
2020-11-18 21:34:33
495
原创 高并发场景下redis 缓存穿透问题
简单说一下背景在高并发场景下对redis缓存进行操作,redis缓存失效,大量请求瞬间穿透到DB。我们先看一下此种场景下这样写的问题public void update(List<SpuInfoList> SpuInfoList) { if (CollectionUtils.isEmpty(SpuInfoList) ) { return; } int expire = RandomUtils.nextInt(0, RA
2020-11-06 19:38:32
360
原创 Linux 系列
Shell脚本操作数据库实战生产环境中经常会有一些场景需要,使用shell 脚本完成数据库表数据的查询导出1-1 安装MySQL数据库,导入测试数据1-2 Shell脚本与MySQL数据库交互(增删改查)1-3 Shell脚本与MySQL数据库交互(增删改查)_21-4 利用Shell脚本将文本数据导入到MySQL中1-5 利用Shell脚本将文本数据导入到MySQL中_21-6 备份MySQL数据,并通过FTP将其传输到远端主机-上1-7 备份MySQL数据,并通过FTP将其传输到远端主机
2020-11-03 20:14:20
232
1
原创 Redis 主从同步配置
方法一 :命令如图所示 如果6380为从节点 则在改节点执行 slaveof + 主节点ip+端口号即可主从复制是异步的 执行时间取决于数据量的大小*也可以取消主从同步 此时6379同步给6380的数据不会被清除。但是当进行切主操作,也就是6380要作为新服务的从节点,则会清除其中原有的数据。2.配置配置可以统一管理 但是需要重启实验...
2020-11-01 22:20:38
161
原创 redis pipeline 使用
pipline :可以将命令统一打包发送到redis服务端。如果执行 n 次的话(比如 n 次 set 操作),网络耗时时间开销是非常大的。由于命令时间非常短,影响时间开销的主要是网络时间,所以我们可以把一组命令打包,然后一次发送过去。这样的话,时间开销就变为:1次网络耗时+n次命令耗时。public static void main(String[] args) { Map<String, Integer> result = Maps.newHashMap(); Jedi
2020-11-01 21:47:28
420
原创 SpringBoot + logback 配置详情
SpringBoot + logback 配置详情<?xml version="1.0" encoding="UTF-8"?><configuration> <include resource="org/springframework/boot/logging/logback/base.xml"/> <property name="ENCODER_PATTERN" value="%d{yyyy-MM-dd HH:mm:
2020-11-01 21:14:20
160
原创 Mybatis Insert……on duplicate key update 用法
Mybatis Insert……on duplicate key update 用法批量插入Mapper 文件int insertBatch(List userDo); <insert id="insertBatch" parameterType="java.util.List"> insert into tb_tablename (user_id, user_type, user_name, create_time, update_time,
2020-11-01 20:58:05
806
原创 Mybatis+SpringBoot 多数据源配置
Mybatis+SpringBoot 多数据源配置记录一下多数据源的配置目录结构通常是在dal层@Configuration@EnableConfigurationProperties({MysqlDataSourceConfig.class})@MapperScan(value = "com.example.mytest.dal.dao.test1", sqlSessionFactoryRef = "test1SqlSessionFactory")@Slf4jpublic class Tes
2020-10-31 16:42:35
142
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人