值传递与引用传递
2026/9/11 13:59:30 网站建设 项目流程

在Java中,参数传递方式为值传递,但具体表现取决于参数类型:

  • 基本数据类型(如intdouble):传递的是值的副本,方法内修改不影响原始变量。
  • 引用数据类型(如对象、数组):传递的是对象引用的副本(即内存地址的副本),方法内通过引用修改对象属性会影响原始对象,但重新赋值引用不会影响原始引用。

示例:

void modifyPrimitive(int num) { num = 10; } // 不影响原始值 void modifyObject(StringBuilder sb) { sb.append("!"); } // 修改对象属性 void reassignObject(StringBuilder sb) { sb = new StringBuilder("New"); } // 不影响原始引用

.java文件的类型限制

Java源代码文件(.java)需满足以下要求:

  • 文件名与公共类名一致:若文件中包含public class,文件名必须与类名相同(区分大小写)。
  • 非公共类数量不限:一个.java文件可包含多个非public类,但仅允许一个public类。
  • 编码格式:默认UTF-8,也可通过编译器参数指定其他编码。

示例:

// 文件名为MyClass.java public class MyClass {} class Helper {} // 允许的非公共类

位运算

位运算直接操作二进制位,常用于高效计算或底层操作:

  • 左移(<<:低位补0,相当于乘以2的n次方。
  • 右移(>>:高位补符号位,相当于除以2的n次方(向下取整)。
  • 无符号右移(>>>:高位补0。
  • 与(&)、或(|)、异或(^:逐位运算。
  • 取反(~:按位取反。

示例:

int a = 5; // 0101 int b = a << 2; // 10100 (20) int c = a & 3; // 0001 (1)

2*8最有效率的计算方式

使用左移位运算实现乘法效率最高,因CPU执行位运算比普通乘法快:

int result = 2 << 3; // 等价于 2 * 2^3 = 16

原理:2的二进制为10,左移3位变为10000(即16)。此方法适用于乘数为2的幂次方场景。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询