Chen Xingxu Blog

Study Share Communicate

Java基础

StringBuffer和StringBuilder

String StringBuffer 和 StringBuilder 的区别是什么?String 为什么是不可变的? 可变性 简单的来说:String 类中使用 final 关键字修饰字符数组来保存字符串,private final char value[],所以 String 对象是不可变的。 在 Java 9 之后,String 类的实现改用 byte 数组存储字符串 priva...

Java数据结构

空间复杂度分析

Java 数据结构之空间复杂度分析 算法的空间复杂度指算法在运行时所需存储空间的度量,主要考虑在算法运行过程中临时占用的存储空间大小(和时间复杂度一样,以数量级的形式给出)。

Java数据结构

时间复杂度分析

Java 数据结构之时间复杂度分析 对于这部分,要牢记一句话:将算法中基本操作的执行次数作为算法时间复杂度的度量。这里所讨论的时间复杂度不是执行完一段程序的总时间,而是其中基本操作的总次数。因此,对一个算法进行时间复杂度分析的要点,无非是明确算法中哪些操作是基本操作,然后计算出基本操作重复执行的次数即可。你总能找到一个 n,可以称为问题的规模,如果处理的数组元素的个数为 n,而基本操作所执...

Java数据结构

红黑树

Java数据结构之红黑树 红黑树的特点: 每个结点不是红的就是黑的; 根结点总是黑色的; 每个叶子结点都是黑色的空结点(NIL结点); 如果结点是红色的,则它的叶子结点必须是黑色的(反之不一定),即从每个叶子到根的所有路径上不能有两个连续的红色结点; 从根结点到叶子结点或空结点的每条路径,必须包含相同数目的黑色结点(即相同的黑色高度); 红黑树的应用: Tre...

Java基础

Java 中 int 和 Integer 有什么区别?

Java 中 int 和 Integer 有什么区别? 自动装箱与拆箱 装箱:将基本类型用他们对应的引用类型包装起来 拆箱:将包装类型转换为基本数据类型 有了基本类型之后为什么还要有包装器类型呢? 让基本类型具备对象的特征,实现更多的功能。Java 是一个面向对象的编程语言,基本类型并不具有对象的性质,为了让基本类型也具有对象的特征,就出现了包装类型(如我们在使用集合类型...

Java基础

Java 中 hashCode 与 equals

Java 中 hashCode 与 equals 面试官可能会问你:“你重写过 hashCode 与 equals 么,为什么重写 equals 时必须重写 hashCode方法?” hashCode() 介绍 hashCode() 的作用是获取哈希码,也称为散列码;它实际上是返回一个 int 整数。这个哈希码的作用是确定该对象在哈希表中的索引位置。hashCode() 定义在 JDK...

Java基础

Java 中 == 与 equals() 的区别

Java 中 == 与 equals() 的区别 ==:他的作用是判断两个对象的地址是不是相等。即,判断两个对象是不是同一个对象(基本数据类型 == 比较的是值,引用数据类型 == 比较的是内存地址)。 equals():他的作用也是判断两个对象是否相等。但他一般有两种使用情况: 情况一:类没有覆盖 equals() 方法。则通过 equals() 比较该类的两个对象时,等价于通过 =...

Java 面向对象编程三大特性

封装 继承 多态

Java 面向对象编程三大特性:封装 继承 多态 封装 封装是把一个对象的属性私有化,同时提供一些可以被外界访问的属性的方法,如果属性不想被外界访问,我们大可不必提供方法给外界访问。但是如果一个类没有提供给外界访问的方法,那么这个类也没有什么意义了。 继承 继承是使用已经存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承...

Java设计模式

单例模式

设计模式 解决某一类问题最行之有效的方法。 单例模式 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。 简单来说就是:解决...