值传递与引用传递

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

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

示例:

复制代码
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的幂次方场景。

相关推荐
东莞市云毅网络有限公司3 小时前
AI 引用句逐条回指原文:让回答可回溯的校验实现
python·数据清洗·rag·企业知识库·文档解析
Sarvartha4 小时前
final 关键字
java·开发语言
2601_952047794 小时前
单一策略深度教程:用轻易云把集成任务的报错实时推送到钉钉机器人
java·机器人·钉钉
数字融合4 小时前
透明化视频三维矿山井下照明重建技术
人工智能·python·数码相机
yi0115 小时前
LeetCode 219:存在重复元素 II——哈希表记录“最近一次出现的位置”
数据结构·人工智能·笔记·python·算法·leetcode·哈希表
程序员Sunday5 小时前
JavaScript 事件循环面试题,宏任务与微任务怎么执行|Sunday面试指南
开发语言·javascript·面试·校招·事件循环·程序员sunday
数据狐(Datafox)5 小时前
淘宝图片搜索 API 落地实战:基于以图搜货搭建跨境电商选品系统
java·大数据·微服务
zhangzeyuaaa6 小时前
Ruby 多线程、GVL(GIL)与 Mutex 完全指南
开发语言·前端·ruby
Marst Code6 小时前
上位机开发日记 · 第 2 篇 · 架构先行:六层分层与边界
python