当前位置: 首页 > news >正文

JavaSE(上)-Day9

JavaSE(上)-Day9

  • 集合
  • static
    • 静态变量
    • 静态方法
    • 静态方法的注意事项
    • 重新认识main方法
  • 继承
    • 继承注意事项
    • 子类到底能继承父类哪些内容
    • 继承中成员变量和成员方法的访问特点
    • 重写
    • 构造方法的访问特点
    • this & super

集合

  1. 因为数组是不可变的,我们在不确定一个容器长度的时候,应该选择一个长度可变的容器,此时引出了ArrayList
  2. ArrayList需要指定泛型,泛型不可以是基本数据类型,我们可以使用基本数据类型的包装类
  3. 在创建ArrayList对象的时候,JDK7之前两个泛型位置都需要填写泛型,JDK7之后,只需要填写前面位置的泛型,但后面也需要<>
  4. ArrayList的容器默认的容量为0,可以自动扩容
  5. ArrayList有便捷的方法,新增add(E)->boolean,修改set(index,E) ->oldE,删除remove(E)->boolean 或 remove(index)->E,查询get(index)->E

static

静态变量

1.用static修饰的成员变量就是静态变量
2.静态变量创建是随着类的字节码文件加载到元空间后,在堆内存中的静态区添加该静态变量进行存储,先设置默认初始值,然后显式赋值,然后方法里赋值,成员变量是随着对象的创建,在堆内存中开辟空间存储
3.静态变量是属于类的,可以被这个类所有的对象共享编辑或使用
4.一般通过类名.静态变量名调用
5.同一种对象共用的一个属性就可以定义成静态变量

静态方法

1.用static修饰的成员方法就是静态方法
2.静态方法用于Test类和工具类
3.JavaBean类指的是描述一类事物的类
4.Test类是用于测试其他类的类
5.工具类是帮我们做一些事情的类,不描述一类事物
6.工具类要求见名知其义
7.私有化构造方法,不可以定义工具类的对象,因为工具类的对象是无意义的
8.方法定义成静态的,方便调用
9.用类名.静态方法名(…),是从元空间中找到这个类的字节码文件,找到对应的静态方法名进栈运行

静态方法的注意事项

  1. 静态方法中是没有this关键字的,其实是因为成员方法中this作为第一个形参隐藏起来啦,给的值就是调用者的地址,而静态方法没有this
  2. 静态方法不用成员变量和成员方法,原因就是没有this关键字
  3. 成员方法既可以调用成员方法又可以调用静态方法,每个对象都可以调用类创建的静态区的静态变量

重新认识main方法

  1. public给出足够大的访问权限,便于JVM调用
  2. staticJVM不需要实例化,直接调用
  3. voidJVM不提供返回值
  4. main为JVM查询的方法入口名称,固定
  5. String[] args过去接收一些参数,现在由Scanner代替

继承

为什么需要继承?

  1. 当类与类之前有相同的属性和方法时,并且这些类又是同一大类,就可以使用继承
  2. 可以把子类中共同的属性和方法提取到父类中,提高代码的复用性
  3. 子类 extends 父类,可以让子类使用父类的属性和方法,子类只需要补充编写特有的属性和方法
  4. extends关键字是让两个类建立继承关系,满足语句:子类是父类。

继承注意事项

  1. Java是单继承,只能继承一个直接父类,支持多层继承,可以有多个间接父类
  2. Java中所有的类都直接或间接的继承Object类
  3. 子类只能访问父类中非私有的成员变量和成员方法(代码层面)

子类到底能继承父类哪些内容

  1. 子类不能继承父类的构造方法,父类的构造方法拷贝过来不符合要求 public/private 类名
  2. 子类可以继承父类的成员变量, 虽然可以继承父类的私有成员变量,但无法直接使用
  3. 子类可以继承父类非private且非static且非final的成员方法,它们属于虚方法,会传给子类方便直接调用,如果不是虚方法,就需要先找子类,再找父类,周而复始,没有则报错

继承中成员变量和成员方法的访问特点

  1. 就近原则 先局部找,然后在本类找,最后再父类中找,逐级向上,找不到报错
  2. 可以用this,super改变找的起点

重写

  1. 当父类的方法不满足子类的需求,可以重写该方法
  2. 重写要求方法名和形参列表完全相同
  3. 要求访问修饰符权限子类>=父类
  4. 要求返回值范围子类 <= 父类
  5. 重写写@Override注解,方便进行重写格式的校验
  6. 重写只可以重写虚方法,重写本质就是覆盖虚方法

构造方法的访问特点

  1. 父类的构造方法不能被子类继承
  2. 子类构造方法默认情况调用父类的无参构造方法super();,为了给父类属性完成初始化,父类的属性初始化完毕,子类才可以调用
  3. super(); this();必须出现在构造方法的第一行,两者互斥
  4. 想要调用有参的父类构造方法,需要显式的在子类构造方法的第一行调用。

