2 java 参数传递 | 静态变量 | 继承与静态初始化块

Java面试题 ⾃动装箱是指将基本类型转换为对应的包装类型,⽽⾃动拆箱是指将包装类型转换为对应的基本类型。这些转换通常由编译器⾃动处理。 阅读详情


java 参数传递有两种数据类型:

1,原生数据类型 8种基本数据类型。原生数据类型传递后会对值进行传递,不会对外部传递的变量做改变。

2,传递对象引用。

在java中,对于方法的参数传递,不管是原始数据类型还是引用数据类型,一律是串值:pass by value。

public void changeString(String str){
	String str = "abc";
}

public static void main(String[] args){
	String str = "xyz";
	new 对象().chengeString(str);
	System.out.println(str);
	// 输出“xyz”
}

---------------------------

静态变量

public class StaticTest {
	private static StaticTest st = new StaticTest();
	pirvate static int count1;
	private static int count2 = 0;
	private StaticTest(){
		count1++;
		count2++;
	}
	public static StaticTest getInstance(){
		return st; 
 	 }

	public static void main(String[] arge){
		StaticTest st = StaticTest.getInstance();

		System.out.println("count1: " + st.count1);
		System.out.println("count2: " + st.count2);
	 }
 }

程序编译执行结果?

输出结果:

count1:1

count2:0


执行顺序:

先执行main方法

再执行静态化部分,顺序执行,从上到下。

先执行 private static StaticTest st = new StaticTest();

在执行构造函数,这时构造函数把 count1和count2都进行++操作,完后 count1 = 1,count2 = 1。

在执行 public static int count1;  由于这一行并没有显示的被赋值操作,所以这是count1 = 1, 构造器里的++操作。

在执行 public static int count2;  由于这一行有显示的赋值操作,又把count2 设置为 0 。

所以如上输出结果。

-----------------------------------------

继承与初始化块?

public class Test{
	pubilc static void main(String[] arge){
		new Child();
 	}
 }
class Parent{
	static{
		System.out.println("parent static block");
 	}
	public Parent(){
		System.out.println("parent constructor");
	} 
}

class Child extends Parent{
	static{
		System.out.println("child static block");
 	}
	public Child(){
		System.out.println("child constructor");
 	}
}

程序输出?

parent static block

child static block

parent constructor

child constructor


先调用静态初始化块,父类 子类。

在调用构造器 ,父类 子类。


super(); 显示的调用父类的构造方法,super(参数); 显示的调用带参数的父类构造方法。



 

大一Java学习须知及基础知识点整理 继承是面向对象编程中的一个重要概念,允许一个类(子类)继承另一个类(父类)的属性和方法。组合是另一种实现代码复用的方式,它允许一个类包含另一个类的对象作为自己的成员变量。继承是面向对象编程中的一个重要概念,允许一个类(子类)继承另一个类(父类)的属性和方法。组合是另一种实现代码复用的方式,它允许一个类包含另一个类的对象作为自己的成员变量。而对于对象,传递的是对象引用的副本,但对象本身仍然是按值传递的。而对于对象,传递的是对象引用的副本,但对象本身仍然是按值传递的。编写代码并运行它是学习Java的最佳方式。 阅读详情

相关推荐

告别手动标注!PDMS NakiToolkit插件安装与初体验:以Pipeline工具为例

本文详细介绍了PDMS NakiToolkit插件的安装与使用,特别是其Pipeline工具如何通过自动化标注和材料统计功能大幅提升三维工厂设计效率。从环境准备到实战演示,帮助工程师告别繁琐的手动标注工作,实现项目交付周期的大幅缩短。

weixin_30047059的博客 350

java -- static, 内部类, 权限, 参数传递

开发中,我们想在类中定义一个静态常量,通常使用public static final修饰的变量来完成定义。此时变量名用全部大写,多个单词使用下划线连接。定义格式:public static final 数据类型 变量名 = 值;//比如公司名称公司地址 可能会很长很长 我们记不住 每次使用还容易打错//这时将其定义为静态常量 方便访问 还不容易出错public static final String COMPANY_NAME = "我的公司";

weixin_39158966的博客 790

从零上手HiAgent:构建能听懂指令的智能体框架实战指南

智能体(Agent)作为人工智能领域的重要范式,正从传统的预设流程自动化转向以目标驱动的自主规划与执行。其核心原理在于利用大语言模型(LLM)作为决策大脑,通过任务规划、工具调用与记忆机制,将模糊的自然语言指令转化为可执行的工作流。这一技术显著提升了人机协作的效率和自然度,其价值在自动化办公、数据分析与智能流程编排等场景中尤为突出。本文聚焦于HiAgent这一具体框架,深入解析其作为智能体开发平台的核心架构,涵盖规划器、执行器、工具集等关键组件,并提供从环境配置、自定义工具开发到复杂任务链构建的完整工程实践

weixin_29266007的博客 881

[java] static、继承篇

