【Java】Static关键字与类的实例化

关键字:static

作用:主要用于内存管理

范围:可以用在变量、方法、代码块和嵌套类上。java关键字属于类,但不是类的实例。


类的成员变量包括:

【静态变量/类变量】指被static修饰的成员变量

运行时,只分配一次内存。在加载类的过程中完成静态变量的内存分配。

类的内部可以在任何方法中直接访问静态变量;其他类中可以通过类名访问该类的静态变量。

静态变量的最主要作用是节省内存空间。


【实例变量】:指没有被static修饰的成员变量

每创建一个实例,java虚拟机就会为实例变量分配一次内存。

类的内部可以在非静态方法中直接访问实例变量;本类的静态方法或其他类中需要通过类的实例对象进行访问。

类的方法包括:

【静态方法/类方法】:指被static修饰的成员方法

通过类直接调用,不需要创建类的对象。可以直接通过类名.方法名调用

静态方法中只能访问类成员变量,不能访问实例变量(同理,静态方法只能访问静态方法,而实例方法可以访问类方法和实例方法)

静态方法中不能使用super、this关键字

静态方法的调用通过类名.类方法和对象.类方法

public static void method1();

【实例方法】:指没有被static修饰的成员方法

可以直接访问所属类的静态变量、静态方法、实例变量和实例方法

实例方法只能通过对象.实例方法访问

实例方法可以被覆盖(静态方法不能被覆盖)

public void method2();

【构造方法】:指没有返回值(没有void)方法名与类名一样的方法

方法名与类名相同 不要返回类型(例如return、void等) 不能被static、final、native、abstract和synchronized修饰,不能被子类继承

public method(){};
类的实例化过程:

1)给对象分配空间,对属性按照类型进行默认初始化

2)加载父类->本类->子类静态代码块

3)初始化父类属性、父类构造代码块、父类构造方法。

4)初始化本类属性、构造代码块、构造方法。

5)初始化子类属性、构造代码块、构造方法。

总结:对象空间的分配和默认属性的初始化->静态代码初始化->属性、构造代码块、构造方法初始化(根据代码书写的先后顺序)

静态代码块若使用了某个静态成员变量,那么该静态成员变量一定比静态代码块先加载


附录一:关键字及作用分类(转载自尚硅谷《java从入门到精通》)

 

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

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

相关文章

离线数仓(二)【用户行为日志采集平台搭建】

用户行为日志采集平台搭建 1、用户行为日志概述 用户行为日志的内容,主要包括用户的各项行为信息以及行为所处的环境信息。收集这些信息的主要目的是优化产品和为各项分析统计指标提供数据支撑。收集这些信息的手段通常为埋点。 目前主流的埋点方式,有代…

【Kubernetes in Action笔记】1.快速开始

在Kubernetes上运行一个程序 基础运行环境 当前的运行环境为使用虚拟机构建的单master集群。 [rootk8s-master ~]# kubectl get nodes NAME STATUS ROLES AGE VERSION k8s-master Ready control-plane 109d v1.27.1 k8s-node1 Ready …

代码随想录算法训练营第十六天 | 104.二叉树的最大深度,111.二叉树的最小深度,222.完全二叉树的节点个数 [二叉树篇]

代码随想录算法训练营第十六天 LeetCode 104.二叉树的最大深度题目描述思路递归后序遍历参考代码递归前序遍历参考代码总结 LeetCode 111.二叉树的最小深度题目描述思路参考代码 LeetCode 222.完全二叉树的节点个数题目描述思路后序遍历参考代码1后序遍历参考代码2 LeetCode 10…

Stable Diffusion ComfyUI安装详细教程

上一篇文章介绍了sd-webui的安装教程,但学习一下ComfyUI这种节点流程式的对理解AI绘画有较大帮助,而且后期排查错误会更加方便,熟练后用这种方式做AI绘画可玩性会更多。 文章目录 一、安装包说明二、安装文件介绍三、安装步骤四、汉化五、云主…

Linux-ls命令

目录 ls:查看目录下文件/文件夹 ls -l:列表显示文件 ls -a:显示所有文件正常情况下‘ . ’开头的文件是隐藏的 ls -la:以列表形式显示所有文件包括隐藏文件 ls -lt:按时间倒序查看文件 ls -R:递归方式…

Open CASCADE学习|曲线向曲面投影

在三维空间中,将曲线向曲面投影通常涉及复杂的几何计算。这个过程可以通过多种方法实现,但最常见的是使用数学和几何库,如OpenCASCADE,来处理这些计算。 在OpenCASCADE中,投影曲线到曲面通常涉及以下步骤:…

第14讲投票帖子详情实现

投票帖子详情实现 后端,根据id查询投票帖子信息: /*** 根据id查询* param id* return*/ GetMapping("/{id}") public R findById(PathVariable(value "id")Integer id){Vote vote voteService.getById(id);WxUserInfo wxUserInfo wxUserInf…

简单介绍数据结构的基本概念

数据结构的基本概念 常用术语 数据 数据(Data)是客观事物的符号表示,是所有能输入到计算机中并被计算机程序处理的符号的总称。例如:整数、字符串、图形、图像、声音和动画等 数据元素 数据元素(Data Element&…

Shiro反弹shell和权限绕过含工具包

★★免责声明★★ 文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与学习之用,读者将信息做其他用途,由Ta承担全部法律及连带责任,文章作者不承担任何法律及连带责任。 1、前言 反序列化漏洞原理和Shiro反序列化漏洞原理请参…

安装 Windows 7

1.镜像安装 镜像安装:安装Windows 7 2.安装过程(直接以图的形式呈现) 等待安装成功即可

Linux——网络通信TCP通信常用的接口和tcp服务demo

文章目录 TCP通信所需要的套接字socket()bind()listen()acceptconnect() 封装TCP socket TCP通信所需要的套接字 socket() socket()函数主要作用是返回一个描述符,他的作用就是打开一个网络通讯端口,返回的这个描述符其实就可以理解为一个文件描述符&a…

防御-day5-防火墙综合实验

一、实验拓扑 二、实验要求 1、办公区设备可以通过电信链路和移动链路上网(多对多的NAT、并且需要保留一个公网IP不能用来转换)。 2、分公司的设备可以通过总公司的移动链路和电信链路访问到DMZ区的http服务器 3、分公司内部的客户端可以通过公网地址访问到内部的服务器。 三、…