this & super

  1. this指的是调用者的地址值,可以理解一个形参变量
  2. super代表父类的存储空间

相关文章:

JavaSE(上)-Day9

JavaSE&#xff08;上&#xff09;-Day9 集合static静态变量静态方法静态方法的注意事项重新认识main方法 继承继承注意事项子类到底能继承父类哪些内容继承中成员变量和成员方法的访问特点重写构造方法的访问特点this & super 集合 因为数组是不可变的&#xff0c;我们在…...

Java 内存模型概述

Java 内存区域 引言&#xff1a; 在并发编程中&#xff0c;需要解决两个问题&#xff1a;线程之间如何通信和线程之间如何同步 通信是指线程之间以何种机制来交换信息 在命令式编程中&#xff0c;通信机制主要分为两种&#xff1a;共享内存和消息传递 Java 的并发采用的是…...

远程桌面安卓版下载 安卓远程控制免费版

远程桌面安卓版下载与安卓远程控制免费版的应用解析 随着移动互联网的快速发展&#xff0c;远程桌面应用逐渐成为了许多用户、特别是技术爱好者和商务人士的必备工具。它们不仅可以在电脑上实现远程控制&#xff0c;还能将这种功能延伸到移动设备上&#xff0c;如安卓手机和平…...

算法打卡day18|二叉树篇07|Leetcode 530.二叉搜索树的最小绝对差、501.二叉搜索树中的众数、236. 二叉树的最近公共祖先

算法题 Leetcode 530.二叉搜索树的最小绝对差 题目链接:530.二叉搜索树的最小绝对差 大佬视频讲解&#xff1a;二叉搜索树的最小绝对差视频讲解 个人思路 因为是在二叉搜索树求绝对差&#xff0c;而二叉搜索树是有序的&#xff0c;那就把它想成在一个有序数组上求最值&…...

MySQL 中的自增ID及其应用场景

在MySQL中&#xff0c;自增ID主要体现在几种不同的场景下&#xff0c;每种自增ID都有其特定用途和行为特征&#xff1a; 1. Auto-Increment ID (PRIMARY KEY AUTO_INCREMENT) 场景&#xff1a;在创建表时&#xff0c;可以为某个整数字段设置AUTO_INCREMENT属性&#xff0c;生成…...

ChatGPT高效完成简历制作[中篇4]-有爱AI实战教程(十一)

演示站点&#xff1a; https://ai.uaai.cn 对话模块 官方论坛&#xff1a; www.jingyuai.com 京娱AI 一、导读&#xff1a; 在使用 ChatGPT 时&#xff0c;当你给的指令越精确&#xff0c;它的回答会越到位&#xff0c;举例来说&#xff0c;假如你要请它帮忙写文案&#xff0c…...

5.2.5、【AI技术新纪元:Spring AI解码】VertexAI Embeddings

基于Models REST API的PaLM API允许开发者利用下一代大型语言模型PaLM构建生成式AI应用。大型语言模型(LLMs)是一种强大的、多用途的机器学习模型,通过一系列提示使计算机能够理解和生成自然语言。PaLM API基于Google的下一代LLM PaLM,擅长多种任务,包括代码生成、推理和文…...

【vue baidu-map】实现百度地图展示基地,鼠标悬浮标注点展示详细信息

实现效果如下&#xff1a; 自用代码记录 <template><div class"map" style"position: relative;"><baidu-mapid"bjmap":scroll-wheel-zoom"true":auto-resize"true"ready"handler"><bm-mar…...

uniapp canvas文字和元素居中

文字居中&#xff1a;ctx.textAlign "center"; 元素居中&#xff1a;ctx.arc(screenWidth / 2, 122, 40, 0, 2 * Math.PI); ctx.arc()的x轴为当前屏幕的宽度/2&#xff1b; let screenWidth 540; let screenHeight 960; // 头像 if (photoimg) {ctx.setFillSty…...

深度探索:SWAT模型和生物地球化学循环模型实现流域生态系统水-碳-氮耦合过程模拟

目录 专题一 流域水碳氮建模概述 专题二 ArcGIS入门 专题三 SWAT模型建模流程 专题四 DEM数据制备流程 专题五 土地利用数据制备流程 专题六 土壤数据制备流程 专题七 气象数据制备流程 专题八 农业措施数据制备流程 专题九 参数率定与结果验证 专题十 CENTURY模型建…...

C语言经典算法-5

文章目录 其他经典例题跳转链接26.约瑟夫问题&#xff08;Josephus Problem&#xff09;27.排列组合28.格雷码&#xff08;Gray Code&#xff09;29.产生可能的集合30.m元素集合的n个元素子集 其他经典例题跳转链接 C语言经典算法-1 1.汉若塔 2. 费式数列 3. 巴斯卡三角形 4. …...

