java经验 学习笔记
5星 · 超过95%的资源 需积分: 0 80 浏览量
更新于2011-03-21
收藏 34KB DOC 举报
在Java编程语言中,理解和掌握方法、参数以及变量的生命周期对于编写高效、可靠的代码至关重要。以下是对这些知识点的详细解析:
### 2.1 方法和参数
#### 引用类型和基本类型的比较
引用类型(如对象)和基本类型(如int、char)在处理时存在显著差异。在Java中,基本类型直接存储值,而引用类型存储的是对象的内存地址。因此,当比较两个引用类型的变量时,双等号(==)检查的是它们是否指向同一个对象,而不是比较对象的内容。
#### 参数传递机制
在方法调用时,参数传递分为两种情况:值传递和引用传递(Java中所有参数传递都是值传递,但对象引用是按值传递)。对于基本类型,传入方法的是变量的副本,方法内对参数的修改不会影响到方法外的变量。而对于引用类型,虽然传入的是引用的副本,但这个副本仍指向相同的对象,因此,如果方法改变了引用指向的对象(例如,通过重新赋值或修改对象内容),这种改变在方法内外都是可见的。
例如,String类型的字符串作为方法参数,如下所示:
```java
String str1, str2, str3;
str1 = str2 = str3 = "Applet";
```
- `method1`方法改变了引用变量st1指向的字符串,这对外部是可见的。
- `method2`方法通过`concat`方法修改了字符串,但没有改变引用,因此对外部不可见。
- `method3`方法改变了st3的值,所以对st3的改变是可见的。
### 2.2 变量的生命周期
#### 局部变量与成员变量
局部变量只在定义它们的方法或块内有效,其生命周期随着方法的结束而结束。成员变量(包括实例变量和类变量)属于类或对象,它们的生命周期与对象的生命周期相同,或者对于类变量,直到类加载和卸载。
- 如果变量仅在单个方法内使用,应使用局部变量。
- 当多个方法需要共享数据,或者方法需要返回多个值时,应使用成员变量。
#### 类变量的修改影响
类变量(static修饰的变量)属于类本身,所有实例共享同一份拷贝。因此,对类变量的任何修改都会立即反映到所有实例上。
### 2.3 数组
#### 数组的输出与初始化
- 输出数组时,简单的数据类型会显示变量的值,而复杂类型(如数组)会显示内存地址。
- 对象数组初始化后,元素默认为null。必须逐个初始化元素,例如:
```java
String stringArray[] = new String[3];
for (int i = 0; i < stringArray.length; i++) {
stringArray[i] = new String();
}
```
#### 数组的length属性与length()方法
- 数组的`length`属性返回数组的长度,即元素的数量。
- 字符串的`length()`方法返回字符串中的字符数。
#### 初始化数组
数组的大小可以在初始化时使用常量或动态计算的值来指定,这样可以提高代码的灵活性。
#### 参数传递与数组
数组作为方法参数时,传递的是数组引用的副本。这意味着在方法内部对数组元素的修改会影响到方法外部的数组。例如,对于String类型的字符串数组,如果在方法内修改数组元素,这些更改在方法调用结束后仍然可见。这是因为数组本身是引用类型,即使传入的是副本,但副本依然指向原始数组。
zjian0506
- 粉丝: 0
- 资源: 7
最新资源
- 基于Spring、MyBatis、MySQL的云南旅游资源分享网站后端接口设计源码
- Matlab根据Flac6.0模型文件生成对应个数的弹性模量与泊松比的随机数据 本案例假设2参数均服从威布尔分布,根据给定均值标准差生成随机数(若符合其他分布,可自行修改),然后Flac6.0读取生成
- 永磁同步电机的全速度范围无传感器矢量控制:脉振高频注入(方波注入)切到改进SMO 低速段采用HFI脉振高频注入启动,中高速段采用基于转子磁链模型的SMO,切方法为加权系数 改进的SMO不使用低通滤
- 基于plc的金属压铸机系统设计报告 报告+仿真
- GASA-BP基于遗传模拟 火优化BP神经网络的回归预测 案例包括GA与SA优化BP代码,并给出对比计算结果 matlab代码,备注详细,方便初学者学习
- COMSOL 二维激光烧蚀
- PNN概率神经网络分类预测 先根据训练数据选择合适的平滑因子,再对测试集进行预测 matlab代码,备注详细,根据自己需要修改案例数据即可
- svm支持向量机分类预测 案例提供数据先进行随机打乱再划分训练测试集,结果更有说服力(若不需要可自行删除修改),数据包含归一化处理,网格搜索寻优确定最优参数 matlab代码,备注详细,根据自己需要修
- 自动驾驶控制器,车道偏离预警系统,基于Prescan设计场景和交通流,在Simulink中建立了相应的控制模型 进行LDW功能验证 整个模型自己建立,再次强调不是Prescan自带的那种很乱很模糊
- 无人驾驶基于自适应mpc的轨迹跟踪控制仿真跟踪轨迹,simulink版本2018及以上,carsim版本2019,图二为跟踪效果
- LLC闭环仿真PSIM调频ZVS 半桥LLC闭环仿真模型,基于PSIM建模仿真 可以进行LLC暂态、稳态仿真,仿真zvs特性、调频闭环控制等 仿真模型使用PSIM9.1搭建
- Matlab计算任意三点的夹角 给出特定一组坐标(可以直角坐标系或极坐标系) 计算出所有夹角值 matlab代码,备注清楚,更改为自己的数据即可
- FCM聚类,代码对数据先进行归一化然后聚类 可自定义聚类个数,求得每类的具体数据 matlab代码,备注清楚,更改为自己的数据和要求即可
- MATLAB代码:基于双层优化的电动汽车优化调度研究 关键词:双层优化 选址定容 输配协同 时空优化 参考文档:《考虑大规模电动汽车接入电网的双层优化调度策略-胡文平》中文版 A bi-l
- Buck仿真闭环Psim双闭环 Buck闭环仿真模型,基于PSIM建模仿真 可以进行暂态、稳态仿真,电压电流双闭环控制,模拟控制电路 仿真模型使用PSIM9.1搭建
- windows-programming-DCAP509.pdf