稀有猿诉

十年磨一剑,历炼出锋芒,说话千百句,不如码二行。

Interview Algorithm and LeetCode

这个是面试的必备技能,而且特别是外企和一线大厂都很喜欢问算法题目,所以这也是一个必须跨跃的门槛。

这东西与当年ACM/ICPC以及中学的信息技术竞赛是同一套东西,核心就是算法和数据结构,目的就是训练逻辑思维能力,建模的能力和问题分析与解决的能力,当然 对于提升解决问题的能力还是很有帮助的。

很惭愧,当年没有学好(ACM/ICPC 2008年亚洲区域赛合肥赛区只拿到优胜奖 Honorable Mention),现在是时候好好补习一下了。

Java中整数基础知识

最近做了一道题,非常有意思,题本身很简单,但涉及到整数的最大值以及最小值,当写测试用例的时候,却犯了一个错误,发现最小整数并不是0xFFFFFFFF,我们来仔细看一下。

Camera2 API Made Easy

从Android 5.0 (API 21)开始谷歌废弃了Camera,并提供了一套新的API,称之为Camera 2,不再是大而全的一个类了,也使用了更多的回调以异步化,流程与参数的控制更加的灵活,但也变得更加的复杂了,今天就来学习一下这套新API的使用方法。

Android Camera App开发学习路线

对于智能手机来说相机是非常重要的一个功能,它是影像的生产者,是新时代社交(图片,视频)内容的基础。后面我们将重点学习 一下安卓平台的Camera app开发。

深入学习Java虚拟机知识

Java编程语言的真核心是其虚拟机(Java Virtual Machine or JVM),JVM是真正的让Java宣言『Write Once,Run Anywhere』变成现实,JVM封装并隔离了不同的OS,JVM有它自己的标准和规范,从而凡是符合JVM的『代码』都可以在JVM上运行。Java编程语言并不是直接运行在JVM上面的,Java语言只是套在JVM上面的一层语言规则。

Android逆向技术高阶大法

安卓应用是一个客户端,与传统软件类似,需要把软件打包,然后通过某种渠道(应用市场)分发给用户,这是常规的发布方式,它的更新节奏很慢,从你在应用市场上更新后,到用户真正的执行升级,这中间很慢的,而且很多用户根本不会升级新版本,这对于互联网来说是极不友好的。传统的互联网,用户刷新一下网页后,就能看得到更新了,但对于客户端,这行不通,要想实现小时级别的发布和分钟级别的问题修复,正规的发布渠道是做不到的。于是各路大神和专家开始研究客户端的前端化,也就是运用各种技术能让发布,特别是一些问题修复性的小规模发布可以更快的传递到用户手中。

拥抱新时代的Java

Java作为面向对象编程的王牌语言,曾经风靡一时,在Web领域是绝对的老大。随着时间的推移,一些新的编程范式不断的涌现,如函数式编程,响应式编程,以及对函数的全力支持(Lambda函数)变成了大家经常谈论的话题。移动互联网的出现,以及前端的流行,让新一代的编程语言如ScalaGroovySwift以及Kotlin都大受欢迎。以函数式编程为核心的新一代编程范式慢慢变成了主流。曾经的王者Java,一度被人垢病,因为对函数支持不友好,(其实最主要的原因是如何保持好向后兼容),但也与时俱进,终于在Java 8版本迈出了重大的一步,完全支持了函数式编程。本篇将重点讨论Java 8的新特性,以及如何用Java 8来实践函数式编程。

玩转安卓运行速度优化

早在许多年以前写过一篇安卓性能优化文章,时过境迁,很多事情都有了变化,所以再专门针对程序运行速度和渲染的优化,这两方面非常直接的影响应用程序的操作流畅度,也可以称作流畅度优化方法,但更为专业的方式就是CPU优化,因为就是要提高代码的运行速度。