阿里-马云的学习笔记

导航

04 2020 档案

消息中间件(二)-----ActiveMQ高级特性和用法
摘要:嵌入式ActiveMQ package cn.enjoyedu.embed; import org.apache.activemq.broker.BrokerService; import org.apache.activemq.broker.jmx.ManagementContext; publi 阅读全文

posted @ 2020-04-28 23:15 阿里-马云的学习笔记 阅读(628) 评论(0) 推荐(0)

面试题:如何实现红包算法
摘要:题目 例如一个人在群里发了100块钱的红包,群里有10个人一起来抢红包,每人抢到的金额随机分配。 红包功能需要满足哪些具体规则呢? 1. 所有人抢到的金额之和要等于红包金额,不能多也不能少。 2. 每个人至少抢到1分钱。 3. 要保证红包拆分的金额尽可能分布均衡,不要出现两极分化太严重的情况。 解决 阅读全文

posted @ 2020-04-28 17:33 阿里-马云的学习笔记 阅读(5308) 评论(0) 推荐(0)

LRU算法与代码实现
摘要:场景 公司的业务越来越复杂,我们需要抽出一个用户系统,向各个业务系统提供用户的基本信息。 用户系统作为非常基础的应用,公司内部会有很多个系统去调用,因此一定要注意性能问题。因此在用户系统中,可以增加一个内存缓存,当然具体的信息是存放在数据库里的。每当查找一个用户时会先在哈希表中进行查询,以此来提高访 阅读全文

posted @ 2020-04-28 15:35 阿里-马云的学习笔记 阅读(1168) 评论(0) 推荐(0)

面试题:寻找缺失的整数
摘要:题目 在一个无序数组里有99个不重复的正整数,范围是1~100,唯独缺少1个1~100中的整数。如何找出这个缺失的整数? 解决方案 解决方法一 创建一个哈希表,以1到100这100个整数为Key。然后遍历整个数组,每读到一个整数,就定位到哈希表中对应的Key,然后删除这个Key。由于数组中缺少1个整 阅读全文

posted @ 2020-04-28 14:03 阿里-马云的学习笔记 阅读(1046) 评论(0) 推荐(0)

面试题:如何实现大整数相加
摘要:题目 给出两个很大的整数,要求实现程序求出两个整数之和。注:这两个整数用Long都无法表示 解决方案 思路 在我们运算两位很长的整数加法时,都是通过下面这种方式 其实本质就是把计算过程拆解成一个一个子步骤。针对大整数,可以使用数组来存取,比如整数的最高位存放在数组的下标0处。 以426 709 75 阅读全文

posted @ 2020-04-28 10:37 阿里-马云的学习笔记 阅读(553) 评论(0) 推荐(0)

面试题:整数反转
摘要:题目 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 示例 1: 输入: 123 输出: 321 示例 2: 输入: -123 输出: -321 示例 3: 输入: 120 输出: 21 注意: 假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 阅读全文

posted @ 2020-04-28 09:11 阿里-马云的学习笔记 阅读(434) 评论(0) 推荐(0)

面试题:两数之和
摘要:题目 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 num 阅读全文

posted @ 2020-04-27 17:28 阿里-马云的学习笔记 阅读(333) 评论(0) 推荐(0)

面试题:如何用栈实现队列
摘要:题目 用栈来模拟一个队列,要求实现队列的两个基本操作:入队、出队 解题方法 栈、队列不同点 栈的特点是先入后出,出入元素都是在同一端(栈顶)。 入栈: 出栈: 队列的特点是先入先出,出入元素是在不同的两端(队头和队 尾)。 入队: 出队: 既然我们拥有两个栈,那么可以让其中一个栈作为队列的入口,负责 阅读全文

posted @ 2020-04-27 15:53 阿里-马云的学习笔记 阅读(332) 评论(0) 推荐(0)

