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

浙公网安备 33010602011771号