CodeGym University
学习
课程
任务
调查和小测验
游戏
帮助
提醒时间表
社区
用户
论坛
聊天
文章
成功故事
活动
评论
订阅服务
浅色主题
课程
评论
关于我们
开始
开始学习
立即开始学习
目标地图
课程
全部目标
全部级别
Object 类的所有方法,以及更多关于 toString() 方法的方法
模块 2:Java 核心
第 9 级,
课程 0
“嗨,阿米戈!” “你好!” “今天我们要研究的是Object类, 你已经接触过了,你知道Object是所有类的基类,它几乎没有数据,但是它有几个方法。” “为什么它需要方法?真的有人创建 Object 类的实例吗?” “这样看:Object 类中的方法在所有类中都是通用的。换句话说,Java 的创建者确定了几种在他们看来每个类都应该拥有的方法,并将它们添加到 Object 类中。” “当与多态性(在派生类中覆盖 Object 类的方法的能力)结合时,这将成为一个非常强大的工
equals 和 hashCode 方法:使用它们的原因和位置,以及它们的工作原理
模块 2:Java 核心
第 9 级,
课程 1
“现在我将告诉您一些同样有用的方法: equals(Object o) 和 hashCode()。” “您可能已经记得,在 Java 中,比较引用变量时不会比较对象本身,而是比较对对象的引用。” 代码 解释 Integer i = new Integer(1);
介绍 wait、notify 和 notifyAll 方法
模块 2:Java 核心
第 9 级,
课程 2
“嗨,阿米戈!” “嗨,里希!” “我将向您介绍 Object 类的wait、notify和notifyAll方法。” “今天我们只是熟悉一下它们,但我们稍后会回来,花更多时间在这上面。” “好的。” “这些方法是作为线程同步机制的一部分而发明的。” “让我提醒你,Java 有一个内置的机制来控制不同线程对共享资源(对象)的访问。一个线程可以声明一个对象处于忙碌状态,其他线程将不得不等待,直到这个忙碌的对象被释放。 “ “我记得。你用同步关键字来做到这一点。” “对。通常,代
clone 方法和 Cloneable 接口
模块 2:Java 核心
第 9 级,
课程 3
“嗨,阿米戈!” “嗨,金。” “我将向您介绍 clone() 方法。” “这个方法的要点是克隆一个对象,或者换句话说,创建对象的克隆/副本/复制品。” “调用此方法时,Java 虚拟机创建并返回调用它的对象的副本。 Object 类对克隆方法的实现非常原始:只创建一个新对象,并将原始对象的字段值赋给它的字段。 如果复制的对象包含对其他对象的引用,则将复制这些引用。不会创建这些对象的副本。” “嗯。没什么好说的了。” “问题是,Java 虚拟机不知道哪些对象可以或不能被克隆。
finalize 方法、可关闭接口和 try-with-resources 语句 (Java 7)
模块 2:Java 核心
第 9 级,
课程 4
“嗨,阿米戈!” “我只是决定和你讨论一下finalize ()方法。” “如果你还记得的话,finalize() 是一种特殊的方法,在垃圾收集器销毁对象之前由对象调用。” “此方法的主要目的是通过关闭文件、I/O 流等来释放已使用的外部非 Java 资源。” “不幸的是,这个方法没有达到我们的预期。Java 虚拟机可以推迟销毁对象,也可以推迟调用 finalize 方法,只要它愿意。而且,它不保证这个方法会被执行根本没有被调用。有很多情况下它没有被调用,都是以 «优化» 的
getClass() 方法、Class 对象和反射简介
模块 2:Java 核心
第 9 级,
课程 5
“嗨,阿米戈!” “现在是重头戏了。我们将熟悉 Class 类并接触反射。 正如您可能已经意识到的那样,Java 中的一切都是对象。对象需要什么?每个对象定义了什么这是怎么回事?” “一类!” “对!干得好。每个对象都有一个类。但是回到对象......有些对象完全包含一个实体,而其他对象只是帮助管理它。” “后一种类型包括FileOutputStream和Thread。当您创建Thread对象时,不会创建新线程。线程是在调用 start() 方法后由 Java 虚拟机创建的。
什么是可变/不可变对象,它们有什么用?
模块 2:Java 核心
第 9 级,
课程 6
“嗨,阿米戈!” “嗨,比拉博!” “今天 Bilaabo 将向您介绍可变对象和不可变对象。 “创建后可以更改的对象称为可变对象。” “创建后不能更改的对象称为不可变的。” “是什么决定了我能否改变一个对象?” “新类的作者可以使该类的对象不可变。例如,如果将所有 setter 设为私有,则对象将只有一个构造函数和 getter;这意味着它在创建后将无法更改” “那有什么意义呢?” “不可变对象有许多有用的属性,但我将重点介绍几乎所有不可变对象共有的两个属性:” 1)不可变对
该级别的附加课程
模块 2:Java 核心
第 9 级,
课程 7
equals() 和 hashCode() 合同或其他 equals和hashCode方法彼此密切相关,最好以一致的方式重写这两种方法。很多人都知道这一点。但并不是每个人都完全理解这条规则的原因以及违反它的后果。 在这篇文章中,我们将了解这些方法背后的想法,回顾它们的目的,并探讨它们为何如此相关。 Java 中的不可变性:final、常量和不可变 在本课中,我们将讨论特殊的最终修饰符。您可以将其视为一种“冻结”我们程序中需要持续、明确和不变行为的部分的方法。 我们可以将它应用
递归
模块 2:Java 核心
第 10 级,
课程 0
“嗨,Amigo。今天 Bilaabo 将向您介绍递归。” 如您所知,在 Java 中,一些方法会调用其他方法。此外,当一个方法被调用时,特定的参数被传递给它,但是方法的局部变量在它运行时采用特定的值。 “嗯。” “正如你所知,不同方法的内部变量是相互独立的。” “嗯。” “所以想象一下方法调用自身的情况。这称为递归。例如:” 例子 public static void main(String[] args)
退出条件。堆栈溢出错误
模块 2:Java 核心
第 10 级,
课程 1
没有退出条件的递归代码示例 让我们再来看一个递归问题。例如,考虑计算斐波那契数列。大家应该都记得,斐波那契数列是一个数列,其中前两个数字是0和1,后面的每个数字都等于前两个数字的和。 让我们编写代码来计算和显示这些数字: public class Fibonacci {
该级别的附加课程
模块 2:Java 核心
第 10 级,
课程 2
Java 中的递归 在编程中,递归一开始会让很多人感到害怕。但事实是,你只需要坐下来好好钻研,然后通过实践巩固所学。您将从本课中受益。它定义了 Java 中的递归函数,解释了递归的其他基本定义,当然还有实际实现的示例。 土拨鼠日是关于......现实生活中的递归 ...仍然不确定您是否足够了解递归?不要太担心——几乎每个程序员都发现自己处于这种微妙的境地。这里有一篇文章将使用您肯定熟悉的真实示例来解释什么是递归。
多线程
模块 2:Java 核心
第 11 级,
课程 0
想象一下“太空竞赛”游戏:你正在飞行,同时躲避着陨石和巡逻巡洋舰,周围环绕着类似的星际飞船。应用程序必须跟踪控制命令,移动星际飞船,计算它们的轨迹和任何碰撞的结果,并将其全部绘制在屏幕上...具体怎们做呢?答案:多线程。
显示更多
1
...
16
17
18
19
20
...
35
Please enable JavaScript to continue using this application.