【JavaSE】复习(进阶)

news/2024/3/29 13:42:08/文章来源:https://blog.csdn.net/weixin_45965358/article/details/129207374

文章目录

  • 1.final关键字
  • 2.常量
  • 3.抽象类
    • 3.1概括
    • 3.2 抽象方法
  • 4. 接口
    • 4.1 接口在开发中的作用
    • 4.2类型和类型之间的关系
    • 4.3抽象类和接口的区别
  • 5.包机制和import
    • 5.1 包机制
    • 5.2 import
  • 6.访问控制权限
  • 7.Object
    • 7.1 toString()
    • 7.2 equals()
    • 7.3 String类重写了toString和equals
  • 8.内部类
    • 8.1 概述
    • 8.2内部类示例
    • 8.3 匿名内部类
  • 9.数组
    • 9.1声明
    • 9.2 初始化
    • 9.3 main方法的String数组
    • 9.4数组扩容
    • 9.5 二维数组
    • 9.6Array

1.final关键字

final修饰的类无法继承

final修饰的方法无法被覆盖,被重写。

final修饰的局部变量,一旦赋值,就不能再赋值。

final修饰的引用,只能指向同一个对象,不能再指向其它对象。在该方法中,该引用指向该对象后,该对象不会被垃圾回收器回收。直到该方法结束。

fianl修饰的实例变量,系统不管,程序员必须手动赋值。在变量后面赋值可以,在构造方法中赋值也可以。

2.常量

final修饰的实例变量一般添加static修饰。

3.抽象类

3.1概括

类和类之间有共同特征,将共同特征提取出来,构成抽象类。

抽象类也属于引用数据类型。

语法:

[修饰符列表] abstract class 类名 {类体;
}

抽象类无法被实例化,但抽象类有构造方法,供子类使用。

3.2 抽象方法

在这里插入图片描述

抽象类不一定有抽象方法,抽象方法一定在抽象类中。

非抽象类继承抽象类的时候,非抽象类要将父类继承过来的抽象方法进行重写。

4. 接口

接口也是一种引用数据类型,编译后也生成.class字节码
语法:

[修饰符列表] interface 接口名{}

接口支持多继承

接口中只有常量和抽象方法。

接口中的方法定义时 public abstract 可以省略。
接口中的常量定义时 public static final 可以省略。

类和接口之间叫做实现。使用implements关键字。
类和类之间叫做继承。使用extends关键字。

当一个非抽象类实现一个接口时,必须重写接口中的所有抽象方法。

4.1 接口在开发中的作用

在这里插入图片描述

4.2类型和类型之间的关系

在这里插入图片描述

4.3抽象类和接口的区别

在这里插入图片描述

5.包机制和import

5.1 包机制

package 包名

注:该语句只能出现在java源代码的第一行。
包名一般为:公司域名倒序 + 项目名 + 模块名 + 功能名

使用包机制后,编译

javac -d . HelloWorld.java

运行使用

java 包名.原来的类名

(类名改变)

5.2 import

在这里插入图片描述

6.访问控制权限

在这里插入图片描述
在这里插入图片描述

7.Object

7.1 toString()

package com.sdnu.test01;public class MyTime {public static void main(String[] args) {TestTime testTime = new TestTime();System.out.println(testTime.toString());TestTime testTime1 = new TestTime(2000, 2, 6);System.out.println(testTime1.toString());}
}
class TestTime {int year;int month;int day;public TestTime(){}public TestTime(int year, int month, int day){this.year = year;this.month = month;this.day = day;}/*** 重写* @return String*/public String toString(){return "testTime" + "@" + this.year + "\\" + this.month + "\\" + this.day;}
}

testTime@0\0\0
testTime@2000\2\6

7.2 equals()

该方法返回是否是同一个对象。

package com.sdnu.test01;import java.util.Objects;public class TestEquals {int year;int month;int day;public TestEquals() {}public TestEquals(int year, int month, int day) {this.year = year;this.month = month;this.day = day;}public int getYear() {return year;}public int getMonth() {return month;}public int getDay() {return day;}@Overridepublic String toString() {return "TestEquals{" +"year=" + year +", month=" + month +", day=" + day +'}';}@Overridepublic boolean equals(Object o) {if (this == o) return true;if (o == null || getClass() != o.getClass()) return false;TestEquals that = (TestEquals) o;return year == that.year &&month == that.month &&day == that.day;}public static void main(String[] args) {TestEquals testEquals = new TestEquals();TestEquals testEquals1 = new TestEquals(2000, 2, 8);System.out.println(testEquals.equals(testEquals1));}
}

7.3 String类重写了toString和equals

8.内部类

8.1 概述

