java--初始化与清理

从java1.5依赖提供了一个我很喜欢用的功能Foreach功能,方便使用,简单,等等好处就不一一列举了,具体实现原理是什么就不大懂了,没有做过压测,所以具体性能如何,也不得而知,只是看网上同仁又说性能不及普通的for循环,当然这里提一提的主要原因在于问题,说呢,有人在用foreach做迭代的时候发现如果对集合类做了remove操作之后会报异常,这一点估计跟他的实现原理有关系吧,所以我的方式就是规避(),所以果断对于有remove操做的集合使用Iterator之后使用while循环来处理。

好了,开始今天的正题。

switch 功能,说实话习惯了用if这个到真心用的不多,至少目前用的不多,经历了不同的版本变迁后switch也发生了不少变化,从1.5开始增加了enum类型,1.7开始支持了C#中才有的string类型(其实个人感觉既然string都是静态不可变类,支持应该是一开始就该有的功能啊)。

在java的方法重载中有一点很容易犯,而且是不小心犯,以前没注意,知道遇到了,百思不得妻姐后才明白。在java中我们知道在方法重载的时候只要参数列表不同,就OK了,那么出现function a(int a),和function a(long b)这种一点都不稀奇,可是在你传递参数的时候就有问题了,因为如果你给的是一个int值,那么这两个函数应该来说都可以调用的,所以你让系统郁闷了一把。所以对于有类型升降的参数一定要注意,这里当然指的不只是基本类型了,复杂类型的多态也是要注意的哦。

顺带提一下,有人问为什么返回值类型不能作为区分两个方法重载的条件,这里借用别人的观点,方法的返回值也许在你定义的时候你知道返回值是不同的,但是真正的作用体现在他被调用的时候,所以这时候方法是按照你的方法所在类找到对应的类,然后再找方法同名的,接下来根据传递参数找到对应的方法,如果你在奢望他知道要通过返回值理解调用哪个方法,那就之能通过执行结果来判断了,那系统最笨的办法就是有多少种这种方法就调用多少次,完事了跟你的执行期望来判断需要那个执行的结果,但是这还是一个理想状况(尽管这已经很扯淡了),如果你压根没想要返回结果,那系统就彻底傻眼了。所以代码的执行不能期望系统通过执行结果来判断应该调用哪个,那就成了“因为有了鸡蛋,所以这肯定是鸡下的”。

通常情况下我们很少关注方法如何区分是哪个实现类来调用的,比如下面的

 

public class Test2 {
	int i = 0;
	public Test2(int i){
		this.i = i;
	}
	public void test(){
		System.out.println(i);
	}
	public static void main(String[] args) {
		Test2 t1 = new Test2(1);
		Test2 t2 = new Test2(2);
		t1.test();
		t2.test();
	}
}

 上面的代码中我们创建了t1,t2,按照之前的理解,在执行t1.test()的时候,先找到了Test2这个对象,然后找到对象的方法,接着执行,这里就有点问题了,那他怎么知道自己是那个实例在调用他执行的呢?

查看class文件我们可以找到具体的执行中有一段

代码截图

可以看到执行的时候依然使用的是:package.class.method.区分的地方正在于aload_1[t1],这里的解释又说method实际上是将对象本身也作为参数传递近了方法,所以方法就知道是那个实例调用了他,比如:package.Test2.test(t1)

具体是否这样不太清楚,不过这样倒是能解释通。使用this或者super调用构造函数的时候要注意,都必须放在行首,否则执行会有问题。

如何在SendWS实现WhatsApp批量群发设置管理?WhatsApp群发超链有什么好处? WhatsApp群发顾名思义就是对WhatsApp上的用户好友进行群发消息,给他们群发想要发送的消息。及时不认识对方也可以对他进行群发超链。越来越多做跨境出海运营的工作者利用WhatsApp进行营销推广,因为他能做到低成本高回报,向客户发送消息曝光自己的品牌或产品,使得更多人了解,拓展新客户,提高成交率。 阅读详情

相关推荐

生成式引擎优化(GEO)全景指南:技术架构、实施策略与未来趋势

