zoukankan      html  css  js  c++  java
  • 猜猜两道Java基础面试题的结果

    class TA {
        public String s = "A";
    
        public String getS() {
            return s;
        }
    }
    
    class TB extends TA {
        public String s = "B";
    
        public String getS() {
            return s;
        }
    }
    
    public class TestInheritance {
    
        public static void main(String[] args) {
            TA a = new TA();
            TB b = new TB();
            a.s = "AA";
            b.s = "BB";
    
            a = b;
            // TA a2 = b;
            // System.out.println(a == a2);
            // System.out.println(a2.s);
            // System.out.println(a2.getS());
    
            // java的内存模型:成员变量是放在栈区?
            // 父类引用指向子类对象,方法是可以被覆盖的,但是成员变量是无法覆盖的?
            //
            // (2014.1.18 add)说明,加载TB类时加载了TA类,所以b这个引用地址(堆内存开始的地址)指向的空间
            // 大小为TA.class占用的内存大小和TB.class占用的内存空间,那么就可以解释
            // System.out.println(a.s);输出的结果为什么是'A'了吗?
            // 方法被重写了,但是成员变量不能被重写,所以还是两份
            System.out.println(a.s);
            System.out.println(b.s);
            System.out.println(a.getS());
            System.out.println(b.getS());
        }
    }
    View Code
    public class TestComparisonOperator {
    
        public static void main(String[] args) {
            Long a1 = 19L;
            Long a2 = 19L;
            
            Long b1 = 1900L;
            Long b2 = 1900L;
            //小于128的数,可能会经常用到,所以会转换为基本变量而不是对象引用
            System.out.println(a1 == a2);
            System.out.println(b1 == b2);
            
        }
    }
    View Code
  • 相关阅读:
    git 有用配置汇总
    C语言:不定长结构体的实现方式
    Linux 错误码
    执行insmod提示 invalid module format
    ARM GIC 系列文章学习(转)
    Android:高通平台Camera HFR Usecase分析
    索引图-查表-颜色缩减
    连通域查找【未完】
    epoll
    手动编译安装tmux
  • 原文地址:https://www.cnblogs.com/wenwujuncheng/p/3383639.html
Copyright © 2011-2022 走看看