Thinking In Java读书笔记–对象导论

Thinking In Java读书笔记–对象导论

Thinking In Java读书笔记–对象导论
【对象】
服务提供者==>将对象看做一个服务提供者
【程序员分类】
【类创造者】/【客户端程序员】

【访问控制存在的原因?】
【1】客户端程序员无法触及他们不该触及的部分
【2】允许库设计者/类创造者改变类的内部工作方式而不用担心会影响客户端程序员

【Java访问指定词,access specifier】
public private protected

【组合,composition】
【聚合,aggregation】
【has-a,拥有关系】

【继承】==>【类族】  
[ 基类/超类/父类]
[导出类/继承类/子类]
两种方法可以使得基类和子类产生差异
【1】为子类添加新的方法、行为
【2】覆写[overriding]父类的方法行为

【是一个与像一个】
【is-a】纯粹替代  替代原则   子类完全替代基类对象  不对基类做扩展
【like-a】 子类在基类的基础上扩展基类的行为

【伴随多态的可互换对象】
【前期绑定】
【后期绑定】当向对象发送消息时,被调用的代码直到运行时才能够确定

【转型,Cast】
[向上转型,UpCasting]将导出类看做他的基类
[向下转型]向下转型为更具体的类型==>子类,如何保证正确的进行向下转型?

【单根继承结构】
保证了所有对象都具备某些功能
使得垃圾回收变得容易得多

【容器】
[集合]
【对容器的需要做出必要的选择】
[1]不同容器提供了不同类型的机构和外部行为
[2]不同的容器对于某些操作具有不同的效率
【参数化类型,泛型<T>】

【对象的创建和生命期】
使用对象的最关键问题之一,生成和销毁的方式
[对象的存在都需要一定的资源,特别是内存]
[不在使用的对象应该尽快的释放掉,使其占用的资源能够得到释放和重用]
【对象的生命周期】
【垃圾回收器】
[被设计用来处理内存释放的问题,“知道”对象何时不在被使用,并自动释放对象占用的内存]

【异常处理,处理错误】
Java从一开始就内置了异常处理机制

【并发编程】
[同一时刻处理多个任务的思想]
【并发编程的一个隐患】
[共享资源]==>处理办法:对共享的资源在线程使用期间锁定,任务线程完成其任务后,释放资源锁,其他线程方可使用这项资源

【Java与Internet】
[客户/服务器计算技术]
中央信息存储池,Central repository of information
[Web就是一台巨型服务器]
[web浏览器的优势:一段信息在不经过修改就可以在任何型号的计算机上显示]

转载于:https://www.cnblogs.com/bea084100123/p/4839360.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/109315.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • CentOS 初体验三: Yum 安装、卸载软件

    CentOS 初体验三: Yum 安装、卸载软件转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/78894974本文出自【赵彦军的博客】一:Yum简介Yum(全称为YellowdogUpdater,Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可

    2022年5月7日
    41
  • BloomFilter怎么用?使用布隆过滤器来判断key是否存在?「建议收藏」

    BloomFilter怎么用?使用布隆过滤器来判断key是否存在?「建议收藏」今天跟一个同事聊了一个问题,说最近在做推荐,如何判断用户是否看过这个片段呢?想了一下,正好可以使用布隆过滤器来完成这个需求。布隆,可不是LOL的布隆。我们的这个布隆是一个叫布隆的外国人,在1970年提出的一种方案:如果判断这个key不存在,那么就一定不存在,如果key存在,那么有可能不存在。所以不存在的时候,你永远可以详细布隆。布隆过滤器是一个高空间利用率的概率性数据结构,由BurtonBloom于1970年提出,用于测试一个元素是否在集合中。新创建的布隆过滤器是一串被置为0的Bit数组(假设有m位),

    2025年6月1日
    0
  • 一个简单的实用的log4j.properties

    一个简单的实用的log4j.properties

    2021年4月25日
    124
  • Shell脚本 (三)for循环 while循环 case分支语句

    Shell脚本 (三)for循环 while循环 case分支语句

    2021年6月13日
    93
  • Linux 设置oracle1521端口[通俗易懂]

    Linux 设置oracle1521端口[通俗易懂]centos5安装oracle实现其他机器连接,oracleserver与其他机器可以ping通,但由于linux防火墙默认是不开启1521端口的,应此需设置iptables;开始用命令设置:iptables-AINPUT-ptcp–dport1521-jACCEPTiptables-AOUTPUT-ptcp–sport1521-jACCEPT

    2022年5月29日
    46
  • c++开源库rapidxml介绍与示例

    c++开源库rapidxml介绍与示例官方地址:http://rapidxml.sourceforge.net/官方手册:http://rapidxml.sourceforge.net/manual.html也可以在github上下载到别人上传的rapidxml:https://github.com/dwd/rapidxml1.头文件一般我们用到的头文件只有这三个#include”rapidxml/rapidxml.hpp”

    2022年7月17日
    16

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号