热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Java编程思想五六章阅读笔记

初始化与清理Java通过构造器确保初始化,并提供了垃圾回收器,对不再使用的内存资源自动将其释放。方法的重载1.任何程序设计语言都具备的一项重要特性

初始化与清理

Java通过构造器确保初始化,并提供了垃圾回收器,对不再使用的内存资源自动将其释放。


方法的重载

1.任何程序设计语言都具备的一项重要特性是对名字的运用。创建一个对象也就给此对象分配到的存储空间取了一个名字。名字起的好,可以使系统更易于理解和修改。

2.区分重载的规则:每个重载的方法都必须有一个独一无二的参数类型列表

3.基本类型的重载。基本类型能从一个“较小”的类型自动提升到一个“较大”的类型。

char类型可以自动转为int、long、double、float

int类型可以自动转为long、float、double

byte类型可以自动转为short、int、long、float、double

short类型可以自动转为int、long、float、double

long类型可以自动转为float、double

float类型可以自动转为double


this关键字

为了能用简便、面向对象的语法来编写代码-即“发送消息给对象”,编译器做了一些幕后工作,它暗自吧“所操作对象的引用”作为第一个参数传递给方法。this关键字只能在方法内部使用,表示对“调用方法的那个对象”的引用。this的用法和其他对象引用并无不同。

this关键字对于将当前对象传递给其他方法也很有用。


构造器中调用构造器

可能为一个类写了多个构造器,有时可能想在一个构造器中调用另一个构造器,以避免重复。可用this关键字做到这一点。

尽管可以用this调用一个构造器,但却不能调用两个。此外,必须将构造器调用置于最起始处,否则编译器会报错。


static

static方法就是没有this的方法。在static方法的内部不能调用非静态方法,反过来倒是可以。


终结处理和垃圾回收

1.对象可能不被垃圾回收

2.垃圾回收并不等于“析构”

3.垃圾回收只与内存相关


成员初始化

所有变量在使用前都能得到恰当的初始化。

对于方法的局部变量,Java以编译时错误的形式来贯彻这种保证。

类的每个基本类型成员保证都会有一个初始值。

boolean false

char  空

byte 0

short 0

int 0 

long 0

float 0.0

double 0.0

引用:null


构造器初始化

初始化顺序:在类的内部,变量定义的先后顺序决定了初始化的顺序。即使变量散布于方法定义之间,他们仍旧会在任何方法(包括构造器)别调用之前得到初始化。


静态数据的初始化

无论多少个对象,警惕数据都只占用一份存储区域。

显示的静态初始化:Java允许将多个静态初始化动作组织成一个特殊的静态子句,有时也叫静态块,


非静态实例初始化

初始化每一个对象定位非静态变量。这种语法对于支持 “匿名内部类”的初始化是必须的哇。


数组的初始化

数组只是相同类型,用同一个标识符名称封装到一起的一个对象序列或基本数据类型序列。编译器不允许指定数组的大小


可变参数列表

void f(int required,String... trailing);

可变参数列表中可以使用任何类型参数,包括基本类型。如果在改列表中没有任何元素,那么转变成的数据的尺寸为0


枚举类型

枚举和switch是绝佳的组合


访问控制权限

包:库单元

无修饰符:包访问权限

public:接口访问权限

private:除了包含改成员的类外,其他任何类都无法访问这个成员。

protected:继承访问权限

访问权限的控制常被称为是具体实现的隐藏。

把数据和方法包装进类中,以及具体实现的隐藏,常共同被称作是封装。其结果是一个同时带有特征和行为的数据类型




推荐阅读
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • C语言注释工具及快捷键,删除C语言注释工具的实现思路
    本文介绍了C语言中注释的两种方式以及注释的作用,提供了删除C语言注释的工具实现思路,并分享了C语言中注释的快捷键操作方法。 ... [详细]
  • 本文介绍了如何在给定的有序字符序列中插入新字符,并保持序列的有序性。通过示例代码演示了插入过程,以及插入后的字符序列。 ... [详细]
  • 本文探讨了C语言中指针的应用与价值,指针在C语言中具有灵活性和可变性,通过指针可以操作系统内存和控制外部I/O端口。文章介绍了指针变量和指针的指向变量的含义和用法,以及判断变量数据类型和指向变量或成员变量的类型的方法。还讨论了指针访问数组元素和下标法数组元素的等价关系,以及指针作为函数参数可以改变主调函数变量的值的特点。此外,文章还提到了指针在动态存储分配、链表创建和相关操作中的应用,以及类成员指针与外部变量的区分方法。通过本文的阐述,读者可以更好地理解和应用C语言中的指针。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • 猜字母游戏
    猜字母游戏猜字母游戏——设计数据结构猜字母游戏——设计程序结构猜字母游戏——实现字母生成方法猜字母游戏——实现字母检测方法猜字母游戏——实现主方法1猜字母游戏——设计数据结构1.1 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • C# 7.0 新特性:基于Tuple的“多”返回值方法
    本文介绍了C# 7.0中基于Tuple的“多”返回值方法的使用。通过对C# 6.0及更早版本的做法进行回顾,提出了问题:如何使一个方法可返回多个返回值。然后详细介绍了C# 7.0中使用Tuple的写法,并给出了示例代码。最后,总结了该新特性的优点。 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 动态规划算法的基本步骤及最长递增子序列问题详解
    本文详细介绍了动态规划算法的基本步骤,包括划分阶段、选择状态、决策和状态转移方程,并以最长递增子序列问题为例进行了详细解析。动态规划算法的有效性依赖于问题本身所具有的最优子结构性质和子问题重叠性质。通过将子问题的解保存在一个表中,在以后尽可能多地利用这些子问题的解,从而提高算法的效率。 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有