diff --git a/about/index.html b/about/index.html index 9aa12baa4..a351f3861 100644 --- a/about/index.html +++ b/about/index.html @@ -10,7 +10,7 @@

关于博客

  输出载体、收纳容器:生活、想法、情感、知识,不一而足,不可或缺。

-

2017

2023

2023

\ No newline at end of file diff --git a/archives/2024/index.html b/archives/2024/index.html new file mode 100644 index 000000000..f04603e26 --- /dev/null +++ b/archives/2024/index.html @@ -0,0 +1,13 @@ +归档 | frozeNwInd \ No newline at end of file diff --git a/archives/index.html b/archives/index.html index 744b651a2..eaf83a349 100644 --- a/archives/index.html +++ b/archives/index.html @@ -4,7 +4,7 @@ hm.src = 'https://hm.baidu.com/hm.js?' + 'bbf19a98c9ae28f2e1e8cfcee1d9585e'; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); - })();

2023

2022

2021

2020

2019

2018

2017

2024

2023

2022

2021

2020

2019

2018

2017

正在查看 Java 下的文章

2023

2022

2021

2020

2019

正在查看 Java 下的文章

2023

2022

2021

2020

2019

正在查看 technology 下的文章

2023

2022

2021

2020

2019

2017

正在查看 technology 下的文章

2024

2023

2022

2021

2020

2019

2017

hexo-renderer-dartsass 替换 hexo-renderer-sass 解决 node-sass问题

/node_modules/hexo-asset-image/index.js

阅读全文

Tomcat-深入理解-核心组件Connector

Connector(连接器)组件负责生成请求对象和响应对象的,Tomcat默认为HttpConnector,负责根据收到的Http请求报文生成Request对象和Response对象,并把这两个对象传递给Container,然后根据Response中的内容生成相应的HTTP报文。 + })();

网关-APISIX

https://zhuanlan.zhihu.com/p/663126675 +

阅读全文

hexo-renderer-dartsass 替换 hexo-renderer-sass 解决 node-sass问题

/node_modules/hexo-asset-image/index.js

阅读全文

Tomcat-深入理解-核心组件Connector

Connector(连接器)组件负责生成请求对象和响应对象的,Tomcat默认为HttpConnector,负责根据收到的Http请求报文生成Request对象和Response对象,并把这两个对象传递给Container,然后根据Response中的内容生成相应的HTTP报文。 Connector是使用ProtocolHandler来处理请求的,不同的Pr...

阅读全文

大数据-浅谈

前言OLAP & OLTP OLAP(Online Analytical Processing)在线分析处理 定义 主要用于处理企业级的决策分析、战略分析以及业务分析等方面。 OLAP主要是用了多维数据分析技术和聚合算法,可以将大量数据划分成各种不同的角度,方便分析数据。 @@ -23,8 +24,7 @@ 1234public class LinkedHashMap<K,V> extends HashMap<K,V> implements Map<K,V> {} LinkedHashMap实现了Map接口,即允许放入key为null的元素,也允许插入value为null的元素。从名...

阅读全文

云原生-Kubernetes

Kubernetes是一个开源容器管理工具,负责容器部署,容器扩缩容以及负载平衡。作为Google的创意之作,它提供了出色的社区,并与所有云提供商合作。因此,我们可以说Kubernetes不是一个容器化平台,而是一个多容器管理解决方案。 -众所周知,Docker提供容器的生命周期管理,Docker镜像构建运行时容器。但是,由于这些单独的容器必须通信,因此使用K...

阅读全文

Docker

-

阅读全文

Nexus-升级https过程

+ })();

Maven

Maven是一个项目管理和整合工具。Maven为开发者提供了一套完整的构建生命周期框架。开发团队几乎不用花多少时间就能够自动完成工程的基础构建配置,因为Maven使用了一个标准的目录结构和一个默认的构建生命周期。 +Maven的主要目的是为开发者提供:​ + +​一个可复用、可维护、更易理解的工程综合模型,与这个模型交互的插件或工具​ +​Maven工程结构和内容定...

阅读全文

Nexus-升级https过程

maven 3.8.1 版本之后,在 settings.xml 中通过配置 mirror 禁用了不安全的 http 链接,默认情况下必须使用 https 的仓库地址。 10.200.17.45 测试机 @@ -87,11 +91,7 @@ float 单精...

阅读全文

愛彌留

请收起你的温柔 浮在水仙中的杀手

阅读全文

今天起的每晚 你要珍惜岁月

今天花了几个小时的时间把hexo从windows迁到mac上。上一次的记录时间是2019-11-24,今天是2021-11-21。两年了,重新出发吧。 -

阅读全文

Spring-MVC

SpringMVC与传统MVC传统MVCMVC的全称为Model View Controller,是一种软件架构模式,将web应用程序分为模型、视图、控制器三部分。 -最典型的MVC就是JSP + servlet + javabean的模式。 - -Model 模型层,指工程中的JavaBean(entity、service、dao),作用是处理数据。 -View...

阅读全文

Spring-AOP

解读AOP的含义以及AOP的使用方式

阅读全文

Spring-IOC

解读IOC的含义以及IOC的使用方式

阅读全文

MySQL-索引原理及慢查询优化

基于MySQL InnoDB + })();

Spring-MVC

SpringMVC与传统MVC传统MVCMVC的全称为Model View Controller,是一种软件架构模式,将web应用程序分为模型、视图、控制器三部分。 +最典型的MVC就是JSP + servlet + javabean的模式。 + +Model 模型层,指工程中的JavaBean(entity、service、dao),作用是处理数据。 +View...

