Java 语法学习笔记(二)

Java 语法学习笔记(二)


参考教程

菜鸟教程 — Java 教程

IBM — Java 编程简介,第 1 部分

C语言中文网 — Java内置的包装类

介绍

Java 许多语法跟 C/C++,比较相似。本人学习过 C/C++/Python , 因此仅记录 Java 语法特有的部分。

Java 内置包装类

Object 类

Object 是 Java 类库中的一个特殊类,也是所有类的父类。当一个类被定义后,如果没有指定继承的父类,那么默认父类就是 Object 类

Object 类包含 cloneequalsnotifyhashCode等方法

Number 类

Java 语言为每一个内置数据类型(原语类型)提供了对应的包装类。

所有的包装类(JDK 类)(Integer、Long、Byte、Double、Float、Short)都是抽象类 Number 的子类

Java 原语类型(内置数据类型)与响应的 JDK 类之间的转换分别叫做装箱和拆箱,装箱和拆箱可隐式的完成(自动装箱和自动拆箱)

  • 存在 toString 方法
  • 存在 toHexStringtoOctalStringtoBinaryString等静态方法

System 类

System 类的成员变量

System 类有 3 个静态成员变量,分别是 PrintStream out、InputStream in 和 PrintStream err

  1. PrintStream out

    标准输出流。此流已打开并准备接收输出数据

  2. InputStream in

    标准输入流。此流已打开并准备提供输入数据

  3. PrintStream err

    标准的错误输出流

System 类的成员方法
  1. arraycopy() 方法

    该方法的作用是数组复制,即从指定源数组中复制一个数组

  2. currentTimeMillis() 方法

    该方法的作用是返回当前的计算机时间

  3. exit() 方法

    该方法的作用是终止当前正在运行的 Java 虚拟机

  4. gc() 方法

    该方法的作用是请求系统进行垃圾回收

  5. getProperty() 方法

    该方法的作用是获得系统中属性名为 key 的属性对应的值

Math 类

Java 的 Math 包含了用于执行基本数学运算的属性和方法,如初等指数、对数、平方根和三角函数。

Math 的方法都被定义为 static 形式,通过 Math 类可以在主函数中直接调用。

Character 类 && String 类

Character 类

Character 类用于对单个字符进行操作。

Character 类在对象中包装一个基本类型 char 的值

String 类

String 常用于创建字符串常量,经常修改 String 对象字符串效率较低

  1. 连接字符串

    • concat() 方法
    • + 运算符
  2. 创建格式化字符串

    Sring 类静态方法 format(),用法类似 printf()

StringBuffer 和 StringBuilder 类

  • 和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象
  • StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)
  • StringBuilder 相较于 StringBuffer 有速度优势

Java 集合

接口、实现、算法的关系

  • 接口集合抽象的数据类型
  • 实现(类)是集合接口的具体实现,如 ArrayListLinkedList
  • 算法是实现集合接口的对象里的方法执行的一些有用的计算,这些算法被称为多态

Collection 接口

  • 最基本的集合接口
  • Collections 类提供了可以实现集合元素的排序、填充和复制等操作的静态方法

数组

同一类型的数据集合,大小固定

List

  • 定义:有序集合,也称为序列
  • 特点:能够精准的控制每个元素插入的位置,能够通过索引访问其中的元素
  • List 有基于数组实现的 ArrayList 类和基于链表实现的 LinkedList 类

Set

  • 定义:数学上的集合原型。不包含重复的元素
  • 特点:Set 检索效率低下,删除和插入效率高
  • Set 有基于哈希算法实现的 HashSet 类和基于 SortedSet 接口实现的 TreeSet 类,TreeSet 只能对实现了 Comparable 接口的类对象进行排序

Map

  • 一种键-值对集合,Map 不能包含重复的键
  • Map 接口主要有 HashMap 类和 TreeMap 类两种实现;HashMap 类按照哈希算法来存取对象,而 TreeMap 类可以对对象进行排序

Java 泛型

泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数

  • 泛型集合

  • 泛型类

  • 泛型方法

    是否拥有泛型方法,与其所在的类是不是泛型没有关系

    一般来说编写 Java 泛型方法,其返回值类型至少有一个参数类型应该是泛型,而且类型应该是一致的,如果只有返回值类型或参数类型之一使用了泛型,那么这个泛型方法的使用就被限制了

泛型高级用法

  1. 限制泛型可用类型

    class 类名称<T extends anyClass>

    • 使用泛型限制后,泛型类的类型必须实现或继承 anyClass 这个接口或类

    • 当没有使用 extends 关键字限制泛型类型时,其实是默认使用 Object 类作为泛型类型

  2. 使用类型通配符

    类型通配符作用是在创建一个泛型类对象时限制这个泛型类的类型必须实现或继承某个接口或类

    用法: 泛型类名称<? extends List>a=null;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值