《Java核心技术卷Ⅰ》读书笔记——5.3-5.6

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

5.3 泛型ArrayList

ArrayList 具有自动调节数组容量的功能。

声明和构造:

ArrayList<Employee> staff = new ArrayList<Employee>();

Java SE 7后,可以省去右边的类型参数:

ArrayList<Employee> staff = new ArrayList<>();

 

5.4 对象包装器与自动装箱

将基本数据类型转换为对象。

Integer, Long, Float, Double, Short, Byte, Character, Void, Boolean (前个6类派生与公共的超类Number)

对象包装器类是final类。

调用

list.add(3);

将自动地变换成

list.add(Integer.valueOf(3));

这种变换称为自动装箱(autoboxing)。

相反地,编译器会将下列语句

int n = list.get(i);

翻译成

int n = list.get(i).intValue();

称为自动拆箱。

下面的比较通常不会成立:

 

5.5 参数数量可变的方法

这两条语句一个调用包含两个参数,一个包含三个参数,但他们调用的都是同一个方法:

实际上,Object... 与 Object[] 完全一样。

允许将一个数组传递给可变参数方法的最后一个参数。

 

5.6 枚举类

public enmu Size { SMALL, MEDIUM, LARGE, EXTRA_LARGE };

实际上,这个声明定义的类型是一个class类,它刚好有4个实例,在此尽量不要构造新对象。

 

 

 

 

 

 

 

 

 

Java核心技术Ⅰ》读书笔记(第一——五章) JIT和AOT编译器各有优缺点,具体选择哪种方式需要根据具体应用场景和需求进行权衡。现代Java虚拟机(如HotSpot)通常结合两者的优点,在不同阶段和场景下灵活使用这两种编译方式,以达到最佳性能。JDK是开发Java应用程序的工具包,包含JRE和开发工具。JRE是运行Java应用程序的环境,包含JVM和核心库。JVM是执行Java字节码的虚拟机,实现了Java的跨平台特性。了解这些基本概念有助于更好地掌握Java开发和运行环境,合理选择和配置开发工具,提高开发效率。 阅读详情

相关推荐

Java核心技术 I》学习笔记21:参数数量可变的方法

参数数量可变的方法

qq_48814205的博客 235

Java核心技术 Ⅰ》读书笔记

Java核心技术 Ⅰ》读书笔记二 该部分内容为《Java核心技术 Ⅰ》第五、六章的读书笔记。涉及到继承、多态、枚举、反射、lambda表达式、动态代理等内容。 该博客所涉及的知识层面较浅且篇幅过长,只适合想系统学习的初学者参考。博客中给出的博客链接均为个人学习过程中发现的觉得很棒的博客,在本博客中也多有借鉴。

sk_anruo的博客 519

Java核心技术 Ⅰ》读书笔记

1

sk_anruo的博客 3136

java核心技术Ⅰ(一)基础回顾(前三章)

前言:准备深入学习java后开始阅读java核心技术Ⅰ,由于此前学习过java面向对象程序设计,Ⅰ的前几章有很多重复的内容,故此读书笔记只记录了补充内容。 一.StringAPI charAt(int index)返回给定位置代码单元。 ...

weixin_58624886的博客 350

Java核心技术 Ⅰ 基础知识》读书笔记

第一章Java程序设计概念 java白皮书的关键术语 简单性 面向对象 简单讲,面向对象设计是一种程序设计技术,它将重点放在数据(即对象)和对象的接口上。 网络技能 Java的网络能力强大,网络编程简单 健壮性 Java在设计时,投入了大量的精力进行早期的问题检测,后期动态的检测,并消除了有出错倾向的状态,Java和c++最大的不同在于,Java采用的指针模可以消除重写内存和损坏数据...

EasyChillの博客 1440

JAVA核心技术 读书笔记记录

读书笔记

zr65685的博客 204

Java核心技术Ⅰ》读书笔记——4.5 方法参数

参数的传递方式分为按值调用和按引用调用。 按值调用(call by value)表示方法接受的是调用者提供的值。按引用调用表示方法接受的是调用者提供的变量地址。 Java总是采用按值调用。即方法得到的是所有参数值的一个拷贝,特别是,方法不能修改传递给它的任何参数变量的内容。 假如一个方法试图将一个参数值增加3倍: 然后调用这个方法: 但是结果是失败的,调用该方法后percent值...

sparrow学习博客 354

Java核心技术Ⅰ》读书笔记——5.2 Object:所有的超

