自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 HashMap探秘(3) ----put和get方法详解

put方法详解get方法详解java中对象存储,寻址重写hashcode和equals

2020-10-14 19:54:47 1352

原创 JAVA常用数据结构概览

文档引用:https://juejin.cn/post/6844904198769737741。

2023-10-24 18:03:48 95

原创 数据结构基础思维导图

参考文档:https://zq99299.github.io/dsalg-tutorial/dsalg-java-hsp/

2023-10-24 11:27:03 83

原创 Nginx安装与配置

Nginx安装与配置Nginx安装和调试CentOS:安装sudo yum install nginx启动sudo systemctl start nginx.service验证:直接访问服务器公网IP地址http://server_domain_name_or_IP/如果验证时不能打开上面的网页,记得检查80端口放行状态和服务器防火墙Nginx的配置文件​ Nginx的主配置文件是nginx.conf,配置文件是一个纯文本文件。这个配置文件一共由三部分组成,整

2021-04-19 17:20:08 154

原创 Nginx配置实例

Nginx 反向代理反向代理nginx一般同时做为静态web服务器和反向代理服务器,做为web服务器访问静态文件图片、css、js、html等文件,做为反向代理服务器把请求发给后端业务处理服务,如果有多个后端处理节点,会配置负载均衡功能(这里跟负载均衡配合使用)。nginx反向代理不需要编译额外的模块,默认自带proxy_pass和fastcgi_pass指令,通过在location配置块中增加指令就可以实现反向代理功能。以haxibiao.com为例,这个网站后端用的是php语言编写,那么需要通过p

2021-04-19 17:18:24 297

原创 Nginx 高效工作原理

Nginx 高效工作的原理本文参考了一下文章:Nginx工作原理和优化总结通俗易懂的Nginx工作原理关于Nginx入门介绍、在网络请求中工作的位置可以参考上一篇文章:Nginx在网络请求中的工作位置Nginx的模块划分​ Nginx本身做的工作实际很少,当它接到一个HTTP请求时,它仅仅是通过查找配置文件将此次请求映射到一个location block,而此location中所配置的各个指令则会启动不同的模块去完成工作,因此模块可以看做Nginx真正的劳动工作者。Nginx的模块从功

2021-04-14 18:42:40 139

原创 Nginx在网络请求中的工作位置

Web服务器?Nginx是一种Web服务器,那么什么是Web服务器呢?Web服务器是可以向发出请求的浏览器提供文档的程序:​ Web服务器,是指驻留于互联网上某种类型计算机的程序。当Web浏览器(客户端)连到Web服务器上,并请求文件时,Web服务器将处理该请求,并将文件发送反馈到Web浏览器上,附带的信息会告诉Web浏览器如何查看该文件。由于Web服务器,使用HTTP(超文本传输协议)与客户机浏览器进行信息交流,所以人们常把它们称为“HTTP服务器”。​ 也就说时候,我们日常在网上使用http开头

2021-04-06 20:12:20 564

原创 linux安装oh-my-zsh

Oh My Zsh 是什么官网 oh-my-zshOh My Zsh 基于 zsh 命令行,提供了主题配置,插件机制,已经内置的便捷操作。安装 Oh My Zsh 前提条件:必须已安装 zsh安装查看系统已装好的shellcat /etc/shells检查是否已经安装了zsh,输入zsh --version 查看版本信息,若安装了,这个命令会输出zsh当前版本号若没有安装zsh,则在终端执行:若 CentOS Linux,执行 sudo yum install zsh

2021-03-27 11:19:49 1064

原创 Docker 简单解析和使用

简介​ Docker是一个开源的容器引擎。让开发者可以打包他们的应用以及依赖成一个镜像,移植到其他的机器上运行。​ Docker容器是一个完整的文件系统,这个文件系统中包含了你的软件运行所需要的全部环境,如:软件的源码、运行环境、所需的软件等。核心概念docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统之上);docker客户端(Client):连接docker主机进行操作;docker仓库(Registry):用来保存各种打包好的软件镜像;

2021-03-15 20:14:34 82

原创 数据库连接错误 GlobalConfigUtils setMetaData Fail

记录一下mysql的一次错误排查1. 情景再现项目为springboot+mybatis项目错误发生在启动项目时,之前该项目可以正常启动,没有更改数据库相关的配置异常信息为:Caused by: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Error: GlobalConfigUtils setMetaData Fail !2. 查找原因首先这个报错是跟数据库配置有关,问题发生在连接mysql数

