【java】static关键字

类与对象的关系

类是构建对象的模板,一个类可以构建多个对象。

类在方法区当中,对象在中。

static修饰的变量是独属于类的变量,没有给对象。

public class Person {
	private String name;
	private int age;
	private static String like;
	public static void main(String[] args) {
		Person zhang = new Person();
		zhang.name = "zhangsan";
		zhang.age = 18;
		zhang.like = "apple";
		
		Person li = new Person();
		li.name = "lisi";
		li.age = 20;
		li.like = "banana";

		System.out.println(zhang.name+" "+zhang.age+" "+zhang.like);
		System.out.println(li.name+" "+li.age+" "+li.like);
	}
}
运行结果
 static修饰的变量究竟储存在什么地方

方法区当中有静态常量池,static修饰的变量被放在静态常量池中,如果静态常量池已满则被存储在方法区当中,总之,不可能在对象中进行存储。

static能修饰什么

static能修饰变量、修饰方法、修饰代码块

static修饰的变量属于类变量,被创建出来的所有对象共享

② static修饰的方法属于,叫做静态方法,没有被static修饰的方法属于对象

在静态方法当中不能调用非静态方法,因为有类不一定有对象;非静态方法能调用静态方法,因为有对象一定有类。

③ 被static修饰的代码块不论放在哪里,都一定比main方法优先执行。(用于优化程序)

Person person = new Person();

Person:决定着对象的类型。

person:对象的名称,存储在栈内存当中。

new:关键字,在堆内存当中开辟内存空间(对象)。

Person():构造器,给对象赋初始值。

public class Person {
	static {
		System.out.println("我是main方法之前的static修饰的代码块");
	}
	{
		System.out.println("我是main方法之前的代码块");
	}
	public static void main(String[] args) {
		System.out.println("我是main方法");
	}
	static {
		System.out.println("我是main方法之后的static修饰的代码块");
	}
	{
		System.out.println("我是main方法之后的代码块");
	}
}
运行结果​​

由于在 main方法中并没有创建Person类的实例,因此非静态代码块(实例初始化块)并不会在程序执行时被触发。 

public class Person {
	static {
		System.out.println("我是main方法之前的static修饰的代码块");
	}
	{
		System.out.println("我是main方法之前的代码块");
	}
	public static void main(String[] args) {
		Person person = new Person();
		System.out.println("我是main方法");
	}
	static {
		System.out.println("我是main方法之后的static修饰的代码块");
	}
	{
		System.out.println("我是main方法之后的代码块");
	}
}
运行结果
public class Person {
	static {
		System.out.println("我是main方法之前的static修饰的代码块");
	}
	{
		System.out.println("我是main方法之前的代码块");
	}
	public static void main(String[] args) {
		System.out.println("我是main方法");
		Person person = new Person();
	}
	static {
		System.out.println("我是main方法之后的static修饰的代码块");
	}
	{
		System.out.println("我是main方法之后的代码块");
	}
}
运行结果

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

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

相关文章

Leetcode刷题(异或)

一、2980. 检查按位或是否存在尾随零 奇数二进制形式最右一位一定为1 偶数二进制形式最右一位一定为0 要存在尾随0至少要两个偶数进行或运算 代码 class Solution:def hasTrailingZeros(self, nums: List[int]) -> bool:cnt 0for x in nums:if x%20:cnt1return True if c…

RK3568 学习笔记 : 更改 u-boot spl 中的 emmc 的启动次序

环境 开发板: 【正点原子】 的 RK3568 开发板 ATK-DLRK3568 u-boot 版本:来自 【正点原子】 的 RK3568 开发板 Linux SDK,单独复制出来一份,手动编译 编译环境:VMware 虚拟机 ubuntu 20.04 问题描述 RK3568 默认 …

大模型面试准备(十七):深入理解 Transformer 技术原理

节前,我们组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、参加社招和校招面试的同学,针对大模型技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何备战、面试常考点分享等热门话题进行了深入的讨论。 合集在这…

Vision GNN: An Image is Worth Graph of Nodes