在类的内部又定义了一个新的类。
分类:静态内部类,实例内部类,局部内部类。

8.2内部类示例

package com.sdnu.test01;public class Inner {static class Inner1{}class Inner2{}public void method(){class Inner3{}}
}

8.3 匿名内部类

9.数组

9.1声明

类型[] 数组名

9.2 初始化

静态初始化:

类型[] 数组名 = {122345};

动态初始化:

类型[] 数组名 = new 类型[数组长度];

9.3 main方法的String数组

在这里插入图片描述

9.4数组扩容

创建一个大的数组,然后将小数组的数据拷贝到大数组中。

package com.sdnu.javase.array;public class ArrayTest01 {public static void main(String[] args) {int[] src = {12, 23, 45};int[] dest = new int[20];System.arraycopy(src, 0, dest, 0, src.length);for(int i = 0; i < src.length; i++){System.out.println(dest[i]);}}
}

9.5 二维数组

声明和初始化

int 数组名[][] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};

9.6Array

java.util.Arrays

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_74341.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【深度学习】什么是线性回归逻辑回归单层神经元的缺陷

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录逻辑回归&线性回归单层神经元的缺陷单层神经元的缺陷逻辑回归&线性回归 线性回归预测的是一个连续值&#xff0c; 逻辑回归给出的”是”和“否”的回答. 等…

4、算法MATLAB---认识矩阵

认识矩阵1、矩阵定义和基本运算1.1 赋值运算符&#xff1a;1.2 等号运算符&#xff1a;1.3 空矩阵1.4 一行一列矩阵1.5 行矩阵&#xff08;元素用空格或逗号分隔&#xff09;1.6 列矩阵&#xff08;分号表示换行&#xff09;1.7 m行n列的矩阵&#xff1a;行值用逗号间隔&#x…

如何在Linux中实现进程间通信

致前行路上的人&#xff1a; 要努力&#xff0c;但不要着急&#xff0c;繁花锦簇&#xff0c;硕果累累都需要过程&#xff01; 目录 1.进程间通信介绍 1.1进程间通信的目的 1.2进程间通信发展 1.3进程间通信分类 1.4进程间通信的本质 2.管道 2.1什么是管道 2.2管道与进程的关系…

轻量级网络模型ShuffleNet V2

在学习ShuffleNet V2内容前需要简单了解卷积神经网络和MobileNet,以及Shuffnet V1的相关内容&#xff0c;大家可以出门左转&#xff0c;去看我之前的几篇博客MobileNet发展脉络&#xff08;V1-V2-V3&#xff09;&#xff0c;轻量级网络模型ShuffleNet V1&#x1f197;&#xff…

Android 高工分享一波性能优化的总结~

随着 Android 开发越来越规范&#xff0c;国内工程师的素质&#xff0c;以及用户对产品的要求也越来越高。这也间接导致我们对研发项目的质量要求到了近乎苛刻的地步&#xff0c;**内存优化、UI 卡顿优化、App 崩溃监控等性能调优也逐渐成了人手必备的技能。**工作之余&#xf…

【数据挖掘】1、综述:背景、数据的特征、数据挖掘的六大应用方向、有趣的案例

目录一、背景1.1 学习资料1.2 数据的特征1.3 数据挖掘的应用案例1.4 获取数据集1.5 数据挖掘的定义二、分类三、聚类四、关联分析五、回归六、可视化七、数据预处理八、有趣的案例8.1 隐私保护8.2 云计算的弹性资源8.3 并行计算九、总结一、背景 1.1 学习资料 推荐书籍如下&a…

【Spark分布式内存计算框架——Spark Streaming】3.入门案例(上)官方案例运行

2.1 官方案例运行 运行官方提供案例&#xff0c;使用【$SPARK_HOME/bin/run-example】命令运行&#xff0c;效果如下&#xff1a; 具体步骤如下&#xff1a; 第一步、准备数据源启动端口&#xff0c;准备数据 nc -lk 9999 spark spark hive hadoop spark hive 第二步、运行…

面试官: 你知道 JWT、JWE、JWS 、JWK嘛?

想起了 之前做过的 很多 登录授权 的项目 它相比原先的session、cookie来说&#xff0c;更快更安全&#xff0c;跨域也不再是问题&#xff0c;更关键的是更加优雅 &#xff0c;所以今天总结了一篇文章来介绍他 JWT 指JSON Web Token&#xff0c;如果在项目中通过 jjwt 来支持 J…

hook与mixin

看完vue3就开始看vue3的源码&#xff0c;表示很懵~ 刚把rollup打包搞完&#xff0c;这不响应式就接着来了&#xff01;&#xff0c;还是写篇直接使用vue3的博客清清脑吧&#xff01; 什么是hook、mixin&#xff1f; mixin: Vue2中多个组件内存在重复JS业务逻辑&#xff0c;使…