阅读全文

Spring-AOP

解读AOP的含义以及AOP的使用方式

阅读全文

Spring-IOC

解读IOC的含义以及IOC的使用方式

阅读全文

MySQL-索引原理及慢查询优化

基于MySQL InnoDB 索引对查询的速度有着至关重要的的影响,理解索引也是进行数据库性能调优的起点。索引就是提高数据查询的效率的一种数据结构。 MySQL索引原理索引目的索引的目的在于提高查询效率。 可以类比字典,如果要查“mysql”这个单词,我们肯定需要定位到m字母,然后从下往下找到y字母,再找到剩下的sql。如果没有索引,那么你可能需要把所有单词...

阅读全文

操作系统

操作系统基础操作系统主要有哪些功能从资源管理的角度来看,操作系统有 6 大功能: @@ -48,7 +52,7 @@ 1.二分搜索树(BST)二叉树——>完全二叉树——>满二叉树二叉树具有天然递归结构:每个节点的左子树也是二叉树,每个节点的右子树也是二叉树。 -二分搜索树的每个节点的值大于其左子树的所有节点的值,小于其右子树的所有节点...

阅读全文

假如我是一个诗人

等我再高级有趣一点,陪你坐宇宙飞船去探索浪漫诗人的内心世界。

阅读全文

计算机网络基础

在浏览器中输入一个网址,按下回车后,发生了什么? + })();

假如我是一个诗人

等我再高级有趣一点,陪你坐宇宙飞船去探索浪漫诗人的内心世界。

阅读全文

计算机网络基础

在浏览器中输入一个网址,按下回车后,发生了什么? 域名解析 浏览器通过浏览器缓存、系统缓存、路由器缓存、域名服务器搜索该域名的ip地址。 发起TCP3次握手,建立TCP连接 拿到域名对应的IP地址之后,User-Agent(一般是指浏览器)会以一个随机端口(1024 < 端口 < 65535)向服务器的WEB程序的80端口发起TCP的连接请求。...

阅读全文

深入理解JVM——12.4java与线程

阅读全文

深入理解JVM——12.3java内存模型

计算机内存模型、缓存一致性、MESI 协议计算机内存模型由于计算机的存储设备与运算器的运算速度之间有着几个数量级的差距,所以现代计算机系统不得不加入一层读写速度尽可能接近处理器运算速度的高速缓存(cache)来作为内存与处理器之间的缓冲。将运算需要用到的数据复制到缓存中,让运算能快速进行,当运算结束后再从缓存同步回内存之中,这样处理器就无需等待缓慢的内存读写...

阅读全文

深入理解JVM——8虚拟机字节码执行引擎

阅读全文

深入理解JVM——7虚拟机类加载机制

7.1概述虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的java类型,这就是虚拟机的类加载机制。 在java语言里面,类型的加载和连接过程都是在程序运行期间完成的,这样会在类加载时稍微增加一些性能开销,但是却能为java应用程序提供高度的灵活性。java中天生可以动态扩展的语言特性就是依赖运...

阅读全文

深入理解JVM——6类文件结构

阅读全文

数据结构与算法——排序

一、排序(上):为什么插入排序比冒泡排序更受欢迎?分析一个排序算法,从哪几方面入手: 1.排序算法的执行效率1)最好情况、最坏情况、平均情况时间复杂度。2)时间复杂度的系数、常数、低阶。3)比较次数和交换(或移动)次数。基于比较的排序算法会涉及两种操作,一种是元素比较大小,另一种是元素交换或移动。 -2.排序算法的内存消耗算法的内存消耗可以通过空间复杂度来衡...

阅读全文

设计模式

关于模式在讨论模式之前,必须对“模式”这个词加以界定,以规范后面的讨论和研究。简而言之,人们在自己的环境中不断发现问题和寻找问题的解决方案的时候,发现有一些问题及其解决方案不断变换面孔反复出现,但在这些不同的面孔后面有着共同的本质,这些共同的本质就是模式。一个围棋下得好的人知道,好的“形”对于围棋非常重要。形是棋子在棋盘上的几何形状的抽象化。形就是模式(pa...

阅读全文

数据结构与算法——递归

推荐注册返佣金——现在很多App都有这个功能。用户A推荐用户B来注册,用户B又推荐了用户C来注册。可以说,用户C的“最终推荐人”为用户A,用户B的“最终推荐人”也为用户A,用户A没有“最终推荐人”。一般来说,会通过数据库来记录这种推荐关系。在数据库表中,可以记录两行数据,其中actor_id表示用户id,referrer_id表示推荐人id。基于这个背景,给...

阅读全文

数据结构与算法——队列

我们知道,CPU资源是有限的,任务的处理速度与线程个数并不是线性正相关。相反,过多的线程反而会导致CPU频繁切换,处理性能下降。所以,线程池的大小一般都是综合考虑要处理任务的特点和硬件环境,来事先设置的。 -当我们向固定大小的线程池中请求一个线程时,如果线程池中没有空闲资源了,这个时候线程池如何处理这个请求?是拒绝请求还是排队请求?各种处理策略又是怎么实现的呢...

阅读全文

数据结构与算法——栈

思考:如何实现浏览器的前进和后退功能?当你依次访问完一串页面a-b-c之后,点击浏览器的后退按钮,就可以查看之前浏览过的页面b和a。当你后退到页面a,点击前进按钮,就可以重新查看页面b和c。但是,如果你后退到页面b后,点击了新的页面d,那就无法在通过前进、后退功能查看页面c了。 + })();

