- 博客(175)
- 资源 (8)
- 问答 (2)
- 收藏
- 关注
原创 【设计模式】简单工厂模式
可维护性差,如果要改+的逻辑,就会牵一发而动全身;扩展性差,如果这个时候新增开平方的逻辑怎么办?这一题看上去很简单,但如果面试时你写的是下面这种代码,那大概率是过不了的。上面代码也能实现题目的功能,但是代码没有错就是好的吗?简单写一个计算器,输入2个数和运算符,得到结果。:用一个类来创造实例的过程。
2023-08-16 17:42:16
1407
1
原创 RPC框架(一):扫盲
您可以让RPC的Selector/Processor使用单个线程运行服务的具体实现(这意味着上一个客户端的请求没有处理完,下一个客户端的请求就需要等待)、您也可以为每一个RPC具体服务的实现开启一个独立的线程运行(可以一次处理多个请求,但是操作系统对于“可运行的最大线程数”是有限制的)、您也可以线程池来运行RPC具体的服务实现(目前看来,在单个服务节点的情况下,这种方式是比较好的)、您还可以通过注册代理的方式让多个服务节点来运行具体的RPC服务实现。l:两端都能识别的、共同约定的消息格式。
2023-06-27 13:45:51
634
原创 【算法】滑动窗口
使用说明输入是一个数组或字符串,求解的结果是具有某种特质的子数组或者子字符串。可以用两个指针标识窗口的边界。窗口的长度是固定的,也可以是可变的。维护一个或者一组和窗口相关联的状态变量,减少while循环,能有效降低计算量和算法复杂度。数组定长问题leetcode209.长度最小的子数组...
2023-01-05 22:19:49
162
原创 Apollo分布式配置中心原理
Apollo分布式配置中心原理一、执行流程二、工作原理1 各模块职责2 分步执行流程3. 核心概念三、发布原理1. 服务端设计3.1.1 发送ReleaseMessage的实现方式3.1.2 NotificationControllerV2通知客户端配置更新一、执行流程操作流程如下:用户修改和发布配置是通过portal调用AdminService,把配置变更保存在数据库中。客户端通过长轮询访问ConfigService实时监听配置变更。默认超时时间是90秒。如果在超时前有配置变更,就会立即
2022-05-30 01:15:07
1953
原创 【面试必看】多线程
多线程概述1.1. 多线程编程存在的问题与风险线程安全(Thread safe)问题.多线程共享数据时,如果没有采取正确的并发访问控制措施,就可能会产生数据一致性问题,如读取脏数 据(过期的数据), 如丢失数据更新.线程活性(thread liveness)问题.由于程序自身的缺陷或者由资 源稀缺性导致线程一直处于非 RUNNABLE 状态,这就是线程活性问题, 常见的活性故障有以下几种:(1) 死锁(Deadlock). 类似鹬蚌相争.(2) 锁死(Lockout), 类似于睡美人故事.
2021-12-23 19:52:54
411
原创 【DDD架构】
DDD(domain driven design)领域驱动设计模型一、DP(domain primitive)1、什么是DPdp是一种基本类型,包括type(数据类型)和class(类)。public class PhoneNumber { private final String number; public String getNumber() { return number; } public PhoneNumber(String num
2021-08-23 11:55:06
1792
原创 单测PowerMock
如何写一个单测(过程)1. 定义被测对象直接构建对象UserService userService = new UserService();利用Mockito.spyMockito提供一个spy功能,用于拦截那些尚未实现或不期望被真实调用的方法,默认所有方法都是真实方法,除非主动去模拟对应方法。所以,利用spy功能来定义被测对象,适合于需要模拟被测类自身方法的情况,适用于普通类、接口和虚基类。UserService userService = Mockito.spy(new User
2021-08-19 18:36:10
2232
原创 【Spring】IOC控制反转
什么是IOC?是一种思想、理论,把对象的创建、赋值、对象之间关系管理等工作都交给容器。控制:对象的创建、赋值等管理工作反转:将对象的控制权交给容器正转:由程序员对对象创建、赋值容器:一种框架,即Spring为什么用ioc?解耦合创建对象方式:1.构造方法2.反射3.序列化4.克隆5.IOC6.动态代理IOC技术实现:DI(依赖注入)什么是DI?只需在程序中提供要使用的对象名称即可,至于如何创建、赋值、管理对象则由容器内部实现spring底层创建对象实现:反射机制...
2021-07-27 21:58:32
157
原创 美团后端面试大全【附答案】
1.平时用什么技术栈啊 如实回答Java用的比较多2.Java集合了解吗 说说都有啥 List Set Map 如实说Set不咋用 面试官也没刁难我=。=3.说一下List和Map各自适用的场景4.ArrayList5.hashmap6.反射了解吗 (不太熟啊) 就说了spring的IOC和AOP是基于反射的7.那你就说说IOC和AOP吧 (挖坑神作)8.多线程了解吗 说说优缺点 主要 有啥缺点 那缺点怎么解决 (就死锁啥的 瞎bb了一通)9.synchronize讲一
2021-04-25 02:28:27
1017
原创 前端面试重点总结
前端面试重点总结CSSflex布局一.容器的属性1.flex-direction2.flex-wrap3.flex-flow4.justify-content5.align-items6.align-content二.项目的属性1.order2.flex-grow3.flex-shrink4.flex-basis5.flex6.align-self寄生组合相比于组合继承的优势在什么地方promise基本原理是什么,主要解决什么问题,then为什么可以链式调用?深拷贝要注意什么地方大对象里面有个属性值又是一个
2021-04-25 02:27:02
2428
原创 计算机网络面试重点【精简,适合时间不多的考前背诵】
TCPUDPHTTPhttp和tcp的关系http在应用层,tcp在传输层,http要基于tcp,tcp建立连接,http用来收发数据tcp如何保证可靠传输三次握手和四次挥手:syn,ack/syn,ack;fin,ack,fin,ack超时重传:设置重传计时器,时限内没有收到确认帧,就重新发送数据流量控制:控制发送方的发送速率,一对一拥塞控制:控制发送方的发送速率,多对一如何应对大量访问,恶意攻击,dos,洪泛攻击洪泛攻击就是攻击者发送大量的syn,服务器为每个syn分配一个特定的数
2021-04-25 02:26:03
368
原创 字节跳动后端面经大全【附答案】
作者:真不想背八股文了链接:https://www.nowcoder.com/discuss/630113?type=all&order=time&pos=&page=1&channel=-1&source_id=search_all_nctrack来源:牛客网一面 32min聊项目知道 Ping 命令用到的协议是什么吗?是哪一层的协议?使用的是ICMP协议,是“Internet Control Message Protocol”(Internet控制消息
2021-04-25 02:24:39
1322
原创 中国移动后端面经总结
作者:JamieEcho链接:https://www.nowcoder.com/discuss/520878?type=post&order=time&pos=&page=1&channel=-1&source_id=search_post_nctrack来源:牛客网AOPhashCode()和equals()的关系如何判断一个类的两个对象的某个属性是否相同synchronized和Lock的区别什么情况下需要加锁,举个例子(大概题意)如果有多个线程
2021-04-23 15:12:28
558
1
转载 express框架
Express框架一、什么是Express框架二、安装Express三、框架的使用1.根据请求地址返回给前端内容一、什么是Express框架基于Node的一个框架,封装了读取html文件、css文件的操作,直接返回封装好的内容,让开发人员更加注重业务逻辑。二、安装Expressnpm install express三、框架的使用1.根据请求地址返回给前端内容//1.引入模块var express = require('express')//2.创建网址服务器,框架核心app对象var
2021-04-17 18:48:13
696
1
原创 Node.js
Node.jsNode基本概念模块化包(package)npm(Node Package Manager node的包管理器)文件系统(File System)fs模块Node基本概念Node是对ES标准一个实现,Node也是一个JS引擎通过Node可以使js代码在服务器端执行-node底层是使用c++的编写的node的中js引擎使用的chrome的v8引擎Node仅仅对ES标准进行了实现,所以在Node中不包含DOM 和 BOMNode中可以使用所有的内建对象Str
2021-04-17 02:47:04
264
1
原创 XML文件概述
XML文件概述1.什么是XML文件?2.约束文档(1).DTD(简单)(2)SCHEMA(高级)1.什么是XML文件?(1)extensible markup language可扩展标记语言,开发者在符合xml命名规则(约束文档dtd/schema)的基础上,根据自己的需求定义自己的标签。标记:一个标签就是一个命令可扩展:没有预先定义好的命令,想写什么标签就写什么标签。作用:在Java中使用XML文档来代替properties作为配置文件(2)xml与html的区别:xml可以看作是html的父
2021-04-16 23:00:48
259
原创 tomcat解读service.xml文件
<?xml version='1.0' encoding='utf-8'?><!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright own
2021-04-13 15:07:15
159
原创 【leetcode】413等差数列划分——计数型
题目如果一个数列至少有三个元素,并且任意两个相邻元素之差相同,则称该数列为等差数列。例如,以下数列为等差数列:1, 3, 5, 7, 9 7, 7, 7, 73, -1, -5, -9以下数列不是等差数列。1, 1, 2, 5, 7数组 A 包含 N 个数,且索引从0开始。数组 A 的一个子数组划分为数组 (P, Q),P 与 Q 是整数且满足 0<=P<Q<N 。如果满足以下条件,则称子数组(P, Q)为等差数组:元素 A[P], A[p + 1], …, A[Q -
2021-04-11 03:51:57
186
原创 【leetcode】198打家劫舍——求最大最小值型
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1:输入:[1,2,3,1] 输出:4 解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。偷窃到的最高金额 = 1 + 3 = 4 。示例 2:输入:[2,7,9
2021-04-11 03:12:39
145
原创 【leetcode】70.爬楼梯——计数型
爬楼梯题目题解1.递归2.记忆化递归3.动态规划题目假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。1 阶 + 1 阶2 阶示例 2:输入: 3 输出: 3 解释: 有三种方法可以爬到楼顶。1 阶 + 1 阶 + 1 阶1 阶 + 2 阶2 阶 + 1 阶来源:力扣(LeetCode) 链接:http
2021-04-11 02:14:12
355
原创 动态规划
动态规划1.题目特点1.1计数1.2求最大最小值1.3求存在性2.组成部分2.1确定状态2.2转移方程2.3初始条件和边界情况2.4运算顺序3常见题型4优化5打印路径1.题目特点1.1计数1.2求最大最小值1.3求存在性2.组成部分2.1确定状态动态规划需要开一个数组,需要确定数组每个元素的意义——相当于数学问题中确定X,Y,Z的含义关键点:最后一步子问题此步骤也可以用递归做,但递归重复计算,效率低下,为了避免这种情况,我们存储已经运算的结果并改变运算顺序2.2转移方程eg l
2021-04-10 18:04:36
73
原创 ES6新性能
新的变量声明方式模板字符串传统字符串拼接:模板字符串:变量的结构赋值即对应着定义变量箭头函数扩展运算符reset运算符数组新增方法
2021-04-10 02:39:00
2274
原创 JS的运算符之void
表达式意义“”返回空字符串href=""仍会跳转到当前页面,“”代表当前路径void(表达式)不返回任何结果href="javascript:void(0)”不发生跳转
2021-04-08 13:37:14
224
原创 JS的变量
JS的变量变量的声明与赋值函数的定义与调用局部变量和全局变量变量的声明与赋值函数的定义与调用
2021-04-08 01:40:08
122
原创 JavaScript概述
JavaScript概述JS与JAVA区别JS与JSP区别什么是JavaScriptJavaScript由三部分组成:1. ECMAScript(核心)2. DOM(文档对象模型)3. BOM (浏览器对象模型)什么是ES51. strict模式2. Array增加方法3. Object方法什么是ES61.块级作用域 关键字let, 常量const2.对象字面量的属性赋值简写(property value shorthand)3.赋值解构4.函数参数 - 默认值、参数打包、 数组展开(Default 、Re
2021-04-07 22:52:07
525
原创 Java学习路线&笔记链接
Java学习路线&笔记链接????JAVASE数据库mysql(或oracle)JDBCWEB前端HTMLCSSJavaScriptJavaWeb(web后端)ServletJSPweb进阶AJAXjQueryJavaWeb项目实战SSM三大框架(额外可选学SSH)MyBatisSpringSpringMVC互联网分布式JAVASEJava语言的基础,是Java的最基本的库。基础语法加常用类库。数据库mysql(或oracle)数据库是所有程序员都需要学习的,因为不管是C语言,还是C++,
2021-04-07 22:50:55
716
1
【史上最全】【后端】【面试】必背大全.pdf
2021-04-26
智能教育助手.docx
2020-06-09
mongodb基础课件.zip
2020-04-30
Mongo java driver.jar v3.4.3 免费版.rar
2020-04-30
junit-4.12.rar
2019-09-04
二维数组与指针,leetcode.435无重叠区间
2021-03-15
用C语言写输出函数,只能用putchar(),不能用printf
2021-03-04
TA创建的收藏夹 TA关注的收藏夹
TA关注的人