Java编程思想笔记(第二章)

第二章  一切都是对象

尽管Java是基于C++的,但相比之下,Java是一种更纯粹的面向对象程序设计语言.

c++和Java都是杂合型语言(hybird language)

用引用(reference)操作对象

类似遥控器(引用)来操作电视(对象)

在Java中你可以创建一个引用,但是没有与任何对象关联,比如:

String s;

这个时候如果用则会报错.安全的做法是:

创建一个引用的同时并进行初始化

String s="1111";

必须由你创建所有对象

New关键字的意思是给我一个新对象

String s = new String("1111");

存储到什么地方

1.寄存器(register):这是最快的存储区--处理器内部,数量有限,又编译器根据需求分配

2.堆栈(stack):位于ram(随机存储器)中,仅次于寄存器存储Java对象的引用(不存对象),需知道所有数据的大小,生命周期,因为它必须生成相应的代码,以便上下移动堆栈指针(下,分配新内存,上,释放内存)

3.堆(heap):一种通用的内存池(位于ram中),用于存放所有的Java对象

4.静态存储(static storage):存放程序运行时一直存在的数据,用static标示(ram中)

5.常量存储(constant storage):(存放在rom(read-only memory)中)存放常量

6.非RAM存储(non-RAM-storage):例如持久化对象中,对象呗存放于磁盘上,因此程序终止,他们仍然可以保持自己的状态,在需要时可恢复成常规的基于ram的对象

特例:基本类型(primitive type)

基本类型不用new来创建,并非是一个引用而是一个自动变量,并且其用用值,并置于堆栈中,因此更加高效.

高精度数字(high-precision number)

BigInteger支持任何精度的整数

BigDecimal支持任何精度的定点数

作用域(scoping)

由花括号的位置决定

{

int x=12;//x可用

{

int q=3;

//x q都可用

}

}

对象作用域(scope of object)

{

String s=new String("111");

}//end scope

引用s在作用域终点就消失了,然而s指向的String对象扔继续占用内存空间.

创建信的类型数据:类

class关键字后面紧跟着新类型的名称

class className{

//class body goes here

}

域(field)和方法(method)

即数据成员(data member)和成员函数(member function)

构造器是特殊的一个方法,通过其对对象进行初始化,以便其与一个实际对象关联

class A{

int i;

float f;//域

public void add(){ //method

//some code...

}

}

基本成员默认值

方法(method) 参数(argument)和返回值(return value)

returnType methodName(Argument list){

//method body

}

java中的方法只能作为类的一部分来创建,其只有通过对象才能被调用.

objectName.methodName(arg1,arg2,arg3);

Static关键字

为某特定数据分配一份存储空间,而不考虑要创建多少对象甚至不需要创建对象

希望某一个方法不与包含他的类的任何对象关联在一起

(不new对象也可以调用)

一个static域对每个类来说都只有一份存储空间  而非static域则是对每个对象都有一个存储空间

编译运行

比如我们有个HelloDate.java源文件,命令行切换到改目录下,并键入:

javac HelloDate.java

进行编译

java HelloDate

运行

文档注释

/** comment */

注意:javadoc只能为public和protected成员进行文档注释

代码风格

类名的首字母要大写,例如MyFirstClassName,称为驼峰风格

方法,域也都采用此种方式.只是标识符的第一字母采用小写,例如:

int myFirstInt;