面试题:如何判断一个数是否是2的整数次幂
摘要:题目 如何判断一个数是不是2的整数次幂? 解题方法 思路: 首先把2的整数次幂转换成二进制数,十进制的2转换成二进制是10B,4转换成二进制是100B,8转化成二进制是1000B…… 如果一个整数是2的整数次幂,那么当它转化成二进制时,只有最高位是1,其他位都是0!接下来如果把这些2的整数次幂各自减 阅读全文

posted @ 2020-04-27 14:04 阿里-马云的学习笔记 阅读(3433) 评论(0) 推荐(2)

面试题:如何求最大公约数
摘要:题目 写一段代码,求出两个整数的最大公约数,要尽量优化算法的性能。 实现方法一 这种方式性能不是非常好 package arithmetic.com.ty.binary; public class SimpleGreatestCommon { public static int getGreates 阅读全文

posted @ 2020-04-27 11:43 阿里-马云的学习笔记 阅读(1795) 评论(1) 推荐(0)

面试题:如何实现最小栈
摘要:题目 实现一个栈,该栈带有出栈(pop)、入栈(push)、取最小元素(getMin)3个方法。要保证这3个方法的时间复杂度都是O(1)。 解题思路 1. 设原有的栈叫作栈A,此时创建一个额外的“备胎”栈B,用于辅助栈A。 2. 当第1个元素进入栈A时,让新元素也进入栈B。这个唯一的元素是栈A的当前 阅读全文

posted @ 2020-04-27 10:54 阿里-马云的学习笔记 阅读(432) 评论(0) 推荐(0)

面试题:如何判断单向链表中是否有“环”
摘要:题目 有一个单向链表,链表中有可能出现“环”,就像下图这样。那么,如何用程序来判断该链表是否为有环链表呢? 解决方案 方法1: 首先创建一个以节点ID为Key的HashSet集合,用来存储曾经遍历过的节点。然后同样从头节点开始,依次遍历单链表中的每一个节点。每遍历一个新节点,都用新节点和HashSe 阅读全文

posted @ 2020-04-26 18:30 阿里-马云的学习笔记 阅读(3856) 评论(1) 推荐(1)

数据结构(二)-----二叉堆
摘要:二叉堆 概念 二叉堆本质上是一种完全二叉树,它分为两个类型。最大堆以及最小堆,二叉堆的根节点叫作堆顶。最大堆和最小堆的特点决定了:最大堆的堆顶是整个堆中的最大元素;最小堆的堆顶是整个堆中的最小元素 最大堆与最小堆 1. 最大堆 最大堆的任何一个父节点的值,都大于或等于它左、右孩子节点的值。 2. 最 阅读全文

posted @ 2020-04-26 15:12 阿里-马云的学习笔记 阅读(761) 评论(0) 推荐(0)

数据结构(一)-----树简介、树遍历
摘要:树 概念 树是由结点或顶点和边组成的(可能是非线性的)且不存在着任何环的一种数据结构。没有结点的树称为空(null或empty)树。一棵非空的树包括一个根结点,还(很可能)有多个附加结点,所有结点构成一个多级分层结构。 1. 有且仅有一个特定的称为根的节点。 2. 当n>1时,其余节点可分为m(m> 阅读全文

posted @ 2020-04-26 12:34 阿里-马云的学习笔记 阅读(541) 评论(0) 推荐(0)

消息中间件(一)-----概述、JMS以及ActiveMQ简介
摘要:什么是消息中间件? 定义 其实并没有标准定义。一般认为,消息中间件属于分布式系统中一个子系统,关注于数据的发送和接收,利用高效可靠的异步消息传递机制对分布式系统中的其余各个子系统进行集成。 为什么要用消息中间件? 假设一个电商交易的场景,用户下单之后调用库存系统减库存,然后需要调用物流系统进行发货, 阅读全文

posted @ 2020-04-20 22:38 阿里-马云的学习笔记 阅读(557) 评论(0) 推荐(0)

Netty专题(六)-----netty群聊系统应用、netty心跳检测应用
摘要:netty群聊系统 实例要求 1) 编写一个 Netty 群聊系统,实现服务器端和客户端之间的数据简单通讯(非阻塞) 2) 实现多人群聊 3) 服务器端:可以监测用户上线,离线,并实现消息转发功能 4) 客户端:通过 channel 可以无阻塞发送消息给其它所有用户,同时可以接受其它用户发送的消息( 阅读全文

posted @ 2020-04-20 17:39 阿里-马云的学习笔记 阅读(498) 评论(0) 推荐(0)

Netty专题(三)-----nio实现群聊系统、零拷贝
摘要:nio实现群聊系统 实例要求 1) 编写一个 NIO 群聊系统,实现服务器端和客户端之间的数据简单通讯(非阻塞) 2) 实现多人群聊 3) 服务器端:可以监测用户上线,离线,并实现消息转发功能 4) 客户端:通过 channel 可以无阻塞发送消息给其它所有用户,同时可以接受其它用户发送的消息(有服 阅读全文

posted @ 2020-04-20 16:50 阿里-马云的学习笔记 阅读(319) 评论(0) 推荐(0)

rmi简介以及手写rpc框架
摘要:RPC概念 RPC(Remote Procedure Call)远程过程调用,通过这个rpc协议,调用远程计算机上的服务,就像调用本地的服务一样。 不同的服务部署在不同的机器上面,并且在启动后在注册中心进行注册,如果要调用,可以通过rpc调用对应的服务。如图,在不同的Controller中可以从注册 阅读全文

posted @ 2020-04-12 23:01 阿里-马云的学习笔记 阅读(820) 评论(0) 推荐(1)

zookeeper专题学习(四)-----zookeeper应用
摘要:服务注册与发现 场景 一个产品服务productService,一个订单服务orderService。下订单的时候要获取产品信息。 代码示例 项目总结构 productService 结构: 1、ProductApp package cn.enjoy.product; import cn.enjoy 阅读全文

posted @ 2020-04-11 16:56 阿里-马云的学习笔记 阅读(291) 评论(0) 推荐(0)

final、finally与finalize的区别
摘要:本文转载自:https://www.cnblogs.com/ktao/p/8586966.html 1. final 在java中,final可以用来修饰类,方法和变量(成员变量或局部变量)。下面将对其详细介绍。 1.1 修饰类 当用final修饰类的时,表明该类不能被其他类所继承。当我们需要让一个 阅读全文

posted @ 2020-04-10 15:02 阿里-马云的学习笔记 阅读(584) 评论(0) 推荐(0)

http、https协议简介以及keep-alive模式
摘要:http与https 基本概念 HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。 HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTT 阅读全文

posted @ 2020-04-09 15:23 阿里-马云的学习笔记 阅读(2765) 评论(0) 推荐(0)

zookeeper专题学习(三)-----一致性原理、zk集群
摘要:一致性协议概述 在分布式环境下,有很多不确定性因素,故障随时都回发生,也讲了CAP理论,BASE理论。我们希望达到,在分布式环境下能搭建一个高可用的,且数据高一致性的服务,目标是这样,但CAP理论告诉我们要达到这样的理想环境是不可能的。这三者最多完全满足2个。 在这个前提下,P(分区容错性)是必然要 阅读全文

posted @ 2020-04-08 22:22 阿里-马云的学习笔记 阅读(741) 评论(0) 推荐(0)

java面试题总结
摘要:本文转载自:【7万字干货】2021Java实习必看面试两百题解析 JavaSE 88 基础语法 9 Q1:简单说说Java有哪些数据类型答:①分为基本数据类型和引用数据类型。②基本数据类型包括:数值型(byte、short、int、long、float、double),字符型(char)以及布尔型( 阅读全文

posted @ 2020-04-03 10:16 阿里-马云的学习笔记 阅读(664) 评论(0) 推荐(1)