图源:PHP中文网 声明和创建 Java中的数组其实是一种特殊的类,自然地,数组句柄是对真实数组对象的引用。 需要注意的是,和其它类型的变量一样,方法中声明的数组变量不会被编译器“自动”初始化: package ch15.array; public class Main { public static void main(String[] args) { int[] arr; // System.out.println(arr); // The local var…
图源:PHP中文网 声明和创建 Java中的数组其实是一种特殊的类,自然地,数组句柄是对真实数组对象的引用。 需要注意的是,和其它类型的变量一样,方法中声明的数组变量不会被编译器“自动”初始化: package ch15.array; public class Main { public static void main(String[] args) { int[] arr; // System.out.println(arr); // The local var…
图源:PHP中文网 问题 在前文已经说过,Java因为历史原因,实现的泛型机制是不完整的,因此存在一些问题(限制),下面来详细讨论这些问题以及解决方案。 无法使用基本类型 Java的泛型存在很多限制,无法使用基本类型就是其中之一,幸运的是因为包装类的存在,在大多数情况下“自动解包”和“自动打包”都可以帮我们解决将基础类型应用到泛型的相关问题。 package ch14.base_type; import java.util.ArrayList; import java.util.List; public c…
图源:PHP中文网 容器中的泛型 泛型存在的理由之一是解决容器可以持有不同类型的数据的问题。 假设有一个最简单的容器: package ch13.container; import util.Fmt; class SimpleContainer { private Object content; public SimpleContainer(Object content) { this.content = content; } public Object getC…
图源:PHP中文网 Class对象 为了实现多态,必然需要在运行时知晓当前对象的实际类型,Java通过在对象中记录一个Class对象引用来解决这个问题。 所谓的Class对象,实际上就是用于表示当前对象的类型,并作为当前对象创建时的”类型模板“。可以简单地看作是”对象化的类“。 通常我们所说的类(class)都是指源码中的静态类定义,而程序真正编译和运行的时候,编译器会读取源码并加载相应的类定义,在内存中创建相应的对象作为类定义的”动态实现“,并依赖这些对象完成相应类实例的创建和类属性的访问工作,这些对象就是Cla…
图源:PHP中文网 字符串连接 字符串连接是程序中最常使用的对字符串的操作,看一个最简单的例子: package ch11.conn; public class Main { public static void main(String[] args) { String a = "hellow"; String b = "world"; String c = "!"; String result = a + b + c; } } 表面上看,程序中…
图源:PHP中文网 Java中的异常类都继承自Throwable,这是所有异常的基类。异常类型中有这几个类比较重要: 其中Throwable是基类,凡是Throwable的子类型都可以被当做异常抛出或捕获。Exception是开发者常打交道的异常类型,如果需要在程序中抛出异常,可以使用内置的继承自Exception的子类,也可以自行创建一个继承自Exception的异常类,所以可以将Exception及其子类异常称作"用户异常"(customer exception)。Error这类异常由JVM管理,一般不需要开发…
图源:PHP中文网 本篇文章是Java编程笔记8:容器(上) - 魔芋红茶's blog (icexmoon.xyz)的下篇。 Set Set也是一种常见的数据类型,很多编程语言都会提供这种容器。它的主要用途有两个: 提供一个可供查询的去重容器。 进行集合运算。 在Java中,Set是一个继承自Collection的接口: public interface Set<E> extends Collection<E> { int size(); boolean isEmpty(); …
图源:PHP中文网 容器是编程语言的重要组成部分,容器和语言风格是紧密相关的,比如Python中的列表、元组、map等,Go的切片、映射等。 本篇文章将探讨Java中的容器。 Collection Java中的容器可以大致分为Collection和Map两类,其中Collection包括List、Set、Query等可以保存一系列元素的容器。Map代表一种可以保存键值对的映射类型。 Collection可以被翻译作集合,但是Set同样可以被翻译作集合,但两者本质上是不一样的,前者泛指一类可以保存元素的容器,而后者指…
图源:PHP中文网 所谓的内部类,其实就是定义在类中的类。这和Java编程笔记6:接口 - 魔芋红茶's blog (icexmoon.xyz)中提到的接口嵌套的方式有点相似。不过内部类比接口嵌套更常见,也更有用。 内部类 定义内部类并不困难: package ch7.inner_class; import java.util.Random; import util.Fmt; class OulterClass { protected class InnerClass { priva…
图源:PHP中文网 在Java中,接口可能只是特指使用interface关键字声明的一种抽象类型,但实际上在UML或者OOP中,接口往往是作为一种底层抽象概念而言的,其具体实现可能是接口也可能是抽象类,甚至因为语言的差异会有很大区别。 抽象类 在Java中,可以使用abstract将一个类声明为抽象类,被声明为抽象类的类不能被实例化: package ch6.abstract1; abstract class MyClass{ } public class Main { public static…
魔芋红茶
加一点PHP,加一点Go,加一点Python......
COPYRIGHT © 2021 icexmoon.cn. ALL RIGHTS RESERVED. 本网站由提供CDN加速/云存储服务
Theme Kratos Made By Seaton Jiang