![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
问题解决
文章平均质量分 75
IT--Fly
静听心灵的窗户
展开
-
ApplicationContextAware 接口妙用
但是SpringBoot的强大让我们无需再配置xml文件,也因此我们无法通过上述方式拿到ApplicationContext对象,所以当在项目需要用到spring中的bean对象时,一般做法就是实现ApplicationContextAware接口,通过这个接口就可以获取到ApplicationContext对象,进入从ApplicationContext中获取所需要bean对象。ApplicationContextAware接口的基本介绍。原创 2023-12-06 15:11:16 · 80 阅读 · 0 评论 -
Redis核心技术与实战
Redis 三大主线高性能主线,包括线程模型、数据结构、持久化、网络框架;高可靠主线,包括主从复制、哨兵机制;高可扩展主线,包括数据分片、负载均衡。Redis底层数据结构动态字符串、双向链表、压缩列表、哈希表、跳表和整数数组为什么哈希表操作变慢了?当你往 Redis 中写入大量数据后,就可能发现操作有时候会突然变慢了。这其实是因为你忽略了一个潜在的风险点,那就是哈希表的冲突问题和 rehash 可能带来的操作阻塞。Redis 解决哈希冲突的方式,就是链式哈希。链式哈希也很容易理解,就是指同原创 2022-04-18 22:26:52 · 3022 阅读 · 0 评论 -
数据结构与算法之链表
如何分析、统计算法的执行效率和资源消耗?多项式时间复杂度。O(1)首先你必须明确一个概念,O(1) 只是常量级时间复杂度的一种表示方法,并不是指只执行了一行代码。比如这段代码,即便有 3 行,它的时间复杂度也是 O(1),而不是 O(3)。 int i = 8; int j = 6; int sum = i + j;我稍微总结一下,只要代码的执行时间不随 n 的增大而增长,这样代码的时间复杂度我们都记作 O(1)。或者说,一般情况下,只要算法中不存在循环语句、递归语句,即使有成千上万行的代原创 2022-02-11 21:14:29 · 426 阅读 · 0 评论 -
如何对CPU过载进行排查
如何对CPU过载进行排查?1、怎么找出有问题的进程2、掌握简单的GC分析技巧3、掌握多线程分析技巧4、多线程的使用注意的问题案例现象CUP使用率持续在80%左右持续在3~8之间1、业务量,高峰期6000/分钟发送量,平均2000/分钟发送量2、服务器状况,两个节点接收数据,单节点消费数据3、每个消息发送处理时间平均为10秒4、单线程模式下节点最大消费能力每秒100条分析1、数据量并不大2、服务器物力资源够用3、单节点有足够的处理能力分析排查-CPU的负载什么事load数?原创 2022-01-28 11:32:51 · 1690 阅读 · 0 评论 -
Dubbo的调用过程
注册服务:resources/dubbo/dubbo_registry.xml#id:标识需要在zookeeper上注册的服务的ID,方便下面暴露服务时引用。#protocol:协议名称#address:注册中心地址#register:是否向此注册中心注册服务,如果设为false,将只订阅,不注册。#check:注册中心不存在时,是否报错。#group:Dubbo提供服务分组,用于当一个接口有多种实现时,可使用group分组。即暴露的服务接口通过group来区分不同的实现类。#inte原创 2021-09-08 20:00:08 · 157 阅读 · 0 评论 -
Dubbo服务调用过程分析
简单的想想大致流程在分析Dubbo 的服务调用过程前我们先来思考一下如果让我们自己实现的话一次调用过程需要经历哪些步骤?首先我们已经知晓了远程服务的地址,然后我们要做的就是把我们要调用的方法具体信息告知远程服务,让远程服务解析这些信息。然后根据这些信息找到对应的实现类,然后进行调用,调用完了之后再原路返回,然后客户端解析响应再返回即可。调用具体的信息那客户端告知服务端的具体信息应该包含哪些呢?首先客户端肯定要告知要调用是服务端的哪个接口,当然还需要方法名、方法的参数类型、方法的参数值,还有可能原创 2021-08-24 18:54:57 · 252 阅读 · 0 评论 -
Spring Security
什么是Spring SecuritySpring Security 是基于Spring AOP和Servlet过滤器的安全框架,它提供全面的安全解决方案,同时在Web请求级别和方法调用级别处理身份确认和授权Spring Security 核心功能1、认证(你是谁,用户/设备/系统)2、验证(你能干什么,也叫权限控制/授权,允许执行的操作)3、攻击防护(防止伪造身份)Spring Security原理技术Filter、Servlet、Spring DI、Spring AOP常用的安全框架目前原创 2021-01-21 20:46:56 · 104 阅读 · 0 评论 -
分布式理论之问题
一、访问一个网站的全过程DNS先尝试从host文件读取域名对应的IP地址,如果找到,则完毕;如果为找找到,则使用DNS进行查找TCP三次握手建立连接负载均衡服务器Nginx?应用服务器Tomcat?浏览器渲染缓存?二、大型网站架构演进1、单机2、单机负载告警,数据库与应用分离3、应用服务器负载告警,让应用服务器走向集群(1)引入负载均衡设备(2)分布式SessionSession Sticky 回话粘滞这个方案本身非常简单,对于web服务器来说,该方案和单机情况是一原创 2020-07-16 03:39:51 · 207 阅读 · 0 评论 -
Java实现链表的创建、删除、修改、查询以及用链表实现一个Stack、Quque
一、什么是链表链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 相比于线性表顺序结构,操作复杂。由于不必须按顺序存储,链表在插入的时候可以达到O(1)的复杂度,比另一种线性表顺序表快得多,但是查找一个节点或者访问特定编号的节点则需要O(n)的时间,而线性表和顺序表相应的时间复杂度分别是O(lo原创 2020-06-22 05:07:19 · 160 阅读 · 0 评论 -
JAVA实现二叉树的创建、前序、中序、后序、层次遍历以及查找删除二叉树中元素节点
什么是树?树 (数据结构名词):树状图是一种数据结构,它是由n(n>=1)个有限结点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:每个结点有零个或多个子结点;没有父结点的结点称为根结点;每一个非根结点有且只有一个父结点;除了根结点外,每个子结点可以分为多个不相交的子树什么是二叉树?树有很多种, 每个节点最...原创 2019-09-24 11:56:18 · 364 阅读 · 0 评论 -
Java底层--JVM(一)
谈谈你对Java的理解?##平台无关性##GC##语言特点##面向对象##类库##异常处理Compile Once,Run Anywhere如何实现?##编译##运行G:\java\src>javap -help用法: javap <options> <classes>其中, 可能的选项包括: -help --help -? ...原创 2019-10-25 22:00:56 · 111 阅读 · 0 评论 -
把一个字符串AaaBbbcccc变成AaaBbbCcc,写一个通用的函数
import java.util.ArrayList;import java.util.Arrays;import java.util.List;import java.util.Scanner;import java.util.stream.Collectors;public class test10 { public static void main(String[] args)...原创 2020-04-16 00:06:18 · 581 阅读 · 0 评论 -
SpringBoot下Redis的操作并连接Redis
1、pom.xml文件导入依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.3.RELEASE</version> </parent> <dependency>原创 2020-05-18 18:59:04 · 294 阅读 · 0 评论 -
Mysql 之架构、索引、锁、语法及理论范式解析
1.如何设计一个关系型数据库?(1)为什么要使用索引----------------------目的:快速查询数据原创 2020-01-20 19:36:28 · 103 阅读 · 0 评论 -
Java垃圾回收机制之垃圾回收算法与新老年代
对象被判定为垃圾的标准没有其他对象的引用判断对象是否为垃圾的算法1.引用计数算法2.可达性分析算法引用计数算法判断对象的引用数量++通过判断对象的引用数量来决定对象是否可以被回收++每个对象实例都有一个引用计数器,被引用则+1,完成引用则-1++任何我引用计数为0的对象实例可以被当作垃圾收集优点:执行效率高,程序执行受影响较小缺点:无法检测出循环引用的情况导致内存泄露可达性...原创 2019-10-30 20:40:17 · 272 阅读 · 0 评论 -
Java底层:JVM(六)
你了解Java的内存模型么内存简介你了解Java的内存模型么程序计数器(Program Counter Register)1.当前线程所执行的字节码行号指示器(逻辑)2.改变计数器的值来选区下一条需要执行的字节码指令3.和线程是一对一的关系即 “ 线程私有”4.对Java方法计数,如果是Native方法则计数器值为Undefined5.不会发生内存泄漏问题packag...原创 2019-10-28 21:42:49 · 67 阅读 · 0 评论 -
Java底层:JVM(七)
你了解Java的内存模型么(下)元空间(MeataSapce)与永久代(PermGen)的区别元空间使用本地内存,而永久代使用的是jvm的内存java.lang.OutOfMenoryEroooMeataSpace相比PermGen的优势1.字符串常量池存在永久代中,容易出现性能问题和内存溢出2.类和方法的信息大小难易确定,给永久代的大小指定带来困难3.永久代会为GC带来不必要的复杂...原创 2019-10-29 16:10:51 · 90 阅读 · 0 评论 -
基于maven构建的SSM架构的基本环境搭建
基于maven构建的SSM架构的基本环境搭建 *开发工具 ---------------------idea整体工程结构:父工程搭建:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" ...原创 2019-09-05 14:16:21 · 233 阅读 · 0 评论 -
线程的实现方式
1、多线程随机打印结果2、多线程方法的内存图解3、Thread类获取线程名称的两种方式4、创建线程的第二种方式Runnable5、Thread和Runnable接口的区别6、匿名内部类实现线程创建7、线程安全问题8、解决线程安全问题9、并发与并行...原创 2020-05-19 01:48:08 · 151 阅读 · 0 评论 -
线程间的通信(等待与唤醒机制)
1、等待唤醒机制注意:wait方法与notify方法必须有同一个锁对象调用 因为:对应的所对象可以通过notify唤醒使用同一个锁对象调用的wait方法后的线程wait方法与notify是属于Object类的方法。因为:锁对象可以是任意对象,而任意对象都是来自于Object类wait方法与notify必须要在同步代码块或者同步函数中使用。因为:必须通过锁对象调用这两个方法2、等待唤醒机制案例(生产者与消费者)3、线程的状态...原创 2020-05-21 00:15:09 · 156 阅读 · 0 评论 -
Java IO知识点及其NIO优势
概览Java 的 I/O 大概可以分成以下几类:磁盘操作:File字节操作:InputStream 和 OutputStream字符操作:Reader 和 Writer对象操作:Serializable网络操作:Socket新的输入/输出:NIO磁盘操作File 类可以用于表示文件和目录的信息,但是它不表示文件的内容。递归地列出一个目录下所有文件:字节操作实现文件复制字符操作编码与解码编码就是把字符转换为字节,而解码是把字节重新组合成字符。如果编码和解码过程使用不同的编原创 2020-05-08 23:56:49 · 212 阅读 · 0 评论 -
Java线程类及多线程
进程:一个操作系统中可以同时运行多个应用程序,每个应用程序被称为一个进程。即系统级别的多线程。线程:一个程序同时可能有多个运行场景,每个运行场景就叫做一个线程。并发:线程是并发运行的。操作系统将时间划分为若干个时间片,尽可能均匀分给每一个任务,被分配时间片后,任务就有可能被cpu处理,对于单个线程来说,中间间隔时间很短,好像一直在运行,从所有的线程来看,好像一直都在运行。具体实现:1...原创 2020-04-16 00:02:34 · 130 阅读 · 0 评论 -
新手学习Lambda表达式案例
1、用Lambda表达式实现Runnable接口public class test1 { public static void main(String[] args) { new Thread(new Runnable() { public void run() { System.out.println("JDK8之前 代码比较多 做事儿少"); } }).sta...原创 2020-04-22 00:09:00 · 124 阅读 · 0 评论 -
Mysql之慢查询日志、SQL、索引、配置、分库、分表优化
1、数据库优化的目的2、可以从哪几个方面进行数据库优化原创 2020-05-27 01:23:25 · 264 阅读 · 0 评论 -
Collection、List、Set、Map集合及泛型
一、Collection集合集合 : 集合是java中提供的一种容器,可以用来存储多个数据。数组和集合都是容器,它们的区别(1)数组长度是固定的,集合长度是可变的(2)数组中存储的都是同一类型元素,可以存储基本数据类型值。集合存储的都是对象,而且对象的类型可以不一致,在开发中一般当对象多的时候,使用集合进行存储集合框架集合按照其存储结构可以分为两大类,分别是单列集合java.util.Collection和双列集合java.util.MapCollection:单列集合的根接口,用于存储一系列原创 2020-06-13 05:53:38 · 516 阅读 · 1 评论 -
Linux基础知识及相关命令
一、Linux简介1、LinuxOS体系结构----LinuxOS类似UNIX OS----内核 : 模块化管理----Shell: 用户与内核之间交互的一个接口----应用工具:编辑器、过滤器2、软件模式开源软件(Open Source):软件发布,并公布源代码闭源软件(Close Source):仅推出可执行的二进制程序免费软件(Freeware):共享软件(Shareware):商业软件(Commercial Software):由开发者出售拷贝并提供软件技术服务,用户只有使用权原创 2020-06-12 20:45:47 · 1280 阅读 · 0 评论 -
Mysql基本知识、语法及操作
一、数据库的概念1、数据库的英文单词:DataBase 简称 :DB2、什么是数据库?----用于存储和管理数据的仓库3、数据库的特点:—持久化存储数据的(相当于一个文件系统)—方便存储和管理数据—使用了同一方式操作数据库(SQL)待更新...原创 2020-06-10 02:27:57 · 189 阅读 · 0 评论 -
Redis基本知识、语法及相关操作
一、Redis初识1、Redis是什么—开源—多种数据结构—基于键值的存储服务器系统—高性能、功能丰富2、Redis的特性—速度快(10w OPS)Redis将数据存储在内存当中、C语言写的、单线程模式—持久化(断电数据不丢失)Redis所有数据保存在内存中,对数据的更新将异步地保存到磁盘上—多种数据结构BitMaps(位图)、HyperLogLog(超小内存唯一值计数)GEO(地理信息定位)—功能丰富发布订阅、Lua脚本、事务、pipeline—简单不依赖外部库、单线程原创 2020-06-08 23:06:34 · 271 阅读 · 0 评论 -
关系数据库之架构、索引、锁、语法、理论范式知识点及原理解析
索引模块++为什么要使用索引++什么样的信息能成为索引++索引的数据结构一、为什么要使用索引++为了快速的查询数据(类似于字典)二、什么样的信息能成为索引++主键、唯一键及普通键等**三、索引的数据结构++生成索引,建立二叉查找树进行二分查找++生成索引,建立B-Tree结构进行查找++生成索引,建立B±Tree结构进行查找++生成索引,建立Hash结构进行查找...原创 2019-11-06 19:38:45 · 224 阅读 · 0 评论 -
Java内存泄漏与溢出
java内存泄漏与内存溢出内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;内存泄露 memory leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。memory leak会最终会导致out of memory!以发生的方式来分类,内存泄漏可以分为4类:1. 常发性内存泄漏。发生内存泄漏的代码会被多次执行到,每次被执行的时候都会导致一块内存泄转载 2020-05-22 00:16:07 · 152 阅读 · 0 评论 -
Mybatis
1、Mybatis概述2、Mybaits入门环境搭建pom.xml导入jar包依赖原创 2020-05-31 00:25:41 · 170 阅读 · 0 评论 -
SpringMVC
1、MVC设计模式M: mode模型 JavaBeanV: View视图 JSPC: Controller控制器 Servlet2、SpringMVC是什么3、SpringMVC的优势和Struts2对比4、SpingMVC入门案例配置前端控制器DispatcherServlet视图解析器ViewResover开启mvc框架注解支持mvc:annotation-driven案例分析案例组件介绍5、@RequestMapping注解属性:6、原创 2020-06-05 02:12:34 · 111 阅读 · 0 评论 -
Java版冒泡排序、插入排序、选择排序实现
冒泡排序package com.huke.sort;import java.text.SimpleDateFormat;import java.util.Arrays;import java.util.Date;public class BubbleSort { public static void main(String[] args) {// int arr[] =...原创 2019-09-06 21:55:53 · 153 阅读 · 0 评论 -
SQL按照时间统计相关查询
-- 统计 select count(*) as '当天记录数' from web_product where date(p_createtime) = curdate();select count(*) as '当天记录数' from web_product where to_days(p_createtime) = to_days(now()); SELECT count(*) a...原创 2020-04-09 23:43:20 · 330 阅读 · 0 评论 -
git相关命令
git将本地项目推送到远程仓库github提示:手动创建一个空项【my-pro-ui】目如何将本地项目my-pro-ui同步进来echo “# my-pro-ui” >> README.mdgit initgit add README.mdgit commit -m “first commit”git remote add origin git@github.com:Sha...原创 2020-01-16 10:01:33 · 358 阅读 · 0 评论 -
跨域与如何解决跨域问题
6.跨域问题跨域:浏览器对于javascript的同源策略的限制 。以下情况都属于跨域:跨域原因说明示例域名不同www.jd.com 与 www.taobao.com域名相同,端口不同www.jd.com:8080 与 www.jd.com:8081二级域名不同item.jd.com 与 miaosha.jd.com如果域名和端口都相同,但是请求路...原创 2019-10-26 18:16:00 · 209 阅读 · 0 评论