- 博客(38)
- 资源 (1)
- 收藏
- 关注
原创 Redis-集群
一旦我们对应的master发生了一个故障,我们的redis Sentinel和我们的master之间,对应的这个心跳协议产生了一些超时的问题,slave还活着,那我们的redis Sentinel,就可以去更改自己内部的配置将这个master和slave产生切主,因为我们的redis client跟redis Sentinel之间是有长连接心跳关系的。除了redisl master、redis slave,我们有另外的一个节点,叫redis Sentinel啊。3、分片部署(多主多从)
2024-01-12 17:40:12
526
原创 为什么有了volatile还要有CAS
之前在学习volatile的时候,有个场景给出是累加,用volatile是错误的,用AtomicInteger才可以其实在语言层面也可以实现比较并交换(if语句),但语言层面的操作不是原子性的,可能比较之后就被挂起了,被人改了之后,但是苏醒后下一条指令就是去交换所以会出错但原子类底层不会被打断,不知道这样理解对不对...
2021-04-05 14:56:08
504
原创 mr reduce/common join过程
参考使用MapReduce实现join操作https://www.cnblogs.com/hanganglin/p/4558510.htmlmap输出: 逻辑:读到一行就作为map的输入,然后u_id作为key,其他以u#为前缀加上其他为value(shuffle时候就会把key相同的发送个同一个reduce,以后reduce就可以根据匹配做join了)<1, u#Lixiaolong> <1,l#2015-06-07. 19...
2020-07-23 15:18:55
239
原创 LeetCode53. 最大子序和 && 剑指offer面试题42:连续子数组的最大和
package s03;public class s03 { public static void main(String[] args) { int nums[] = {-2,1,-3,4,-1,2,1,-5,4}; System.out.println(findGreatestSumOfSubArray(nums,nums.length)); } static boolean g_InvalidInput = false; //不合法输入.
2020-05-21 14:26:00
220
原创 leetcode93:复原IP地址
import java.util.ArrayList;import java.util.LinkedList;import java.util.List;public class Test { public static void main(String[] args) { Solution solution = new Solution(); List<String> strings = solution.restoreIpAddresses(.
2020-05-21 10:38:55
156
原创 一些关于dubbo分布式项目的部署的关系
参考视频:https://www.bilibili.com/video/BV17J411V71W?p=13同一个服务有两台机器在提供:
2020-05-20 12:37:05
412
原创 Offer面试题23:判断链表中是否有环
https://www.bilibili.com/video/BV1EE411j7K8?from=search&seid=14270053760626210348思路:设置快慢指针,遍历链表,快指针走两步,慢指针走一步,如果快慢指针相遇,说明链表有环。...
2020-05-08 14:38:32
185
转载 Exception in thread "main" java.lang.NoClassDefFoundError: Caused by: java.lang.ClassNotFoundExcepti
https://www.bbsmax.com/A/VGzlNNZl5b/【异常】idea执行Main方法出现 Exception in thread "main" java.lang.NoClassDefFoundError: javax/servlet/http/HttpServletRequest
2020-04-27 16:42:39
1312
原创 GC算法之标记清除(Mark-Sweep)和标记压缩/整理(Mark-Compact)和标记-清除-压缩(Mark-Sweep-Compat)
复制算法:没碎片、费空间 ---->年轻代 标记清除:①标记要回收的对象②统一回收这些对象 ----->老年代 证明要扫描两次,耗时严重 不需要额外空间 标记整理/标记压缩:就是比标...
2020-04-13 15:29:30
4219
原创 垃圾收集器
一、GC垃圾回收算法和垃圾收集器的关系?答:GC算法时内存回收的方法论,垃圾收集器就是算法落地实现。二、4种主要垃圾收集器?①串行回收Serial----->为单线程环境设计且只使用一个线程进行垃圾回收,会暂停所有的用户线程。所以不适合服务器环境。②并行回收Parallel----->多个垃圾收集线程并行工作,此时用户线程也时暂停的,适用于科学计算/大数据处理首台处理等...
2020-04-11 18:28:23
145
1
原创 JVM垃圾回收的时候如何确定垃圾?知道什么是GC Roots吗?
一、如何判断一个对象是否可以被回收?①、枚举根节点做可达性分析(根搜索路径算法)为了解决引用计数法的循环引用问题,Java使用了可达性分析的方法。对于我们的几种算法:复制、标清、标整,--->都要使用GC引用遍历基本思路就是通过一系列名为“GC Roots"的对象作为起始点。从GC Roots的对象开始向下搜索,如果一个对象到GC Root是没有任何引用链相连时,则说明此对...
2020-04-11 15:20:34
222
原创 对象生命周期和GC
对象一般出生在伊甸区,这货满了之后就开始收割,(伊甸园中发生GC就是要Eden区通通清空),逃过一劫得跑幸存区去了,逐步来回倒腾,活过15岁之后,跑养老去。首先,Java堆从GC得角度可以细分为:新生代和老年区。新生代包括(Eden区,From Survivor区和To Survivor区)老年代占堆的三分之二。新生代占三分之一。轻GC(Minor GC,就三步:复制-->清...
2020-04-11 00:18:11
264
原创 ClassLoader双亲委派机制和沙箱安全
双亲委派机制口诀:要加载,儿子不做,先让爹去做,爹做不了,儿子才上。我要用a.java这么一个类,先去顶部,根加载器BootStrap ClassLoader去找,找得到,就用,找不到,就往下降一层,去扩展类加载器去找,找到了->用,找不到,再往下:去应用程序类加载器找,再找不到,默认情况下就会报ClassNotFound Exception因为为了保证,程序员写的代码不污染Ja...
2020-04-10 23:16:06
204
原创 线程池3个常用方式 & 线程池7大参数入门简介
public class MyThreadPoolDemo { public static void main(String[] args) { //ExecutorService threadPool = Executors.newFixedThreadPool(5); //一池子5个处理线程 //ExecutorService threadPool =...
2020-04-10 20:03:56
242
原创 JVM学习之02_类装载器
一、JVM是什么?回答技巧和要求:我们学异常的时候,都学过RuntimeException吧,就是在jVM内存区域运行时内存区Runtime Data Area抛出来的。方法区(Method Area):并不是放方法的地方,而是放类的描述的信息。方法区是放模板的地方。java.lang.ClassClass.forName("..");/** *通过这个类的模板,按照模...
2020-04-10 00:12:50
100
原创 大数据复习
一、说说Hadoop1.X和hadoop2.X的区别?答:2.x提出了YARN,这个YARN既可以支持Hadoop的MapReduce,还可以支持其他计算引擎如Spark,Flink,成为一个一站式的资源调度的平台了。二、说一下Hadoop?(讲个两分钟?)答:Hadoop是Apache的一款开源框架,有三个核心组件:分布式文件系统 HDFS:用来海量存储 作业调度和集群资源...
2020-04-08 18:58:01
120
原创 HIVE调优
一、简单说一下hive架构里面包含哪些组件?答:1、用户接口:ClientCLI(hive shell)、JDBC/ODBC(java访问hive)、WEBUI(浏览器访问hive)2、元数据:Metastore元数据包括:表名、表所属的数据库(默认是default)、表的拥有者、列/分区字段、表的类型(是否是外部表)、表的数据所在目录等。3、驱动器 :Driver(...
2020-04-08 14:10:27
388
原创 SQL on Hadoop调优策略:语法调优之order by和sort by区别
应用层面调优排序在大数据中的使用 reduce数量的控制 执行计划在调优中的使用 join在大数据中的使用官网描述:Syntax of Order By:在使用“order by”子句时有一些限制:如果是在严格模式下:(hive.mapred.mode=strict),那么order by这个子句一定要跟上“limit”Order by只会产生一个reducer,且全局排序!...
2020-04-08 12:32:07
626
原创 CAS是什么?CAS的原理是什么?CAS是怎么实现的?
CAS是什么?Compare-And-Swap 比较并交换,是一条CPU并发原语 它的功能是判断内存某个位置的值是否为预期值,如果是则更改为新的值,这个过程是原子的。CAS在Java中的体现是sun.misc.Unsafe类中的哥哥方法。调用Unsafe类中的CAS方法,JVM会帮我们实现出CAS汇编指令。这是一种完全依赖于硬件的功能,通过它实现原子操作。(因为原语的执行必...
2020-04-08 01:27:07
1030
原创 Volatile不保证原子性(未完
首先,JMM(Java内存模型)要求保证原子性,volatile是轻量级的同步机制,为什么是轻量级呢?(因为它不保证原子性,说白了,就是低配版/乞丐版的synchronized。一、原子性是什么东东?(跟MySQL上那个事务性的原子差不多(言下之意就是不可分割,完整性,也即某个线程正在做某个具体业务,中间不可以被加塞或者被分割。需要整体完整,要么同时成功,要么同时失败。)这个时间段,应...
2020-04-07 20:56:44
216
原创 线程池创建与使用
1)和3)和消耗都是很大的。甚至有可能会超过2),即创建线程和销毁线程会消耗很多资源的。Java里面线程池有哪些创建方式呢?①借助Concurrent里的一个类 Executors(这个类的对象有好几种创建方式) ...
2020-04-07 16:29:49
150
原创 leetcode77组合Combinations 递归回溯剪枝
引入递归函数generateCombinations(int n, int k, int start, vector<int> &c),之前介绍的时候,就说在每一步递归调用的时候由于存在之前已经在某一个分支中把某一个数据全都考虑到了所以我们在考虑每一个子问题的时候只需要考虑某一个数以及这个数之后的所有数就好了。之前的所有数呢是被之前的哪个分支全都考虑到了。(就是说在做取2这个分...
2020-04-06 17:49:05
177
原创 剑指Offer面试题24、leetcode206【反转链表】: 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。
https://www.bilibili.com/video/BV1z7411M73N?from=search&seid=9828711318650174791文科生学算法:递归求解反转链表
2020-04-02 12:34:57
429
原创 剑指Offer面试题6:从尾到头打印链表
package offer;import java.util.Stack;class ListNode{ int m_nKey; ListNode m_pNext; public ListNode(int m_nKey) { this.m_nKey = m_nKey; }}public class Offer06 { //使用栈 public static void...
2020-03-28 14:22:29
88
原创 Dubbo概念性问题
1.介绍一下Dubbo?Dubbo是一个分布式服务框架,以及SOA(Service Oriented Architecture面向服务结构)治理方案。其功能主要包括:高性能NIO通讯以及多协议集成,服务动态寻址与路由,软负载均衡与容错,依赖分析与降级等。它有5个节点:①Provider : 服务提供者②Consumer :服务消费者③Registry :服务进行注册和被发现的注...
2020-03-28 14:20:29
74
原创 同步和异步(我们必须理解同步和异步不是两个独立的问题,而是一种问题两种的处理方式、方法。
异步就像发短信一样同步就行打电话一样同步:进程A和进程B,进程A对B发出一个请求后,等待B的响应。待B响应后再继续完成后面的事情异步:进程A和进程B,进程A对B发出一个请求后,继续完成后面的事情(即不等待),B响应后,通知A,然后A再来处理同步:互锁异步:不互锁同步:阻塞模式异步:非阻塞模式“尽管所有的生产者进程和消费者进程都是以异步方式运行的,但他们之间必须保持同步...
2020-03-26 23:01:36
474
原创 Java基础复习
Java基础知识:问:说说重载和重写的区别?答:①重载是在一个类中,有一组方法的方法名相同,但参数有所不同 ②重写发生在父子类中,方法名,参数列表,返回类型(即整个签名)必须相同,重写是子类对父类的允许访问的方法的实现过程进行重新编写。区别:覆盖是子类和父类之间的关系;重载是同一个类中方法之间的关系。重载://定义:这种方法名相同,但各自的参数不同,称为方...
2020-03-25 18:20:22
136
原创 HashMap原理, hashCode()和equals()的关系
规定/规则:通用约定是:相等的对象应该具有相同的hashCode在每个覆盖了equals方法的类中,也必须覆盖hashCode方法,如果不这样做的话,就会违反Object.hashCode的通用约定。从而导致该类无法结合所有基于散列的集合(比如HashSet\HashMap\HashTable)一起正常运作。简单的例子:定义HashCode为ID%8,比如我们的ID为9,9除8的余...
2020-03-25 16:22:45
1320
原创 用jps查看worker有成功启动但在ui上没有看到alive workers
前一天晚上按照书上搭建了HA集群,且验证了一下master宕机的情况下,另一个单独用sbin下的start-master.sh命令单独再次启动Master服务的节点自动由standby状态转为alive。但是,今天登上集群的时候,用一键启动脚本启动了spark集群,查看jps,master和其他节点的worker都有在,但运行第一个spark程序SparkPi的时候,出错了,出错信息如下...
2019-12-15 02:23:24
1155
1
转载 CPU的基本结构和功能:
转载自本文链接:https://blog.youkuaiyun.com/jisuanji198509/article/details/80474426CPU的基本结构和功能:(1)结构组成:运算器、控制器、寄存器组、内部总线(2)功能:处理数据、控制时间、处理指令、执行操作(寄存器组用于在指令执行过后存放操作数和中间数据,由运算器完成指令所规定的运算及操作。)...
2019-10-19 16:47:31
296
转载 动态规划之矩阵连乘
本博客转载自https://www.cnblogs.com/hzhtracy/p/4427870.html动态规划之矩阵连乘以下内容参考(摘抄)《算法设计与分析》,王晓东编著,清华大学出版社2003年1月第1版。给定n个矩阵{A1,A2,…,An},其中Ai与Ai+1是可乘的,i=1,2,…,n-1。考察这n个矩阵的连乘积A1A2…An。由于矩阵乘法满足结合律,故计算矩阵的连乘积可...
2019-05-16 12:42:31
389
转载 矩阵连乘详解
本博客转载自http://blog.sina.com.cn/s/blog_64018c250100s123.html矩阵连乘详解--crystal yi既然这篇文章叫做矩阵连乘详解,那么我就不能辜负详解这两个字,只有把一个原来不懂的的人弄懂了,才叫详解。言归正传,首先让我们复习一下矩阵连乘的有关知...
2019-05-14 22:26:34
4751
1
转载 为什么继承HttpSevlet类时不需要重写service 而要重写doGet doPost呢?
在学习Servlet的过程中,我们大多时候编码都是直接继承HttpServlet这个类,并且重写doGet ,doPost,但是查看Api时我们会发现Servlet接口 ,GenericSevlet抽象类 以及HttpServlet类中都有service方法,那么为什么我们继承HttpSevlet类时不要重写service 而要重写doGet doPost呢?service的作用是什么捏??正...
2019-05-11 13:38:33
1310
原创 汇编语言程序实例的上机步骤
2.3.2汇编-----产生OBJ二进制目标文件汇编程序的作用是把汇编语言源程序翻译为机器代码,产生二进制格式的目标文件(Object File)//问题的提出:目标文件和可执行文件有什么不同...
2019-04-29 21:10:56
2232
原创 一、由HelloWorld第一个servlet程序认识与学习Servlet
重点及标注:其他鲜艳色注释:红色Servlet实例Servlet 是服务 HTTP 请求并实现javax.servlet.Servlet接口的 Java 类。Web 应用程序开发人员通常编写 Servlet 来扩展 //(继承)javax.servlet.http.HttpServlet,并实现 Servlet 接口的抽象类专门用来处理 HTTP 请求。To implemen...
2019-04-29 21:06:49
400
原创 数据链路层之透明传输
如果一段数据中出现EOT,那我要怎么告诉计算机,这个不是结束。不然的话后面的数据部分会被接收端当做无效帧而丢弃。通过字节填充法可以解决上面这个问题(透明传输的问题)发送端的数据链路层,在含有开始,结束和这字符本身的二进制编码插入“ESC”字符,才发送给接收端的数据链路层,然后接收端的数据链路层再把对方加的字符删掉,才发给自己的网络层 也就是说,“ESC”字符的加加减减只...
2019-04-25 23:36:53
10663
原创 抽象类的继承、普通类的继承、接口的实现,分别有什么不同
一、当一个方法为抽象方法时,意味着这个方法必须被子类的方法所覆盖掉(即所有在抽象类中出现的方法(构造方法除外),都要出现在继承它的子类中,普通继承则不用)二、(同时也证明:继承一个类的时候,虽然①要么父类的方法没被写出来,并不代表子类中没有这个方法,②在子类中有这个方法的相关代码,证明这个方法被覆盖了即重写了,其他没有重写的方法虽然在子类的代码中没有出现,但子类是有这个方法的,不然继承一个父类还弄...
2019-04-22 22:42:11
820
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人