1.当 static修饰成员变量或者成员方法时,该变量称为静态变量,该方法称为静态方法。该类的每个对象都共享同一个类的静态变量和静态方法。任何对象都可以更改该静态变量的值或者访问静态方法。但是不推荐这种方式去访问。因为静态变量或者静态方法直接通过类名访问即可,完全没有必要用对象去访问。2.无static修饰的成员变量或者成员方法,称为实例变量,实例方法,实例变量和实例方法必须创建类的对象,然后通过对象来访问。3.static修饰的成员属于类,会存储在静态区。

2301_77946674的博客 976

ArcMap新手必看:5分钟搞定面要素的四至信息提取(附字段重命名技巧)

本文为ArcMap新手提供了快速提取面要素四至信息的详细教程,包括数据准备、坐标系选择、批量处理技巧及字段重命名优化方案。通过实战步骤和Python脚本示例,帮助用户高效完成GIS数据处理任务,特别适合行政区划数据分析和报告生成。

weixin_29266007的博客 384

LabVIEW面向对象编程:操作者框架入门实战

本文是LabVIEW面向对象编程中操作者框架的入门实战指南。针对传统“面条式代码”在复杂项目中的维护难题,文章通过创建操作者、定义消息与处理函数、在主VI中调用等步骤,详细演示了如何利用操作者框架构建模块化、易扩展的应用程序架构,有效管理并行任务。

f0g1h2的博客 589

(JavaSE)一.静态变量static1.静态变量和工具类2.工具类练习3.注意事项二.继承1.概述2.特点 3.继承练习4.子类继承父类5.继承中的语法

继承是类和类之间的父子关系。

2301_79144798的博客 1027

别光看Demo了!用UE5 Lyra框架快速搭建你的多人对战游戏原型(含完整配置流程)

本文详细介绍了如何利用UE5 Lyra框架快速搭建多人对战游戏原型,包含完整的配置流程和实战案例。Lyra作为可直接二次开发的游戏模板,内置了GAS技能系统、Enhanced Input输入控制等核心功能,大幅缩短开发周期。通过替换角色模型、调整武器数值和配置新地图规则,开发者可在48小时内完成科幻团队竞技游戏原型的搭建。

weixin_28717411的博客 455

静态方法 及值传递

代码块 语句:一条语句,一行代码 代码块:任意条语句,用大括号括起来,作为整体出现 代码块决定了我们变量的作用域,代码块中定义的变量只能作用于代码块,外部定义的变量,可以在代码块中使用 方法 定义 方法就是有名字的一段代码块,方法类似于面向过程语言的函数,在面向过程语言程序就是由多个函数相互调用形成的。方法依附于类。一个类中可以定义多个方法,main就是一个静态方法,jdk官方规定了main这个静态方法作为程序的入口存在。 调用通过类或者对象来调用的。只能定义在类中,方法都是独立的,平等关系。 方法:

小鬼的博客 1727

电机控制基础,小白入门篇

电机,这个藏在风扇、电动车、机器人里的“动力心脏”,如何精准控制它的转速、方向甚至力量?这篇博客专为完全零基础的小白打造,用“说人话”的方式拆解电机控制的底层逻辑,帮你从“看不懂电路图”到“能调个简单电机”。 电机控制不是“大神专属”,只要掌握“电生磁、磁生力”的底层逻辑,加上动手实践,小白也能快速入门。这篇博客会陪你从“看电机转”到“让电机听话”,把复杂的控制原理变成能上手玩的“小实验”。准备好你的面包板和电机,我们一起开启“电控之旅”吧!

汽车电子软件领域知识分享 5590

Flow Matching05:概率路径与插值【概率路径:线性插值路径(最简单)、高斯插值路径】【先尝试线性插值,看效果如何;若不够好,尝试高斯插值】

好的,我将从数学角度详细解释Flow Matching,从高中生能理解的基础知识开始,逐步深入到高级概念。

u013250861的博客 173

Java中static静态变量--继承等相关知识

静态方法中不能非静态的东西,非静态的东西比如成员变量,成员方法。(本质上没有this的原因)静态方法中没有this关键字,静态方法中,只能访问静态,非静态方法可以访问所有(非静态的方法中是有this,也可以通过this调用静态中的东西)。

wj0712的博客 1145

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

java静态变量

静态变量 在成员变量前加static关键字,可以将其声明为静态成员变量。静态变量和程序同生命周期;在没有实例化对象时,可以通过类名访问静态成员变量;public class Ss { System.out.println(Ss.a);}。也可以通过对象访问静态成员变量,但不论使用的是哪个对象,访 问到的都是同一个变量;静态成员变量在声明时最好初始化,如果不进行初始化,系统会默认初始化为0。

nizhan111的博客 335

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

java 无法从静态上下文中引用非静态 变量_985岩土硕转java第二十二天

1、几个热点面试问题1)、看似是参数传递的问题;2)、数组遍历问题:最好的思路是倒序进行遍历,不用开辟新的空间2、程序运行时,内存的分配机制,有关方法的调用还是很玄学的。有关方法的调用问题,就是java中均为值传递,调用方法时,形参只在方法内部起作用,那怎么修改能够修改对象的属性呢?a.set(6);就可以修改某个属性值为6,这个是怎样实现的呢?是set函数独有的功能吗?(以后再回头看看这个问题)...