数据结构与算法——队列

我们知道,CPU资源是有限的,任务的处理速度与线程个数并不是线性正相关。相反,过多的线程反而会导致CPU频繁切换,处理性能下降。所以,线程池的大小一般都是综合考虑要处理任务的特点和硬件环境,来事先设置的。 +当我们向固定大小的线程池中请求一个线程时,如果线程池中没有空闲资源了,这个时候线程池如何处理这个请求?是拒绝请求还是排队请求?各种处理策略又是怎么实现的呢...

阅读全文

数据结构与算法——栈

思考:如何实现浏览器的前进和后退功能?当你依次访问完一串页面a-b-c之后,点击浏览器的后退按钮,就可以查看之前浏览过的页面b和a。当你后退到页面a,点击前进按钮,就可以重新查看页面b和c。但是,如果你后退到页面b后,点击了新的页面d,那就无法在通过前进、后退功能查看页面c了。 如何理解栈?关于“栈”,有一个非常贴切的例子,就是一摞叠在一起的盘子。放盘子的时...

阅读全文

数据结构与算法——链表

经典链表应用场景:LRU缓存淘汰算法缓存是一种提高数据读取性能技术,硬件设计和软件开发中都有应用:CPU缓存、数据库缓存、浏览器缓存等。缓存的大小有限,当缓存被用满时,哪些数据应该被清理出去,哪些数据应该被保留,需要缓存淘汰策略来决定,如:先进先出策略(first in first out)、最少使用策略LFU(least frequently used)、...

阅读全文

深入理解JVM——2.4OutOfMemoryError异常

在java虚拟机规范的描述中,除了程序计数器外,虚拟机内存的其他几个运行时区域都有发生OutOfMemoryError(OOM)异常的可能。 1. Java堆溢出java堆用于储存对象实例,我们只要不断地创建对象,并且保证GC Roots到对象之间有可达路径来避免垃圾回收机制清除这些对象,就会在对象数量到达最大堆的容量限制后产生内存溢出异常。 2. 虚拟机栈...

阅读全文

深入理解JVM——2.3对象访问

在java语言中,对象访问是如何进行的? @@ -16,8 +17,7 @@ 明确一个观点:虽然我们是在对各个收集器进行比较,但并非为了挑选一个最好的收集器出来。因为直到现在为止还没有最好的收集器出现,更加没有万能的收集器,所以我们选择的只是对具体应用最合适的收集器。 垃圾收...

阅读全文

深入理解JVM——3.2对象死或否

堆中几乎存放着java世界中所有的对象实例,垃圾收集器在对堆进行回收前,第一件事情就是要确定这些对象有哪些还存活着,哪些已经死去(即不可能再被任何途径使用的对象). 1.引用计数算法很多教科书判断对象是否存活的算法是:给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1。任何时刻计数器都为0的对象就是不可能再被使用...

阅读全文

深入理解JVM——3.3垃圾回收算法

标记——清除算法(Mark-Sweep)算法分为“标记”和“清除”两个阶段:首先标记出所有需要回收的对象,在标记完成后统一回收掉被标记的对象。标记过程在另一篇“深入理解JVM——对象死或否”中讲述,对象标记判定对象是不是还“存活”。 -主要缺点有两个。一个是效率问题,标记和清除过程的效率都不高。另外一个是空间问题,标记清除之后会产生大量不连续的内存碎片,空间碎...

阅读全文

数据结构与算法——数组

为什么数组要从0开始编号,而不是从1开始?如何实现随机访问?1.什么是数组数组(Array)是一种①线性表数据结构。它用一组②连续的内存空间,来存储一组具有相同类型的数据。 -①线性表顾名思义,线性表就是数据排成像一条线一样的结构。每个线性表上的数据最多只有前和后两个方向。除了数组,链表、队列、栈等也是线性表结构。相对立的非线性表,比如二叉树、堆、图等。之所以...

阅读全文

数据结构与算法——复杂度分析

什么是复杂度分析?1.数据结构和算法解决“如何让计算机更快时间、更省空间的解决问题”。2.因此需要从执行时间和占用空间两个维度来评估数据结构和算法的性能。3.分别用时间复杂度和空间复杂度两个概念来描述性能问题,二者统称为复杂度。4.复杂度描述的是算法执行时间(或占用空间)与数据规模的增长关系。 -为什么要进行复杂读分析?1.和性能测试相比,复杂度分析有不依赖执...

阅读全文

Blue Butterfly

butterfly in my stomach

阅读全文

数据结构—排序总结

冒泡排序算法描述:将第一个记录的关键字和第二个记录的关键字进行比较,若为逆序(即L.r[1].key>L.r[2].key),则将两个记录交换之,然后比较第二个记录和第三个记录。依次类推,直到第n-1个记录和第n个记录的关键字进行过比较为止,此过程称为第一趟起泡排序,其结果使得关键字最大的记录被安置到最后一个记录的位置上。最坏情况,初始序列为“逆序”,...

阅读全文

情书

你好哇,亲爱的我的爱人。

阅读全文

关于Markdown

Markdown是一种轻量级的「标记语言」

阅读全文

who on the moon

月球上的人

阅读全文

最冷一天

最冷的时候,我想有你

