- 史上最清晰的红黑树讲解(下) 10-12
- 这里有十个Android的另类库 10-12
- 从实践者的角度看 Rust 10-12
- 我是这样学习前端的 10-12
- Java学习之路:不走弯路,就是 10-12
- 阿尔法智能机器人,学人走路,身体 10-12
- 听说2017你想写前端? 10-12
- 那些年我看的前端书籍 10-12
- Python 增强的生成器:协程 10-12
- 成为优秀Java程序员的10大技 10-12
史上最清晰的红黑树讲解(下)
发布者: super | 发布时间:2017-10-12
来源:CarpenterLee,
www.cnblogs.com/CarpenterLee/p/5525688.html
上一篇文章史上最清晰的红黑树讲解(上)对Java TreeMap的插入以及插入之后的调整过程给出了详述。本文接着以Java TreeMap为例,从源码层面讲解红黑树的删除,以及删除之后的调整过程。如果还没有看过上一篇文章,请在阅读本文之前大致浏览一下前文,以方便理解。
寻找节点后继
对于一棵二叉查找树,给定节点t,其后继(树种比大于t的最小的那个元素)可以通过如下方式找到:
t的右子树不空,则t的后继是其右子树中最小的那个元素。
t的右孩子为空,则t的后继是其第一个向左走的祖先。
后继节点在红黑树的删除操作中将会用到。
<
这里有十个Android的另类库,你都知道么
发布者: super | 发布时间:2017-10-12
2017年安卓巴士全球开发者论坛-武汉站
我有几句心里话 想对在武汉工作的开发者说···
1. Spruce Android Animation Library (and iOS)
Spruce 是一个轻量级的动画库,可以帮助排版屏幕上的动画。使用有很多不同的动画库时,开发人员和程序员需要确保每个视图都能够在适当的时间活动。 Spruce 可以帮助设计师获得复杂的多视图动画,而不是让开发人员在原型阶段就感到畏惧。
地址:https://github.com/willowtreeapps/spruce-android
效果图:
从实践者的角度看 Rust
发布者: super | 发布时间:2017-10-12
编程语言相关的讨论,几乎是技术社区永恒的热点话题。在即将于 10 月 17~19 日召开的 QCon 上海 2017 上,我们也专门设置了《编程语言》专题。届时,PingCAP 首席架构师唐刘将分享《Futures and gRPC in Rust》。
我们先来了解下他。
唐刘,PingCAP 首席架构师,典型技术极客一枚,在分布式,高性能,高可用上面有丰富的开发经验,现正从事下一代分布式数据库 TiDB 以及分布式存储 TiKV 的开发,致力于在基础架构数据库领域,提供一套完备的 HTAP 解决方案,解放生产力。开源爱好者,知名开源软件 LedisDB,go-mysql 等系统的作者。工作之余,喜欢阅读和写作,希望自己不断精进。
QCon 在会前采访了唐刘老师,交流了编程语言方面的一些问题。
我是这样学习前端的
发布者: super | 发布时间:2017-10-12
前沿
算算时间今年(2016年)是进入前端开发这个领域第五个年头,自从上次总结完《我的编程之路》后,还想从更细节的方向上写一写自己是如何学习前端开发,并且还能够保持进步和对技术的敏感。
对于现在进入这个领域的朋友们来说,很多东西其实你都可以选择放弃了,因为你的起点比之以前要提高了不少,但相对来说知识点又多了很多。PS:至少你不用去兼容IE6了。
来看一看Java的趋势图:
Java 2016年5月 TOP 10
Java 趋势图
Github 2008-2015统计<
Java学习之路:不走弯路,就是捷径!
发布者: super | 发布时间:2017-10-12
JAVA是一种平台,也是一种程序设计语言,如何学好程序设计不仅仅适用于JAVA,对C++等其他程序设计语言也一样管用。有编程高手认为,JAVA也好C也好没什么分别,拿来就用。为什么他们能达到如此境界?我想是因为编程语言之间有共通之处,领会了编程的精髓,自然能够做到一通百通。如何学习程序设计理所当然也有许多共通的地方。
1、培养兴趣
兴趣是能够让你坚持下去的动力。如果只是把写程序作为谋生的手段的话,你会活的很累,也太对不起自己了。多关心一些行业趣事,多想想盖茨。不是提倡天天做白日梦,但人要是没有了梦想,你觉得有味道吗?可能像许多深圳本地农民一样,打打麻将,喝喝功夫茶,拜拜财神爷;每个月就有几万十几万甚至更多的进帐,凭空多出个"食利阶层"。你认为,这样有味道吗?有空多到一些程序员论坛转转,你会发现,他们其实很乐观幽默,时不时会冒出智慧的火花。
2、慎选程序设计语言 男怕入错行,女怕嫁错郎。
初学者选择程序设计语言需要谨慎对待。软件开发不仅仅是掌握一门编程语言了事,它还需要其他很多方面的背景知识。软件开发也不仅仅局限于某几个领
阿尔法智能机器人,学人走路,身体灵活跟人没什么两样
发布者: super | 发布时间:2017-10-12
新型机器人运用自己能弯曲的双脚和电动化脚踝带动双腿迈步,其双臂也会随着脚步的移动来回摆动保持身体平衡。
康奈尔大学研究人员安迪·鲁伊纳说新型步行机器人走路时一起一伏,使身体灵活运动,跟人没什么两样。鲁伊纳说“我们让它更多地注意动作。”而其动作就是孩子学走路时必须掌握的。因此,科学家们把此类机器人形象地称为“初学走路的孩子”。
任何路面行走自如麻省理工学院科学家泰德拉克说,这种机器人内置多个传感器,使其“在20分钟内学会像人一样走路”。传感器能以每秒200次的速度测量机器人每个动作的倾斜度和速度,然而向其他电动机下达新指令来调节身体姿势。传感器还指示制动器控制机器人脚踝上弹簧的压力,使其整体平稳向前。
“每走一步,制动参数都会有所改变,”泰德拉克说,“机器人
听说2017你想写前端?
发布者: super | 发布时间:2017-10-12
不好意思,没有像其他公众号一样赶着发文章,每年到这个时候总有一大波什么今年前端预测,技术框架预测什么的。我这次写这篇文针对的对象,是想在今年踏入前端这行的人们,不管你现在是徘徊在门口,还是已经半只脚踏入这片未知领域,都可以参考一下先行者的经验。
先来个大概预览:
项目工程化
发展方向
职业环境
总结要掌握的框架/技能
小结放在前:
2017的前端与其说更残酷,不如说更规范化,前两年各种培训了几个月就出来随口开价上万,几万的新手将被市场淘汰。
前端开发工具/编译工具 逐渐成型,虽然比不上object-c, java, C+ 等排名靠前编程语言有完善的IDE环境,但是。工程化模块化的概念开始深入人心,这年头还编写原始HTML CSS Java 代码的,
那些年我看的前端书籍
发布者: super | 发布时间:2017-10-12
来自:前端网,作者:老姚
有人看了那篇《统一回复:如何学习Java》,私下问我能否列下你看的那50本书目,并评论一下。
下面详细统计一下自己这三年来看过的前端领域书籍。
以下书籍大部分都是看完的。
有的看了很多遍了。
有的看了一遍就不想再翻了。
有的看了自己感兴趣的章节。
有几本是英文原版,啃得很费劲。
只要是书嘛,质量肯定参差不齐,
只要是翻译的书,英文原版我也尝试去找了,还好,大部分网上也都有。
有的译者水平可以,有的不是很认真。
国内的书相对来说,看得不是那么多,水平各异,不予评价。
有哪些特别值得推荐的,还是开头那篇文章,其中对几本进行了评价。
其他的这里不准备评了,因为很多书,只是有大概印象。
有的也并不经常翻,怕评论不太负责。
有的看得不爽,怕评论,人家找我麻烦。但如果我花钱买了,那就理直气壮了。<
Python 增强的生成器:协程
发布者: super | 发布时间:2017-10-12
新媒体管家
本文主要介绍python中Enhanced generator即coroutine相关内容,包括基本语法、使用场景、注意事项,以及与其他语言协程实现的异同。
enhanced generator
在上文《Python Yield Generator 详解》中介绍了yield和generator的使用场景和主意事项,只用到了generator的next方法,事实上generator还有更强大的功能。PEP 342为generator增加了一系列方法来使得generator更像一个协程Coroutine。做主要的变化在于早期的yield只能返回值(作为数据的产生者), 而新增加的send方法能在generator恢复的时候消费一个数值,而去caller(generator的调用着)也可以通过throw在generator挂起的主动抛出异常。
back_data = yield cur_ret
这段代码的意思是:当执行到这条语句时,返回cur_ret给调用者;并且当generator通过next
成为优秀Java程序员的10大技巧
发布者: super | 发布时间:2017-10-12
Java程序员有许多应遵循的守则或最佳实践方式。本文概述了每个开发者最应该遵循的10条守则或戒律,如果不遵循它们,将会导致灾难性后果。
1. 为代码添加注释(Add comments to your code).– 每个人都知道这一点,但不是每个人都会这么做。你有多少次“忘记”添加注释了?确实,注释不会为你的程序增加任何函数功能。但是,有多少次,看到2周前写的代码,你都记不起它是干什么的?你很幸运,那些未注释的代码是你自己写的,你脑海中还会有残存的印象。非常不幸,大多时候,代码是别人写的,并且那个人很可能已经离开公司了。有句谚语说的好:“有来有往,互惠互利”,因此程序员应该体谅彼此(还有你自己),给你的代码加上注释。
2. 不要把简单事情复杂化(Do not complicate things).– 我曾经这么做过,我相信你也一样。开发者都倾向于采用复杂方式解决简单问题。我们在一个只有5个用户的系统中引入EJB,为一个并不需要框架的应用实现一套框架,采用属性文件、采用面向对象解决方案、使用线程,而这些根本用不着。为什么会这么做?一些人可能不知道有更好的解决