weixin_31083901的博客 174

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

变量与参数传递

什么是成员变量 成员变量:在类体中定义的变量为成员变量,作用范围是整个类,只要在这个类中都可以访问到它。 成员变量如果有 static 关键字修饰,则该成员变量称为静态变量或类变量; 如果该成员变量没有 static 关键字修饰,则该成员变量被称为非静态变量或实例变量。 什么是局部变量 局部变量是指一个方法内定义的变量。 局部变量与成员变量的区别 1、:在类中的位置不同 成员变量:在类中...

C9609926的博客 537

对象创建过程、参数传递机制、static初始块

静态初始块 静态初始化块只在类加载时执行,且只会执行一次,同时静态初始化块只能给静态变量赋值,不能初始化普通的成员变量。    {}也是初始化块,,这种会按顺序执行。在类的声明中,可以包含多个初始化块,当创建类的实例时,就会依次执行这些代码块。如果使用 static 修饰初始化块,就称为静态初始化块。 方法参数的传递:值传递,值传递是先将参数复制一份,然后将复制的内容传递到方法中。...

qq_42384510的博客 330

java静态内部类单例模式_单例模式-静态内部类实现及原理剖析

以我的经验为例(如有不对欢迎指正),在生产过程中,经常会遇到下面两种情况:1.封装的某个类不包含具有具体业务含义的类成员变量,是对业务动作的封装,如MVC中的各层(HTTPRequest对象以Threadlocal方式传递进来的)。2.某个类具有全局意义,一旦实例化为对象则对象可被全局使用。如某个类封装了全球的地理位置信息及获取某位置信息的方法(不考虑地球爆炸,板块移动),信息不会变动且可被全局使...

weixin_36015177的博客 1317

Java第六章复习 继承与多态—抽象类与接口

Java复习

weixin_62367803的博客 347

Java 11 面向对象—参数传递

对象 和 引用 对象: 目前在使用 new 运算符 在堆内存中开辟的内存空间 称为 对象。 堆内存的 空间 引用: 是一个变量,不一定是局部变量。还可能是成员变量,引用保存了内存地址,指向了堆内存当中的对象。 空间的 地址 所有访问实例相关的数据,都需要通过 “引用” 的方式访问, 因为 只有通过引用才能找到对象。 只有一个空的引用,访问对象的实例相关的数据会出现空指针异常。 class Student{ Computer com; //com是一个引用的实例变量 public static void d

weixin_46969441的博客 991

java代码笔记2010-05-31:继承this()的使用多态;单态;静态初始化;==比较的是地址;参数传递的是个值的拷贝还是引用的传递;循环菱形...

继承,this()的使用 多态: class Animal {//其他的不能以public声明 // private String name; String name; private int age; private String gender; public Animal() { } public Animal(String name, int age, ...

zoujianbin的博客 139

java面向对象

万物皆对象。面向对象,是一种编程思想,是把一个整体的事物按照各个功能来进行划分。在计算机程序设计过程中,参照现实中事物,将事物的属性特征、行为特征抽象出来,描述成计算机事件的设计思想。 它区别于面向过程思想,强调的是通过调用对象的行为来实现功能,而不是自己一步一步的去操作实现。

m0_51779342的博客 4342

Java零基础学习日记(2)

坚持一下,学习会变好的

m0_47981324的博客 1913

java多态可以传匿名对象吗_-1-2 java 面向对象基本概念 封装继承多态 变量 this super static 静态变量 匿名对象 值传递 初始化过程 代码块 final关键...

java是纯粹的面向对象的语言也就是万事万物皆是对象程序是对象的集合,他们通过发送消息来相互通信每个对象都有自己的由其他的对象所构建的存储,也就是对象可以包含对象每个对象都有它的类型 也就是类某一特定类型的所有对象都可以接收相同的消息,因为同一类事物有共同的特性面向对象开发•就是不断的创建对象,使用对象,指挥对象做事情。面向对象设计•其实就是在管理和维护对象之间的关系。面向对象特征•封装(enc...

weixin_39720865的博客 95

java自动化初始变量_03. Java基础之初始化

一. 用构造器确保初始化构造器是一种特殊类型的方法,因为它没有返回值。这与返回值为空(void)明显不同。对于空返回值,尽管方法本身不会自动返回什么,但仍然可以选择让它返回别的东西。构造器则不会返回任何东西,你别无选择(new表达式确实返回了对新建对象的引用,但构造器本身并没有任何返回值)。假如构造器具有返回值,并且允许人们自行选择返回类型,那么势必得让编译器知道该如何处理此返回值。1. 一个类中...

weixin_42138545的博客 263

2-Java类与对象

/ 输出 Parent static method(静态方法不参与多态)// 输出 Parent static method。// 输出 Child static method。// 直接使用 PI 和 sqrt()public void swap(int a, int b) { ... } // 无法交换原始值。default void printInfo() { // 默认方法。private Singleton() {} // 私有构造器。

Schwarze的博客 331
上一篇: 1 java String 字符串相关
下一篇: 3 java 继承与编译情况 | 方法重写 | 通过反射改变private变量值
hackq
博客等级 码龄20年 19粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值