自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(106)
  • 资源 (2)
  • 收藏
  • 关注

原创 系统设计

如何设计朋友圈如何设计消息撤回?如何设计热榜?如何设计

2021-04-16 08:08:57 127

原创 如何减少代码的分支率

https://www.zhihu.com/question/344856665

2021-04-15 19:58:18 154

原创 进程 线程 协程

要去学习下操作系统的知识,从操作系统层面去理解。操作系统学习B站的课程

2021-04-15 16:05:52 118

原创 ThreadLocal的原理和使用场景

参考文章http://www.jasongj.com/java/threadlocal/

2021-04-15 11:31:04 112

原创 分布式session的原理和使用

cookie和Jessionid

2021-04-15 10:51:07 100

原创 为什么需要微服务?

为什么需要?基本的架构是什么样的?需要哪些组件和技术?微服务技术的发展历程是什么?

2021-04-14 23:59:37 83

原创 MySQL索引相关

为什么数据库字段要使用NOT NULL:https://mp.weixin.qq.com/s?__biz=MjM5NzMyMjAwMA==&mid=2651494364&idx=1&sn=9824e6a253cd644f8eeb3392fd7afaf5&chksm=bd25fba38a5272b5d3cfd28ab752119211992b694e67998479b10294bfa7e0ff9012496127cc&scene=132#wechat_redirect

2021-04-13 18:56:59 65

原创 系统设计题目

设计打车软件https://zhuanlan.zhihu.com/p/77857433设计秒杀系统

2021-04-13 09:55:17 73

原创 扫码登陆的原理?

https://mp.weixin.qq.com/s/ZdDAwznXdjNrsmCeyhFocQ

2021-04-13 09:41:33 71

原创 kafka高可用概述

多副本保证不丢失多个副本保证数据不丢失ISR是:in-sync replica,就是跟leader partition保持同步的follower partition的数量,只有处于ISR列表中的follower才可以在leader宕机之后被选举为新的leader,因为在这个ISR列表里代表他的数据跟leader是同步的如何处理负责均衡尽量的保证leader放在不同的机器上,这样就避免请求同时访问同一个机器。TODO如何保证的?基于zookeeper实现kafka无状态可伸缩重点无状态设.

2021-04-11 17:07:14 132 1

原创 kafka不使用zookeeper

为什么可以不使用zook?

2021-04-11 10:36:41 900

原创 Tomcat启动过程分析

问题为什么Tomcat启动那么慢?

2021-04-11 10:27:36 79

原创 Eureka Server启动之基于构造器模式的服务实例构造

