`
royakon
  • 浏览: 8614 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

对象导论笔记-第五天 对象生命期 异常处理 并发

    博客分类:
  • java
阅读更多

1.10对象的创建和生命期

在使用对象时,最关键的问题之一便是它们的生成和销毁方式。每个对象为了生存都需要资源,尤其是内存。当我们不再需要一个对象时,它必须被清理掉,使其占有的资源可以被释放和重用。

对象的数据位于何处?怎样控制对象的生命周期?

C++认为效率控制是最重要的议题,所以给程序员提供了选择的权利。可以通过将对象置于堆栈(automatic variable)或限域变量(scoped variable)或静态存储区内来实现。这种方式将存储空间分配和释放置于有限考虑的位置,某些情况下这样的控制非常有价值。但是,也牺牲了灵活性。

第二种方式是在被成为堆(heap)的内存池中动态地创建对象。因为存储空间是在运行时被动态管理的,所以需要大量的时间在堆中分配存储空间,这可能要远远大于在堆栈重创建存储空间的时间。

动态方式有这样一个一般性的逻辑假设:对象趋向于变得复杂,所以查找和释放存储空间的开销不会对对象的差u你关键造成重大冲击。

Java完全采用了动态内存分配方式。

还有一个议题,就是对象生命周期。Java提供了被成为“垃圾回收器”的机制,它可以自动发现对象何时不再被使用,并继而销毁它。

1.11异常处理:处理错误

自从编程语言问世以来,错误处理就始终是最困难的问题之一。

异常是一种对象,他从出错地点被“抛出”,并被专门设计用来处理特定类型错误的相应的异常处理器“捕获”。异常处理就像是与程序正常执行路径并行的,在错误发生时执行的另一条路径,不会干扰正常的代码执行。异常不能被忽略,所以它保证一定会在某处得到处理。最后需要指出的是:异常提供了一种从错误状况进行可靠恢复的途径

Java的异常处理在众多的变成语言重格外引人注目,因为Java一开始就内置了异常处理,而且强制你必须使用它。

1.12并发编程

在计算机编程重有一个基本概念,就是在同一时刻处理多个任务的思想。许多程序设计问题都要求,程序能够停下正在做的工作,转而处理某个其他问题,然后再返回主进程。

大部分情况下:我们只是想把问题切分成多个可独立运行的部分(任务),从而提高程序的相应能力。在程序中,这写彼此多里运行的部分称之为线程,上述概念被称为“并发”

在语言级别上,多线程所带来的便利之一便是车个你许愿不用再操心机器上是有多个处理器还是只有一个处理器。由于程序在逻辑上被分为线程,所以如果机器拥有多个处理器,那么程序不需要特殊调整也能执行的更快。

所有这些都使得并发看起来相当简单,但是有一个隐患:共享资源。为了解决资源的共享问题:某个任务锁定某项资源,完成其任务,然后释放资源锁,使其他任务可以使用这项资源

Java的并发是内置于语言中的,Java SE5已经增添了大量额外的库支持。

本文首发于:对象导论笔记-第五天-蜘蛛网间

0
5
分享到:
评论
2 楼 royakon 2011-08-29  
我自己写着玩,也没妨碍谁!
凭什么让我删!
1 楼 JAVA_静 2011-08-29  
LZ把你弄得这个破烂东西删了吧...叹服了!

相关推荐

    《人工智能导论》-考试必备-简答题重点.pdf

    《人工智能导论》是深入理解和掌握人工智能核心概念与技术的重要教材。这门学科的起源可以追溯到1956年,由斯坦福大学教授约翰·麦卡锡在一次学术会议上首次提出“人工智能”这一概念,标志着AI作为一个独立学科的...

    人工智能导论作业-用 PyTorch 实现的中文文本情感分类网络机器学习期末作业.zip

    人工智能导论作业-用 PyTorch 实现的中文文本情感分类网络机器学习期末作业.zip个人98分期末大作业项目,代码完整下载可用。主要针对计算机相关专业的正在做课程设计和期末大作业的学生和需要项目实战练习的学习者。...

    算法导论--编程经典

    算法导论--编程中经典的经典,值得每一位程序员用心品读

    算法导论15.2-1矩阵链最优括号化方案

    算法导论第三版练习题15.2-2的C++实现方案

    Thinking in Java 自学笔记——第一章 对象导论

    Thinking in Java 自学笔记——第一章 对象导论 本章节总结了面向对象程序设计(Object-oriented Programming, OOP)的基本概念和原则,以帮助读者更好地理解 Java 编程语言。以下是对标题、描述、标签和部分内容的...

    机器学习导论作业-基于matlab实现三层卷积神经网络实现手写数字识别源码.zip

    机器学习导论作业-基于matlab实现三层卷积神经网络实现手写数字识别源码.zip 【优质项目推荐】 1.项目代码功能经验证ok,确保稳定可靠运行。欢迎下载使用!在使用过程中,如有问题或建议,请及时私信沟通,帮助解答...

    地理信息系统导论--陈建飞

    《地理信息系统导论--陈建飞》是一本深入探讨GIS技术的专业著作,旨在为读者提供全面的GIS理论知识和实践应用。GIS,全称为Geographic Information System,它整合了多种科学领域,包括计算机科学、信息科学、测绘...

    C语言--程序设计导论 C语言--程序设计导论

    5. **数组与字符串** - 数组:一组相同类型的元素集合,可以通过索引访问。 - 字符数组:用于存储字符串,C语言中的字符串是以'\0'结束的字符数组。 - 字符串处理函数:如strlen()、strcpy()、strcat()等,提供对...

    计算机科学导论1-5答案

    【计算机科学导论1-5答案】章节涵盖了计算机科学的基础概念,主要针对大学一年级网络工程专业学生的学习内容。本部分的知识点如下: 1. **计算机系统**:计算机系统由计算机硬件系统和计算机软件系统两大部分构成,...

    计算机导论--实验5.zip

    计算机导论--实验5.zip

    计算机导论-第五讲 计算机科学体系

    第五讲“计算机科学体系”是这一课程的重要组成部分,它深入探讨了计算机科学的架构和核心概念,帮助学生理解这一领域的基本框架和研究方法。 在计算机科学体系中,我们首先会接触到的是计算理论。计算理论是计算机...

    算法导论习题解答 4-4

    《算法导论》是计算机科学领域的一本经典教材,它深入浅出地介绍了各种重要的算法,并提供了详尽的分析和实现。题目中的“4-4”可能指的是书中的第四章第四个习题,通常涉及图算法或者动态规划等主题。由于具体描述...

    耶鲁大学开放课程-心理学导论笔记.

    耶鲁大学开放课程-心理学导论笔记 本课程笔记是耶鲁大学心理学导论课程的讲义,适合初学者学习心理学。课程涵盖了心理学的多个方面,包括神经科学、发展心理学、认知心理学、社会心理学和临床心理学等。 第一节课...

    算法导论--教师手册

    第五至第八章涵盖了各种排序算法,包括堆排序(Heapsort)、快速排序(Quicksort)、线性时间排序算法等。这些章节不仅详细解释了每种排序算法的工作原理,还讨论了它们的效率和适用场景,使学生能够根据具体需求...

    工程导论--项目开发方案.pdf

    工程导论--项目开发方案.pdf

    软件工程导论课设-超市管理系统课程设计.docx

    软件工程导论课设-超市管理系统课程设计.docx软件工程导论课设-超市管理系统课程设计.docx软件工程导论课设-超市管理系统课程设计.docx软件工程导论课设-超市管理系统课程设计.docx软件工程导论课设-超市管理系统...

    软件工程导论课设-超市管理系统课程设计.pdf

    软件工程导论课设-超市管理系统课程设计.pdf软件工程导论课设-超市管理系统课程设计.pdf软件工程导论课设-超市管理系统课程设计.pdf软件工程导论课设-超市管理系统课程设计.pdf软件工程导论课设-超市管理系统课程...

    NLP导论作业-句法分析器+数据+源代码+文档说明(高分项目)

    NLP导论作业-句法分析器+数据+源代码+文档说明(高分项目),含有代码注释,满分大作业资源,新手也可看懂,期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。该项目可以作为课程设计期末大作业...

    算法导论 1-7章学习笔记

    《算法导论》前七章学习笔记涵盖了计算机科学中一些重要的基本算法、数据结构以及图论算法的概念和实现方法。这些笔记不仅记录了算法的具体实现,还提供了时间复杂度的分析和相关代码实例,是学习和复习算法知识的...

    物联网导论--第1章31.pptx

    物联网导论--第1章31.pptx

Global site tag (gtag.js) - Google Analytics