zoukankan      html  css  js  c++  java
  • java基础

    oop的思想

    重载和重写的区别

      重载发生于一个类中,若该一个方法和另一个方法同名但参数列表不同,则视为重载。重写发生于继承关系两个类中,子类的方法名和父类的方法名、参数列表、返回类型与父类一致,则视为对父类方法的重写。

    String类型的几种存储方式,是否是线程安全的,两个字符串相加是否是新的实例

      String类型可以存储在java堆空间的字符串常量池中,或者在堆空间中。String类用final修饰,是不可变类,所以String是线程安全的。两个字符串相加会创建新的实例。

    String、StringBuilder、StringBuffer有什么区别

      它们的区别是,String被final修饰,底层是一个final修饰的char数组,是不可变的对象,每次操作必然产生一个新的对象。StringBuffer 和 StringBuilder 不同,它们俩能够被多次修改,并且不产生新的对象。StringBuilder 是 Java 1.5 时新增的,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的,不能同步访问。而StringBuffer给方法加上了同步锁,所以它保证了线程安全

    String为什么是fianl的

      因为fianl修饰String保证String不会有子类。如果不是fianl的话,String的子类就可能重写String的方法,破坏String某一个方法的行为,导致线程安全问题。

    ==和equals方法的区别

      如果==两边的是基本类型,那么比较的就是他们的值,如果是引用类型,则比较的是他们的地址值

      equals方法是Object类的方法,所有类都继承Object,所以所有类都有equals方法,在没有重写equals()方法的类中,调用equals()方法其实和使用==的效果一样,也是比较的是引用类型的变量所指向的对象的地址,我们可以对equals方法进行重写来比较他们的值。

    final关键字的作用

    • 被final修饰的类不可以被继承
    • 被final修饰的方法不可以被重写
    • 被final修饰的变量不可以被改变.如果修饰引用,那么表示引用不可变,引用指向的内容可变.
    • 被final修饰的方法,JVM会尝试将其内联,以提高运行效率
    • 被final修饰的常量,在编译阶段会存入常量池中.

    int和Integer的区别

      Integer是int的包装类型,在拆箱和装箱中,二者自动转换。int是基本类型,直接存数值,可以直接使用。integer是对象,必须实例化后才能使用。Integer的默认值是null,int的默认值是0。

    在 Queue 中 poll()和 remove()有什么区别?

      poll() 和 remove() 都是从队列中取出一个元素,但是 poll() 在获取元素失败的时候会返回空,但是 remove() 失败的时候会抛出异常。

    什么是内存泄漏

      内存泄漏发生在堆内存中,指由于疏忽或错误造成程序未能释放已经不再使用的内存的情况。内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,失去了对该段内存的控制,因而造成了内存的浪费

    为什么会产生内存泄漏

      当一个对象已经不需要再使用本该被回收时,另外一个正在使用的对象持有它的引用从而导致它不能被回收,这导致本该被回收的对象不能被回收而停留在堆内存中,这就产生了内存泄漏。

    内存泄漏产生的场景

      静态集合类

      各种连接,如数据库连接、网络连接和IO连接

      变量不合理的作用域,定义的作用范围大于其使用的作用范围

    java中有内存泄漏吗

      理论上来说,Java有GC垃圾回收机制的不会发生内存泄漏。不再被使用的对象,会被GC自动回收掉,自动从内存中清除。但java还是会有内存泄漏的现象,例如长生命周期的对象持有短生命周期对象的引用就很可能发生内存泄露。当一个对象被存储进HashMap集合中以后,我们如果改变了参与计算hash值的引用,对象修改后的哈希值与最初存储进HashMap集合中时的哈希值就不同了。也会导致无法从HashSet集合中单独删除当前对象,造成内存泄露

    什么是栈溢出

      栈溢出在java中指的就是在运行时数据区域的java虚拟机栈的栈帧超过了栈的深度。当栈帧的局部变量表过大,或者程序的递归次数过多都会导致栈溢出。

    一点一点积累,一点一点蜕变!
  • 相关阅读:
    将多个字典添加到数组输出
    获取字典中的数组
    数组内的元素排序
    1字符串中的world替换为i bookan wisdom2.字符串的相加字符串输出,长度3比较字符串大小4截取字符串5字符串内所有a都替换成A6判断字符串是否以http开头7将字符串内admin和123截取出来8字符添加
    判断是否有前缀后缀
    截取字符串
    大小写
    数据存字典,block排序,删除
    block排序
    描述器 排序(根据属性)
  • 原文地址:https://www.cnblogs.com/qq2210446939/p/15002069.html
Copyright © 2011-2022 走看看