提交 ae19b200 编写于 作者: 沉默王二's avatar 沉默王二 💬

instanceof

上级 d1363b04
......@@ -145,8 +145,9 @@
- [深入理解 Java 继承](docs/oo/extends-bigsai.md)
- [聊聊 Java 多态](docs/oo/polymorphism.md)
- [Java中this和super关键字的用法总结](docs/oo/this-super.md)
- [一文彻底搞懂 Java static 关键字:静态变量、静态方法、静态代码块、静态内部类](docs/oo/static.md)
- [一文彻底搞懂 Java final 关键字](docs/oo/final.md)
- [详解 static 关键字的作用:静态变量、静态方法、静态代码块、静态内部类](docs/oo/static.md)
- [一文彻底搞懂 final 关键字](docs/oo/final.md)
- [聊聊instanceof关键字](docs/basic-extra-meal/instanceof.md)
- [Java 方法重写 Override 和方法重载 Overload 的区别,一下子就明白了](docs/basic-extra-meal/override-overload.md)
......@@ -213,7 +214,6 @@
- [Java到底是值传递还是引用传递?](docs/basic-extra-meal/pass-by-value.md)
- [详解Java中Comparable和Comparator接口的区别](docs/basic-extra-meal/comparable-omparator.md)
- [为什么JDK源码中,无限循环大多使用for(;;)而不是while(true)?](docs/basic-extra-meal/jdk-while-for-wuxian-xunhuan.md)
- [详解Java中instanceof关键字的用法](docs/basic-extra-meal/instanceof.md)
- [instanceof关键字是如何实现的?](docs/basic-extra-meal/instanceof-jvm.md)
- [深入理解Java中的不可变对象](docs/basic-extra-meal/immutable.md)
- [深入理解Java中的泛型](docs/basic-extra-meal/generic.md)
......
......@@ -158,9 +158,10 @@ export const sidebarConfig = sidebar({
"oo/extends-bigsai",
"oo/polymorphism",
"oo/this-super",
"basic-extra-meal/override-overload",
"oo/static",
"oo/final",
"basic-extra-meal/instanceof",
"basic-extra-meal/override-overload",
],
},
{
......@@ -248,7 +249,6 @@ export const sidebarConfig = sidebar({
"pass-by-value",
"comparable-omparator",
"jdk-while-for-wuxian-xunhuan",
"instanceof",
"instanceof-jvm",
"immutable",
"generic",
......
---
title: 详解Java中instanceof关键字的用法
shortTitle: instanceof关键字的用法
title: 聊聊instanceof关键字
shortTitle: instanceof关键字
category:
- Java核心
tag:
......@@ -9,9 +9,14 @@ description: Java程序员进阶之路,小白的零基础Java教程,从入
head:
- - meta
- name: keywords
content: Java,Java SE,Java基础,Java教程,Java程序员进阶之路,Java入门,教程,java,instanceof
content: Java,Java SE,Java基础,Java教程,Java程序员进阶之路,Java入门,教程,java,instanceof,java instanceof
---
# 5.19 instanceof关键字
“三妹,今天我们来过一个非常简单的知识点,instanceof关键字。”
“用不着哥你来讲了,今天就换个形式,我来讲给你听。”三妹雄赳赳气昂昂地说。
instanceof 关键字的用法其实很简单:
......@@ -19,7 +24,7 @@ instanceof 关键字的用法其实很简单:
(object) instanceof (type)
```
用意也非常简单,判断对象是否符合指定的类型,结果要么是 true,要么是 false。在反序列化的时候,instanceof 操作符还是蛮常用的,因为这时候我们不太确定对象属不属于指定的类型,如果不进行判断的话,就容易抛出 ClassCastException 异常。
用意也非常简单,判断对象是否符合指定的类型,结果要么是 true,要么是 false。在[反序列化](https://tobebetterjavaer.com/io/serialize.html)的时候,instanceof 操作符还是蛮常用的,因为这时候我们不太确定对象属不属于指定的类型,如果不进行判断的话,就容易抛出 ClassCastException 异常。
我们来建这样一个简单的类 Round:
......@@ -109,9 +114,9 @@ Thread thread = new Thread();
System.out.println(thread instanceof Object);
```
“那如果对象为 null 呢?”三妹这时候插话了。
“那如果对象为 null 呢?”这时候插话了。
“这个还真的是一个好问题啊。”我忍不住对三妹竖了一个大拇指。
“这个还真的是一个好问题啊。”三妹忍不住对我竖了一个大拇指。
```java
System.out.println(null instanceof Object);
......@@ -142,9 +147,9 @@ if (obj instanceof String s) {
可以直接在 if 条件判断类型的时候添加一个变量,就不需要再强转和声明新的变量了。
“哇,这样就简洁了呀!”三妹不仅惊叹到!
“哇,这样就简洁了呀!”为了配合三妹,我不仅惊叹到!
好了,关于 instanceof 操作符我们就先讲到这吧,难是一点都不难,希望各位同学也能够很好的掌握
“好了,关于 instanceof 操作符我们就先讲到这吧,难是一点都不难,希望哥也能够很好的掌握。”三妹笑嘻嘻地说,看来她很享受这个讲的过程嘛
----
......
......@@ -156,8 +156,9 @@ head:
- [深入理解 Java 继承](oo/extends-bigsai.md)
- [聊聊 Java 多态](oo/polymorphism.md)
- [Java中this和super关键字的用法总结](oo/this-super.md)
- [一文彻底搞懂 Java static 关键字:静态变量、静态方法、静态代码块、静态内部类](oo/static.md)
- [一文彻底搞懂 Java final 关键字](oo/final.md)
- [详解 static 关键字的作用:静态变量、静态方法、静态代码块、静态内部类](oo/static.md)
- [一文彻底搞懂 final 关键字](oo/final.md)
- [聊聊instanceof关键字](basic-extra-meal/instanceof.md)
- [Java 方法重写 Override 和方法重载 Overload 的区别,一下子就明白了](basic-extra-meal/override-overload.md)
### 集合框架(容器)
......@@ -224,7 +225,6 @@ head:
- [Java到底是值传递还是引用传递?](basic-extra-meal/pass-by-value.md)
- [详解Java中Comparable和Comparator接口的区别](basic-extra-meal/comparable-omparator.md)
- [为什么JDK源码中,无限循环大多使用for(;;)而不是while(true)?](basic-extra-meal/jdk-while-for-wuxian-xunhuan.md)
- [详解Java中instanceof关键字的用法](basic-extra-meal/instanceof.md)
- [instanceof关键字是如何实现的?](basic-extra-meal/instanceof-jvm.md)
- [深入理解Java中的不可变对象](basic-extra-meal/immutable.md)
- [Java中可变参数的使用](basic-extra-meal/varables.md)
......
---
title: 一文彻底搞懂 Java final 关键字
shortTitle: 一文彻底搞懂Java final关键字
title: 一文彻底搞懂 final 关键字
shortTitle: final关键字
description: Java程序员进阶之路,小白的零基础Java教程,一文彻底搞懂 Java final 关键字
category:
- Java 核心
......@@ -9,9 +9,10 @@ tag:
head:
- - meta
- name: keywords
content: Java,Java SE,Java基础,Java教程,Java程序员进阶之路,Java入门,教程,final,静态变量,静态方法,静态代码块,静态内部类
content: Java,Java SE,Java基础,Java教程,Java程序员进阶之路,Java入门,教程,final,静态变量,静态方法,静态代码块,静态内部类,java final
---
# 5.18 final关键字
“哥,今天学什么呢?”
......@@ -21,7 +22,7 @@ head:
“好吧。”我摊摊手,表示很无辜,真的是所有的决定都交给我这个哥哥了,如果决定错了,锅得背上。
## 01、final 变量
### 01、final 变量
“好了,我们先来看 final 修饰的变量吧!”
......@@ -104,7 +105,7 @@ public class ArgFinalTest {
![](https://cdn.tobebetterjavaer.com/tobebetterjavaer/images/keywords/23-04.png)
## 02、final 方法
### 02、final 方法
“被 final 修饰的方法不能被重写。如果我们在设计一个类的时候,认为某些方法不应该被重写,就应该把它设计成 final 的。”
......@@ -144,7 +145,7 @@ public class Actor {
“那必须啊,谁叫我是你妹呢。”
## 03、final 类
### 03、final 类
“如果一个类使用了 final 关键字修饰,那么它就无法被继承.....”
......@@ -204,15 +205,12 @@ System.out.println(writer.getName()); // 沉默王二
“Writer 的 name 字段的默认值是 null,但可以通过 settter 方法将其更改为沉默王二。也就是说,如果一个类只是 final 的,那么它并不是不可变的全部条件。”
“关于不可变类,我之前也单独讲过一篇,你一会去看看。”
“关于不可变类,我们留到后面来细讲。”
[不可变类](https://tobebetterjavaer.com/basic-extra-meal/immutable.html)
“把一个类设计成 final 的,有其安全方面的考虑,但不应该故意为之,因为把一个类定义成 final 的,意味着它没办法继承,假如这个类的一些方法存在一些问题的话,我们就无法通过重写的方式去修复它。”
------
“三妹,final 关键字我们就学到这里吧,你一会再学习一下 Java 字符串为什么是不可变的和不可变类。”我揉一揉犯困的双眼,疲惫地给三妹说,“学完这两个知识点,你会对 final 的认知更清晰一些。”
“好的,二哥,我这就去学习去。你去休息会。”
......
---
title: 一文彻底搞懂 Java static 关键字:静态变量、静态方法、静态代码块、静态内部类
shortTitle: 一文彻底搞懂Java static关键字
title: 详解 static 关键字的作用:静态变量、静态方法、静态代码块、静态内部类
shortTitle: static关键字
description: Java程序员进阶之路,小白的零基础Java教程,一文彻底搞懂 Java static 关键字:静态变量、静态方法、静态代码块、静态内部类
category:
- Java 核心
......@@ -9,10 +9,12 @@ tag:
head:
- - meta
- name: keywords
content: Java,Java SE,Java基础,Java教程,Java程序员进阶之路,Java入门,教程,static,java静态变量,java静态方法,java静态代码块,java静态内部类
content: Java,Java SE,Java基础,Java教程,Java程序员进阶之路,Java入门,教程,static,java静态变量,java静态方法,java静态代码块,java静态内部类,java static
---
“哥,你牙龈肿痛轻点没?周一的《教妹学 Java》(Java程序员进阶之路的前身)你都没有更新,偷懒了呀!”三妹关心地问我。
# 5.17 static关键字
“哥,你牙龈肿痛轻点没?周一的《教妹学 Java》(二哥的Java进阶之路前身)你都没有更新,偷懒了呀!”三妹关心地问我。
“今天周四了,吃了三天的药,疼痛已经减轻不少,咱妈还给我打了电话,让我买点牛黄解毒片下下火。”我面带着微笑对三妹说,“学习可不能落下,今天我们来学 Java 中 `static` 关键字吧。”
......@@ -22,7 +24,7 @@ head:
“static 关键字的作用可以用一句话来描述:‘**方便在没有创建对象的情况下进行调用**,包括变量和方法’。也就是说,只要类被加载了,就可以通过类名进行访问。”我扶了扶沉重眼镜,继续说到,“static 可以用来修饰类的成员变量,以及成员方法。我们一个个来看。”
## 01、静态变量
### 01、静态变量
“如果在声明变量的时候使用了 static 关键字,那么这个变量就被称为静态变量。静态变量只在类加载的时候获取一次内存空间,这使得静态变量很节省内存空间。”家里的暖气有点足,我跑去开了一点窗户后继续说道。
......@@ -150,7 +152,7 @@ public class StaticCounter {
![](https://cdn.tobebetterjavaer.com/tobebetterjavaer/images/keywords/19-03.png)
## 02、静态方法
### 02、静态方法
“说完静态变量,我们来说静态方法。”说完,我准备点一支华子来抽,三妹阻止了我,她指一指烟盒上的「吸烟有害身体健康」,我笑了。
......@@ -226,7 +228,7 @@ public class StaticMethodStudent {
![](https://cdn.tobebetterjavaer.com/tobebetterjavaer/images/keywords/19-06.png)
## 03、静态代码块
### 03、静态代码块
“三妹,站起来活动一下,我的脖子都有点僵硬了。”
......@@ -307,7 +309,7 @@ public class StaticBlockDemo {
“静态代码块在初始集合的时候,真的非常有用。在实际的项目开发中,通常使用静态代码块来加载配置文件到内存当中。”
## 04、静态内部类
### 04、静态内部类
“三妹啊,除了以上只写,static 还有一个不太常用的功能——静态内部类。”
......
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册