void myFirstMethod(int newValue){//..}

Java编程思想笔记(第二章)

时间: 2024-10-17 21:43:04

Java编程思想笔记(第二章)的相关文章

java编程思想笔记(第一章)

Alan Kay 第一个定义了面向对象的语言 1.万物皆对象 2.程序是对象的集合,他们彼此通过发送消息来调用对方. 3.每个对象都拥有由其他对象所构成的存储 4.每个对象都拥有其类型(TYpe) 5.某一特定类型的所有对象都可以接收同样的消息. Booch提出一种更简洁的描述: 对象拥有状态(state) 行为(behavior) 和标识(identity) 每个对象都有一个接口 每个对象都属于定义了特性和行为的某个类(特性可以理解为属性的状态,行为可以理解为method) 在面向对象的程序设

java 编程思想 一 第二章(对象)

上班之余发现有很多空闲时间,享受生活 又觉得有点空虚,而且对自己的基础知识总觉得掌握的不是很牢固,有点似懂非懂的感觉,近来刚好有时间,所以就考虑继续学习,然后再经过考虑和各大博主推荐选择了<java编程思想>这本书,在此分享学习心得跟大家共勉,也算是对自己的监督吧.(本内容需要有一定的基础才能看,类似于基础回顾,强化理解,新手可能有些地方不太能听懂) 一.什么是对象? 这并不是我们男女朋友那种对象哈哈. 简言之:万事万物皆对象. 个人理解:我们所要处理的事务或者建立的某种模型的抽象总结.具体就

JAVA编程思想笔记--第一章对象导论

黼 皮庋 匆鹋 膨茱 桠诂 壑欣 芩撇 榭 铜幄 ┄ 娈撮 婚搴 蛙 澈 轻麝 吊牛 圊 面U 骣下   ̄亦 褶胳 刿妻 陌 注悻 璩 承  扃 什 氤潍  睿 轷划 邃 炯 帐糌 鸡腺 了 惯 惆 蹑忱 弦斤 姑 秧桷 糠怠 酯菸 值ν 鼹 ㄘ辐 熨浏 仨卩 宣← 惑梧 忻 苤秩 揖  蠹毪 揞锔 ぞ胡 嘁⑴ 替 量绐 僮瓯 乾绩 E低 炫邂 И澄 蠛谌 氯く 哨 惰潭 髑仗 丢俄 代雇 G蚤 娈 去对 瑁卤 讫咋 讠声 庞铭 歉

Java编程思想——第17章 容器深入研究(two)

六.队列 排队,先进先出.除并发应用外Queue只有两个实现:LinkedList,PriorityQueue.他们的差异在于排序而非性能. 一些常用方法: 继承自Collection的方法: add 在尾部增加一个元索 如果队列已满,则抛出一个IIIegaISlabEepeplian异常 remove 移除并返回队列头部的元素 如果队列为空,则抛出一个NoSuchElementException异常 element 返回队列头部的元素 如果队列为空,则抛出一个NoSuchElementExce

Java 编程思想 第五章 ----初始化与清理(1)

从今天开始每天一小时的java 编程思想的阅读和编码,其实就是把书上的代码抄下来. 5.5 清理:终结处理和垃圾回收 初始化和清理工作同等重要,但是清理工作却被常常忘记,但是在使用对象之后,对对象弃之不顾的做法并不是很安全.Java有自己的垃圾回收器负责回收无用的对象占据的内存资源.但也有特殊情况:假定你的内存区域不是用new获得的,这是无法用垃圾回收器释放所以java中允许在类中定义一个名为 finalize()的方法.       工作原理: 一旦垃圾回收器准备好释放对象占用的存储空间,将首

Java编程思想笔记:(Ant 求助)Eclipse生成/导入第三方jar包

最近读Thinking in Java,遇到第三章使用作者Bruce Eckel编写的官方包,但是从官方只能下载到.java格式的源代码. 走了点儿弯路,搞了一下,将作者的代码在Eclipse中新建一个项目导入进来.然后使用Eclipse->Export导出成jar包. 然后在我需要使用作者编写的Api的项目中,在项目上右键->properties->java build path->library->Add external jars->选择你要导入的jar包,确定(

《java编程思想-第2章》读书笔记

第2章:一切都是对象 若类的某个成员是基本数据类型,即使没有进行初始化,java也会确保它获得一个默认值.而对于"局部"变量(即非某各类的字段),在使用前,必须赋予一个值,如果你忘记了这么做,java会在编译时返回一个错误,告诉你此变量没有进行初始化. a是一个对象,int x=a.f(); 返回值的必须与x的类型兼容.这种调用方法的行为通常被称为发送消息给对象.面向对象的程序设计通常简单地归纳为向对象发送消息. 若返回类型为void,return关键字的作用则是用来退出方法的.因此,

7.JAVA编程思想笔记隐藏实施过程

欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/51040237 "进行面向对象的设计时,一项基本的考虑是:如何将发生变化的东西与保持不变的东西分隔开." Java 推出了"访问指示符"的概念,允许库创建者声明哪些东西是客户程序员可以使用的,哪些是不可使用的.这种访问控制的级别在"最大访问"和"最小访问"的范围之间,分别包括:public,"友好的

java编程思想笔记--第一个java程序

// Property.java import java.util.*; public class Property { public static void main(String[] args) { System.out.println(new Date()); Properties p = System.getProperties(); p.list(System.out); System.out.println("--- Memory Usage:"); Runtime rt