生成式引擎优化(GEO)全景指南摘要 GEO(生成式引擎优化)是针对AI生成内容(如ChatGPT、文心一言等)的优化策略,通过结构化数据、权威建设与语义优化提升企业内容在AI答案中的引用优先级,实现“无点击曝光”。其核心价值在于从流量竞争转向信任构建,突破传统SEO局限。技术架构依托RAG(检索增强生成)、向量数据库及反馈学习机制,动态优化内容生成与引用逻辑。实施策略包括:部署结构化数据(如JSON-LD)、维护动态知识图谱、适配多模态内容(3D/VR)、联合权威机构发布白皮书。行业案例显示,美妆、智能家

解锁AI流量新红利!🚀 GEO优化(生成引擎优化)助您掌控AI搜索,让AI成为您的品牌最佳代言人! 1451

Java初始化与清理

       初始化和清理是涉及安全的两个问题。      首先说一下Java如何初始化。      对象的初始化工作必须在对象被调用之前完成。那么在创建对象时就需要调用类的初始化方法,而这个方法就是构造方法。为了确保构造方法名称唯一,即能够为Java编译器识别,在这里就是用于类名完全相同的方法作为构造方法。构造方法允许重载,但没有返回值。      下面就来看一下Java对象初始

prince2270的专栏 819

EDA公司(一):Synopsys-- 主要 EDA 工具及其简介

Synopsys 是一家领先的电子设计自动化(EDA)软件公司,提供了一系列全面的产品和服务,旨在支持从概念设计到大规模生产的各个阶段。Synopsys 的 EDA 工具覆盖了芯片设计的各个方面,包括但不限于逻辑综合、静态时序分析、功能验证、物理实现、形式验证、测试插入、电源分析、信号完整性分析等。

MHD0815的博客 3311

全面解析Java中的初始化与清理

正确的初始化和清理至关重要,能够确保资源的高效利用,避免内存泄漏。垃圾回收机制简化了内存管理,但深入理解其原理有助于优化程序性能。

技术分享 1175

Jetson Orin NX上CAN总线调试全攻略:从硬件焊接到开机自启动(附常见问题解决方案)

本文详细介绍了在NVIDIA Jetson Orin NX开发板上进行CAN总线调试的全过程,包括硬件焊接、驱动配置、通信测试和开机自启动设置。针对常见问题如信号接反、波特率设置等提供了实用解决方案,帮助开发者快速实现稳定的CAN总线通信。

c2d3e4f的博客 1076

秋叶ComfyUI-v10中文整合包:全中文AI绘画一键部署与实战指南

Stable Diffusion作为当前主流的扩散模型,通过去噪过程从随机噪声生成高质量图像,其开源特性推动了AI绘画技术的普及。然而,其官方WebUI在自定义工作流和可复现性上存在局限,而基于节点流程的ComfyUI则提供了更高的自由度和工程化控制能力,尤其适合复杂、可重复的创作流程。对于中文用户而言,英文界面和提示词输入是主要障碍。秋叶出品的ComfyUI-v10中文整合包,正是针对这一痛点,提供了**全中文界面**和**原生中文提示词支持**的解决方案。该整合包将Python环境、依赖库及常用插件预配

weixin_33895475的博客 401

java初始化与清理_java 初始化与清理

1、初始化与清理的重要性:1、许多C程序的错误都源于程序员忘记初始化变量,特别是使用程序库时,如果不知道如何初始化库的构件更容易出错2、当使用完一个元素时,这个元素就不会有什么影响了,所以很容易就会忘记,但是这个元素占用的资源一直存在,如果资源一直得不到释放,就会造成资源(内存)耗尽2、构造器确保初始化:在java中,通过提供构造器,可以确保每个对象都会得到初始化。创建对象时,如果类对象有构造器,...

weixin_32745665的博客 144

华为擎云W515 PGUV-WBY0安装银河麒麟V10全流程解析

本文详细解析了华为擎云W515 PGUV-WBY0安装银河麒麟V10系统的全流程,包括准备工作、镜像下载与校验、启动盘制作、BIOS设置、安装过程关键选择、系统初始化及常见问题排查。特别针对ARM架构设备提供了实用技巧,帮助用户顺利完成国产化系统的部署与优化。

weixin_28725949的博客 700

java初始化与清理_Java的初始化与清理

