自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 资源 (2)
  • 收藏
  • 关注

原创 20170305听课笔记(漫谈进程和线程)

操作系统的关键抽象 把 I/O 设备抽象成文件,这样用户就不用直接对硬盘做操作,因为硬盘本身作为一个物理设备,对一般用户来说比较复杂。 物理的主存+文件的概念,就形成了虚拟的存储器。 把 CPU 抽象成指令集, 加上虚拟存储器就形成了进程。 进程加上操作系统就形成了虚拟机。比喻:厨师做蛋糕 做蛋糕的食谱,第一步第二步第三步,告诉你怎么做,就是程序。做蛋糕的原料,就是输入数据。厨师自

2017-06-30 18:52:14 457 1

原创 20170226听课笔记(程序的机器级表示)

上节课讲了递归、堆栈,及每一个函数的栈帧在堆栈中是怎么排列的,但并未深入到机器级的层次,对 CPU 来说,它到底是怎么维持这个堆栈的,以及上节课提到的 EPB 和 ESP 到底是如何处理的。预备知识EBP:永远指向当前栈帧的开始处。 ESP:永远指向栈的栈顶。 部分汇编指令 正题:如何使用汇编语言执行一个简单的加法运算。程序用 C 语言表示:int demo(){ int x = 1

2017-04-26 16:58:46 433

原创 20170222听课笔记(CPU,内存,硬盘,指令之间的关系)

在我看来,CPU 就是计算机的核心,是真正用于计算的,而硬盘的读取速度太慢,所以由读取速度较快的内存来向 CPU 提供数据,指令就是告诉 CPU 去如何计算的。1.图灵机根据我自己的理解,制造图灵机只需两点:a.在一条无限的纸带上有无限的格子 b.每个格子上的内容可以任意修改,这样理论上就可以进行任何的计算过程(描述中没有提到停机问题,详情请参见维基百科)。2.冯·诺依曼结构的工作原理计算机的五大组

2017-02-25 23:57:50 403

原创 做《算法》课后练习前需要做的事

踩坑总结: 1.自己动手实现本书中的算法之前,最好安装一下官网提供的 algs4.exe,这样会减少很多问题,我也把相关文件传到了 csdn 上:http://download.csdn.net/detail/mpx_xb/9743744。 2.从官网上下载 algs4.jar,并将文件放在~/algs4/下,之后记得把“C:\Users\username\algs4\algs4.jar;”写入

2017-01-23 16:55:07 447

原创 《算法》读书笔记(三)

第1章 基础新的一年,要开始跟着刘老大学习后端了,因此最近会开始读《Java 核心技术》,《算法》的阅读应该是先暂时告一段落了,预计最晚年末应该还会再开,谁知道呢。我把自己做的课后题都传到了 github 上,网址是:https://github.com/songyizhang/AlgorithmsExercises/tree/master/src/songyi,期待与各位交流的那一天。...

2017-01-23 15:12:51 1195

原创 《算法》读书笔记(二)

第1章 基础本书研究的是算法和数据结构,本章介绍的是学习算法和数据结构所需要的基本工具。它讲解了在随后的章节中用来实现、分析和比较算法的基本原则和方法,包括Java编程模型、数据抽象、基本数据结构、集合类的抽象数据类型、算法性能分析的方法和一个案例分析。1.1 基础编程模型介绍了相关的语法、语言特性和库。 本书使用Java编程语言编写的程序实现算法。我们把描述和实现算法所

2016-11-30 19:13:34 755

原创 《算法》读书笔记(一)

第1章 基础本书研究的是算法和数据结构,本章介绍的是学习算法和数据结构所需要的基本工具。它讲解了在随后的章节中用来实现、分析和比较算法的基本原则和方法,包括Java编程模型、数据抽象、基本数据结构、集合类的抽象数据类型、算法性能分析的方法和一个案例分析。1.1 基础编程模型介绍了相关的语法、语言特性和库。 本书使用Java编程语言编写的程序实现算法。我们把描述和实现算法所...

2016-10-31 18:06:53 1915

原创 来京一周年记

大约在15年农历年的时候,我决定换份工作。狭义地说,我觉得移民行业不适合我,这个行业基本就分三个职能,一是创业,这个就别想了,二是操作,也就是我之前做的,做到最高也就是操作部经理,实在不是我想要的,三是销售,就纯靠忽悠了。其实我也不是不能忽悠,只是我的忽悠都是在一定的基础只是之上的,大部分的销售都是不太懂得基础知识或是只懂一点,然后跟客户吹得天花乱坠,讲段子,逗客户开心——我不是说忽悠不好,也不是说

2016-10-29 23:51:09 1795 2

原创 What is new in Android security (M and N Version) - Google I/O 2016 翻译

截至发博,字幕还在后期中,应该快了吧。 YouTube视频链接:https://www.youtube.com/watch?v=XZzLjllizYs字幕翻译: 1 00:00:01,820 –> 00:00:04,920 他们告诉我计时已经开始了 They pointed at me and the clock started moving.2 00:00:04,920 –> 00:0

2016-10-09 16:21:05 2783

原创 Android通知栏试谈

最先引起我注意的是如下图的情形,从上到下分别是蜻蜓FM,QQ音乐,虾米音乐,网易云音乐,网易云消息,QQ消息,酷我听书。那么问题来了,像QQ音乐、虾米音乐这种具有超强实力的软件,排序竟然在蜻蜓FM之后,这是为什么? 同样在通知栏,它们的排序规则是什么?在研究这个问题之前,先来简单了解一下通知。创建通知您可以在 NotificationCompat.Builder 对象中为通知指定 UI 信息和操作

2016-09-30 16:48:44 570

原创 一道算法题

今天碰到一个算法题,大意是如果N大于0就把N对2取余压栈,然后除2,循环往复直到N不再大于0然后全部弹栈,问N如果取50,结果是什么,这个算法的意义是什么。我把N=50这个条件带进去之后,也算出了正确的结果是110010,感觉是10进制转换成2进制啊,果然是。然后我就想,为什么不停地对2取余就能转换进制呢,在我差点就要去百度的时候我发现,11001其实代表着25,加个零变成110010,也就是10进

2016-09-18 14:40:34 324

原创 本周总结20160903

感觉这周确实没有什么大的精进,随便聊聊吧。 1.我已经开始读《算法》的英!文!版!了!虽然从之前的一天25页缩减到了现在的一天10页,还是英文版的——中文版的书一页通常能包含英文版一页半的内容。不过呢,考虑到我最近确实不忙,而且现在不看英文原版的书,难道等以后忙了再看吗?所以虽然看起来很晦涩而且很慢,不过我决定还是坚持下去吧。 2.据说很久之前的一个应用要改版,平心而论,代码的水平还是可以的,不

2016-09-03 17:02:39 287

原创 《算法》读后感(一)之胡说八道

在写之前先吐个槽,《算法(第4版)》这本书一共636页,标价是99元,我在亚马逊上买的价格是77.4元——真贵呀。但是我用了两周的时间,只读了50页,虽然这其中因为一些事耽误了些时间,不过我现在觉得,这77.4元,真值! 好吧,因为我只读了50页,所以也谈不上有什么读后感,那我就随便聊聊读的过程中的一些感想吧。首当其冲的困惑就是Std* 库,在本书中用的极其频繁,但是我又看不到其中的源码,在我看了

2016-08-20 11:43:43 828

原创 我的自学方法总结

我知道大家的时间都很宝贵,所以我把本文的要点摘出来列在前面,后面的细节是我的一些个人经历和看法。核心:预设自己学习的目的与效果,有的放矢 原则: 1.效率优先,抓大放小 2.自学的同时也要关注最新的技术趋势 3.耐住寂寞,坚持不懈 4.找到适合自己的学习方法

2016-08-15 09:31:16 454

原创 《编码》读后感

本人把这篇文章定义为很个人的读后感而非严肃的技术博客,所以书中的内容大多是凭着回忆外加看目录写出来的,如有与原书内容不符的地方或是出现了技术纰漏,欢迎指正。现在是2016-08-07 17:21 19:06,我刚参加完北京GDG组织的Android Meetup活动,晚饭是中午买的半袋饼干,现在我坐在地铁上家里喝着咖啡敲下这些字。嗯,中间站了一会,手机打字不是很方便,就没再写了。 从时间顺序上说,

2016-08-07 19:05:17 1841

原创 从指南针到动手搭建自己的第一台计算机

大约在1948年,美国数学家John Wilder Tukey(生于1915年)提前认识到二进制数将在未来几年中随着计算机的流行而发挥更大的作用。他决定创造一个新的、更短的词来代替使用起来很不灵活的五音节词—binary digit。他曾经考虑用bigit或binit,但最后还是选用了短小、简单、精巧且非常可爱的单词bit(比特)来代替binary digit这个词。 ——《编码:隐匿在计算机软硬件背后的语言》

2016-07-24 15:36:02 356

原创 一点感想

今天看到Android的SharedPreferences(一种数据存储方式),其中说到MODE_WORLD_READABLE和MODE_WORLD_WRITEABLE两种操作模式,“表示允许其他的应用程序对我们程序中的文件进行读写操作,不过由于这两种模式过于危险,很容易引起应用的安全性漏洞,现已在Android 4.2版本中被废弃。”这让我突然想起来有一天一个小伙伴质问我为啥一个安卓app可以打电

2016-07-10 16:10:45 353

原创 Introducing Android Instant Apps - Google I-O 2016 翻译字幕

上周几乎没怎么学习,一直在忙字幕组的考核,干脆就把我翻译的字幕贴出来吧——这可真是最新的Android技术了。 YouTube视频链接:https://www.youtube.com/watch?v=cosqlfqrpFA字幕翻译: 1 00:00:00,500 –> 00:00:03,050 我们在今年的谷歌 I/O 大会上展示了 We showed you a sneak peek o

2016-06-20 15:00:36 752

原创 Android代码混淆踩过的那些坑

Java是一种跨平台的解释型语言,其源代码编译成中间“字节码”存储于class文件中。由于跨平台的需要,Java字节码中包括了很多源代码信息,如变量名、方法名,并且通过这些名称来访问变量和方法,而这些符号带有许多语义信息,很容易被反编译成Java源代码。为了防止这种现象,我们需要对Java字节码进行混淆。 代码混淆(Obfuscated code)亦称花指令,是将计算机程序的代码,转换成一种功能上

2016-05-29 16:27:26 2198

原创 Android Material Design之修改样式

Material Design 是与Android Lollipop(5.0)一起推出的一种全新的设计语言,这种设计语言旨在为手机、平板电脑、台式机和“其他平台”提供更一致、更广泛的“外观和感觉”。说白了,就是“更好看”。 譬如说可以自定义导航栏的颜色使之与应用整体更加搭配(新浪微博就没注意这点),还有下面的信封小图标,可以自定义任何图标、文字、动画效果,还有下图中的抽屉效果(QQ在用)。

2016-05-19 14:34:54 1753

原创 拿来主义太严重

入职一个月,除了开始的两天没安排任务之外,每天都很忙。但是每天的基本流程都是一样的——需要实现这个功能了,百度看看有没有人写过类似的,哎呀这个案例写的不太好或是没达到我要求,终于找到一个差不多的了,改名字,换数据,搞定。怪不得程序猿都爱自嘲为码农,真就是跟搬砖一样,Ctrl+c加Ctrl+v。好了,吐槽归吐槽,搬砖也是能学到不少东西的,下面我就把这些天用到的代码罗列出来,既是交流,也是

2016-05-02 18:04:58 885

《算法》第四版所需资源 algs4.jar

《算法》第四版所需资源

2017-01-23

《算法》第四版所需资源 algs4.exe

《算法》第四版所需资源

2017-01-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除