java.lang.Obeject 5.2.1 equals方法 在Object中,这个方法判断两个对象是否具有相同的引用。但是对于大多数来说,这种判断没有什么意思。我们经常要做的是检测两个对象状态的相等性。 例如,如果两个雇员的姓名、薪水、雇佣日期都一样,则认为这两个对象是相等的。 请注意,这里的java.util.Objects(不同于java.lang.Obj...

sparrow学习博客 243

Java核心技术Ⅰ》读书笔记——5.1 、超和子

5.1.2 覆盖方法 子继承了超中的所有方法和域。但是,超Empolyee中的有些方法对子Manager并不一定适用。具体来说,Manager中的getSalary方法应该返回薪水和奖金的总和(超中没有奖金)。为此,需要提供一个新的方法来覆盖(override) 超中的这个方法: 在Manager中若改写成如下: 不能运行,原因是Manager的getSalary...

sparrow学习博客 293

Java核心技术Ⅰ——基础知识》第四章读书笔记

文章目录第四章 对象与4.1 面向对象程序设计概述4.1.1 4.1.2 对象4.1.3 识别4.1.4 之间的关系4.2 使用预定义4.2.1 对象与对象变量4.2.3 更改器方法和访问器方法4.3 用户自定义4.3.4 构造器4.3.5 隐式参数和显式参数4.3.6 封装的优点4.3.7 基于的访问权限4.3.8 私有方法4.3.9 final实例域4.4 静态域和方法4.4.1 静态域4.4.2 静态常量4.4.3 静态方法4.4.4 工厂方法4.4.5 main方法4.5 方法参数4.

Zach1Lavine的博客 342

java 核心技术Ⅰ(第11版) 第三章 读书笔记

如果基本的整数和浮点数不能够满足要求,那么可以使用java.math包中两个很有用的:BigInteger 和BigDecimal。**BigInteger :**实现任意精度的整数运算**BigDecimal:**实现任意精度的浮点数运算使用静态的valueOf方法可以将普通的数值转换为大数: 对于更大的数,可以使用一个带字符串参数的构造器: 大数之间的运算不能使用人们熟悉的算术运算符(“+”,“*”),而要使用大数中的add和multiply方法。更多方法参考api文档java.math (Jav

想去很远地方 226

Java核心技术Ⅰ》读书笔记——3.5 运算符

3.5.6 关系和boolean运算符 &amp;&amp;和||运算符是按照“短路”方式来求值的:如果第一个操作数已经能够确定表达式的值,第二个操作数就不必计算了。 3.5.7 位运算符 3.5.8 运算符级别 3.5.9 枚举类 enum Size{ SMAll, MEDIUM, LARGE, EXTRA_LARGE }; 现在,可以声明这种的变量: Size s ...

sparrow学习博客 218

Java核心技术Ⅰ》读书笔记——3.10.3 数组拷贝

Java中,允许将一个数组变量拷贝给另一个数组变量,这时,两个变量将引用同一个数组: int[] luckyNumbers = smallPrimes; luckyNumbers[5] = 12; //now smallPrimes[5] is also 12 如果希望将一个数组的所有值拷贝到一个新的数组中去,就要使用Arrays的copyOf方法: int[] copiedLu...

sparrow学习博客 196

《core Java读书笔记

Java核心技术 ·Ⅰ(原书第10版)》读书笔记! field,域是一种属性,可以是一个变量,一个对象变量,一个对象方法变量或者是一个函数的参数。(补充,class‘s variables,的实例变量和静态变量称为class’s variables,属变量,也称变量或数据域,其实翻译成属性也可以,属性,听起来不会怪怪的,来自百度百科)。 Java中的域说的就是的成员变量,也叫属...

BaldStrong's Log Cabin 848

Java核心技术Ⅰ》读书笔记——3.10.2 数组初始化以及匿名数组

创建一个数字数组时,所有元素都被初始化为0;boolean数组的元素会被初始化为false;对象数组的元素初始化为null Java中,提供了一种创建数组对象并同时赋予初始值的简化书写形式: int[] smallPrimes = {2, 3, 5, 7, 11, 13}; 请注意,在这样使用语句时,不需要调用new。 甚至还可以初始化一个匿名数组: new int[] {17, 19...

sparrow学习博客 222

Java核心技术Ⅰ》读书笔记——4.4 静态方法

4.4.4 工厂方法 静态方法还有另外一种常见的用途。似LocalDate和NumberFormat的使用静态工厂方法(factory method)来构造对象。 为什么不使用构造器完成这些操作呢?主要有两个原因: 构造器无法命名。构造器的名字必须与名相同,但是有的时候我们希望得到更加直观的方法名。 构造器无法改变所构造的对象。而工厂方法可以将函数返回设置为该的子。 4....

sparrow学习博客 189

Java核心技术Ⅰ》读书笔记——4.3.5 隐式参数和显式参数

在每一个方法中,关键字this表示隐式参数。显示参数即为方法名后括号内的参数

sparrow学习博客 216

Java/Javascript/Python 读书笔记

java javascript 等读书笔记

梨花带雨的博客 744

Java/CPP/Python读书笔记

读书笔记 介绍: 从2020年开始的读书笔记,本项目收集自己阅读的书籍笔记,以后后续查阅快速定位(在GitHub图片不能正常显示,应该是我网速原因,所以链接都是gitee,GitHub也会有一样的文件) 环境: Typora + idea + Java11 + CentOS7(虚拟机) + python3.9 + pycharm + Win10 语言: Java / Python / C# / C++ / Javascript 2022.5.19更新:由于gitee代码需要审核才能公开,链接不再使用gi

梨花带雨的博客 353
上一篇: 子类对象的构造过程
下一篇: JDBC时区异常:The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time
sparrowman
博客等级 码龄8年 7粉丝 36原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值