2021-03-08 20:38:57 17643 1

原创 BFG 删除Git提交历史记录中的敏感信息

日常提交代码的时候可能遇到的一个问题就是,不小心将一些数据库配置或者密钥文件提交到了线上,后面就算删除掉提交的文件,但是相关信息还是可以在历史版本中看到,下面介绍一下使用BFG Repo-Cleaner 来处理这种情况BFG Repo-CleanerRemoves large or troublesome blobs like git-filter-branch does, but faster. And written in ScalaBFG可以用来移除大文件或者处理我们想从 git histo.

2021-02-22 09:39:16 650

原创 用laravel-echo-server实现实时消息通知

用laravel-echo-server实现实时消息通知一、实时消息以印象视频为例,如聊天消息和点赞评论通知等,都是通过laravel提供的消息通知系统,将相关的notification对象存储到数据库中,然后提供一些api或者gql接口给前端,然后前端不停地轮询接口,获得更新数据。这样会有两个显而易见的问题:消息没有更新的时候,前端值轮询接口导致了很多无效的接口查询,增加服务器压力,影响app加载速度。消息有更新,但是轮询会有一定的时间间隔,就会导致消息更新不及时。这个缺陷是由于HTTP协议

2021-01-20 16:03:03 2508

原创 MYSQL-group by 用法解析

MYSQL-group by 用法解析group by 用法​ group by语法可以根据给定数据列的每个成员对查询结果进行分组统计,最终得到一个分组汇总表。SELECT子句中的列名必须为分组列或列函数。列函数对于GROUP BY子句定义的每个组各返回一个结果。某个历史观影进度记录表结构和数据如下:例如,我想列出每个人的最新一条观影记录,sql语句如下:SELECT user_id, MAX(updated_at) AS MAXIMUMFROM movie_historiesGROUP

2020-12-21 14:34:42 321

原创 HashMap探秘(2) ----构造和扩容

HashMap的构造函数们先认识几个默认常量:/*** The load factor used when none specified in constructor.* 默认的负载因子0.75*/static final float DEFAULT_LOAD_FACTOR = 0.75f;/*** The default initial capacity - MUST be a power of two.* 默认初始容量 16*/static final int DEFAULT

2020-08-19 20:56:11 193

原创 HashMap探秘(1) ----数据结构和类代码

数据结构冲突处理方式取数存数扩容线程安全应用场景hashcode()与equal()

2020-08-03 21:56:26 146

原创 HashMap前言-哈希算法与哈希表

哈希算法哈希表HashMap

2020-07-30 21:13:15 217

原创 哪些“对象”该死?----JVM内存管理与垃圾回收

JVM的内存管理JVM的最让人喜欢的一点,一定包括他的自动内存管理机制。Java 自动内存管理最核心的功能是 堆 内存中对象的分配与回收。堆是对象活动的主要区域,也是垃圾收集器管理的主要区域。从垃圾回收的角度,由于现在收集器基本都采用分代垃圾收集算法,所以 Java 堆还可以细分为:新生代和老年代:再细致一点有:Eden 空间、From Survivor、To Survivor 空间等。进一步划分的目的是更好地回收内存,或者更快地分配内存。从垃圾回收角度看堆...

2020-07-22 20:44:44 112

原创 Java类加载和对象创建过程

类信息被放在了方法区中(jdk1.8之后的元空间)类加载过程什么是类加载java编译器会将java源码编译成.class文件,将.class文件加载到JVM中,变成JVM认识的内容的过程就是类加载的过程。这个过程由类加载器完成。(用户也可以自定义类加载器)什么时候启动类加载器类加载器并不需要等到某个类被“首次主动使用”时再加载它,JVM规范允许类加载器在预料某个类将要被使用时就预先加载它。如果在预先加载的过程中遇到了.class文件缺失或存在错误,类加载器必须在程序首次主动使用该类时才报告错.

2020-07-14 18:26:38 882

原创 Bean冲突解决方法

项目采用的是SpringBoot+SpringMVC+mybatis此处用来记录了项目中遇到的一些零零散散的问题1. Bean冲突问题Caused by: org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name ‘shareServi...

2020-06-30 19:31:05 4453

原创 React入门笔记----核心概念

学习react的过程中整理了一下自己对一些概念和知识点的理解。对比Java经验来对一些概念做了自己的阐述。React学习的中文官方网址:ReactReact 是什么用于构建用户界面的 JavaScript 库他有一组拥有自己状态的组件,这些组件可以自由组合构成更复杂的组件,这些组件是基于JavaScript语法的。可以声明式地定义自己的UI组件,就像在Java中定义自己的类一样,在...