阅读全文

一朵百合

四月二十一日风来了

阅读全文

想来情应尽矣

料应情尽矣

阅读全文

我想在你的怀中失去记忆

我想在你的怀中失去记忆,做个好梦然后留在这里。

阅读全文

数据结构与算法——数组

为什么数组要从0开始编号,而不是从1开始?如何实现随机访问?1.什么是数组数组(Array)是一种①线性表数据结构。它用一组②连续的内存空间,来存储一组具有相同类型的数据。 +①线性表顾名思义,线性表就是数据排成像一条线一样的结构。每个线性表上的数据最多只有前和后两个方向。除了数组,链表、队列、栈等也是线性表结构。相对立的非线性表,比如二叉树、堆、图等。之所以...

阅读全文

数据结构与算法——复杂度分析

什么是复杂度分析?1.数据结构和算法解决“如何让计算机更快时间、更省空间的解决问题”。2.因此需要从执行时间和占用空间两个维度来评估数据结构和算法的性能。3.分别用时间复杂度和空间复杂度两个概念来描述性能问题,二者统称为复杂度。4.复杂度描述的是算法执行时间(或占用空间)与数据规模的增长关系。 +为什么要进行复杂读分析?1.和性能测试相比,复杂度分析有不依赖执...

阅读全文

Blue Butterfly

butterfly in my stomach

阅读全文

数据结构—排序总结

冒泡排序算法描述:将第一个记录的关键字和第二个记录的关键字进行比较,若为逆序(即L.r[1].key>L.r[2].key),则将两个记录交换之,然后比较第二个记录和第三个记录。依次类推,直到第n-1个记录和第n个记录的关键字进行过比较为止,此过程称为第一趟起泡排序,其结果使得关键字最大的记录被安置到最后一个记录的位置上。最坏情况,初始序列为“逆序”,...

阅读全文

情书

你好哇,亲爱的我的爱人。

阅读全文

关于Markdown

Markdown是一种轻量级的「标记语言」

阅读全文

who on the moon

月球上的人

阅读全文

最冷一天

最冷的时候,我想有你

阅读全文

一朵百合

四月二十一日风来了

阅读全文

想来情应尽矣

料应情尽矣

阅读全文

Knative-Eventing 结合Kafka Channel实现事件总线

整体框架 + })();

Docker

+

阅读全文

Knative-Eventing 结合Kafka Channel实现事件总线

整体框架 如上图,主要以Kafka Channel为例,整体分为控制面和数据面。控制面负责根据Broker或者Trigger生成一系列的其他资源,包括运行的pod和channel类的配置等。 控制面整体流程介绍有两个流程可以触发配置的生成,即broker的创建流程和trigger的创建流程,均为外部添加,分别定义生产和消费的流程。结合上图,每种颜色的虚线代表...

阅读全文

高并发:限流

前言什么是限流在日常生活中限流很常见,例如去有些景区玩,每天售卖的门票数是有限的,例如 2000 张,即每天最多只有 2000 个人能进去游玩。那在我们工程上限流是什么呢?限制的是 「流」,在不同场景下「流」的定义不同,可以是每秒请求数、每秒事务处理数、网络流量等等。 而通常我们说的限流指代的是限制到达系统的并发请求数,使得系统能够正常的处理部分用户的请求,...

阅读全文

Java基础-机制详解-SPI

什么是SPI机制SPI(Service Provider Interface),是JDK内置的一种 服务提供发现机制,可以用来启用框架扩展和替换组件,主要是被框架的开发人员使用,比如java.sql.Driver接口,其他不同厂商可以针对同一接口做出不同的实现,MySQL和PostgreSQL都有不同的实现提供给用户,而Java的SPI机制可以为某个接口寻找...

阅读全文

Java基础-注解

注解是JDK1.5版本开始引入的一个特性,用于对代码进行说明,可以对包、类、接口、字段、方法参数、局部变量等进行注解。它是框架学习和设计者必须掌握的基础。 @@ -26,7 +27,7 @@ 微服务与服务网格 服务网格是如何运作的?服务网格不会为应用的运行时环境加入新功能,任何架构中的应用还是需要相应的规则来指定请求如何从 ...

阅读全文

云原生-Knative

云计算https://murphy.blog.csdn.net/article/details/127846026 ServerlessKnativeKnative 是谷歌牵头发起的 Serverless 项目。其目标是基于 Kubernetes 的 Serverless 解决方案,旨在标准化 Serverless,简化其学习成本。 -Knative 是以 K...

阅读全文

Spring-IOC-实现原理详解-2-Bean实例化

IoC容器中存放的是Bean的定义,即BeanDefinition放到beanDefinitionMap中,本质上是一个ConcurrentHashMap,并且BeanDefinition接口中包含了这个类的Class信息以及是否是单例等。那么,Spring是如何从BeanDefinition中实例化Bean对象的呢?

阅读全文

Spring-IOC-实现原理详解-1-IOC初始化流程

Spring如何实现将资源配置通过加载、解析,生成BeanDefinition并注册到IoC容器中的。

阅读全文

Spring-前言

Spring是什么?它是怎么诞生的?有哪些主要的组件和核心功能呢?本文通过这几个问题来构筑对Spring和Spring Framework的整体认知。 + })();

Spring-IOC-实现原理详解-1-IOC初始化流程

Spring如何实现将资源配置通过加载、解析,生成BeanDefinition并注册到IoC容器中的。

