day13 java final 类和对象的初始化执行顺序
final
[面试题]请简述final关键字final修饰类(最终的类)-太监类:该类不能被继承。(比如:String StringBuilder,....) final修饰方法(最终的方法):不能被重写 final修饰的变量 :值不能被修改final修饰的属性:没有默认值要求必须赋值赋值的方式 :①显示赋值 ②代码块赋值 ③构造器赋值-一定要保证无论调用哪个构造器都可以给该变量赋值
class Person{//final int id=20;//直接给属性赋值 - 显示赋值final int id; {//id = 10; //代码块赋值}public Person(){id = 20;}public Person(int age){id = 23;}
//构造器赋值-一定要保证无论调用哪个构造器都可以给该变量赋值public void test(){//因为通过方法给final修饰的变量进行赋值 无法保证该方法一定会被调用所以不能通过方法给final修饰的变量赋值//id= 20;}
}
类和对象的初始化
类的初始化过程 : 就是给类变量赋值的过程哪些操作会触发类的初始化:1.创建对象 (先有类再有对象)2.调用类中的静态资源说明:1.对子类进行初始化时会先对父类进行类的初始化2.类的初始化只执行一次3.通过子类调用父类的静态资源时不会对子类进行类的初始化4.当我们进行类的初始化时底层会调用一个clinit方法(该方法的数量和有几个父类没有关系-只有一个)在clinit方法中将父类还有子类中的初始化操作全部合并到clinit方法中执行。注意:静态代码块和类变量谁在上面先执行谁。
class Animal{int aid = 10;static int said = 20;static {System.out.println("animal static block1");}{System.out.println("animal block");}static {System.out.println("animal static block2");}public Animal(){System.out.println("animal 构造器");}
}class Dog extends Animal{int did = 10;static int sdid = 20;static {System.out.println("Dog static block1");}{System.out.println("Dog block");}static {System.out.println("Dog static block2");}public Dog(){System.out.println("dog 构造器");}
}
public class ClassObjectInitTest {public static void main(String[] args) {/*先是类的初始化 再是对象的初始化类的初始化只执行一次 对象的初始化每创建一次对象执行一次。*/new Dog();new Dog();}
}
debug进行顺序执行:
1.父类类变量、类方法(静态方法)、静态代码块(父类类加载)
2.子类类变量、类方法(静态方法)、静态代码块(子类类加载)
3. 父类 属性、代码块(谁在上谁先) ,构造器(对象的初始化)
4.子类 属性、代码块(谁在上谁先) ,构造器(对象的初始化)
5.再次对此类的对象初始化时不用执行1、2步(类加载已完成)直接3、4
先是类的初始化 再是对象的初始化 类的初始化只执行一次 对象的初始化每创建一次对象执行一次。
说明:1.在继承关系中每个类都会对应一个init方法。2.init方法:在程序的执行过程中 会将属性,代码块,构造器的操作全部合并到init方法中执行。注意:前两个(属性和代码块)看顺序 最后一定是构造器。
相关文章:
day13 java final 类和对象的初始化执行顺序
final [面试题]请简述final关键字final修饰类(最终的类)-太监类:该类不能被继承。(比如:String StringBuilder,....) final修饰方法(最终的方法):不能被重写 final修饰的变量 :值不…...
蓝桥杯gcd汇总
gcd3014 问题描述 小明和小红是一对恋人,他们相爱已经三年了,在今年的七夕节,小明准备给小红一个特殊的礼物。他想要送给小红一些数字,让小红算出有多少对正整数 (a,b) 满足以下条件: clcm(a,b)−dgcd(a,b)x其中 c,…...

极市平台 | 综述:一文详解50多种多模态图像融合方法
本文来源公众号“极市平台”,仅用于学术分享,侵权删,干货满满。 原文链接:综述:一文详解50多种多模态图像融合方法 0 极市导读 本工作总结了50篇论文中Lidar和camera的多模态融合的一些概念方法。笔者结合原文以及自…...

数据结构系列-队列的结构和队列的实现
🌈个人主页:羽晨同学 💫个人格言:“成为自己未来的主人~” 队列 队列的概念及结构 队列:只允许在一端进行插入数据操作,在另一端进行删除删除数据操作的特殊线性表,队列具有先进先出FIFO,…...

