GO语言协程的理解
以下内容大部分摘自许世伟的《GO语言核心编程》最近面试,在自己的简历上写了简单会一些GO语言。结果被面试官问了GO语言goroutine的原理。自己看倒是看过,时间长了又给忘了。特此写下此文以长记性。协程:协程本质上是一种用户态线程,不需要操作系统来进行抢占式调度,并且在真正的实现中寄存于线程中,因此系统开销极小,可以有效的提高线程任务的并发性,而避
浩浩 浩浩
4年前
Android面试知识整理:面试完十多次互联网大厂之后,我发现面试官对Android这些知识点百问不厌
之前8月份为了准备面试复习了Android的一些原理知识,并陆陆续续的总结了一些面试相关的东西,因为太久没写面试之类的博客了,今天就想做一个Android面试知识的分享。但是无奈本人太蔡了(灬ꈍꈍ灬),在北京、深圳(远程视频面试)面试了十多家大厂就只拿到了乐视和小米的offer,综合来说小米的薪资比要比乐视高一点。听了朋友建议,选择了小米,打算着以后准
科工人 科工人
4年前
一文吃透 Go 语言解密之接口 interface
转载:大家好,我是煎鱼。自古流传着一个传言...在Go语言面试的时候必有人会问接口(interface)的实现原理。这又是为什么?为何对接口如此执着?实际上,Go语言的接口设计在整体扮演着非常重要的角色,没有他,很多程序估计都跑的不愉快了。在Go语言的语义上,只要某个类型实现了所定义的一组方法集,则就认为其就是同一种类型,是一个东西。大家常常称其
Stella981 Stella981
4年前
MapReduce 社交好友推荐算法
原理如果A和B具有好友关系,B和C具有好友关系,而A和C却不是好友关系,那么我们称A和C这样的关系为:二度好友关系。在生活中,二度好友推荐的运用非常广泛,比如某些主流社交产品中都会有"可能认识的人"这样的功能,一般来说可能认识的人就是通过二度好友关系搜索得到的,在传统的关系型数据库中,可以通过图的广度优先遍历算法实现,而且深度限定为2,然而在
Wesley13 Wesley13
4年前
Java黑科技之源:JVMTI完全解读
Java生态中有一些非常规的技术,它们能达到一些特别的效果。这些技术的实现原理不去深究的话一般并不是广为人知。这种技术通常被称为黑科技。而这些黑科技中的绝大部分底层都是通过JVMTI实现的。形象地说,JVMTI是Java虚拟机提供的一整套后门。通过这套后门可以对虚拟机方方面面进行监控,分析。甚至干预虚拟机的运行。下面先介绍下哪些黑科技是通过JVMTI
Wesley13 Wesley13
4年前
C#中实现累加校验和计算和校验
为建立中文知识库加块砖       ——中科大胡不归0\.前言如果必须加入一种方法来校验协议数据,累加校验不失为一种好的方案。MD5计算出的Hash太长了,校验和不过1或2个字节,当然MD5的安全性也不是校验和能比的。1\.校验和原理1.1发送方生成检验和1.将发送的进行检验和运算的数据分成若干个16位
Easter79 Easter79
4年前
SQL Server 中日志的的作用(Redo和Undo)
简介   之前我已经写了一个关于SQLServer日志的简单系列文章。本篇文章会进一步挖掘日志背后的一些概念,原理以及作用。数据库的可靠性   在关系数据库系统中,我们需要数据库可靠,所谓的可靠就是当遇见如下两种情况之一时保证数据库的一致性:在系统崩溃/故障等情况下,保证数据库的一致性数据不能在多个DM
Stella981 Stella981
4年前
SpringBoot(20)
  我们在写单元测试的时候,除了接口直接抛异常而导致该单元测试失败外,还有种是业务上的错误也代表着该单元测试失败。好比我们在测试接口的时候,  该接口返回是1代表成功,如果是0那就代表是失败的,这个时候可以考虑使用断言。  一、原理我们知道,我们可以通过断言来校验测试用例的返回值和实际期望值进行比较,以此来判断测试是否通过。那我们先来看下如果失败的情
Mark刘 Mark刘
3年前
统信UOS提示系统磁盘空间不足
@此教程是非严谨教程,综合了网上的两种解决方案,因为我对Linux研究的不深,花了半天的时候才搞定,不想让你们也浪费时间,具体原理没有深入研究,能解决问题就行,看到此教程,你应该不需要看别的教程了。系统简介我的UOS是通过win10一键安装的,即win10UOS双系统,系统信息如下一直提示系统磁盘空间不足,可以通过此命令查看磁盘的使用率,结果如下图:b
待兔 待兔
1年前
Java内存的可见性
Java内存的可见性可见性:一个线程对共享变量的修改,能够及时被其它线程看到共享变量:如果一个变量在多个线程的工作内存中都存在副本,那么这个变量就是这几个线程的共享变量Java内存模型(JMM):描述了Java程序中各种线程共享变量的访问规则,以及在JVM