java编程思想小记(1)

       在学习java方面刚开始有些懵,上网上查找之后知道了几本比较经典的有关基础的书,不管你是不是初学者都可以拿来研读,而且是那种可以反复拿出来回味的经典之作,《JAVA编程思想》就是其中的一本。当然也有人说这本书不适合初学者,其中涉及到了一些基础知识,有C语言尤其是有C++基础的,可能会相对容易一点。

       在拿到书的时候说实话还是有些头大的,800多页的书,说实话心里有些发憷,但是既然选择继续在java这条路上发展下去还是坚定了决心翻开了这本书。

第一章内容

JAVA编程万物皆为对象,这就是java编程思想开门见山的一句话。本章标题为对象导论,主要引入了对象的概念,引入了OOP(Object-oriented Programming,OOP)即面向对象的程序设计,对于有java基础的人来说看起来还是很轻松的,简单来说这章就是介绍背景和补充性的材料.


关于对象

抽象过程:   (1)万物皆为对象;

                    (2)程序是对象的集合,它们通过发送消息来告知彼此要做的;

                    (3)每个对象都有自己的由其他对象所构成的存储;

                    (4)每个对象都拥有其类型;

                    (5)某一特定类型的所有对象都可以接收同样的消息。

简洁的对象描述:对象具有状态、行为和标识。这就是说每个对象都拥有内部数据,它们给出了该对象的状态和方法,并且每一个对象都可以唯一的与其他对象区分开来,即一个对象在内存中都有一个唯一的地址。每一个对象都提供服务,可能描述某个抽象的事物,也可能是为其他对象提供某些操作。

java对于类的内部设定边界:public、private、protected。这三个是访问指定词,决定了类能被谁所使用。public是没有限定的,谁都可以使用,private表示私有的,只有创建者和类型内的方法能够使用。protected与private作用相当,差别在于继承可以访问基类的protected成员。当然java还有默认的访问权限,即没有指定边界,此时限定为包访问权限,包内可以访问,包外就如指定了private一样不能访问。

创建一个完整的类需要敏锐的洞察力,而且一个类可以置于新的类中成为其成员变量,这被称为组合,如果组合是动态发生的就常常被称为聚合,组合经常被视为“has-a”(拥有)关系。在创建了一个类之后,可能会遇到与之相似的类,我们不想再创建一个新的类,其中包含了上一个与之相似的类中的所有的东西,这就需要用到继承了。以一个类为基础,创建副本然后通过修改和添加副本来得到新的类,这样就好多了,这其中就体现了代码的复用性,这会使得类看起来不是那么臃肿。在类的继承中源类(基类、父类、超类)发生变动,被修改的“副本”(子类、导出类、继承类)也会发生变化。

在继承中就伴随了多态。多个子类继承了同一个父类,创建子类的实现然后调用方法(可能是被重写过的)。

在java中所有的类都继承自单一的基类 即Object类。Object是所有类的超类,这就是单根继承。单根继承结构保证所有对象都具备某些功能,单根继承结构使垃圾回收器的实现变得容易的多,而垃圾回收器正是Java相对C++的重要改进之一。

有关对象的创建,为了追求最大的执行速度,对象的存储空间和生命周期可以在编写程序时确定,这可以通过将对象置于堆栈(它们有时被称为自动变量(automatic variable)或限域变量(scoped variable))或静态存储区域来实现,这就是第一种方式。第二种方式就是在被称为堆(heap)的内存池中动态的创建对象。动态的方式有这样一个一般性的逻辑假设:对象趋向于变得复杂,所以查找和释放存储空间的开销不会对对象的创建造成重大的冲击。动态方式所带来的更大的灵活性正是解决一般化编程的要点所在。Java完全采用了动态内存分配的方式(基本类型是特例)。

有关对象的生命周期,Java提供了被称为“垃圾回收器”的机制,它可以自动的发现对象何时不再被使用,然后直接销毁它。垃圾回收器很有用,它减少了所必须考虑的议题和必须编写的代码,也提供了更高的保障,可以避免暗藏的内存泄漏问题。Java的垃圾回收器被设计用来处理内存释放问题,垃圾回收器“知道”对象何时不再被使用,并自动释放对象所占用的内存。有关垃圾回收器具体的运行,其中涉及到了JVM即java虚拟机的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值