Java 基础

1、Java 基础

  • Java 的三大特性:封装、继承、多态

  • Java 语言的特点:平台无关性、面向对象、简单实用、多线程、安全可靠等

  • Java 的基本数据类型:byte、short、int、double、float、long、boolean、char

  • ==equals 的区别?

    • == 比较的是两个对象的内存地址是否相同
    • equals 对于基本数据类型比较的是内存地址,对于复杂数据类型比较的是值。
  • Java 中的 Math.round(-1.5) 等于多少?

    • 答:-1round() 是在原数值的基础上加 0.5 ;向下取整。
  • String 属于基础的数据类型吗?

    • 答: 不属于。 String 内部是final 修饰的字符数组。
  • Java 中操作字符串都有那些类?有什么区别?

    • 答: String、StringBuffer、StringBuilder ;
      • 三者都是使用final修饰的类,不能被继承。
      • String中的字符数组使用final修饰,线程安全;StringBuffer中的方法使用synchronized修饰,线程安全;StringBuilder 线程不安全。
  • 普通类和抽象类有什么区别?

    • 修饰符:抽象类使用abstract修饰
    • 抽象方法:抽象类可以包含抽象方法,普通类不能有抽象方法。
    • 实例化:抽象类不能直接实例化
  • 什么是抽象方法?

    • 抽象方法必须写在抽象类中,抽象方法的方法名使用abstract修饰,没有方法体。
  • 抽象类和接口对比?

    • 类名修饰符:abstract、interface
    • 是否实例化:都不可以实例化
    • 继承性:(类)单继承,(接口)多实现
    • 构造器和方法:抽象类可以有构造器、抽线和非抽象方法;接口只能有抽象方法。
  • 抽象类可以用final修饰吗?

    • 不可以
  • 重写与重载

    • 重写:发生在子类继承父类。重写父类的方法体。
    • 重载:发生在同一类中。方法名相同,参数列表不同,与返回值无关。
  • String s=new String("ab");创建了几个对象?

    • 创建了两个对象。常量池中创建“ab”,堆或栈中创建字符串对象“ab”。
  • 深拷贝 和 浅拷贝

    • 浅拷贝:对基本数据类型进行值传递,对引用数据类型进行引用传递般的拷贝,此为浅拷贝。(Java方法的参数都是浅拷贝
    • 深拷贝:对基本数据类型进行值传递,对引用数据类型,创建一个新的对象,并复制其内容,此为深拷贝。