大家都知道,Java是站在巨人的肩上成功的,它是在C&C++的基础上进一步的开发,投入面向对象开发的怀抱。Java吸取了很多以前的教训,加入自己很多独创的方式。在程序语言发展初期,许多C程序员经常忘记初始化变量,在程序结束后也经常忘记对创建的数据类型进行释放内存,造成内存泄漏。这些"不安全"的编程方式当然需要程序员有良好的编程习惯,但如果编程语言能够加入自动清理与初始化的工作,这回大大降低...

weixin_34061241的博客 184

零基础手把手教你做FMEDA

本文通过分步骤手把手来教大家具体如何做FMEDA,希望对工作中要做FMEDA的童鞋有帮助。对于工作当中用不到FMEDA的童鞋,也可以作为科普知识,更好地了解一下FMEDA及硬件功能安全。

NewCarRen的博客 9932

基于STM32F103C8T6的智能蓝牙手环系统设计与实现

摘要:本文设计并实现了一款基于STM32F103C8T6单片机的智能蓝牙手环系统。该系统集成了ADXL345加速度计、DS18B20温度传感器、plusesennor心率模块和BT06蓝牙模块,实现了心率(±2bpm)、体温(±0.5℃)、步数(±3%)等健康数据的实时监测与显示。通过OLED屏提供人机交互界面,支持蓝牙APP远程控制,具备自动步数清零、异常提醒等功能。测试表明系统各项功能均达到设计要求,响应时间0.1-0.5秒,心率检测准确率98%,体温检测准确率99%,功耗50mA(工作)/10mA(待

3254968421的博客 205

java初始化与清理_Java 初始化与清理

初始化与清理是涉及到安全的两个问题。1.用构造器确保初始化:当我们通过new关键字来创建对象的时候,就是调用了构造方法。java会在用户有能力操作对象之前自动调用相应的构造器,从而保证了初始化的进行。1.1java采用与C++相同的,构造器命名方式,即构造器方法名与类名相同。(方法名首字母小写不适用与构造器);1.2构造器是一种特殊类型的方法,因此它没有返回值。1.3默认构造器:不接收任何参数的构...

weixin_39707201的博客 168

RK3568笔记五十四:SORT实时目标追踪

YOLOv5具备目标检测的功能,把视频分解成多幅图像并逐帧执行时,如果视频帧中有多个目标,如何知道一帧中的目标和上一帧是同一个对象就是目标跟踪的工作。DeepSort是实现目标跟踪的算法,从sort(simple online and realtime tracking)演变而来,使用卡尔曼滤波器预测所检测对象的运动轨迹,匈牙利算法将它们与新的检测目标相匹配。结合YOLOv5和DeepSORT可以在实时场景中实现高效的目标检测和跟踪。

790

Java中的初始化与清理

在程序的运行过程中随时可以调用,不需要去实例化某个对象然后再去调用,可以直接用类名去调用,直到结束释放内存,且静态方法内部只能调用类静态变量,不能调用非静态方法,且任意一个对象对静态方法进行修改,其他调用该静态方法也会相应修改。重载之后,如果传入的实参类型并非任意一个重载函数需要的类型,但经过非窄化转换仍能匹配所有的重载函数需要的参数类型,这个参数就会类型提升为更接近它的那一个函数需要的参数类型,参与运算。,当编写一个类时,如果你的类中没有构造器,那么编译器会自动帮你创建一个这样类型的构造器。

2501_90424955的博客 1050

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

java 初始化与清理

随着计算机革命的发展,“不安全”的编程方式已逐渐成为编程代价高昂的主因之一。 初始化和清理正是涉及安全的两个问题。 1.用构造器确保初始化 默认构造器(无参构造器):不接受任何参数的构造器 2.方法重载 1.区分重载方法 每个重载的方法都必须由一个有一个独一无二的参数类型列表。 参数顺序的不同也足以区分两个方法。不过,一般情况下,别这么做,因为这会使代码难以维护。 2.涉及基本类型

不积跬步无以至千里,不积小流无以成江海 1665

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

浅谈Java中的初始化和清理

引言   这篇文章我们主要介绍Java初始化和清理的相关内容,这些内容虽然比较基础,但是还是在这边做一个简单的总结,方便以后查阅。 初始化过程   Java尽力保证:所有变量在使用之前都会得到恰当的初始化(对于方法的局部变量,Java会以编译时错误的形式来提醒程序员进行初始化)。   1、类数据成员的初始化   类成员初始化过程是这样的:当我们实例化一个对象时,编译器会首先执行...

diezhi2505的博客 256

java 初始化和清楚_浅谈Java中的初始化和清理

引言这篇文章我们主要介绍Java初始化和清理的相关内容,这些内容虽然比较基础,但是还是在这边做一个简单的总结,方便以后查阅。初始化过程Java尽力保证:所有变量在使用之前都会得到恰当的初始化(对于方法的局部变量,Java会以编译时错误的形式来提醒程序员进行初始化)。1、类数据成员的初始化类成员初始化过程是这样的:当我们实例化一个对象时,编译器会首先执行数据成员的初始化过程,然后在执行构造器。下面我...

weixin_33212915的博客 129

Java 初始化和清理

初始化和清理是影响代码安全的两个重要因素。 一、初始化 1. 方法重载   构造器与类名相同,成为强制重载方法名的原因之一。重载规则:每个重载的方法必须拥有独一无二的参数类型列表。不能根据返回值来区分重载方法。   Java基本类型的自动提升:byte(1)-> short/char(2)-> int(4)-> long(8)-> float(4)...

baichong5435的博客 106

Java 对象初始化与清理

Java有自动的垃圾回收器,不需要我们手动清理对象,但却需要我们手动创建对象。那么,对于一个对象来说,它的创建过程或者说初始化过程是怎样进行的,我们在设计自己的类时又要如何保证对象的初始化顺利进行?

zy1996_的博客 7101

【Java从入门到精通】初始化与清理

目录初始化与清理介绍详情构造器构造函数的重载基本类型的重载this关键字清理:终结处理和垃圾回收属性初始化1、类的静态属性2、对象的属性3、类的静态属性和对象的属性初始化过程 初始化与清理 介绍 程序在运行过程中,可能因为开发人员忘记给变量进行初始化导致程序出现错误,也可能因为无法释放内存造成内存泄露最终导致大量内存被占用,程序被动终止。因此在Java类或者对象的生命期间,变量(包括静态变量)的初始化以及对象不在使用时的内存回收也决定这程序的健壮性等多个方面。 初始化:初始化只是类或者对象在使用前,对其属

一片冰心 330

Java基础——初始化和清理

本文参考自Java编程思想第四版第5章,并结合自己现有知识做的一些总结。 随着计算机革命的发展,“不安全”的编程方式已逐渐成为编程代价高昂的主要原因之一。 1. 构造器 概念:构造器(constructor)就是对象被创建时调用的方法。 构造器的方法名称与类的名称一致。 为了保证对象一定会被初始化,Java编译器会为没有构造方法的类添加默认构造方法(无参构造方法)。若类中已经声明了构造方法,编译器则不会添加无参构造方法,但一般情况下,是建议给类添加一个无参构造方法的。 默认构造器 public cl.

qq_51964209的博客 964

Java程序设计 1 初始化与清理

初始化和清除 "不安全"的编程是造成编程代价昂贵的罪魁祸首之一。有两个安全性问题:初始化和清理。C 语言中很多的 bug 都是因为程序员忘记初始化导致的。尤其是很多类库的使用者不知道如何初始化类库组件,甚至他们必须得去初始化。清理则是另一个特殊的问题,因为当你使用一个元素做完事后就不会去关心这个元素,所以你很容易忘记清理它。这样就造成了元素使用的资源滞留不会被回收,直到程序消耗完所有的资源(特别是内存)。 C++ 引入了构造器的概念,这是一个特殊的方法,每创建一个对象,这个方法就会被自动调用。Java采用了

qq_44807796的博客 201

java基本功02--初始化与清理

初始化与清理 5.1 构造器 构造器是java确保对象初始化的手段,你在使用new关键字创建一个新的对象的时候就调用了构造器。Java会在对象有能力操作对象之前自动调用响应的构造器,从而保证初始化的进行。 Object obj = new Object(); // 创建一个Object对象并使用obj来持有它 构造器的名字必须与类名称相同,这样编译器才能正确的找到对应类的构造器。此外与普通的方法不同的是构造器没有返回类型。 class Test{ private String name; pub

weixin_44857868的博客 174
上一篇: maven配置
下一篇: mysql 日期函数
tzwzero163com
博客等级 码龄18年 0粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值