值传递与引用传递

在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的幂次方场景。

相关推荐
沧海一笑-dj3 小时前
【Python】Python学习笔记-初识 Python
python·python安装·python解释器
打工仔折腾 AI3 小时前
FastAPI 从本机到生产服务器:Nginx+Gunicorn+Uvicorn 完整部署实录
人工智能·后端·python·nginx·fastapi·gunicorn
blue_ice .4 小时前
Verilog DDS 数字信号发生器:DAC 输出模拟波形与 ADC 回采观测
开发语言·单片机·嵌入式硬件·fpga开发
hanchenxing4 小时前
AI 数据管道重构:从函数堆到链式管道的可读性实践
python
hhzz4 小时前
【OpenCV 入门到精通 10】视频分析与光流跟踪:背景减除与运动检测
人工智能·python·opencv·性能优化
蓝胖的四次元口袋4 小时前
Python基础语法入门
python
远翔调光芯片^138287988724 小时前
ECP5702能芯科技PD取电芯片在市场上的优势有哪些?
开发语言·人工智能·单片机·嵌入式硬件·智能家居
Patrick在香港4 小时前
Python 抓 0.91 GB 香港法例:Agent 的进度该写进磁盘,不是写进上下文
爬虫·python·api·claude·香港
西峰u4 小时前
Java单例模式|从基础到多线程安全
java·java单例模式
ClinicTech4 小时前
实验室洗瓶机的清洗系统架构与自动化控制解析
java·python