• 学习JavaSE过程中的疑问点(第一周)


    1. 方法签名= 方法的名称参数类型

    2. 构造器和方法是不是都可以重载,都可以在定义类的时候定义多个?

      是的

    3. java为什么实际上是值传递,包括引用数据类型。

      传递的是引用的拷贝,而不是像c语言地址传递,传递的是实参!! 形参的地址被交换后,自然实参也发生改变,而java传递的是引用的拷贝,相当于传递的是一个标签,标签交换,不改变原来的标签(引用)

    4. scanner的使用问题,连续输入字符串和整型

      第一种解决方法:新创scanner 对象

      第二种:都用字符串接受。

    5. static ?

      static修饰的方法只能调用static

      static 修饰成员变量,所有实例共享。

      静态的成员变量在类加载的最后一步默认初始化

      静态方法也是在类加载以后,就可使用,可用类名.方法名()调用这个方法

      必须用类名.静态方法(变量) 不要用实例去调用静态方法和变量,static变量,方法,是属于类的

      于普通成员变量的对比

      所属不同:

      调用方式不同:

      在内存中的位置不同

      在内存中出现的时间不同

      普通成员方法,所有成员都可以访问

      静态成员方法,只可访问static成员

    6. protect 修饰符

      在一个包内,基类,子类,其他类都可访问

      在不同包内,基类实例不可访问,子类在子类作用范围内的实例对象可访问,子类在其他类的实例对象不可访问,其他类里面的子类不可访问。

      要用对象名调用一个继承自父类protected成员时,应该怎么思考能不能访问?

      • 首先考虑是否同类,同包,如果同类或同包,创建父类对象,子类对象,必然都可以访问
      • 如果不同包,考虑是否是子类中,如果不在子类中,无论创建什么对象,必然都不可以访问
      • 如果在不同包的子类中,考虑调用protected成员的对象性质
        • 如果使用的对象是父类对象,必然不可以访问
        • 如果使用的对象是子类对象,仍然要考虑
          • 如果该子类对象就是当前类的对象,可以访问
          • 如果该子类对象不是当前类的对象,不可以访问
    7. 类加载

      把自定义类,.class文件加载到方法区中,

      类加载的时机?

      1. 实例化的时候
      2. 调用静态成员的时候
      3. 调用静态方法时
      4. 调用某个类的main方法时,类加载
    8. 面试考点 代码块问题

      • 构造代码块中成员变量的赋值和成员变量的初始化赋值 看代码顺序
      • 静态成员变量和静态代码块也是看代码顺序执行
      • 无论实例化的时候用了哪个构造器,都会执行构造代码块-
      • 静态代码块随着类加载执行,不能调用非静态-
      • 构造方法方法中有this()调用构造代码器就先执行this 然后再就是代码块,
    9. 子类与父类存在同名变量,和同名方法问题的情况

      同名变量的访问,对象.的访问方式,按照编辑器检索规则,先找子类,子类找到就不找了,即隐藏了父类同名变量。

      同名方法的访问:覆盖父类的方法,覆盖的是对象实例的内存中,父类成员信息。而不是原来方法区中的父类被改变。

    10. default 关键字有啥用?

      同一类,同一包中子类,或者其他类都可以访问。

      default的访问权限和”在一个包中就行,不管你在哪个类中“

    11. 多态特性中,向上转型得好处是什么?

      能够精简代码,同一个引用触发多种形态,有利于以父类引用去传参,比声明多个子类更简洁。

    12. 子类为啥不继承父类的构造方法

      因为子类初始化之前,先父类初始化,并把父类的初始化信息给了子类,父类不是对象。子类既然会调用父类无参构造,那么就不用继承父类构造方法了。

    13. 向上转型的时候,父类引用是否能够调用 子类属性(成员变量),和子类普通成员方法,和重写的方法。为什么?

      对于成员变量而言:

      无法直接访问子类属性,编译器的检测机制问题,从当前引用开始检测,相上检测。成员遍历没有多态

      对于子类自己的普通成员方法:

      父类引用无法调用,编译器的检测机制问题,从当前引用开始检测,相上检测。

      对于重写的方法:

      父类引用可以调用,

      遍历时看左边,运行时看右边。只能调用子类的重写方法

      父类引用指向了子类对象中的父类成员信息区域。

    14. 引用数据类型转换:

      要在继承关系上转换。

      向上转型:

      对于成员变量来说:编译运行都看左边

      对于成员方法来说:编译看左边,运行看右边

      向下转型:

      转换的是引用而已,指向的对象不变。引用中的地址不变。

    15. Java没有语法意义上真正的多继承,但有实际意义上的多继承?这句花怎么理解?通过接口如何实现?

      因为接口可以多继承,接口就是为了拓展功能。 实际意义上,接口可以让类继承多个接口的方法。

      实际上实现了多继承。通过内部类也可以实现多继承

    talk is cheap,write and optimize my code。
  • 相关阅读:
    eclipse插件egit安装使用
    github 项目版本控制
    div box container随主体内容自动扩展适应的实现
    持续构建与每日集成
    Xshell连接Linux下Oracle无法回退的解决办法
    Java Data JPA +hibernate 保存或者是查询遇到的坑
    C#控件DropDownList下拉列表默认打开
    window.open居中显示
    CSV文件转JSON
    Vue自定义事件,$on(eventName) 监听事件,$emit(eventName) 触发事件
  • 原文地址:https://www.cnblogs.com/xiongzk/p/14269149.html
Copyright © 2020-2023  润新知