乙巳🐍年

acc8226 的博客

集合框架体系概述

1. 为什么出现集合类?
方便多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方法

2. 数组和集合类有何不可?

  • 数组虽然也可存储对象,但长度固定; 而集合长度可变
  • 集合只用于存储对象,集合长度是可变的, 集合可以存储不同类型的对象

Java 集合定义了两种基本的数据结构,一种是 Collection,表示一组对象的集合;另一种是 Map,表示对象间的一系列映射或关联关系。Java 集合的基本架构如下图。

集合类及其继承关系

在这种架构中,Set 是一种 Collection,不过其中没有重复的对象;List 也是一种 Collection ,其中的元素按顺序排列(允许有重复)。
SortedSetSortedMap 是特殊的集和映射,其中的元素按顺序排列。
CollectionSetListMapSortedSetSortedMap 都是接口,不过 java.util 包定义了多个具体实现,例如基于数组和链表的列表,基于哈希表或二叉树的映射和集。除此之外,还有两个重要的接口, Iterator 和 Iterable ,用于遍历集合中的对象,稍后会介绍。

阅读全文 »

为什么要学 Kotlin

要想知道为什么 Kotlin 广受欢迎,首先要理解 Java 在现代软件开发领域中所扮演的角色。这两门语言联系得非常紧密,因为很多时候,Kotlin 代码的开发目标就是要在 Java 虚拟机上运行。

Java 语言比较稳健,久经考验。多年来,它一直是最常用的一种编程语言,造就了庞大的生产代码库。自从 1995 年 Java 问世以来,对于优秀的编程语言应满足什么条件,人们已通过实践积攒了很多经验教训。然而 Java 却裹足不前,开发者喜欢的很多现代语言高级特性,它都没有,或者迟迟才加入。

Kotlin 从这些经验教训中受益良多,而 Java(和其他语言,比如 Scala)中的某些早期设计却愈显陈旧。脱胎于旧语言,Kotlin 解决了它们的很多痛点,进化成了一门优秀的语言。相比 Java,Kotlin 进步巨大,带来了更可靠的开发体验。

作为一门新秀语言,Kotlin 不仅支持编写代码在虚拟机上运行,而且还是一门跨平台的通用型语言:你可以用 Kotlin 开发各种类型的原生应用,如 macOS 应用、Windows 应用、JavaScript 应用,当然还有 Android 应用。平台独立性意味着 Kotlin 有各种各样的用途。

Kotlin 语言特点

简洁、安全、支持函数式编程、支持面向对象、Java 具有良好的互操作性、免费开源。

阅读全文 »

标识符

标识符就是变量、常量、函数、属性、类、接口和扩展等由程序员指定的名字。构成标识符的字符均有一定的规范,Kotlin 语言中标识符的命名规则如下:

  • 区分大小写:Myname 与 myname 是两个不同的标识符。
  • 首字符,可以是下划线(_)或字母,但不能是数字。
  • 除首字符外其他字符,可以是下划线(_)、字母和数字。
  • 硬关键字(Hard Keywords)不能作为标识符,软关键字(Soft Keywords)、修饰符关键字(Modifier Keywords)在它们的适用场景之外可以作为标识符使用。
  • 特定标识符 field 和 it。在 Kotlin 语言中有两个由编译器定义的特定标识符,它们只能在特定场景中使用有特定的作用,而在其他的场景中可以做标识符使用。

提示 如果一定要使用关键字作为标识符,可以在关键字前后添加反引号(`)。另外,Kotlin语言中字母采用的是双字节 Unicode 编码。Unicode 叫作统一编码制,它包含了亚洲文字编码,如中文、日文、韩文等字符。

阅读全文 »

数据类型

数值类型

在 Kotlin,一切都是一个对象,你可以调用任何变量的成员函数和属性。有些类型可以有一个特殊的内部表示——例如,数字、字符和布尔值可以在运行时表示为基本值——但对用户来说,它们看起来像普通类。

Kotlin 这样设计基于几大理由。首先,只有一种数据类型可选,你就不容易因选项多而选错, 进而陷入编码困境。例如,定义了一个基本数据类型实例后,写着写着,猛然发现要用到只有引 用类型才支持的泛型功能,怎么办?Kotlin 通过只提供一种类型规避了此问题。也许熟悉 Java 的你会说:“但是基本数据类型的性能要好于引用类型啊!”。为了让你愉快地使用引用类型,Kotlin 编译器会根据不同的场景将其编译成为 Java 中的基本类型数据还是包装类对象。假如你熟悉 Java 的八大基本数据类型,也能在 Kotlin 中分别找到它们的对应引用数据类型。

  • 整数类型:Byte、Short、Int 和 Long,Int 是默认类型。
  • 浮点类型:Float 和 Double,Double 是默认类型。
  • 字符类型:Char。
  • 布尔类型:Boolean
阅读全文 »
0%