python与excel第二节

python与excel第二节 打开一个工作簿 例子&#xff1a; import xlwings as xw app xw.App(visibleTrue,add_bookFalse) workbook app.books.open(rD:\TEST\python与excel\工作簿test0.xlsx) 上面例子打开了工作簿test0.xlsx。 但是&#xff0c;如果该excel文件不存在则报错…...

Google云计算原理与应用(四)

目录 七、海量数据的交互式分析工具Dremel&#xff08;一&#xff09;产生背景&#xff08;二&#xff09;数据模型&#xff08;三&#xff09;嵌套式的列存储&#xff08;四&#xff09;查询语言与执行&#xff08;五&#xff09;性能分析&#xff08;六&#xff09;小结 八、…...

面试常问:为什么 Vite 速度比 Webpack 快

前言 最近作者在学习 webpack 相关的知识&#xff0c;之前一直对这个问题不是特别了解&#xff0c;甚至讲不出个123....&#xff0c;这个问题在面试中也是常见的&#xff0c;作者在学习的过程当中总结了以下几点&#xff0c;在这里分享给大家看一下&#xff0c;当然最重要的是…...

principles of network applications网络应用原理

Creating a network app write programs that: ▪ run on (different) end systems ▪ communicate over network ▪ e.g., web server software communicates with browser software application transport network data link physical application transport network data li…...

QT增加线程函数步骤流程

在使用线程的时候&#xff0c;不仅要关注线程开启的时机&#xff0c;同时还要关注线程安全退出&#xff0c;这样才能保证程序的健壮性&#xff0c;如果线程开启的较多&#xff0c;且开启关闭比较频繁&#xff0c;建议使用线程池来处理。开启线程有三种方式&#xff1a;第一种C的…...

Python基础----字符串(持续更新中)

字符串的介绍 定义&#xff1a;是python中常用的数据类型之一&#xff0c;可以使用单引号、双引号、三引号来进行创建 字符串的标识类型&#xff1a;str 字符串的特性 字符串属于不可变数据类型&#xff0c;不能直接修改字符串的本身 数字、元组也属于不可变数据类型 字符串…...

【论文阅读】DiffSpeaker: Speech-Driven 3D Facial Animation with Diffusion Transformer

DiffSpeaker: 使用扩散Transformer进行语音驱动的3D面部动画 code&#xff1a;GitHub - theEricMa/DiffSpeaker: This is the official repository for DiffSpeaker: Speech-Driven 3D Facial Animation with Diffusion Transformer paper&#xff1a;https://arxiv.org/pdf/…...

NVM使用教程

文章目录 ⭐️写在前面的话⭐️1、卸载已经安装的node2、卸载nvm3、安装nvm4、配置路径以及下载源5、使用nvm下载node6、nvm常用命令7、全局安装npm、cnpm8、使用淘宝镜像cnpm9、配置全局的node仓库&#x1f680; 先看后赞&#xff0c;养成习惯&#xff01;&#x1f680;&#…...

mysql 学习

本文来自于《sql必知必会》 所需要的文件教程连接 本站其他的小伙伴 第一课 了解sql 数据库基础 什么是数据库 数据库&#xff08;database&#xff09; 保存有组织的数据的容器&#xff08;通常是一个文 件或一组文件&#xff09;。 表 表&#xff08;table&#xff09;…...

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

Appium+python自动化(十六)- ADB命令

简介 Android 调试桥(adb)是多种用途的工具&#xff0c;该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具&#xff0c;其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利&#xff0c;如安装和调试…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

Python爬虫(二):爬虫完整流程

爬虫完整流程详解&#xff08;7大核心步骤实战技巧&#xff09; 一、爬虫完整工作流程 以下是爬虫开发的完整流程&#xff0c;我将结合具体技术点和实战经验展开说明&#xff1a; 1. 目标分析与前期准备 网站技术分析&#xff1a; 使用浏览器开发者工具&#xff08;F12&…...

ETLCloud可能遇到的问题有哪些?常见坑位解析

数据集成平台ETLCloud&#xff0c;主要用于支持数据的抽取&#xff08;Extract&#xff09;、转换&#xff08;Transform&#xff09;和加载&#xff08;Load&#xff09;过程。提供了一个简洁直观的界面&#xff0c;以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...

ElasticSearch搜索引擎之倒排索引及其底层算法

文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/

使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题&#xff1a;docker pull 失败 网络不同&#xff0c;需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)

本文把滑坡位移序列拆开、筛优质因子&#xff0c;再用 CNN-BiLSTM-Attention 来动态预测每个子序列&#xff0c;最后重构出总位移&#xff0c;预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵&#xff08;S…...

Java多线程实现之Thread类深度解析

Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...