zoukankan      html  css  js  c++  java
  • java基础系列(四):基础知识点之间的区别

    持续更新中。。。。

    1.String,StringBuffer与StringBuilder的区别?

      String底层是final修饰的byte数组,属于不可变的对象,但是可以通过反射改变它的值。操作String时会生成新的String对象,不仅效率低下,而且会浪费有限的内存空间。为了应对经常的字符串操作,就引入了StringBuilder类和StringBuffer类。

      StringBuilder与StringBuffer类的方法和功能完全是等价的,都继承于AbstractStringBuilder。StringBuffer是线程安全的,里面的方法大都采用synchronized关键字进行修饰。StringBuilder不是线程安全的。StringBuilder和StringBuffer的字符操作都是通过调用System.arraycopy()来实现的,String的方法是通过new 一个新对象来实现的。三者的速度上:StringBuilder>StringBuffer>String。

    2.Round,ceil与floor函数的区别?

       round方法,在Math中有重载的,一个参数是float,一个是double,对应返回int和long值。返回值是当前值+0.5向下取整(-0.5 ---> 0);ceil方法,没有重载,参数就是double,返回值也是double,但是这个时候就有区别了,向上取整(-0.5 ---> -0.0),注意一下,负号是保留的,和round有区别的; floor方法,和ceil一样,没有重载,参数和返回值都是double,向下取整(-0.5 --> -1.0)。

    3.System.arraycopy(), clone()和Arrays.copyOf的效率比较?

      arraycopy()是本地方法,clone()也是本地方法,Arrays.copyOf()底层调用的是arraycopy()方法,效率比较:System.arraycopy>clone>Arrays.copyOf()

    4.==,obj.equals()和Arrays.equals()方法的比较?

      == 比较的是变量(栈)内存中存放的对象的(堆)内存地址,用来判断两个对象的地址是否相同,即是否是指相同一个对象。比较的是真正意义上的指针操作。equals用来比较的是两个对象的内容是否相等,由于所有的类都是继承自java.lang.Object类的,所以适用于所有对象,如果没有对该方法进行覆盖的话,调用的仍然是Object类中的方法,而Object中的equals方法返回的却是==的判断。所以一般可以重写equals方法, 选取"内容"进行比较。

    5.类的修饰符的作用范围

     6.接口和抽象类

    接口:

    1. 可以多继承(extends)
    2. 变量类型默认且只能为public static final,可以被继承
    3. 函数默认类型为public abstract,可以被 default修饰,且default只能用在接口中,有方法体,可以被继承,不可以被重写,可以有静态成员函数,但是静态函数不能被继承
    4. 没有构造器,可以new一个接口(匿名函数)
    5. 接口的修饰符可以默认不写和public,普通类的修饰符也是public和不写

    抽象类:

    1. 跟普通类一样,除了是由abstract修饰
    2. 子类可以不覆写父类的抽象方法,但是子类也要声明成抽象类
    3. 可以有构造器,但是不可以new一个抽象类

    7.文件名与类名的关系

      一个文件中可以有多个类,如果没有public类,则可以与任意类名相同,如果有public类则文件名必须与此类名相同,因为一个文件中只能有一个public类。如果文件中只有一个类,则文件名不必与类名相同。

  • 相关阅读:
    Redis配置文件的使用
    WEB请求处理一:浏览器请求发起处理
    Nginx配置文件(nginx.conf)配置详解
    【node】------mongoose的基本使用
    Promise.resolve()与new Promise(r => r(v))
    promise是什么?
    apiDoc
    apiDoc 使用指南
    微信小程序-性能与体验优化
    微信小程序-调取上一页的方法
  • 原文地址:https://www.cnblogs.com/amazing-eight/p/13257295.html
Copyright © 2011-2022 走看看