2020-04-13 16:24:26 146

原创 servlet与jsp跳转方法及问题

记录了一些自己在做项目的过程中遇到的问题和解决过程简介项目第一步注册与登录。项目采用的是SpringBoot+mybatis.登录注册页面是用jsp+servlet来写的。以下没有完整记录代码, 就是记录了一些关键步骤和知识点以及遇到的问题和解决方法。from表单提交到servletjsp页面中的信息需要通过表单提交给servlet来处理。下面看一下提交方法。创建一个servlet...

2020-04-10 13:42:29 5208

原创 策略者模式的实现实例----Java学习

策略者模式在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。使用场景: 1、如果在一个系统里面有许多类,它们之间的区别仅在于它们的行为,那么使用策略模式可以动态地让一个对象在许多行为中选择一种行为。 2、一个系统需要动态地在几种算法中选择一种。 3、如果一个对象有很多的行为,如果不用恰当的模式,这些行为就只好使用多重的条件...

2020-04-01 13:31:09 392

原创 Java反射机制---Java学习笔记

Java中的很多框架设计都用到了Java的反射原理Spring 框架的 IOC(动态加载管理 Bean)创建对象以及 AOP(动态代理)功能都和反射有联系;JDBC 连接数据库时使用 Class.forName()通过反射加载数据库的驱动程序;在自己设计程序中的一些设计模式时,反射也很有用武之地参考内容Java基础之—反射(非常重要)Reflection:Java反射机制的应用场景...

2020-04-01 11:41:04 131

转载 Java多线程同步数据的方法

1. AtomicAtomic…系列的对象属于java.util.concurrent.atomic包在多线程程序中,能保证对该对象的操作的原子性,常用在需要做递增、递减操作的变量,如计数器。2.volatile能保证所修饰的变量的在并发状态下的可见性,但无法保证原子性。ps:可见性是指,多个线程之间,总能看到变量的最新值。原子性是,针对变量的读–改--写操作只有当所修饰的变量满...

2020-03-31 17:13:58 228

转载 悲观锁与乐观锁

本文转载自:乐观锁与悲观锁.md何谓悲观锁与乐观锁乐观锁对应于生活中乐观的人总是想着事情往好的方向发展,悲观锁对应于生活中悲观的人总是想着事情往坏的方向发展。这两种人各有优缺点,不能不以场景而定说一种人好于另外一种人。悲观锁总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它...

2020-03-26 16:10:06 104

原创 Java基础学习笔记--String,equal()和==,static----Java学习笔记

基础知识1. String,StringBUffer和StringBuilder的区别可变性String 类中使用 final 关键字修饰字符数组来保存字符串,private final char value[],所以 String 对象是不可变的,每次对 String 类型进行改变的时候,都会生成一个新的 String 对象,然后将指针指向新的 String 对象StringBuff...

2020-03-18 15:00:40 155

原创 探秘JVM内存机制

引言在实际项目中,知道Java底层的内存机制对于编写出高性能的程序有很高的的助力。只有知道知道他是怎么工作的,才能优化出更好的算法是的程序更好的运行。同时,处理一些GC异常时,也要对内存机制有一定的了解。jdk1.8 & jdk1.6 前的内存划分【图源水印】【图源水印】堆堆由所有线程共用,用来存放存放对象实例。堆中有一个方法区,又叫永久区,用于存储已被虚拟机加载的类信息、...

2020-03-17 16:11:23 90

原创 laravel项目下的nginx配置

本文作于从0开始学习PHP和相关框架laravel,纯当一个笔记记录操作系统使用的是macOS Mojava 版本:10.14.6nginx version: nginx/1.17.9 php version :v7.2.28nginx配置详解nginx安装brew install nginx启动nginx服务:sudo nginx测试nginx是否安装成功curl ...

2020-03-11 11:34:29 3959 1

原创 线程池用法--Guava

1.前言高并发场景下不可避免需要使用多线程来处理任务,为了高性能的使用多线程,就需要用线程池来帮我们管理多个线程。简单介绍一下线程池的参数和用法,以及项目中的实例和优化建议。2.线程池参数解释引用:ThreadPoolExecutor线程池核心参数详解ThreadPoolExecutor与线程相关的几个成员变量是:keepAliveTime、allowCoreThreadTimeOut、p...

