- 博客(12)
- 收藏
- 关注
原创 关于二分查找的一些思考
最近在做二分查找的算法,发现二分查找并不是想象的那么简单,尤其是终止条件,已经mid的取值问题,总是让我晕头转向,下面以一个例子,说一下我对二分查找的理解归纳:leetcode:剑指 Offer 53 - I. 在排序数组中查找数字 I统计一个数字在排序数组中出现的次数。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: 2示例 2:输入: nums = [5,7,7,8,8,10], target = 6输出: 0限制:0 <= 数组长
2021-05-12 20:36:42
223
原创 服务治理框架Eureka使用与简单理解
服务治理是分布式架构和微服务架构的核心功能,Eureka在Spring Cloud中负责服务注册和服务发现的组件。服务架构流程分析(1)通常我们会在应用中依赖Eureka Client,项目启动之后Eureka Client会向Eureka Server发送自己的信息进行注册(2)注册成功之后,Eureka Client会向Eureka Server发送心跳来进行续约,否则将在90s内从服务器注册表中删除客户端信息(3)Eureka Client定期从Eureka Server拉取服务注册表。(4
2021-05-11 14:34:10
635
原创 SpringBoot自定义starter实现
Spring Boot的基础介绍Spring Boot是由Pivotal团队提出的全新框架,其出现的目的主要是为了简化Spring应用的搭建;在使用SpringBoot之前,我们在使用Spring搭建项目时通常需要写一些xml对项目进行配置,通常还需要手动添加maven配置,框架搭建难度大,时间成本高;在对项目进行本地调试或者线上部署的时候,通常需要将项目编译成war包,然后部署到tomcat中;SpringBoot的出现,改变了这种状况,SpringBoot具有自动装配的特性,另外SpringBoo
2021-05-08 11:29:27
259
原创 CentOS设置固定ip
CentOS设置固定ip查找网络的配置文件cd /etc/sysconfig/network-scripts/ls | grep ifcfg我这里有ifcfg-ens33和ifcfg-lo,ifcfg-后面跟的就是网卡的名称,ifcfg-lo是本地回环地址的配置文件,不要动他。修改配置vi ifcfg-ens33BOOTPROTO="dhcp" 更改为 BOOTPROTO="static"# 追加如下内容BROADCAST=192.168.0.255 IPADDR=19
2020-06-18 09:02:20
585
原创 MyBatis之XML解析
xml文件解析无论是在MyBatis框架,还是在Spring框架中XML解析都占据了很大的一个篇幅,包括MyBatis对Mapper.xml 以及 mybatis-config.xml文件的解析以及Spring 对applicationContext.xml解析中,所以这里我们就单独拎出来对xml解析的知识进行回顾总结;常见的xml文件解析方式首先我们需要知道xml文件解析的常用的方式有哪些DOM解析 (java官方提供)SAX解析(java官方提供)JDOM解析(第三方提供)DOM4J解析
2020-06-08 12:17:25
1488
原创 静态代理,JDK动态代理,CGLib动态代理解析
静态代理的实现静态代理的主要特点:代理类和目标类有一个公共的接口Animal,一个目标类Cat,一个代理类CatProxy,代理类含有目标类的引用,代为执行具体的实例方法PS: 以下代码无实际意义,只是演示静态代理约束接口Catpublic interface Animal { void run();}目标类public class Cat implements Animal{ public void run() { System.out.println("-
2020-05-26 17:57:57
223
原创 SpringSession究竟对Session做了什么?
SpringSession的产生机制在单机版的项目中,客户端第一次请求服务端时会创建session对象,同时生成一个session_id,返回给客户端保存至cookie中,从而服务端和客户端建立一种关联关系,利用这种关系可以做到用户会话保持;但是对于分布式或者集群环境下,由于服务器端会话未保持同步,如果客户端请求被分发至其他服务器导致根据cookie无法找到session的这种局面,所以对于分布式系统来说,会话保持是要解决的一个关键问题;对于上面的问题,出现了若干种解决方案:nginx或者hapr
2020-05-16 18:25:43
820
原创 ElasticSearch安装详解(CentOS)
在实际的项目开发中搜索引擎是常常被使用到,比如说历史订单搜索,商品内容搜索,销售额报表统计等功能,如果涉及的数据量比较大,如果直接通过MySQL等常规的数据存储去做的话,可能会造成很严重的性能瓶颈,ElasticSearch作为一款全文搜索引擎经常被项目中使用,要想了解这个工具,我们先从安装入手,为避免安装过程中遇见各种各样的奇葩问题,将下面详细安装步骤分享给大家:1. 安装Java11 并配置环境变量# 下载解压tar -xvf /app/jdk-11.0.4_linux-x64_bin.tar.g
2020-05-15 09:18:34
471
原创 Redis安装详解(CentOS)
下载+解压wget http://download.redis.io/releases/redis-5.0.8.tar.gztar -zxvf redis-5.0.8.tar.gz在项目根目录下进行编译makemake执行时可能会出现错误,因为缺少gcc环境采用以下命令进行安装yum install gcc安装之后可能还会出现错误In file included from adlist.c:34:0:zmalloc.h:50:31: 致命错误:jemalloc/jemall..
2020-05-15 09:15:44
329
原创 MySQL安装详解(CentOS)
CentOS中默认安装MariaDB ,需要覆盖掉下载官方Yum Reposiitorywget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm安装(覆盖掉MariaDB 软件源)yum -y install mysql57-community-release-el7-10.noarch.rpmyum updateyum -y install mysql-community-serve.
2020-05-15 09:11:45
352
原创 Volatile关键字大揭秘
volatile关键字详解volatile在面试中出现频率非常高,尤其是在涉及单例模式,并发等场景下的时候;volatile关键字修饰的变量具有两大特性:第一,对所有线程的可见性第二,禁止指令重排序优化介绍volatile之前有必要先说一下现在计算机模型和JMM现在计算机模型我们知道绝大多数的问题的都不能只靠处理器"计算"完成,处理器至少要和内存进行交互,比如说存储运算结果,读取运算数据等;早计算机发展早期,处理器和内存的速度其实是差不多的,随着计算机的发展,处理器的计算速度越来越快,导致与内
2020-05-15 09:03:16
231
原创 啥!单例模式还可以这样写!
故事背景故事发生在前几天,小张去某一家公司面试,事情的经过是这样的:面试官问小张:你了解单例模式吗?小张谦虚的说:当然,单例模式就是就是这个类我们只能创建一个对象,通常我们最好的办法是让类自身负责保存它唯一的一个实例,然后这个类可以保证没有其他实例可以被创建,并且它可以提供一个唯一的方法访问该实例;面试官:那这个类通常如何设计才能达到这种效果呢小张:构造方法私有化这就堵死了外界通过new 创建该对象的可能;获取对象的时候可以判断下该对象是否存在,如果存在的话就创建一个实例,否则就返回当前已经存在的
2020-05-15 08:54:10
232
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人