重点构造器模式还是分析环境初始化方法:protected void initEurekaServerContext() throws Exception { EurekaServerConfig eurekaServerConfig = new DefaultEurekaServerConfig(); //第一步 加载eureka-server.properties的配置 // For backward compatibility Jso

2021-04-10 22:09:21 81

原创 Eureka Server启动之配置文件加载以及面向接口的配置项读取

重点通过接口而不是常量的方式去获取各种配置加载eureka-server.properties的过程:(1)创建了一个DefaultEurekaServerConfig对象(2)创建DefaultEurekaServerConfig对象的时候,在里面会有一个init方法(3)先是将eureka-server.properties中的配置加载到了一个Properties对象中,然后将Properties对象中的配置放到ConfigurationManager中去,此时ConfigurationMan

2021-04-10 19:07:44 623

原创 eureka server 启动过程分析--初始化环境

重点理解:ConfigurationnManager源码中体现的double chehck + volatile的单例实现模式的思想和技巧理解initEurekaEnvironment,初始化环境的逻辑,数据中心 + 运行环境,没设置的话,都给你搞成默认的和测试的启动类 EurekaBootStrap @Override public void contextInitialized(ServletContextEvent event) { try {

2021-04-10 18:01:02 140

原创 eureka源码环境搭建

阅读源码步骤1. 安装gradle具体安装方法不再赘述,验证效果如下:2. 下载源码git clone https://github.com/Netflix/eureka.git3.验证源码环境是否OK随便运行一个自带的测试用例,例如:com.netflix.eureka.resources.EurekaClientServerRestIntegrationTest#testRegistration4.看哪部分源码启动 eureka server ,启动 eureka client

2021-04-09 07:57:06 217

原创 理解链表的内存中的结构

2020-07-18 10:57:54 423

原创 布隆过滤器(单机和分布式)

https://www.cnblogs.com/CodeBear/p/10911177.html

2020-07-11 20:03:29 258

原创 递归的求和

//这种标记长度的方式 和求全排练的方式很像 //递归的求和 public int sum(int[] arr){ if(arr==null||arr.length==0){ return 0; } return sum(arr, 0); } public int sum(int[] arr,int l){ if(l==arr.length){ return

2020-07-02 20:37:21 686 1

原创 删除链表所有值为val的节点

题目 https://leetcode-cn.com/problems/remove-linked-list-elements/submissions/思路就是哨兵模式以及moveHead的使用 public ListNode removeElements(ListNode head, int val) { ListNode sentinel = new ListNode(-1); sentinel.next = head; ListNode moveN

2020-07-02 20:14:27 189

原创 寻找平衡点的俩种方法

o(n2)和o(n)//时间复杂度是nstatic void equPoint2(){ int[] arr = {2,3,4,5,8,5,9}; int leftSum = arr[0]; int rightSum = 0; for (int i : arr) { rightSum+=i; } for (int i =1; i < arr.length; i++) {

2020-07-01 10:10:38 2313

原创 CopyOnWriteArrayList是如何实现最终一致性的 多版本是如何合并的?

好奇mvcc是如何合并的?

2020-06-30 20:16:57 477

原创 秒杀如何解决超卖

https://www.cnblogs.com/wenbochang/p/10912459.html1、 使用数据库的排他锁2、使用version3、使用redis的单线程。

2020-06-28 11:04:53 329

原创 TreeMap按照value排序

treemap默认是按照ket排序,底层红黑树实现public static void sortByValue() { Map<String,Integer> map = new TreeMap<String, Integer>(); map.put("a", 1); map.put("d", 2); map.put("b", 3); map.put("c",0); List<M

2020-06-28 09:35:37 309

原创 linkedhashmap 为什么有序

https://segmentfault.com/a/1190000012964859从这个文章来分析就是维护了双向链表问题这个变量为什么可以没有初始化 **

2020-06-26 01:06:34 241

原创 查找最后一个盒子装多少鸡蛋

有N个鸡蛋,要依次投放到如下盒子中(盒子数未知,直至全部放入为止),【1】,【2】,【4】,【8】,【16】。。。。【?】请问,已知n个鸡蛋,最后一个 盒子有多少个鸡蛋? public static int lastBoxEggNum(int eggNum){ if(eggNum<=0){ return 0; } for (int i = 0;;i++){ int boxCapacity = (i

2020-06-17 22:46:16 270

原创 sql查找根部节点

1、有树节点表如下(树的高度不定):CREATE TABLE `node` ( `id` BIGINT PRIMARY KEY AUTO_INCREMENT, `name` VARCHAR(32) NOT NULL, `pid` BIGINT NULL COMMENT '父节点ID');请用sql查询出所有非叶子节点的节点名称。 select t1.name from node t1 join node t2 on t1.id = t2.pid;...

2020-06-17 22:44:48 966

原创 计算集合里全排列

public static void main(String[] args) { List list = new ArrayList(); list.add(1); list.add(2); list.add(3); for (int i = 0; i < list.size(); i++) { for (int j = 0; j < list.size(); j++) { for (int k = 0; k < list.size(); k++) {

2020-06-16 17:25:59 117

原创 返回俩个集合的元素组合

public static void main(String[] args) { List list1 = new ArrayList(); List list2 = new ArrayList(); list1.add(1);list1.add(2);list1.add(3); list1.add(3);list1.add(4);list2.add(6); for (int i = 0; i < list1.size(); i++) { for (int j = 0; ..

2020-06-16 17:16:26 199

原创 返回数组的所有元素的俩俩组合

public static void main(String[] args) { List<Integer> list = new ArrayList<>(); list.add(1); list.add(2); list.add(3); for (int i = 0; i < list.size(); i++) { for (int j = i+1; j < list.size(); j++) { System.out.println(

2020-06-16 17:12:05 531

原创 最大连续子数组和

题目连接 https://leetcode-cn.com/problems/lian-xu-zi-shu-zu-de-zui-da-he-lcof方法一: 暴力法求解class Solution { public int maxSubArray(int[] arr) { int maxSum = Integer.MIN_VALUE; for (int i = 0; i < arr.length; i++) { for (int j = i; j < arr.

2020-06-12 14:18:07 110

原创 two sum

https://leetcode-cn.com/problems/two-sum/submissions/public int[] twoSum(int[] arr, int target){ if(arr==null){ return null; } Map<Integer,Integer> map = new HashMap(); for (int i = 0; i < arr.length; i++) { map.put(arr[i],i); }

2020-06-10 13:57:00 147

原创 翻转数组

public static void main(String[] args) { int[] arr = {1,2,3,4,5}; for (int i = 0; i < arr.length/2; i++) { int tmp = arr[i]; arr[i] = arr[arr.length-i-1]; arr[arr.length-i-1] = tmp; } for (int i : arr) { System.out.println(i); }

2020-06-10 10:31:55 117

原创 翻转数字

翻转数字 public static void main(String[] args) { System.out.println(reverseNum(-123)); } public static int reverseNum(int num){ if(num>Integer.MAX_VALUE||num<Integer.MIN_VALUE){ return 0; } int ret

2020-06-10 00:17:15 121

原创 排序算法整理

选择排序int[] arr = {22,12,3,4,1}; for (int i = 0; i < arr.length-1; i++) { for (int j = i+1; j <arr.length; j++) { if(arr[i]>arr[j]){ int tmp = arr[i]; arr[i] = arr[j];

2020-06-10 00:11:39 76

原创 单例的几点概念。

1、构造函数必须设置为private避免被new 出来,只能通过暴露的方法获取实例2、懒汉和恶汉懒汉就是用的时候才加载double checkpublic class SingletonWithDoubleChecked { private SingletonWithDoubleChecked(){}; private static volatile SingletonWithDoubleChecked instance = null; private static fi

2020-06-09 00:26:21 98

原创 剑指offer40. 最小的k个数

题目https://leetcode-cn.com/problems/zui-xiao-de-kge-shu-lcof/思路分析典型的topk问题方法一全部排序后输出public int[] getLeastNumbers(int[] arr, int k) { if(arr==null){ return null; } List<Integer> list = new ArrayList() ; for (int i : arr)

2020-06-03 00:18:38 119

原创 大文件上传需要注意的若干问题

为了防止大文件上传到一半失败,或者超大文件内存溢出的问题,问题有必要合并么?超大文件(T级别)下载是怎么做的?参考https://juejin.im/post/5dff8a26e51d4558105420ed

2020-05-29 15:44:58 506

原创 SaaS架构中多租户的概念

租户可以理解为部署在云端的客户,通常出现在2B的企业中,比如现在学校的一卡通管理,通常是一个公司来做的,学校本地不需要做任何部署,而这个公司又是服务了很多个学校,那么学校对于公司来说就是一个租户。SaaS多租户一共有三种1. 独立数据库这是第一种方案,即一个租户一个数据库,这种方案的用户数据隔离级别最高,安全性最好,但成本较高。优点:为不同的租户提供独立的数据库,有助于简化数据模型的扩展设计,满足不同租户的独特需求;如果出现故障,恢复数据比较简单。缺点:增多了数据库的安装数量,随之带来维护成

2020-05-28 19:02:10 2059

原创 java 多线程求和的几种实现方式。

前情提要通过本文你可以收获通过多线程计数求和了解synchronized的应用场景,以及其他加锁方式为什么不生效框架 对象锁和类锁1、同一时刻只有一个线程执行这段代码2、最基本的互斥同步手段3、分类 一共有俩种锁:1、对象锁1、同步代码块锁2、方法锁3 类锁案例演示与分析:1、不使用锁 求和会出问题public class MutilThreadCount implements Runnable{ static int sum = 0; @Override

2020-05-27 15:08:32 2717

省市区级联菜单MySQL数据库以及源代码打包

省市区级联菜单MySQL数据库以及源代码打包,项目可以使用,不能用的话我吃翔去 省市区级联菜单MySQL数据库以及源代码打包,项目可以使用,不能用的话我吃翔去

2018-01-20

javaweb各个模块的思维导图

javaweb各个模块的思维导图 包含java基础,微服务,jvm,架构方法,servlet与jsp,框架

2018-01-20

空空如也

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

TA关注的人

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