MySQL——查询数据的处理
一、并列 连接两个数据列的值,并进行输出的格式化处理(显示为一种统一的格式) concat( 列 1 格式化字 符 ) mysql> select concat(vend_name, vend_country) from vendors; --------------------------------- | concat(vend_name, ve…...
【机器学习300问】59、计算图是如何帮助人们理解反向传播的?
在学习神经网络的时候,势必会学到误差反向传播,它对于神经网络的意义极其重大,它是训练多层前馈神经网络的核心算法,也是机器学习和深度学习领域中最为重要的算法之一。要正确理解误差反向传播,不妨借助一个工具——计…...

ctfshow web入门 php特性 web108--web115
web108 ereg函数相当于而preg_match()函数 ereg函数的漏洞:00截断。%00截断及遇到%00则默认为字符串的结束 strrev函数就是把字符串倒过来 就是说intval处理倒过来的传参c0x36d(877)?ca%00778 web109 异常处理类 通过异常处理类Excepti…...

京东API接口采集商品详情数据(测试入口如下)
京东API接口采集商品详情数据 请求示例,API接口接入Anzexi58 在当今数字化时代,电商平台的API接口成为了获取商品详情数据的重要途径之一。作为中国最大的自营式电商企业,京东提供了丰富的API接口供开发者使用,以便获取京东平台上…...
Mac brew 安装软件
Mac brew 安装软件 homebrew 速度慢 将brew 切换到国内镜像源 # 速度一般 # 步骤一 cd "$(brew --repo)" git remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git# 步骤二 cd "$(brew --repo)/Library/Taps/homebrew/homebr…...
【顶部距离计算】计算元素顶部与浏览器顶部的距离
在开发中,我们常常需要计算某个元素顶部与浏览器视口顶部的距离,只需要一个方法即可计算 解决:使用getBoundingClientRect()方法 代码示例: 接收一个参数element表示需要计算的元素 // 计算该元素的顶部距离浏览器的顶部距离 c…...

守护人类健康:人工智能赋能医疗领域创新应用
编者按:每年的4月7日是世界卫生日,又称世界健康日,旨在引起世界各国人民对卫生、健康工作的关注,提高人们对卫生领域的素质和认识,强调健康对于劳动创造和幸福生活的重要性。那么,如果医疗技术能够更加智能…...
linux常用指令(一)——cat、more、cp
cat命令: 用于查询看文件内容 语法:cat linux路径 参数必填,表示要查看文件的目录的路径,(相对,绝对,特殊路径符都可以使用) more命令: 用于查看文件内容,…...

基于RTThread的学习(三):正点原子潘多拉 QSPI 通信 W25Q128 实验
1、基于芯片创建工程 2、QSPI配置 2.1、RTThing_setting 设置组件 2.2、配置board.h 文件 2.3、cubemx生成QSPI的硬件初始化代码;HAL_QSPI_MapInit; 这里注意:你所买的开发板对应的qspi 连接的是否是cubemx 上边显示的,如果不是你需要将引脚…...

Mac反编译APK
文章目录 第一种方式: brew installapktool 使用说明dex2jar 使用说明 第二种方式: 下载安装包apktool 使用说明 (根据官方介绍没有操作成功,后续成功再更新这里)dex2jar 使用说明 安装 JD-GUI 查看jar包中的class文件JD-GUI 使用说明 第一种方式: brew install 安装过程可能很…...

Java数据结构-队列
目录 1. 队列概念2. 模拟实现队列2.1 链式队列2.2 循环队列 3. 双端队列4. 队列的应用4.1 用队列实现栈4.2 用栈实现队列 1. 队列概念 队列是一种只能在一端进行插入数据操作,另一端进行删除数据操作的数据结构,插入数据的叫队尾,删除数据的…...
JVM专题——类文件结构
本文部分内容节选自Java Guide和《深入理解Java虚拟机》, Java Guide地址: https://javaguide.cn/java/jvm/class-file-structure.html 🚀 基础(上) → 🚀 基础(中) → 🚀基础(下&am…...
零基础10 天入门 Web3之第2天
10 天入门 Web3之第2天Web3 是互联网的下一代,它将使人们拥有自己的数据并控制自己的在线体验。Web3 基于区块链技术,该技术为安全、透明和可信的交易提供支持。我准备做一个 10 天的学习计划,可帮助大家入门 Web3: 一、这是第二…...

Vue和FastAPI实现前后端分离
前言 近期接触了一些开源大模型应用服务,发现很多用的都是FastAPI web框架,于是乎研究了一下它的优势,印象最深有两个:一个是它的异步处理性能比较好,二是它可以类似java swagger的API交互文档,这个对应前…...

34470A是德科技34470A数字万用表
181/2461/8938产品概述: Truevolt数字万用表(34460A、34461A、34465A、34470A)利用是德科技的新专利技术,使您能够快速获得见解、测量低功耗设备并保持校准的测量结果。Truevolt提供全方位的测量能力,具有更高的精度、…...

iOS 开发中上传 IPA 文件的方法(无需 Mac 电脑
引言 在 iOS 开发中,将 IPA 文件上传到苹果开发者中心是一个重要的步骤。通常情况下,我们需要使用 Mac 电脑上的 Xcode 或 Application Loader 工具来完成这个任务。然而,如果你没有 Mac 电脑,也没有关系,本文将介绍一…...

wordpress后台更新后 前端没变化的解决方法
使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…...

基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...
Oracle查询表空间大小
1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...
【Linux】C语言执行shell指令
在C语言中执行Shell指令 在C语言中,有几种方法可以执行Shell指令: 1. 使用system()函数 这是最简单的方法,包含在stdlib.h头文件中: #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...

聊聊 Pulsar:Producer 源码解析
一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...

YSYX学习记录(八)
C语言,练习0: 先创建一个文件夹,我用的是物理机: 安装build-essential 练习1: 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件,随机修改或删除一部分,之后…...

LeetCode - 394. 字符串解码
题目 394. 字符串解码 - 力扣(LeetCode) 思路 使用两个栈:一个存储重复次数,一个存储字符串 遍历输入字符串: 数字处理:遇到数字时,累积计算重复次数左括号处理:保存当前状态&a…...

HTML 列表、表格、表单
1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...
django filter 统计数量 按属性去重
在Django中,如果你想要根据某个属性对查询集进行去重并统计数量,你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求: 方法1:使用annotate()和Count 假设你有一个模型Item,并且你想…...
MVC 数据库
MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...