• Java基础-运算


    参数传递

    Java 的参数是以值传递的形式传入方法中,而不是引用传递。

    以下代码中 Dog dog 的 dog 是一个指针,存储的是对象的地址。在将一个参数传入一个方法时,本质上是将对象的地址以值的方式传递到形参中。

    package Java基础;
    
    public class PassByValueExample {
        public static void main(String[] args) {
            Dog dog = new Dog("A");
            func(dog);
            System.out.println(dog.getName());          // B
    
            func1(dog);
            System.out.println(dog.getName());         // B
    
        }
    
        // 在方法中改变对象的字段值会改变原对象该字段值,因为引用的是同一个对象。
        private static void func(Dog dog) {
            dog.setName("B");
        }
        // 但是在方法中将指针引用了其它对象,那么此时方法里和方法外的两个指针指向了不同的对象,
        // 在一个指针改变其所指向对象的内容对另一个指针所指向的对象没有影响。
        private static void func1(Dog dog) {
            System.out.println(dog.getObjectAddress()); // Dog@4554617c
            dog = new Dog("c");
            System.out.println(dog.getObjectAddress()); // Dog@74a14482
            System.out.println(dog.getName());          // C
        }
    }

    float和double

    Java 不能隐式执行向下转型,因为这会使得精度降低。

     隐式类型转换

     switch

    从 Java 7 开始,可以在 switch 条件判断语句中使用 String 对象。

    switch 不支持 long、float、double,是因为 switch 的设计初衷是对那些只有少数几个值的类型进行等值判断,如果值过于复杂,那么还是用 if 比较合适。

  • 相关阅读:
    jdbc读取数据库表
    java中byte和blob互转
    mysql解决错误的方法-MySQL日志
    源码编译配置lnmp部署zabbix
    ssh后门反向代理实现内网穿透
    Cisco、HUAWEI、H3c、Firewall等设备配置snmp
    zabbix通过snmp监控网络设备
    centos/linux扩容Swap分区
    fork炸弹
    解决You have new mail in /var/spool/mail/root提示
  • 原文地址:https://www.cnblogs.com/dong973711/p/14571604.html
Copyright © 2020-2023  润新知