阅读全文

Spring-前言

Spring是什么?它是怎么诞生的?有哪些主要的组件和核心功能呢?本文通过这几个问题来构筑对Spring和Spring Framework的整体认知。 什么是Spring? Spring是什么?它是怎么诞生的?它的诞生是为了解决什么问题? @@ -28,11 +28,7 @@ 判断一个对象是否可被回收1、引用计数算法2、可达性分析算法在java语言里,可作为GC Roots的对象包括下面几种: 虚拟机栈(栈帧中的本地变量表)中的引用的对象。 -方法区中的类...

阅读全文

JVM-基础-Java内存模型

JMM引入JMM与硬件内存结构关系硬件内存结构简介JMM与硬件内存连接 - 引入 -JMM与硬件内存连接 - 对象共享后的可见性 -JMM与硬件内存连接 - 竞态条件如果两个或多个线程共享一个对象,并且多个线程更新该共享对象中的变量,则可能会出现竞态。 - -

阅读全文

JVM-基础-JVM内存结构

+ })();

JVM-基础-Java内存模型

JMM引入JMM与硬件内存结构关系硬件内存结构简介JMM与硬件内存连接 - 引入 +JMM与硬件内存连接 - 对象共享后的可见性 +JMM与硬件内存连接 - 竞态条件如果两个或多个线程共享一个对象,并且多个线程更新该共享对象中的变量,则可能会出现竞态。 + +

阅读全文

JVM-基础-JVM内存结构

https://www.pdai.tech/md/java/jvm/java-jvm-struct.html 运行时数据区域总览内存是非常重要的系统资源,是硬盘和 CPU 的中间仓库及桥梁,承载着操作系统和应用程序的实时运行。JVM 内存布局规定了 Java 在运行过程中内存申请、分配、管理的策略,保证了 JVM 的高效稳定运行。不同的 JVM 对于内存的...

阅读全文

JVM-知识体系

知识体系 学习要点不同的虚拟机实现方式上也有差别,如果没有特别指出,这里的JVM指的是sun的HotSpot不同的JDK版本略有差别,这里主要以1.8为主。 @@ -35,9 +39,7 @@ 如果...

阅读全文

微服务

概念单体应用单体应用是所有的代码都放在同一个工程中、部署在同一个服务器、同一项目的不同模块不同功能互相抢占资源。 单台服务器的压力扛不住的时候,就要用到负载均衡技术,增加多台服务器来抗压,后端的数据库也可以用主从的方式来增加并发量。 微服务微服务就是将工程根据不同的业务规则拆分成微服务,部署在不同的服务器上,服务之间相互调用。 -微服务的技术选型Dubbo (...

阅读全文

Java并发和多线程-线程池-Fork/Join

ForkJoinPool 是JDK 7加入的一个线程池类。Fork/Join 技术是分治算法(Divide-and-Conquer)的并行实现,它是一项可以获得良好的并行性能的简单且高效的设计技术。目的是为了帮助我们更好地利用多处理器带来的好处,使用所有可用的运算能力来提升应用的性能。 -带着BAT大厂的面试问题去理解 -Fork/Join主要用来解决什么样的问...

阅读全文

Java并发和多线程-线程池-FutureTask

Future 表示了一个任务的生命周期,是一个可取消的异步运算,可以把它看作是一个异步操作的结果的占位符,它将在未来的某个时刻完成,并提供对其结果的访问。在并发包中许多异步任务类都继承自Future,其中最典型的就是 FutureTask。 + })();

Java并发和多线程-线程池-Fork/Join

ForkJoinPool 是JDK 7加入的一个线程池类。Fork/Join 技术是分治算法(Divide-and-Conquer)的并行实现,它是一项可以获得良好的并行性能的简单且高效的设计技术。目的是为了帮助我们更好地利用多处理器带来的好处,使用所有可用的运算能力来提升应用的性能。 +带着BAT大厂的面试问题去理解 +Fork/Join主要用来解决什么样的问...

阅读全文

Java并发和多线程-线程池-FutureTask

Future 表示了一个任务的生命周期,是一个可取消的异步运算,可以把它看作是一个异步操作的结果的占位符,它将在未来的某个时刻完成,并提供对其结果的访问。在并发包中许多异步任务类都继承自Future,其中最典型的就是 FutureTask。 带着BAT大厂的面试问题去理解 FutureTask用来解决什么问题的? 为什么会出现? FutureTask类结构关...

阅读全文

Java并发和多线程-JUC-类汇总

带着BAT大厂的面试问题去理解 @@ -39,8 +41,7 @@ Spring的SPI机制SPI全称为Service Provider Interface 服务提供接口。 在SpringBoot的自动装配过程中,最终会加载META-INF/spring.factories文件,而加载的过程是...

阅读全文

SpringBoot源码分析-启动过程

SpringBoot源码分析 - 启动过程基于SpringBoot 2.3.4 main#SpringApplication.run()12345678910111213141516// SpringBoot Web服务入口@SpringBootApplicationpublic class Application { public stat...

阅读全文

Java IO - BIO

BIO,blocking IO,同步阻塞IO。最容易理解、最容易实现的IO工作方式。应用程序向操作系统请求网络IO操作,这时应用程序会一直等待;另一方面,操作系统收到请求后,也会等待,直到网络上有数据传到监听端口;操作系统在收集数据后,会把数据发送到应用程序;最后应用程序收到数据,并解除等待状态。 -概念阻塞IO & 非阻塞IO这两个概念是应用程序级别...

