本章介绍Java程序的基本组成部分,体会到Java中几乎一切都是对象。

第二章   一切都是对象

目录:

  • 2.1 用引用操纵对象
  • 2.2 必须由你创建所有对象
  • 2.3 永远不需要销毁对象
  • 2.4 创建新的数据类型:类
  • 2.5 方法、参数和返回值
  • 2.6 构建一个Java程序
  • 2.7 你的第一个Java程序
  • 2.8 注释和嵌入式文档
  • 2.9 编码风格

2.1 用引用操纵对象

一切都看作对象,操纵的标识符实际上是对象的一个“引用”,遥控器(引用)操纵电视机(对象),想调控电视,只需通过遥控器,且遥控器是独立存在的。

2.2 必须由你创建所有对象

一旦创建了一个引用,就希望它能与一个新的对象相关联,通常用new操作符来实现这一目的。

String s = new String("Jiancheng");

五个不同的地方可以存储数据:

  • 寄存器:位于CPU内部,寄存器的数量极其有限,所以寄存器根据需求进行分配,速度最快。
  • 堆栈:位于通用RAM(随机访问寄存器)中,Java编译器必须知道存储在堆栈内所有数据的大小和生命周期,“堆栈指针”向下移动则分配新内存,向上移动则释放内存,速度仅次于寄存器,基本数据类型和引用存放在此。
  • 堆:位于RAM区,用于存放所有Java对象,编译器不用知道数据大小和生命周期.
  • 常量存储:常量值通常直接存放在程序代码内部。
  • 非RAM存储:完全存活在程序之外,不受程序的任何控制,例子是流对象持久化对象,在流对象中,对象转换成字节流,通常被发送到另一台机器。在"持久化"对象中,对象被存放于硬盘上,即使程序终止,它们仍可以保持自己的状态。

9种基本类型:

boolean类型所占内存储空间的大小没有明确指定,仅定义为能够取字面值true或false。

高精度数字:

  • BigInteger:支持任意精度的整数
  • BigDecimal:支持任意精度的定点数

操作与对基本类型所能执行的操作相似,但必须以方法调用方式取代运算符方式来实现。

Java中的数组:
数组会被初始化,而且不能在它的范围之外被访问。这种范围检查,是以每个数组上少量的内存开销及运行时的下标检查为代价(换来安全性和效率)。

 2.3 永远不需要销毁对象

作用域:

------------------------------------------------------------------

对象的作用域:

Java的作用和基本类型差别很大,new创建一个Java对象后,它可以存活于作用域之外。只要你需要这个对象,就会一直保留下去,直到垃圾回收器辨别到该对象不会再被引用并释放该对象的内存空间,这样就消除了内存泄漏的问题。

2.4 创建新的数据类型:类

类决定了某一对象的外观与行为,确定了对象的类型。

基本成员默认值:

当变量作为类的成员使用时,Java才确保给定其默认值,来确保基本类型成员变量得到初始化(初始值可能不是你想要的,最好自己初始化)。注意默认初始化的方法不适用于非某个类的字段变量,忘记初始化,Java会在编译时给你返回一个错误。

2.6 构建一个Java程序

static关键字:

下面两种情况需要使用static

  • 只想为某特定域分配单一存储空间,而不去考虑究竟要创建多少对象。
  • 某个方法不与包含它的类的任何对象关联在一起,就是没有创建对象,也能够调用这个方法。
class StatiTest{
static i = 47; //可以直接StatiTest.i这样调用
}

StatiTest st1 = new StatiTest();
StatiTest st2 = new StatiTest();
其中st1.i和st2.i指向同一存储空间,因此他们具有相同的值。

static作用于某个方法,区别在于用法在不创建任何对象的前提下就可以调用它,类.方法()。

2.9 编码风格

驼峰风格:

  • 类,每个单词的首字母采用大写
  • 方法、字段及对象等,第一个单词的首字母采用小写,其余首字母大写

总结:

本章容易理解,对Java语言及它的一些基本思想有一个总体的认识,大多数知识点也接触过,但容易把细节的地方忘记,多看无碍。

转载注明:http://www.cnblogs.com/wujiancheng/

Java编程思想总结笔记The first chapter

