- 博客(45)
- 资源 (1)
- 收藏
- 关注
转载 Tor源码分析十 -- 连接和链路
源码分析到这个部分,为了让大家明白源码中的编码逻辑,不得不开始从头梳理程序内部的复杂连接和链接组织形式。否则大家后期会更加一头雾水。笔者开始分析源码之时,没有这些宏观的概念,只能死嚼代码,硬猜硬想,再加以检查代码进行验证,才得以明白程序的主要框架逻辑。如果再以猜测验证的模式向大家讲述源码,必定会越来越混乱。所以,在本节之中,我们会将系统中所有的连接类型,链路类型和他们之间的关系和代码之中的关联方...
2019-12-16 12:53:54 871
原创 2020 Kyligence 面经
Kafka是如何选举?http://www.jasongj.com/2015/04/24/KafkaColumn2/在生产者向Borker、Borker向向消费者传递消息的过程中,Kafka是如何保证At Least Once\Exactly once\At Most Once?生产者向Borker:http://zhongmingmao.me/2019/08/19/kafka-pro...
2019-10-30 09:40:49 673
原创 2020 比特大陆 面经
spring 循环依赖Java内存模型https://www.jianshu.com/p/76959115d486JVM内存模型1.程序计数器(线程私有):当前线程所执行的字节码的行号指示器2.Java虚拟机栈(线程私有):每个Java方法在执行时创建的栈帧,用于存储局部变量表、操作数栈、动态链接、方法出口等信息3.本地方法栈(线程私有):类似于虚拟机栈,不过虚拟机栈执行J...
2019-10-22 17:28:55 575
原创 2020 字节跳动 面经
TLS建立过程算法题1:有一个map,描述了一个图中的联通关系。map[i][j]=1代表可联通,否则不可联通请判断这个图是否有环,如果没有换打印出其中一个拓扑顺序算法题2:有个rand5的方法,请分别计算出rand3, rand7...
2019-10-18 18:20:27 343 1
原创 2020 恒生电子 面经
java为什么可以跨平台运行kafka是如何实现高可用的线程、进程的状态都有哪些用过什么分布式数据库没有运行时异常都有哪些https://www.jianshu.com/p/49d2c3975c56良好的编码习惯spring都用了什么设计模式都了解什么分布式框架数据量有多少...
2019-10-13 17:28:52 1139
原创 线程池学习笔记
1.目的降低资源消耗: 通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 提高响应速度:任务不需要等待线程创建就能立即执行 对线程统一分配、监控和调优:线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,而且减低系统的稳定性2.实现原理核心线程池 工作队列:防止线程过多,从而降低系统运行效率 最大线程池 饱和策略3.实现new ThreadPoolExecuto...
2019-10-12 21:15:10 282 1
原创 kafka集群安装配置
两台机器:192.168.1.100,192.168.1.1351.下载kafka地址:http://kafka.apache.org/downloadsps:请下载二进制版本。2.解压之后直接修改配置文件:/kafka_2.12-2.3.0/config/server.properties#同一个集群中的不同节点id唯一# 192.168.1.100设置为...
2019-10-03 11:12:28 130
原创 SSH免密码登录,搭建Flink standalone集群
搭建Flink集群:本实验拥有2个节点,均为ubuntu系统,分别对应IP为192.168.1.100,192.168.1.171为了方便,先在三台节点上/etc/hosts文件内容均添加:192.168.1.100 master #用户名为zhy,master与worker的用户名必须一致192.168.1.171 worker1 #用户名为zhy1.创建与删除用户s...
2019-09-30 20:59:08 824
原创 2020 网易 面经
1.SSM,讲一讲请求发出之后都发生了什么2.Flink是怎么处理数据的?有没有对状态的管理?在处理机器学习模型时有没有用到批处理?如何存储Flink产生的数据?3.有三个线程,如何让他们顺序执行?4.HashMap对Object的put、get过程,线程安全的HashMap都有哪些?工作原理5.为什么会有volatile这样一个关键字?...
2019-09-25 19:36:16 458
原创 2020 快手 被吊打面经
1.TCP两次握手会出现什么问题?2.讲讲数组、链表和hash表的增删改查3.排序的时间复杂度4.编程题:现在有一个 IP 数据库,以文本形式存储在文件中,每行包含固定格式的信息:ip_beg ip_end ip_info每行文本数据的意义是: ip_beg ~ ip_end 的连续范围内的 IP 的地理信息为 ip_info,且任意两行数据代表的 IP 不会重叠。整个 I...
2019-09-22 17:32:54 488
原创 JVM垃圾回收
1.哪些内存需要回收?1.1.一次标记(可达性分析算法)有一系列“GCRoots”起点,从这些点开始向下搜索,走过的路径称为“引用链”。若一个对象没有任何引用链可到达GC Roots,那么该对象就是不可用的,即使该对象还与其他对象相关联。GC Roots类型:① 虚拟机栈中引用的对象② 方法区中类静态属性引用的对象③ 方法区中常量引用的对象④ 本地方法...
2019-09-22 11:57:32 260
原创 2020 百度 面经
Android四大组件线程池种类Java内存模型垃圾回收https://blog.csdn.net/qq_24598059/article/details/101148386类加载过程线程安全的集合有哪些Vector和Stack、Hashtable和Properties这两对父子,以及ConcurrentHashMap,它们都是线程安全的。观察者模式,UML...
2019-09-18 14:23:25 332
原创 Flink
1.简介Flink是一个开源的分布式流式处理框架:①提供准确的结果,甚至在出现无序或者延迟加载的数据的情况下。②它是状态化的容错的,同时在维护一次完整的的应用状态时,能无缝修复错误。③大规模运行,在上千个节点运行时有很好的吞吐量和低延迟。2.特性Flink的流式计算模型启用了很多功能特性,如状态管理,处理无序数据,灵活的视窗,这些功能对于得出无穷数据集的精确结果是很重要的。...
2019-09-16 18:22:57 411
原创 继承、关联、聚合、组合的代码表示
1.继承子类拥有超类的所有属性和行为class A{}//B继承了A中的所有的方法和属性,对于私有的方法和属性,子类只能是拥有,但无法直接使用。class B extends A{}2.关联一般以类的属性形式出现在关联类中,使用成员变量来实现。又分为聚合关系和组合关系。class A{}class B{ A a;//成员变量引入了A类}...
2019-09-14 12:43:03 1457
原创 2020 华为 一面 二面 面经
一面机试原题对软件开发的理解写过文档吗uml图类之间的关系https://blog.csdn.net/qq_24598059/article/details/100825715二面单词搜索无重复字符的最长子串公开发表的软件有多少人在用?识别率高达98.5有什么意义?如何创建线程池https://blog.csdn.net/qq_24598059/...
2019-09-11 10:00:32 2009
原创 2020 金山云 面经
1.项目感觉与岗位无关的内容说的太多了,与Java贴合度不够高2.线程池https://blog.csdn.net/qq_24598059/article/details/1025269663.内存管理块式:把程序作为一个整体,或者说作为一个基本单位load入主存,就算该程序片段只有几个字节也必须全部占用,方便管理,但是极大的浪费空间。 段式:把程序按照逻辑关系分为若干...
2019-09-09 17:33:22 985
原创 Kafka消息队列
1.简介kafka是一个基于发布-订阅模式的分布式消息队列。2.特点2.1负载均衡基于zookeeper的协调机制。2.2顺序保证Kafka保证一个Partition内的消息的有序性。2.3冗余/可靠性消息队列把数据进行持久化到磁盘,直到它们已经被完全处理,并且支持数据备份防止数据丢失。2.4容错允许集群中节点宕机(若副本数量为n,则允许n-1个节点失败)。...
2019-09-07 20:49:47 213
原创 剑指offer之扑克牌的顺子
提供一种与书上不太相同的思路:首先新建一个长度为5(顺子长度)的数组,对于除了大小王以外的数,按照从大到小的顺序依次放入数组中。但是不是一个一个挨着放,而是放到数组相应的位置。举个例子,对于升序数组“0,0,4,6,7”,先将4放到数组下标为0的位置。然后将6放到数组相应的位置:然后将7放到数组相应的位置:如果非0的数全部都放在数组中,那么这一序列就是顺子。如果在将牌放...
2019-08-21 16:55:06 144
原创 浅谈Actor并发模型
目录0x00 Actor出现的背景0x01 Actor如何通过消息传递避免数据竞争?0x02 Actor到底是什么?0x03 Actor特性0x031 容错0x032 分布式与位置透明性0x04 Actor使用场景0x05 缺点0x051弱隔离性0x052其他问题0x00 Actor出现的背景大约...
2019-08-21 16:30:51 3961
原创 在队列同步器中,同步队列为什么是双向链表,而等待队列是单链表?
在《Java并发编程的艺术》一书中有这样一段话:在队列同步器中,头节点是成功获取到同步状态的节点,而头节点的线程释放了同步状态后,将会唤醒其他后续节点,后继节点的线程被唤醒后需要检查自己的前驱节点是否是头节点,如果是则尝试获取同步状态。所以为了能让后继节点获取到其前驱节点,同步队列便设置为双向链表,而等待队列没有这样的需求,就为单链表。...
2019-08-19 20:21:34 3504 9
原创 2020秋招笔试题总结(华为、360、京东、中兴、快手、字节跳动、阿里、拼多多、腾讯、VIVO)~持续更新
目录1.华为1.1全量和已占用字符集合1.2解析逻辑字符串1.3比特块1.4文本解析1.5社交软件好友度2.3602.1表面积2.2寻找子串2.3散步3.京东3.1最多能完成排序的块3.2考场安排4.中兴4.1工资按频次排序4.2维克多博士问题5.快手5.1可以升级的版本号5.2计算累计平方和5.3合并两个内容流5...
2019-08-16 15:58:36 14225 5
原创 synchronized中重量级锁、偏向锁和轻量级锁的区别
Java1.5之前synchronized是一个重量级锁,Java 1.6对synchronized进行的各种优化后,synchronized并不会显得那么重了。我们先介绍重量级锁,然后介绍优化后的轻量级锁和偏向锁。0.对象头以及Mark Word1重量级锁重量级的synchronized有三个用法:普通同步方法,锁的是当前实例对象。 静态同步方法,锁的是当前类的clas...
2019-08-06 20:29:36 12198 5
原创 HashMap与ConcurrentHashMap的底层原理
1.HashMap结构HashMap基于数组,通过散列函数在O(1)时间内来访问记录。首先HashMap里面实现一个静态内部类Entry,Map里面的内容都保存在Entry[]里面。然后,通过对key的hashcode & 数组长度得到在数组中位置,如有冲突,则在冲突位置形成链表,即拉链法。2.HashMap字段属性2.1数组table和初始容量//初始化使用,长度总是 ...
2019-08-04 16:48:54 562
原创 红黑树
1.定义红黑树是一种近似平衡的二叉搜索树,可以保证在最坏情况下基本动态集合操作的时间复杂度为O(lgn)。2.原理1.每个节点不是红就是黑;2.根节点与叶节点为黑;3.如果一个节点为红,其子节点为黑;4.对每个节点,从该节点到其所有后代叶节点的简单路径上,均包含相同数目的黑色节点。2.性质1.一棵有n个内部节点的红黑树的高度至多为2lg(n+1);由性质1可知,...
2019-08-02 22:22:08 162
原创 Spring之控制反转(IOC)
目录0.面向接口编程思想1.依赖倒置原则与好莱坞原则2.控制反转3.依赖注入4.Spring是如何实现依赖注入的?4.1 BeanFactory4.2 FactoryBean0.面向接口编程思想面向接口编程:不针对实现编程,针对超类型编程。超类型包括继承和多态。而依赖倒置原则与好莱坞原则可以说是思想的具体体现,其表现形式便是控制反转,注入依赖则是控制反转的...
2019-08-02 16:52:07 302
原创 HashMap中,比较key是否相等为什么要重写equal() 和hashCode()这两个方法?
在HashMap中,如果key为类对象,则必须要重写hashCode() 和equal()这两个方法。Why?首先了解下未被重写的hashCode() 和equal()方法。1.未被重写的hashCode() 和equal()方法public int hashCode():HashCode是根类Obeject中的方法。默认情况下,Object中的hashCode() 返回对象的32位jvm...
2019-07-31 21:01:55 6031 2
原创 剑指offer之二叉搜索树与双向链表
题目输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。思路二叉搜索树按照中序遍历即为递增排列,按照分治法的思路,我们只需调整左子树的最大节点与根节点的关系、根节点与右子树的最小节点的关系。具体分为三步:1.最大节点在左子树中:递归调用左子树;2.最大节点为根节点;3.最大节点在右子树中:递归调用右子树;其中...
2019-07-30 16:14:13 99
原创 从内存模型角度说明volatile与synchronized在并发特性方面的区别
目录1.并发特性2.线程、主内存和工作内存3.volatile与synchronized3.1synchronized3.1.1可见性3.1.2有序性3.1.3原子性3.2volatile3.2.1可见性3.2.2有序性3.2.3原子性1.并发特性可见性是指当多个线程访问同一个变量时,一个线程修改了这个变量的值,其他线程能够立即看得到修改的...
2019-06-29 19:54:26 179
原创 List之LinkedList与ArrayList区别
在《Thinking in Java》中这样描述:基本的ArrayList,长于随机访问元素,但在List的中间插入和移除元素时较慢。LinkedList,通过代价较低的在List中间进行的插入和删除操作,提供优化的顺序访问。而且,LinkedList在随机访问方面相对较慢,但其特性集较ArrayList更大。Arraylist:底层是基于动态数组,动态数组就是改变数组容量方法,创...
2019-06-17 13:41:30 294
转载 基本数据类型及其对应的包装类
一、JAVA中的八种基本类型1、数字类型(6种)①byte:占的位数:8;最小值为:-128(-2^7);最大值为:127(2^7-1);默认值为:0;包装类:Byte作用:byte数据类型主要用于在大型数组中节约空间,用来代替整型,因为byte类型只占八位,占用的空间只有int型的1/4;②short:...
2019-06-02 10:14:44 1247
原创 (机器学习)C均值算法(K-Means)之误差平方和推导
简介C均值算法又叫K-Means算法,其基本思想是,通过迭代找到k个聚类的一种划分方案,使得用这k个聚类的均值来表示相应各类样本时所得到的总体误差最小,所以K-Means是一种基于最小误差平方和准则的聚类算法。由于它在向量量化和图像分割上也有很广泛的应用,所以有时也被称为广义Glogd算法,简称GLA。误差平方和推导目标公式:我们使用了方差增量算法,具体请参考:https://ww...
2019-05-29 12:06:26 9997 3
原创 String 比较
== ——比较的是内存地址(String与String值相等比较用equals()方法,char与char值相等比较用”==”进行比较。)equals ——比较的是内容compareTo (string) ——两个字符数组依次从前开始比较:如果对象位置出现字符不同则返回两个字符的编码之差,后面的字符不再比较;如果两个字符数组的长度不一样,并且较短的数组和较长数组所有对...
2019-05-15 09:56:51 338
原创 length与length()
问题为什么数组有length属性而字符串没有?或者,为什么字符串有length()方法而数组没有?数组是什么?数组只是相同类型的、用一个标识符名称封装到一起的一个对象序列或基本类型数据序列。……所有数组(无论他们的元素是对象还是基本类型)都有一个固定成员,可以通过它获知数组内包含了多少元素,但不能对其修改。这个只读成员就是length。参考文献:《Thinking in Jav...
2019-05-14 12:12:07 275
原创 数组与集合的初始化
1.数组类型:2.1.基本类型:int[] a=new int[b.length]; boolean[] a=new boolean[b.length];2.2.对象类型:linkNodes[] linkNode =new linkNodes[length];for(int i=0;i<length;i++){ linkNode[i]=new linkNode...
2019-04-14 12:44:42 405
原创 (机器学习)评估指标的贝叶斯理解
预测结果 1 0 实际情况 1 真正例 (TP): 实际情况:Tor 预测结果:Tor TP 结果数:1 假负例 (FN):——漏报 实际情况:Tor 预测结果:no-Tor FN 结果数:8 0 ...
2019-04-08 15:25:56 679
原创 机器学习中性能评估指标中的准确率(Accuracy)、召回率(Recall=TPR)、精确率(Precision)、误报率(FPR)、漏报率(FNR)及其关系
目录1.准确率(Accuracy)2.召回率(Recall)3.精确率(Precision)4.召回率与精确率的关系5.误报率(FPR)与漏报率(FNR)1.准确率(Accuracy)准确率是一个用于评估分类模型的指标。通俗来说,准确率是指我们的模型预测正确的结果所占的比例。正式点说,准确率的定义如下:对于二元分类,也可以根据正类别和负类别按如下方式计...
2019-04-07 14:09:21 30696 4
原创 基础类型格式转换
1.String与各种数字类型的相互转换:String s = "169"; //String to 数值类型byte b = Byte.parseByte( s ); short t = Short.parseShort( s ); int i = Integer.parseInt( s ); long l = Long.parseLong( s ); Float f = F...
2019-03-31 09:19:01 198
原创 泛型
摘自Thinking in java:泛型的目的是解耦类/方法与所使用的类型之间约束:泛型可以让类/方法在运行时使用多种类型。一开始的约束是继承,通过多态来解决“类/方法可以适用于许多许多的类型的问题”。但是接口比继承使得代码更加易于扩展(易于增加新类)。但是接口无法在编译时实现“类型安全”,但是泛型,通过知道使用泛型定义的变量的类型限制,编译器可以在一个高得多的程度上验证类型...
2019-03-29 12:08:32 122
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人