Java学习过程中注意到的几个小细节

本文探讨了逻辑运算符&&和||的工作机制,自增运算符的行为差异,以及JVM内存管理中的先进后出原则。同时揭示了公共访问修饰符public可能导致的内存共享问题和推荐使用private的原因。
摘要由CSDN通过智能技术生成

逻辑运算符&&与||

&&运算符是从左到右对操作数求值,遇到第一个假值操作数时立即返回;如果所有的操作数都是真值,则返回最后一个操作数的值。

||运算符是从左到右对操作数求值,遇到第一个真值操作数时立即返回;如果所有的操作数都是假值,则返回最后一个操作数的值。

简而言之,二者都有一定局限性,例如A&&B只有在A为真时才会执行B语句;相反地,A||B一旦A为真则会直接跳出并判断整个语句为真,从而忽视了B语句。

这样的逻辑在编写程序时需要外加关注,程序员需要从两种运算符的合理运用中均衡程序的运算效率和安全性。

自增(减)运算符

和本人在C语言中对这个运算符的认识不同,++a和a++的运算过程还是分为两个步骤,但是第一步都是对原值做改变,即a=a+1或a=a-1;只是第二步返回的值不同,a++返回的值是没有进行运算的原值,而++a则是引用已经进行运算的值;

这样一来,a++与我们认知中的先引用后运算并不相通。

可以这么说,真正的a++其实是先创建了一个临时变量temp,以C语言为例,以下代码最终输出的结果应当是1和2;即充当a++作用的函数fun返回了x原值,而实际上此时x已经完成了自增操作。

#include<stdio.h>
    int fun(int a){
        int temp;
        temp = a;
        a = a + 1;
        return temp;
    }
int main(){
    int x = 1;
    printf("%d\n",fun(x));
    printf("%d\n",x);
}

JVM内存

先进后出原理:先执行的方法会沉底,出栈时会相对偏后

public访问修饰符的常见问题

public修饰符允许在不同的类中修改变量内容,此时当我们以public修饰两个变量时,对其中任意一个变量进行修改都会使另一个变量发生同样的变化,这是因为public修饰的变量实质上在内存中指向了同一块区域,此时任意操作对这一块内存进行修改都会导致其他变量发生不必要的变化,这也就是为什么一般给多个具有多重属性的对象赋值时常采用private修饰符的原因。

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值