阅读全文

Java IO - NIO

JAVA NIO新的输入/输出 (NIO) 库是在 JDK 1.4 中引入的,弥补了原来的 I/O 的不足,提供了高速的、面向块的 I/O。 -Java IO与NIO的区别标准IO是对字节流的读写,在进行IO之前,首先创建一个流对象,流对象进行读写操作都是按字节 ,一个字节一个字节的来读或写。而NIO把IO抽象成块,类似磁盘的读写,每次IO操作的单位都是一个块...

阅读全文

Java IO - 基础

Java IO分类从传输方式和数据操作两个方面分析Java IO的分类。 + })();

Java IO - NIO

JAVA NIO新的输入/输出 (NIO) 库是在 JDK 1.4 中引入的,弥补了原来的 I/O 的不足,提供了高速的、面向块的 I/O。 +Java IO与NIO的区别标准IO是对字节流的读写,在进行IO之前,首先创建一个流对象,流对象进行读写操作都是按字节 ,一个字节一个字节的来读或写。而NIO把IO抽象成块,类似磁盘的读写,每次IO操作的单位都是一个块...

阅读全文

Java IO - 基础

Java IO分类从传输方式和数据操作两个方面分析Java IO的分类。 传输方式字节是给计算机看的,字符才是给人看的。 字节流InputStreamOutputStream 字符流ReaderWriter @@ -65,14 +66,7 @@ 带着BAT大厂的面试问题去理解 为什么LockSupport也是核心基础类? AQS框架借助于两个类:Unsafe(提供CAS操作)和LockSupport(提供park/unpark操作) 写出分别通过wait/notify和LockSupport的park/unpark实现同步? -LockS...

阅读全文

Java并发和多线程-JUC工具类-CyclicBarrier

带着BAT大厂的面试问题去理解 -什么是CyclicBarrier? -CyclicBarrier底层实现原理? -CountDownLatch和CyclicBarrier对比? -CyclicBarrier的核心函数有哪些? -CyclicBarrier适用于什么场景? - -CyclicBarrier简介对于CountDownLatch,其他线程为游戏玩家,比如英雄联...

阅读全文

MySQL-数据库事务及InnoDB的事务、MVCC

数据库事务ACID特性原子性(atomicity,或称不可分割性)一致性(consistency)隔离性(isolation,又称独立性)持久性(durability) + })();

Java并发和多线程-JUC工具类-CyclicBarrier

带着BAT大厂的面试问题去理解 +什么是CyclicBarrier? +CyclicBarrier底层实现原理? +CountDownLatch和CyclicBarrier对比? +CyclicBarrier的核心函数有哪些? +CyclicBarrier适用于什么场景? + +CyclicBarrier简介对于CountDownLatch,其他线程为游戏玩家,比如英雄联...

阅读全文

MySQL-数据库事务及InnoDB的事务、MVCC

数据库事务ACID特性原子性(atomicity,或称不可分割性)一致性(consistency)隔离性(isolation,又称独立性)持久性(durability) 标准事务的隔离级别 读未提交 read-uncommitted 允许读取尚未提交的数据变更,可能会导致脏读、幻读或不可重复读。 事务对当前被读取的数据不加锁; 事务在更新某数据的瞬间...

阅读全文

Java并发和多线程-JUC工具类-Semaphore

Semaphore底层是基于AbstractQueuedSynchronizer来实现的。Semaphore称为计数信号量,它允许n个任务同时访问某个资源,可以将信号量看做是在向外分发使用资源的许可证,只有成功获取许可证,才能使用资源。 @@ -31,10 +38,7 @@ QA 什么是ThreadLocal? 用来解决什么问题的? 说说你对ThreadLocal的理解 -ThreadLocal是如何实现线程隔离的? 主要是用到了Thread对象中的一个ThreadLoca...

阅读全文

Elasticsearch

ElasticSearch是一款非常强大的、基于Lucene的开源搜索及分析引擎,它是一个实时的分布式全文搜索分析引擎。ES中的数据都是来自于MySQL,用ES的目的不是来持久化数据的,而是因为它的数据检索、复杂数据分析的效率极高,用它来完成检索、分析的功能。 -它被用作全文检索、结构化搜索、分析以及这三个功能的组合: - -Wikipedia 使用 Elasti...

阅读全文

JDK8、JDK11、JDK17

之前项目开发一直使用JDK8,最近碰到IDEA插件在IDEA 2022.2以上版本报错的问题后,把自己的IDEA升级到2022.2,发现2022.2版本的IDEA默认JDK17。把插件基础intellij环境升级到2022.2,必须要JDK17才能编译通过,同时Gradle要求7以上。 + })();

Elasticsearch

ElasticSearch是一款非常强大的、基于Lucene的开源搜索及分析引擎,它是一个实时的分布式全文搜索分析引擎。ES中的数据都是来自于MySQL,用ES的目的不是来持久化数据的,而是因为它的数据检索、复杂数据分析的效率极高,用它来完成检索、分析的功能。 +它被用作全文检索、结构化搜索、分析以及这三个功能的组合: + +Wikipedia 使用 Elasti...

阅读全文

JDK8、JDK11、JDK17

之前项目开发一直使用JDK8,最近碰到IDEA插件在IDEA 2022.2以上版本报错的问题后,把自己的IDEA升级到2022.2,发现2022.2版本的IDEA默认JDK17。把插件基础intellij环境升级到2022.2,必须要JDK17才能编译通过,同时Gradle要求7以上。 于是,想要对于JDK的不同版本进行一些了解。 LTS,是 Long Te...