Java编程思想总结笔记Chapter 2的更多相关文章

  1. Java编程思想总结笔记Chapter 3

    本章需要总结的不多,但细节的东西需要注意,有些很容易遗忘. 第三章 目录: 3.1 更简单的打印语句 3.2 使用Java操作符 3.3 优先级 3.4 赋值 3.5 算数操作符 3.6 自动递增和递 ...

  2. Java编程思想总结笔记Chapter 5

    初始化和清理是涉及安全的两个问题.本章简单的介绍“垃圾回收器”及初始化知识. 第五章  初始化与清理 目录:5.1 用构造器确保初始化5.2 方法重载5.3 默认构造器5.4 this关键字5.5 清 ...

  3. Java编程思想总结笔记The first chapter

    总觉得书中太啰嗦,看完总结后方便日后回忆,本想偷懒网上找别人的总结,无奈找不到好的,只好自食其力,尽量总结得最好. 第一章  对象导论 看到对象导论觉得这本书 目录: 1.1 抽象过程1.2 每个对象 ...

  4. Java编程思想重点笔记(Java开发必看)

    Java编程思想重点笔记(Java开发必看)   Java编程思想,Java学习必读经典,不管是初学者还是大牛都值得一读,这里总结书中的重点知识,这些知识不仅经常出现在各大知名公司的笔试面试过程中,而 ...

  5. JAVA编程思想读书笔记(五)--多线程

    接上篇JAVA编程思想读书笔记(四)--对象的克隆 No1: daemon Thread(守护线程) 参考http://blog.csdn.net/pony_maggie/article/detail ...

  6. JAVA编程思想读书笔记(四)--对象的克隆

    接上篇JAVA编程思想读书笔记(三)--RTTI No1: 类的克隆 public class MyObject implements Cloneable { int i; public MyObje ...

  7. JAVA编程思想读书笔记(三)--RTTI

    接上篇JAVA编程思想读书笔记(二) 第十一章 运行期类型判定 No1: 对于作为程序一部分的每个类,它们都有一个Class对象.换言之,每次写一个新类时,同时也会创建一个Class对象(更恰当的说, ...

  8. JAVA编程思想读书笔记(二)--容器

    接上篇JAVA编程思想读书笔记(一) 第八章.对象的容纳 No1: java提供了四种类型的集合类:Vector(矢量).BitSet(位集).Stack(堆栈).Hashtable(散列表) No2 ...

  9. Java编程思想读书笔记之内部类

    现在是够懒得了,放假的时候就想把这篇笔记写出来,一直拖到现在,最近在读<Java编程思想>,我想会做不止这一篇笔记,因为之前面试的时候总会问道一些内部类的问题,那这本书的笔记就从内部类开始 ...

随机推荐

  1. Fisher Vector Encoding and Gaussian Mixture Model

    一.背景知识 1. Discriminant  Learning Algorithms(判别式方法) and Generative Learning Algorithms(生成式方法) 现在常见的模式 ...

  2. 在Azure China用自定义镜像创建Azure VM Scale Set

    在Azure China用自定义镜像创建Azure VM Scale Set 在此感谢世纪互联的工程师Johnny Lee和Lan,你们给了我很大的帮助.因为Azure China的官网没有给出完整的 ...

  3. 30多个Android 开发者工具 带你开发带你飞

    文中部分工具是收费的,但是绝大多数都是免费的. FlowUp 这是一个帮助你跟踪app整体性能的工具,深入分析关键的性能数据如FPS, 内存, CPU, 磁盘, 等等.FlowUp根据用户数量收费. ...

  4. Python抓取成都房价信息

    Python里scrapy爬虫 scrapy爬虫,正好最近成都房价涨的厉害,于是想着去网上抓抓成都最近的房价情况,顺便了解一下,毕竟咱是成都人,得看看这成都的房子我以后买的起不~ 话不多说,进入正题: ...

  5. HTML5 客户端存储数据的两种方式

    HTML5 提供了两种在客户端存储数据的新方法: localStorage - 没有时间限制的数据存储 sessionStorage - 针对一个 session 的数据存储 之前,这些都是由 coo ...

  6. 让getElementsByClassName兼容

    function getElementsByClassName(node, classname){ if(node.getElementsByClassName){ //使用现有方法 return n ...

  7. python网络爬虫之scrapy 工程创建以及原理介绍

    执行scrapy startproject XXXX的命令,就会在对应的目录下生成工程 在pycharm中打开此工程目录:并在Run中选择Edit Configuration 点击+创建一个Pytho ...

  8. js传宗接代---继承

    前几天重温了一下js的继承,今天分享给大家: 一,类式继承. 所谓的类式继承就是:第二个类的原型prototype被赋予了第一个类的实例,如subcals.prototype=new supercls ...

  9. linux 权限字母含义

    查看某一文件夹下所有文件夹的权限情况:ls -l分别是:所有者(user)-所有者(user)-其他人(other)r 表示文件可以被读(read)w 表示文件可以被写(write)x 表示文件可以被 ...

  10. eclipse左侧的导航栏不见了怎么调

    点击eclipse上方导航栏的window 然后再点击Reset Perspective 这样左侧的导航栏就出来了