随笔分类 -  程序思维

摘要:本节介绍继承实现的基本原理,类在内存中包括哪些信息?对象创建的过程?对象的内存布局?动态绑定是如何实现的?虚方法表是什么? ... 阅读全文
posted @ 2016-05-30 09:36 老马说编程 阅读(7368) 评论(11) 推荐(10)
摘要:继承和多态的基本概念是比较简单的,但它们有一些相关的细节,包括构造方法、变量和方法重名、静态与动态绑定、重载与重写、父子类型转换、protected访问权限、可见性重写、防止继承(final) ... 本节一一解说 阅读全文
posted @ 2016-05-25 09:59 老马说编程 阅读(4131) 评论(9) 推荐(5)
摘要:为什么要有继承?继承解决什么问题?如何实现继承?super和this的关系?多态是什么意思?动态绑定指的是什么?... 阅读全文
posted @ 2016-05-23 08:31 老马说编程 阅读(5330) 评论(5) 推荐(10)
摘要:正所谓,道生一,一生二,二生三,三生万物,如果将二进制表示和运算看做一,将基本数据类型看做二,基本数据类型形成的类看做三,那么,类的组合以及下节介绍的继承则使得三生万物。 阅读全文
posted @ 2016-05-19 07:54 老马说编程 阅读(3902) 评论(1) 推荐(4)
摘要:通过类实现自定义数据类型,封装该类型的数据所具有的属性和操作,隐藏实现细节,从而在更高的层次上(类和对象的层次,而非基本数据类型和函数的层次)考虑和操作数据,是计算机程序解决复杂问题的一种重要的思维方式。 阅读全文
posted @ 2016-05-17 06:46 老马说编程 阅读(7934) 评论(10) 推荐(7)
摘要:上节我们提到了一个系统异常java.lang.StackOverflowError,栈溢出错误,要理解这个错误,我们需要理解函数调用的实现机制,本节就谈谈它的基本原理 ... 阅读全文
posted @ 2016-05-09 10:21 老马说编程 阅读(8302) 评论(2) 推荐(12)
摘要:为什么需要函数?函数隐含着一种什么样的思维方式?数组参数和基本类型参数有什么不同?return的含义?想返回多个结果怎么办?函数重名怎么办?调用函数时实际参数类型必须与函数声明的参数类型一样吗?自己调用自己合适吗? 阅读全文
posted @ 2016-05-07 11:44 老马说编程 阅读(3808) 评论(0) 推荐(7)
摘要:虽然循环看起来只是重复执行一些类似的操作而已,但它其实是计算机程序解决问题的一种基本思维方式,凭借循环(当然还有别的),计算机能够非常高效的完成人很难或无法完成的事情 阅读全文
posted @ 2016-05-05 10:48 老马说编程 阅读(7817) 评论(1) 推荐(6)
摘要:条件执行总体上是比较简单的 ... if, else实际上会转换为这些跳转指令... switch可能会使用一种更为高效的方式,叫跳转表 ... 跳转表为什么会更为高效呢? 阅读全文
posted @ 2016-04-29 10:24 老马说编程 阅读(5093) 评论(7) 推荐(12)
摘要:char看上去是很简单的 ... 但我们在第3节抛出了一个问题,为什么字符类型也可以进行算术运算和比较?char的本质到底是什么? 阅读全文
posted @ 2016-04-26 11:32 老马说编程 阅读(6885) 评论(8) 推荐(7)
摘要:"乱"主要是因为发生了一次错误的编码转换,恢复是要恢复两个关键信息,一个是原来的二进制编码方式A,另一个是错误解读的编码方式B。... 恢复的基本思路是尝试进行逆向操作... 阅读全文
posted @ 2016-04-25 10:32 老马说编程 阅读(5184) 评论(6) 推荐(7)
摘要:我们在处理文件、浏览网页、编写程序时,时不时会碰到乱码的情况。乱码几乎总是令人心烦,让人困惑。希望阅读本节和下节文章,你可以自信从容地面对乱码,恢复乱码。 阅读全文
posted @ 2016-04-22 10:07 老马说编程 阅读(8057) 评论(7) 推荐(11)
摘要:计算机之所以叫"计算"机就是因为发明它主要是用来计算的,"计算"当然是它的特长,在大家的印象中,计算一定是非常准确的。但实际上,即使在一些非常基本的小数运算中,计算的结果也是不精确的。 阅读全文
posted @ 2016-04-20 10:04 老马说编程 阅读(6554) 评论(8) 推荐(14)
摘要:正整数相乘的结果居然出现了负数,要理解这个行为,我们需要看下整数在计算机内部的二进制表示...... 负数的二进制表示看上去可能比较奇怪和难以理解,但这种表示其实是非常严谨和正确的,是不是很奇妙? 阅读全文
posted @ 2016-04-19 19:20 老马说编程 阅读(7288) 评论(15) 推荐(7)
摘要:数据有了值之后,可以对数据进行运算。计算机之所以称为"计算"机,是因为发明它的主要目的就是运算。运算有不同的类型,不同的数据类型支持的运算也不一样,本文介绍Java中基本类型数据的主要运算。 阅读全文
posted @ 2016-04-18 18:38 老马说编程 阅读(6307) 评论(7) 推荐(6)
摘要:声明变量之后,就在内存分配了一块位置,但这个位置的内容是未知的,赋值就是把这块位置的内容设为一个确定的值。Java中基本类型、数组、对象的赋值有明显不同,本文介绍基本类型和数组的赋值。 阅读全文
posted @ 2016-04-16 21:14 老马说编程 阅读(6888) 评论(5) 推荐(9)
摘要:应用程序看上去能做很多事情,能读写文档,能播放音乐,能聊天,能玩游戏,能下围棋, ...... 但本质上,计算机只会执行预先写好的指令而已,这些指令也只是操作数据或者设备。所谓程序,基本上就是告诉计算机对什么数据做什么操作 阅读全文
posted @ 2016-04-15 19:53 老马说编程 阅读(13320) 评论(16) 推荐(23)