阅读全文

mybatis-plus

在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 执行模式与执行器 Executor12345public enum ExecutorType { SIMPLE, REUSE, BATCH;} @@ -27,8 +30,7 @@ synchr...

阅读全文

Java并发和多线程-JUC集合-ConcurrentHashMap

QA 为什么会有ConcurrentHashMap HashMap线程不安全,HashTable线程安全但效率低下。 为什么HashMap线程不安全 1.7中transfer()链表使用头插法,多线程情况下,会成环; 1.8中putVal(),多线程操作,值会出现覆盖情况。 -为什么HashTable效率低下 HashTable之所以效率低下主要是因为...

阅读全文

Java并发和多线程-线程池在业务中的实践

在当今的互联网业界,为了最大程度利用CPU的多核性能,并行运算的能力是不可或缺的。通过线程池管理线程获取并发性是一个非常基础的操作,让我们来看两个典型的使用线程池获取并发性的场景。 -业务场景场景1:快速响应用户请求描述:用户发起的实时请求,服务追求响应时间。比如说用户要查看一个商品的信息,那么我们需要将商品维度的一系列信息如商品的价格、优惠、库存、图片等等聚...

阅读全文

Java并发和多线程-线程池-ThreadPoolExecutor

随着计算机行业的飞速发展,摩尔定律逐渐失效,多核CPU成为主流。使用多线程并行计算逐渐成为开发人员提升服务器性能的基本武器。J.U.C提供的线程池:ThreadPoolExecutor类,帮助开发人员管理线程并方便地执行并行任务。了解并合理使用线程池,是一个开发人员必修的基本功。 + })();

Java并发和多线程-线程池在业务中的实践

在当今的互联网业界,为了最大程度利用CPU的多核性能,并行运算的能力是不可或缺的。通过线程池管理线程获取并发性是一个非常基础的操作,让我们来看两个典型的使用线程池获取并发性的场景。 +业务场景场景1:快速响应用户请求描述:用户发起的实时请求,服务追求响应时间。比如说用户要查看一个商品的信息,那么我们需要将商品维度的一系列信息如商品的价格、优惠、库存、图片等等聚...

阅读全文

Java并发和多线程-线程池-ThreadPoolExecutor

随着计算机行业的飞速发展,摩尔定律逐渐失效,多核CPU成为主流。使用多线程并行计算逐渐成为开发人员提升服务器性能的基本武器。J.U.C提供的线程池:ThreadPoolExecutor类,帮助开发人员管理线程并方便地执行并行任务。了解并合理使用线程池,是一个开发人员必修的基本功。 带着BAT大厂的面试问题去理解线程池连环17问 为什么要有线程池? @@ -26,11 +27,7 @@ getC...

阅读全文

Java Map - HashMap源码分析

HashMap 1.7及以前,底层数据结构使用 [数组+链表],1.8 后使用 [数组+链表/红黑树] ,使用数组存储元素是因为查找快,链表是为了解决哈希冲突存在的,而红黑树是为了解决链表中查询速度慢对链表进行优化的一种数据结构。 -HashMap 是非线程安全的,如果需要线程安全,使用 ConcurrentHashMap 或者 Collections.syn...

阅读全文

Maven

Maven是一个项目管理和整合工具。Maven为开发者提供了一套完整的构建生命周期框架。开发团队几乎不用花多少时间就能够自动完成工程的基础构建配置,因为Maven使用了一个标准的目录结构和一个默认的构建生命周期。 -Maven的主要目的是为开发者提供:​ - -​一个可复用、可维护、更易理解的工程综合模型,与这个模型交互的插件或工具​ -​Maven工程结构和内容定...

阅读全文

hexo-renderer-dartsass 替换 hexo-renderer-sass 解决 node-sass问题

经过资料查阅后发现,可以使用 hexo-render-dartsass 插件代替 hexo-renderer-sass ,修改 package.json 然后执行 npm install 就可以解决上述问题。

http://edulinks.cn/2021/07/27/20210727-node-sass-problem/

-

网关-APISIX

https://zhuanlan.zhihu.com/p/663126675

+
\ No newline at end of file diff --git a/posts/57834.html b/posts/57834.html index 0a70bcd0a..7cd46b3fc 100644 --- a/posts/57834.html +++ b/posts/57834.html @@ -15,7 +15,7 @@ distractionFreeMode: false }) gitalk.render('container') -
\ No newline at end of file diff --git a/tags/Docker/index.html b/tags/Docker/index.html index 97223937d..9eff22031 100644 --- a/tags/Docker/index.html +++ b/tags/Docker/index.html @@ -4,7 +4,7 @@ hm.src = 'https://hm.baidu.com/hm.js?' + 'bbf19a98c9ae28f2e1e8cfcee1d9585e'; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); - })();

正在查看 Java 下的文章

2023

2022

2021

2019

正在查看 Java 下的文章

2023

2022

2021

2019

标签

