Lambda表达式是Java 8中的一个重要新特性,使用Lambda表达式可以简化很多代码,比如常见的为一个按键添加点击事件Listener
的代码:
1 | btn.setOnClickListener(new View.OnClickListener() { |
其中有用的代码很有可能只有一行,其他部分其实都没有实际意义,只是语法需要,创建了一个匿名类而已。但是,如果使用Lambda表达式之后,上述代码就可以简化为:
1 | btn.setOnClickListener(v -> { |
Lambda表达式是Java 8中的一个重要新特性,使用Lambda表达式可以简化很多代码,比如常见的为一个按键添加点击事件Listener
的代码:
1 | btn.setOnClickListener(new View.OnClickListener() { |
其中有用的代码很有可能只有一行,其他部分其实都没有实际意义,只是语法需要,创建了一个匿名类而已。但是,如果使用Lambda表达式之后,上述代码就可以简化为:
1 | btn.setOnClickListener(v -> { |
最大连续子序列和问题是一个经典的算法问题,在”Data Structures and Algorithm Analysis in C”一书第2章中介绍了此问题,并给出了复杂度从O(n^3)至O(n)的4种解法,这里对此问题稍作扩展总结一下。
这一系列文章是对P.J. Plauger所著的《C标准库》(The Standard C Library)一书的学习笔记,此书是关于C标准库的经典著作,讲述了每一个库函数的使用方法和实现细节。C语言标准库是最顶尖程序员的智慧结晶,要深入理解其实现细节自然也是很困难的……这里记录一下阅读这本书的收获,跳过了其中不常用或太复杂的部分(stddef.h
、float.h
、limits.h
、errno.h
、setjmp.h
、signal.h
、locale.h
、math.h
)。
很多时候我们都有监测某个网站变化的需求,比如是否发布新通知了,是否有新更新了等。之前使用过Chrome的几个插件来实现这个功能,不过用起来都觉得不是很方便,于是就想自己用Python写一个,之后将程序部署在服务器上即可实现24小时自动监测了。
用了几天时间写了个还算可以用的程序出来,可以实现以下功能:
进行文本匹配等操作最合适的工具就是正则表达式了,Python中的正则表达式模块叫做re
,在此总结下此模块最基本的用法。关于正则表达式本身的模式字符串的构成,参考我的另一篇文章:正则表达式总结
bs4
用于解析获取到的HTML文件,其官方中文文档为:Beautiful Soup 中文文档,此处列举的只是最基本最常用的一些用法。
主流Bootloader的启动过程均可分为Stage1及Stage2两部分,一般来说,Stage1完成最基本的初始化操作、搬移代码及建立C语言运行环境;Stage2完成剩余的初始化操作。故Stage1一般使用汇编完成,Stage2一般使用C语言完成,不过这只是很粗略的情况,实际上Stage1中也会使用C语言代码。
下面以之前针对S3C2440移植好的U-Boot 2016.05为例,分析U-Boot中Stage1的代码。