2020-02-17 18:13:38 6616 1

原创 Java8新特性---Java学习笔记

介绍Lambda 表达式 − Lambda允许把函数作为一个方法的参数(函数作为参数传递进方法中。方法引用 − 方法引用提供了非常有用的语法,可以直接引用已有Java类或对象(实例)的方法或构造器。与lambda联合使用,方法引用可以使语言的构造更紧凑简洁,减少冗余代码。Stream API −新添加的Stream API(java.util.stream) 把真正的函数式编程风格引...

2019-09-27 19:07:24 192 1

原创 正则表达式---Java学习笔记

参考文档:Java正则表达式正则表达式常用正则表达式基本语法解释+号前的字符至少出现一次(1-n)*号前的字符可以出现任意多次(0-n)?号前的字符最多出现一次(0/1)^匹配开头,$匹配结尾\b 匹配一个单词边界,即字与空格间的位置。\B 非单词边界匹配。\d数字字符匹配。等效于 [0-9]。\D非数字字符匹配。等效于 [^0-9]。\s匹配空格符{n}确定匹配n次...

2019-08-23 15:46:40 106

原创 Optional与空指针---Java学习笔记

链接为Java 8 Optional 类的介绍https://www.runoob.com/java/java8-optional-class.htmlOptional 类主要解决的问题是(NullPointerException)用法类似List这样的普通对象容器,你可以把各种 类型的数据放在这个容器里,但是与普通容器不同的是,Optional容器里面不仅可以放对象,也可以为空。但是Opt...

2019-07-24 16:40:53 131 1

原创 Git常用命令

前言复习git时重新记录了一边,所以记录得比较简洁,以便一时没用Git后面又把各种命令啥的都忘了。Git原理简单图解常用Git命令解释git init—初始化本地仓库git add —提交到暂存区git commit —提交到本地仓库(本地master分支)git clone—clone远程仓库到本地git push—同步远程仓库到工作区git pull—将本地仓库推送到远程...

2019-07-12 14:37:42 118

原创 数据库基础-索引(SQL Server)

参考原文:https://blog.csdn.net/sinat_39587248/article/details/80521068首先我们要知道数据库索引是用来干什么的:索引是为了加快数据查找速度而引入的,数据库中存储的数据在物理层是随机存储的,对某个列建立索引就会对该列的关键值进行排序并用某种数据结构存储他的值和对应的物理地址,在SQL中用的数据结构是B树。索引的分类:1. 聚集索引...

2019-06-26 20:08:07 315

原创 数据库语句基础-数据更改/插入、更新、删除

插入操作1. 单行插入语法格式:INSERT [INTO] <表名> [(列名表)] VALUES 值列表)其中:<列名表>中的列名必须是,<表名>中有的列名,值列表中的值可以是常量也可以是NULL,各值之间用逗号分隔值列表中的值必须与列名表中的列按位置顺序对应,他们的数据类型必须兼容 INSERT INTO Student VALUES(‘05...

2019-06-26 19:04:04 1459

原创 SQL语句基础-子查询

子查询在SQL语句中,一个select-from-where语句称为一个查询块。如果一个select语句嵌套在一个select,insert,update或delete语句中,则称之为子查询或者内存查询。包含子查询的语句则称为主查询或者外层查询子查询语句一般出现在where和having子句中写在where中的子句中的子查询一般有下面的形式WHERE <列名> [NOT] ...

2019-06-26 17:24:26 27067

原创 SQL语句基础-多表连接查询

连接查询介绍连接查询包括内连接,左外连接,右外连接,全外连接和交叉连接,后面连个很少使用,在此只介绍内连接和左右外连接。以下表作为示例进行单表查询:StduentSnoSnameSsexSbirthdaySdeptMemoCourseCnoCnamePreCnoCreditSemesterSCSnoCnoGrade具...

2019-06-26 14:23:00 6908 2

原创 SQL语句基础-单表基础查询

引言本文是在笔者复习数据库原理是的学习记录,虽然曾经学过,但是有些不常用的语句或者是一些细节的地方难免会忘记,就想借这次复习的机会将一些基本的知识点都记录下来,好记性都不如烂笔头呢,何况我记性并不好。以前的学习也多仰仗于各位大佬的学习笔记,就算我的记录不能帮到别人,也给自己留份记录吧。查询语句结构查询语句的语句结构标准select<目标列名>from<表名> [ ...

2019-06-25 20:02:28 691

空空如也

空空如也

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

TA关注的人

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