k8s学习之路 | Day15 k8s 中的 yaml 语法

文章目录yaml 基础什么是 yaml&#xff1f;yaml 特性适用场景基本语法规则数据类型yaml 对象yaml 数组yaml 纯量yaml 引用k8s 中的 yaml 语法\<string>\<Object>\<map[string]string>\<[]Object>\<boolean>示例 yaml 说明我在学习过程中&#xf…

Mr. Cappuccino的第44杯咖啡——Kubernetes之Service

Kubernetes之ServiceService的概念Service的类型Service演示案例环境准备ClusterIP&#xff08;集群内部访问&#xff09;IptablesIPVSEndpointNodePort&#xff08;对外暴露应用&#xff09;LoadBalancer&#xff08;对外暴露应用&#xff0c;适用于公有云&#xff09;Ingress…

echo命令

这是一条内置命令。 输出指定的字符串 一、语法 echo [选项] [参数] 二、选项 -e&#xff1a;激活转义字符。 使用-e选项时&#xff0c;若字符串中出现以下字符&#xff0c;则特别加以处理&#xff0c;而不会将它当成一般文字输出&#xff1a; \a 发出警告声&#xff1b; \b 删…

产业链金融的前世今生

产业链金融脱胎于供应链金融&#xff0c;又不同于供应链金融。二者的区别是&#xff0c; 供应链金融服务于单个环节、单个企业&#xff0c;而产业链金融是以产业链的核心 企业为依托&#xff0c;针对产业链的各个环节&#xff0c;设计个性化、标准化的金融服务产品&#xff0c;…

阿里巴巴内网 Java 面试 2000 题解析(2023 最新版)

前言 这份面试清单是今年 1 月份之后开始收集的&#xff0c;一方面是给公司招聘用&#xff0c;另一方面是想用它来挖掘在 Java 技术栈中&#xff0c;还有一些知识点是我还在探索的&#xff0c;我想找到这些技术盲点&#xff0c;然后修复它&#xff0c;以此来提高自己的技术水平…

DNS 域名解析

介绍域名 网域名称&#xff08;英语&#xff1a;Domain Name&#xff0c;简称&#xff1a;Domain&#xff09;&#xff0c;简称域名、网域。 域名是互联网上某一台计算机或计算机组的名称。 域名可以说是一个 IP 地址的代称&#xff0c;目的是为了便于记忆。例如&#xff0c…

3.2 网站图的爬取路径

深度优先与广度优先方法都是遍历树的一种方法&#xff0c;但是网站的各个网页 之间的关系未必是树的结构&#xff0c;它们可能组成一个复杂的图形结构&#xff0c;即有回路。如果在前面的网站中每个网页都加一条Home的语句&#xff0c;让每个网页都能回到主界面&#xff0c;那么…

JasperReports studio相关操作

1.2 JasperReports JasperReports是一个强大、灵活的报表生成工具&#xff0c;能够展示丰富的页面内容&#xff0c;并将之转换成PDF&#xff0c;HTML&#xff0c;或者XML格式。该库完全由Java写成&#xff0c;可以用于在各种Java应用程序&#xff0c;包括J2EE&#xff0c;Web应…

Playbook的用法

目录 Playbook Playbook 与 Ad-Hoc 对比 YAML 语言特性 YAML语法简介 支持的数据类型 写法格式 1 scalar 标量 建议缩进两个空格&#xff0c;可多 2 Dictionary 字典 3 List 列表 三种常见的数据格式 Playbook 核心组件 不要用 tab 可以#注释 hosts remote_us…

Oracle-01-简介篇

&#x1f3c6;一、Oracle的历史和发展 Oracle公司成立于1977年&#xff0c;由拉里埃里森&#xff08;Larry Ellison&#xff09;、鲍勃明特&#xff08;Bob Miner&#xff09;和埃德奥茨&#xff08;Ed Oates&#xff09;共同创立。起初&#xff0c;公司的主要业务是开发和销售…

Lenovo Legion Y530-15ICH电脑 Hackintosh 黑苹果efi引导文件

原文来源于黑果魏叔官网&#xff0c;转载需注明出处。硬件型号驱动情况主板Lenovo Legion Y530-15ICH处理器Intel Core™ i7-8750H (Coffee-Lake)已驱动内存16GB RAM DDR4 2667MHz已驱动硬盘2TB HP EX950 PCI-E Gen3 x4 NVMe SSD已驱动显卡Intel UHD Graphics 630Nvidia GTX 10…