作品简介

本书收录了与程序设计基础知识相关的30个问题。它们是大部分初次接触编程的读者共有的问题。这些问题的答案并不复杂,但是消化吸收它们却不是一个简单的过程。这需要读者培养计算思维,学习从程序的视角看问题。当你可以回答本书所有的问题时,相信你已经越过了程序设计的第一道门槛。

本书分为6部分,分别是:入门学堂、内存模型、初窥算法、面向对象、认识程序、编程之道。在入门学堂这部分中,主要介绍程序设计最基础的知识,例如如何编写第一个Java程序、第一个C++程序,学习调试程序等。在内存模型这部分中,我们将学习指针、引用、栈和堆、参数传递等内存相关的知识。初窥算法部分围绕基础的数据结构和算法展开,如链表、递归算法、搜索算法等。在面向对象这部分中,我们将围绕面向对象程序设计的三大特性展开学习。认识程序部分则介绍更多程序设计方面的知识,如异常处理机制、输入输出流、多线程编程等。编程之道部分讲述提升代码质量的方法,编程不仅是一项工程性的工作,更是一项艺术工作,这一部分就围绕程序设计的艺术性来展开。

本书面向所有计算机相关专业的学生,也面向所有对程序设计感兴趣的入门学习者,只要对本书中的任何问题感到疑惑,并且想知道背后答案的读者,都可以阅读本书。

吕云翔,北方交通大学讲师(1986—1992);比利时VUB大学应用信息技术硕士(1992—1994);比利时VUB大学MBA(1994—1996);IT公司项目经理(1996—2003);北航软件学院副教授(2003—至今)。

作品目录

  • 内容简介
  • 前言
  • 一、入门学堂
  • 1.#include, using namespace std, int main分别是什么意思?我的第一个C程序
  • 2.import, public static void main, String[] args分别是什么意思?我的第一个Java程序
  • 3.什么是数据类型?
  • 4.如何阅读项目源码?
  • 5.如何调试程序?
  • 二、内存模型
  • 6.变量和对象存储在哪里?理解栈和堆
  • 7.什么是stackoverflow异常?
  • 8.指针究竟是什么?
  • 9.Java中的引用与C中的指针有什么区别?
  • 10.为什么C++中new之后要delete, Java中却不需要?
  • 11.明明是值传递,可对象为什么发生了变化?
  • 三、初窥算法
  • 12.如何编写链表?
  • 13.从斐波那契到汉诺塔,如何编写递归算法?
  • 14.从深度优先到广度优先,如何编写搜索算法?
  • 15.什么是位运算?位运算究竟有什么用?
  • 四、面向对象
  • 16.为什么要编写类?这么做是不是使问题更复杂了?
  • 17.组合还是继承?如何选择?
  • 18.为什么静态方法不能调用非静态成员?
  • 19.Java为什么不支持多继承?
  • 20.为什么要定义接口?接口有什么用?
  • 五、认识程序
  • 21.Java中的异常处理机制有什么优点?
  • 22.throws还是try…catch?异常处理原则
  • 23.什么是输入流和输出流?装饰器模式的应用
  • 24.为什么需要多线程编程?
  • 25.修改同时发生该听谁的?锁
  • 26.编译、链接、运行,程序是怎样跑起来的?
  • 27.为什么我写的都是黑框程序?图形界面是怎样写出来的?
  • 28.什么是回调函数?
  • 六、编程之道
  • 29.如何正确地编写注释?
  • 30.应该培养哪些良好的编程习惯?
  • 参考文献
展开全部