• 常见Java面试练习题回答


    1、int和Integer之间的区别,并概述Integer缓存原理
    int是Java的一种基本类型,其默认值是0
    integer是int的包装类,integer变量必须是实例化才能使用,默认值是null

    2、==和equals的区别
    ==:比较的是值是否相等:对于引用类型,比较地址是否相等
    equals;比较的是对象是否相等,不能比较基本数据类型

    3、概述面向对象的三大特征
    (1)封装:隐藏具体的实现细节,对外提供调用接口,private 当前类内可见,默认同包可见,protected同包或者子类可见
    public到处可见。
    (2)继承:代码重用,批判继承,继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或者
    新的功能,也可以用父类功能,但不能选择性继承父类。继承是is-a的相互关系,class子类 extends父类
    继承是一种强耦合关系。
    (3)多态:调用同名方法,但是具体的操作逻辑不同
    有继承,父类定义方法,子类重写方法
    父类的引用指向子类的对象
    可以使用参数传递时多态,可以直接创建对象时多态
    父类obj=new子类();
    编译期类型和运行时类型


    4、使用static修饰属性或方法后,属性和方法有什么特征
    在类加载时被初始化,static修饰的属性或方法,可以直接使用类名调用,而不用先实例化对象再调用。


    5、比较静态内部类、非静态内部类、局部内部类和匿名内部类四种内部类
    (1)静态内部类:定义在外部类中的另一个完整类结构只可以在静态内部类中使用外部类的静态成员
    在外部类的外面不需要通过外部类的对象就可以创建静态内部类的对象
    如果在内部类中有变量与外部类的静态成员变量同名,可以使用“外部类名."进行区别
    静态内部类中,可以有静态数据、静态方法或者又一个静态内部类
    (2)非静态内部类:定义在外部类中的另一个完整的类结构
    可允许四种修饰符:public,protected,private,缺省。
    在非静态内部类中使用外部类中的所有成员,包括私有。
    在外部类的静态成员不可以使用非静态内部类。
    在外部的外面必须通过外部类的对象才能创建非静态内部类的对象
    创建非静态内部类对象时,一定要先创建相应的外部类对象
    (3)局部内部类;可以将内部类定义在一个方法或着一个代码块内,不能有权限修饰符,有作用域
    ,靠方法访问外部类的静态或非静态的成员,用final声明的局部变量
    (4)匿名内部类;匿名内部类就是内部类的简写格式,没有名字,没有构造函数

    6.创建一个类,为该类定义三个构造函数,分别执行下列操作: 
      a.传递两个整数值并找出其中较大的一个值
      b.传递三个double值并求出其乘积
      c.传递两个字符串的值并检查其是否相等。

    1. class Test {
    2. Test(int a,int b){
    3. if(a>b)
    4. System.out.println(a);
    5. else
    6. System.out.println(b);
    7. }
    8. Test(double x,double y,double z){
    9. System.out.println(x*y*z);
    10. }
    11. Test(String zjh1,String zjh2){
    12. if(zjh1.equals(zjh2))
    13. System.out.println("是");
    14. else
    15. System.out.println("否");
    16. }
    17. }
    1. public class Test1 {
    2. public static void main(String[] args) {
    3. Scanner sc=new Scanner(System.in);
    4. int a=sc.nextInt();
    5. int b=sc.nextInt();
    6. Test s1=new Test(a,b);
    7. double x=sc.nextDouble();
    8. double y=sc.nextDouble();
    9. double z=sc.nextDouble();
    10. Test s2=new Test(x,y,z);
    11. String zjh1=sc.next();
    12. String zjh2=sc.next();
    13. Test s3=new Test(zjh1,zjh2);
    14. sc.close();
    15. }}

  • 相关阅读:
    一键批量按比例修改视频尺寸:视频剪辑软件使用技巧
    如何在本地创建一个贪吃蛇小游戏node.js服务并实现无公网IP远程游玩
    wireshark 中无线帧的类型和过滤规则对照表
    关于第一方数据,你必须要知道的三件事
    SpringBoot启动流程源码分析
    软件测试面试中90%会遇到的问题:“你会搭建测试环境吗?”
    java虚拟机详解篇二(类字节码详解)
    meterpreter后期攻击使用方法
    大结局!OpenAI创始人奥特曼和 Greg Brockman 将加入微软!!!
    Nginx学习(在 Docker 中使用 Nginx)
  • 原文地址:https://blog.csdn.net/zjh0101/article/details/126236130