Docker
Docker
计算机网络
计算机网络基础
设计模式
设计模式
Nginx
Nginx
Java
Java IO - BIO
Java IO - NIO
Java IO - 基础
JDK8、JDK11、JDK17
JVM-GC-垃圾回收基础知识
JVM-基础-JVM内存结构
JVM-基础-Java内存模型
JVM-基础-Java类加载机制
JVM-基础-类字节码详解
JVM-知识体系
JVM-调试排错-汇总
深入理解JVM——12.3java内存模型
深入理解JVM——12.4java与线程
深入理解JVM——2.2运行时数据区域
深入理解JVM——2.3对象访问
深入理解JVM——2.4OutOfMemoryError异常
深入理解JVM——3.2对象死或否
深入理解JVM——3.3垃圾回收算法
深入理解JVM——3.4垃圾收集器
深入理解JVM——3.5内存分配与回收策略
深入理解JVM——6类文件结构
深入理解JVM——7虚拟机类加载机制
深入理解JVM——8虚拟机字节码执行引擎
Java源码-Object
Java基础 - Q&A
Java基础-机制详解-SPI
Java基础-反射
Java基础-注解
Java基础-泛型
Java基础-集合-LinkedHashMap
Java Map - HashMap源码分析
Java Collection - Stack & Queue & Deque
Java基础-集合-TreeMap
Java 集合 - 类汇总
Java并发和多线程-JUC工具类-CountDownLatch
Java并发和多线程-JUC原子类
Java-基础-集合-PriorityQueue
Java并发和多线程-JUC-类汇总
Java并发和多线程-JUC工具类-CyclicBarrier
Java并发和多线程-JUC工具类-Semaphore
Java并发和多线程-JUC锁-LockSupport
Java并发和多线程-JUC锁-锁核心AQS-CLH前言
Java并发和多线程-JUC锁-ReentrantLock
Java并发和多线程-JUC锁-锁核心AQS
Java并发和多线程-ThreadLocal
Java并发和多线程-JUC集合-ConcurrentHashMap
Java并发和多线程-理论基础&线程基础
Java并发和多线程-synchronized、volatile、final关键字
Java并发和多线程-从ReentrantLock的实现看AQS的原理及应用
Java并发和多线程-线程池-CompletableFuture
Java并发和多线程-线程池-Fork/Join
Java并发和多线程-线程池-FutureTask
Java并发和多线程-线程池在业务中的实践
Java并发和多线程-锁
Java并发和多线程-线程池-ThreadPoolExecutor
Maven
Maven
Netty
Netty

标签

Docker
Docker
计算机网络
计算机网络基础
设计模式
设计模式
Java
JDK8、JDK11、JDK17
Java IO - 基础
Java IO - BIO
Java IO - NIO
JVM-GC-垃圾回收基础知识
JVM-基础-JVM内存结构
JVM-基础-Java内存模型
JVM-基础-类字节码详解
JVM-基础-Java类加载机制
JVM-知识体系
JVM-调试排错-汇总
深入理解JVM——12.3java内存模型
深入理解JVM——12.4java与线程
深入理解JVM——2.2运行时数据区域
深入理解JVM——2.3对象访问
深入理解JVM——2.4OutOfMemoryError异常
深入理解JVM——3.2对象死或否
深入理解JVM——3.3垃圾回收算法
深入理解JVM——6类文件结构
深入理解JVM——3.5内存分配与回收策略
深入理解JVM——3.4垃圾收集器
深入理解JVM——7虚拟机类加载机制
Java源码-Object
深入理解JVM——8虚拟机字节码执行引擎
Java基础 - Q&A
Java基础-反射
Java基础-机制详解-SPI
Java基础-注解
Java基础-泛型
Java Map - HashMap源码分析
Java基础-集合-LinkedHashMap
Java-基础-集合-PriorityQueue
Java Collection - Stack & Queue & Deque
Java基础-集合-TreeMap
Java 集合 - 类汇总
Java并发和多线程-JUC-类汇总
Java并发和多线程-JUC原子类
Java并发和多线程-JUC工具类-CountDownLatch
Java并发和多线程-JUC工具类-CyclicBarrier
Java并发和多线程-JUC工具类-Semaphore
Java并发和多线程-JUC锁-LockSupport
Java并发和多线程-JUC锁-ReentrantLock
Java并发和多线程-JUC锁-锁核心AQS-CLH前言
Java并发和多线程-JUC锁-锁核心AQS
Java并发和多线程-JUC集合-ConcurrentHashMap
Java并发和多线程-ThreadLocal
Java并发和多线程-从ReentrantLock的实现看AQS的原理及应用
Java并发和多线程-synchronized、volatile、final关键字
Java并发和多线程-理论基础&线程基础
Java并发和多线程-线程池-CompletableFuture
Java并发和多线程-线程池-Fork/Join
Java并发和多线程-线程池-FutureTask
Java并发和多线程-线程池-ThreadPoolExecutor
Java并发和多线程-线程池在业务中的实践
Java并发和多线程-锁
Nginx
Nginx
Maven
Maven
Netty
Netty
\ No newline at end of file diff --git "a/tags/\350\256\241\347\256\227\346\234\272\347\275\221\347\273\234/index.html" "b/tags/\350\256\241\347\256\227\346\234\272\347\275\221\347\273\234/index.html" index 7ee4bdbf0..792776f0e 100644 --- "a/tags/\350\256\241\347\256\227\346\234\272\347\275\221\347\273\234/index.html" +++ "b/tags/\350\256\241\347\256\227\346\234\272\347\275\221\347\273\234/index.html" @@ -4,7 +4,7 @@ hm.src = 'https://hm.baidu.com/hm.js?' + 'bbf19a98c9ae28f2e1e8cfcee1d9585e'; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); - })();