感受野:在卷积神经网络中,感受野(Receptive Field)是指特征图上的某个点能看到的输入图像的区域,即特征图上的点是由输入图像中感受野大小区域的计算得到的。 感受野并非越大越好,反而可能因为过大而过于发散梯度下降(Gradient Descent GD&am…

负载均衡的原理及算法简介

负载均衡(Load Balancing)是一种用于在多台服务器之间分配网络流量的技术,旨在优化系统资源利用率、提高服务可用性、增强系统的伸缩性和容错能力。其基本原理是将来自客户端的请求分散到一个服务器集群中的各个服务器上,而不是让…

python--4函数def,本质、值传递、引用传递、默认值参数、*参数名、**变量、lambda [参数]: 函数、偏函数、递归、递归练习

学习目标: 函数def,本质、值传递、引用传递、默认值参数、*参数名、**变量、lambda [参数]: 函数、偏函数、递归、 递归练习 学习内容: 函数def,本质、值传递、引用传递、默认值参数、*参数名、**变量、lambda [参数]: 函数、偏函数、递归、 递归练习 …

PyCharm 2024.1 发布:全面升级,助力高效编程!

PyCharm 2024.1 发布:全面升级,助力高效编程! 文章目录 PyCharm 2024.1 发布:全面升级,助力高效编程!摘要引言 Hugging Face:模型和数据集的快速文档预览针对 JavaScript 和 TypeScript 的全行代…

HTML表格标签、列表标签和表单标签

目录 表格标签 表格的主要作用 表格的基本语法 表头单元格标签 表格外观属性 设计表格的思路 表格标签结构 合并单元格属性 列表标签 无序列表 有序列表 自定义列表 表单标签 表单域 表单控件 button与text password reset与submit checkbox与radio label标…

Jmeter 简单的压力测试

今天我们一起利用Apache Jmeter(一种接口测试工具)来进行压力测试学习。压力测试主要目的是测试负载均衡的实现效果。 安装Jmeter这里就不做阐述了,上网下载个最新版就可以了,因为Jmeter是由JAVA语言开发的,所以安装之…

2.3 iHRM人力资源 - 路由、左侧菜单栏、处理token失效、退出登录、修改密码

iHRM人力资源 - 处理token失效、退出登录、修改密码 文章目录 iHRM人力资源 - 处理token失效、退出登录、修改密码一、退出登录1.1 处理token失效1.2 调整下拉菜单1.3 退出登录 二、修改密码2.1 弹出层dialog2.2 表单结构2.3 表单校验2.4 表单提交 三、路由3.1 清理多余组件和路…

6本期刊直接被踢!!最新4月SCI/SSCI期刊目录更新,请查收~

又到了一月一度的科睿唯安官网更新Web of Science核心期刊目录的时候,小编今天带大家一起来看看最新的SCI/SSCI期刊目录有哪些变化吧。 继上次SCI期刊目录和SSCI期刊目录更新之后,本次4月更新共有9本期刊发生变动: • SCIE:有5本期…

【Python基础】—— scipy.spatial.KDTree、matplotlib.pyplot、imageio

scipy.spatial参考博客:Python点云处理——建立KDtree 1 KDtree算法原理 KDtree构建出了一种类似于二叉树的树形数据存储结构,每一层都对应原始数据中相应的维度,以K层为一个循环,因此被称为KDtree。 每一层的左右子树的划分依据…

如何获取淘宝商品网页上的内嵌视频

如何获取淘宝商品网页上的内嵌视频 1.打开视频所在网页,按下F12(或者打开“开发者工具”) 2.在开发者工具中选择“网络”,并刷新页面。 3.这时你会看到一些资源,找到视频格式的资源,在新标签页中打开 4.好…

vue快速入门(二十八)页面渲染完成后让输入框自动获取焦点

注释很详细&#xff0c;直接上代码 上一篇 新增内容 使用挂载完成的钩子函数用focus使输入框获取焦点 源码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"width…

基于java+springboot+vue实现的智慧党建系统(文末源码+Lw+ppt)23-58

摘 要 当今社会进入了科技进步、经济社会快速发展的新时代。国际信息和学术交流也不断加强&#xff0c;计算机技术对经济社会发展和人民生活改善的影响也日益突出&#xff0c;人类的生存和思考方式也产生了变化。传统智慧党建管理采取了人工的管理方法&#xff0c;但这种管…

微信小程序订阅消息记录

一、小程序订阅消息推送业务梳理 1.运营后台配置小程序订阅通知&#xff1a; 消息列表新增消息任务页面(多模板切换/模板配置内容预览)消息任务查看页消息任务修改页小程序消息模版查看模版页面订阅消息授权页面(场景对应模板/是否开启配置)数据统计页面(按周、日、月、全部切…

P5730 【深基5.例10】显示屏

思路&#xff1a; 此题只需要两层循环&#xff0c;通过数组映射即可求出答案 AC代码&#xff1a; #include<iostream>using namespace std;typedef long long ll; const int N 10; int a[N];int main() {ll n,m;cin >> n >> m;for(ll in;i<m;i){ll nu…

windows ubuntu子系统,肿瘤全外篇1.安装软件及建立数据库

外显子组测序(Exome sequencing)是指利用序列捕获技术将全基因组外显子区域DNA捕捉并富集后进行高通量测序的基因组分析方法。由于外显子组测序捕获目标区域只占人类基因组长度的约1% &#xff0c;但变异占比高达85%&#xff0c;因此远比进行全基因组序列测序来得更简便、经济&…

合并有序表 (顺序存储 和 链式存储 方式实现)

代码详细解析: 合并有序表文章浏览阅读1.4k次&#xff0c;点赞6次&#xff0c;收藏7次。●假设有两个有序表 LA和LB , 将他们合并成一个有序表LC●要求不破坏原有的表 LA和 LB构思:把这两个表, 合成一个有序表 , 不是简简单单吗?就算是把他们先遍历不按顺序插入到表 C里面 , …

反转链表【java】

给定一个链表的头节点head反转链表 方法一&#xff1a;循环 1.定义三个指针&#xff1a; pre指针&#xff1a;刚开始指向空 prenull cur指针&#xff1a;刚开始指向head节点 curhead temp指针&#xff1a;保存cur指针指向节点的下一个节点 2. 不断循环改变相邻两个节点的指…