Java是基于C++的,但Java是一种更纯粹的面向对象程序设计语言,和C++不同的是,Java只支持面向对象编程,因此Java的编程风格也是纯OOP风格的,即一切都是类,所有事情通过类对象协作来完成. 在Java中,使用引用来操纵对象,在Java编程思想的第四版中,使用的术语是“引用(reference)”,之前有读过Java编程思想第三版,在第三版中,使用的术语是“句柄(handle)”,事实上,我觉得第三版的术语“句柄”更加形象传神,就像你用一个门的把柄来开门关门一样,不用管门是什么门,总…
1. String s = "asdf"//创建一个String引用,并初始化. String s = new String("asdf")//创建一个新对象,初始化字符串,new将对象存储在“堆”里. 2.内存分配 寄存器 堆栈 堆 常量存储 Technorati 标记: Think in Java 非RAM存储 3.Java不需要销毁对象 作用域 { String s = new String ("a string"); }//End of…
1.对象存储位置 对象的引用存在栈中,对象存在堆中.new 出来的对象都在堆中存储.栈的存取速度较快. 所有局部变量都放在栈内存里,不管是基本类型变量还是引用类型变量,都存储在各自的方法栈中: 但是引用类型变量所引用的对象(包括数组,普通Java对象)则总是存储在堆内存中. 基本类型的包装器类 如 Integer 可以在堆中创建一个非基本对象,用来表示基本类型. 也可以使用 Integer i = 1, Java SE5的自动包装功能将自动的将基本类型转换为包装器类型 2.创建新的数据类型:类…
所有编程语言都提供抽象机制. 面向对象编程似乎是一种很好的编程思想和方式,面向对象编程中的对象简洁描述是:对象具有状态.行为和标识.状态指的是数据存储,存储的数据能反应状态:行为指的是方法,方法表示对象能做什么事情:标识是用于识别对象的,即对象名. Java和C++的第一个不同点:在Java中,动态绑定是默认行为,不需要额外关键字来说明,而在C++中默认是非动态的,如需动态特性,则需要关键字virtual来说明. Java和C++的第二个不同点:在Java中,只允许单继承,不允许多继承,而C++…
有了数据,还需要进行数据间的运算,因此Java中也有数据间运算的各种符号,书本称之为操作符,正确的翻译应该是运算符. Java中的运算符同C++相同,运算符同运算符对象构成表达式,表达式是运算对象及运算符组成的式子,对表达式求值将得到一个结果,单独的变量或者字面值也算表达式,结果是其本身.运算符分为:一元运算符.二元运算符.三元运算符.一元即一个作用对象,二元两个作用对象,以此类推. 运算符有先后优先之分,正如先乘除后加减一样,此规则称为优先级.另外,运算符还具有结合律,也即一个运算符是先和该运…
前段时间一直通过网络教程学习Java基础,把面向对象部分学完之后本来打算继续深入学习,但是感觉自己操之过急了,基础根本不够扎实,所以入手了一本<Java编程思想>,希望先把基础打好,再深入学习. 不得不说这本书真的不是浪得虚名,对于我这样的新手看完一二章之后也觉得这本书值得买了.跟网上教程不同,这本书一开始便直接全面深入论述Java面向对象编程中对对象的理解,值得注意的是如果之前没有Java编程的基础,第一章看起来会比较吃力,而且效果也不太好,因为都是理论没有使用代码进行演示说明,所以作者也支…
程序流程控制 移位运算符 移位运算符面向的运算对象是二进制的位,可单独用它们处理整数类型.左移位运算符(<<)能将运算符左边的运算对象向左移动运算符右侧指定的位数(在低位补0)."有符号"右移位运算符使用了"符号扩展":若值为正,则在高位插入0:若值为负,则在高位插入1.Java也添加了一种"无符号"右移位运算符(>>>),它使用"零扩展":无论正负,都在高位插入0.若对char, byte或者s…
1.抽象过程 Q:什么是对象??? A:   1) 万物皆对象 --- 对象具有状态,行为和标识 2)程序是对象的集合,他们通过发送消息来告诉彼此要做的 3)通过创建包含现有对象的包的方式来创建新类型的对象 4)每个对象都具有其类型. 每个对象都是某个类(class)的实例 类与类最重要的区别就是可以发什么样的消息给它. 5)某一特定类型的对象都可以接受同样的消息 2.每个对象都有一个接口 2.1 接口(interface) 2.2 类描述了具有相同特性(数据元素)和行为(功能)的对象集合2.3…
抽象过程 纯粹的面向对象程序设计方式: 万物皆为对象: 对象可以存储数据,还可以在其自身执行操作 程序是对象的集合: 通过发送消息告诉彼此要做的 每个对象都有自己的由其它对象构成的存储:可以在程序中构建复杂的体系,并将复杂性隐藏在对象之后 每个对象都是某个类的对应实例:类的特性在于可以发送什么样的消息给它 某一特定类型的对象可以接收同样的消息 访问控制:隐藏实现细节 类创建者:创建新数据类型的程序员 客户端程序员:使用各种类以实现快速应用开发 向客户端程序员隐藏实现细节 库设计者可以改变设计方式…
1.抽象类和抽象方法 抽象方法,仅有方法声明没有方法体 abstract class AbstractClass{ abstract void f(); //没有 {} } 只要有一个或者多个抽象方法,则必是抽象类,抽象类可以没有抽象方法. 抽象类内可以没有抽象方法,也可以只有实现的方法. abstract class AbstractClass{ void g(){ System.out.println("hello"); } } 抽象类可以有自己各种权限的字段和方法,但抽象方法一定…