zoukankan      html  css  js  c++  java
  • 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 比较合适。

  • 相关阅读:
    Windows7 64位 安装mysql
    汉诺塔(hanoi)
    大数据时代,Python是最好的语言!
    本地项目上传到github
    函数去抖(debounce)与 函数节流(throttle)
    vue项目出现的错误汇总
    vue-cli + webpack自动生成项目
    webpack和gulp
    前端开发利器之静态服务器
    vue开发知识点汇总
  • 原文地址:https://www.cnblogs.com/dong973711/p/14571604.html
Copyright © 2011-2022 走看看