面试
张糖糖
呵呵哒 哇咔咔 嘻嘻哈
展开
-
红黑树的性质
红黑树是一颗二叉搜索树,它在每个结点上增加了一个存储位来表示结点的颜色,可以是RED或BLACK。通过对任何一条从根到叶子结点的简单路径上各个结点的颜色进行约束,红黑树确保没有一条路径会比其他路径长出2倍。因而是近似于平衡的。树中每个结点包含5个属性: color、key、left、 right和p。如果一个结点没有子结点或父结点,则该结点相应指针属性的值为NIL。我们可以把这些NIL视为指向二又搜索树的叶结点(外部结点)的指针,而把带关键字的结点视为树的内部结点。一棵红黑树是满足下面红黑性质的二又原创 2020-09-07 14:09:47 · 129 阅读 · 0 评论 -
HashSet、TreeSet和LinkedHashSet
HashSetHashSet有以下特点 不能保证元素的排列顺序,顺序有可能发生变化 不是同步的 集合元素可以是null,但只能放入一个null当向HashSet集合中存入一个元素时,HashSet会调用该对象的hashCode()方法来得到该对象的hashCode值,然后根据 hashCode值来决定该对象在HashSet中存储位置。简单的说,HashSet集合判断两个元素相等的标准是两个对象通过equals方法比较相等,并且两个对象的hashCode()方法返回值相 等注意,如果要把一原创 2020-09-04 18:58:01 · 521 阅读 · 0 评论 -
ArrayList、LinkedList和Vector
ArrayList、 LinkedList 和 Vector都实现了List接口,是List的三种实现。ArrayList底层是用数组实现的。可以认为ArrayList是一个可改变大小的数组。随着越来越多的元素被添加到ArrayList中,其规模是动态增加的。LinkedList底层是通过双向链表实现的。所以,LinkedList和ArrayList之前的区别主要就是数组和链表的区别。所以,LinkedList和ArrayList相比,增删的速度较快。但是查询和修改值的速度较慢。同时,Linke原创 2020-09-04 18:52:40 · 795 阅读 · 0 评论 -
Java中的Queue
Queue是 java.util 包下的一个接口Interface Queue<E>父接口:Collection <E>、 Iterable <E>所有子接口:BlockingDeque <E>, BlockingQueue <E>, Deque <E>, TransferQueue <E>所有实现类:AbstractQueue , ArrayBlockingQueue , ArrayDequ..原创 2020-09-04 17:58:18 · 144 阅读 · 0 评论 -
Java中的Set
Set是 java.util 包下的一个接口Interface Set<E>父接口:Collection <E>、 Iterable <E>所有子接口:NavigableSet <E>, SortedSet <E>所有实现类:AbstractSet , ConcurrentHashMap.KeySetView , ConcurrentSkipListSet , CopyOnWriteArraySet , EnumSe..原创 2020-09-04 17:55:26 · 133 阅读 · 0 评论 -
Java中的List
List是 java.util 包下的一个接口Interface List<E>父接口:Collection <E>、 Iterable <E>实现类:AbstractList 、 AbstractSequentialList 、 ArrayList 、 AttributeList 、 CopyOnWriteArrayList 、 LinkedList 、 RoleList , RoleUnresolvedList 、 Stack 、 Vector..原创 2020-09-04 17:51:15 · 128 阅读 · 0 评论 -
Java集合
1.集合的由来通常,我们的程序需要根据程序运行时才知道创建多少个对象。但若非程序运行,程序开发阶段,我们根本不知道到底需要多少个数量的对象,甚至不知道它的准确类型。为了满足这些常规的编程需要,我们要求能在任何时候,任何地点创建任意数量的对象,而这些对象用什么来容纳呢?我们首先想到了数组,但是数组只能放统一类型的数据,而且其长度是固定的,那怎么办呢?集合便应运而生了!2.集合的特性Java集合类存放在java.util包中,是一个用来存放对象的容器。集合只能存放对象。比如你存入一个int型数据原创 2020-09-04 17:29:44 · 71 阅读 · 0 评论 -
Java 集合
https://www.runoob.com/java/java-collections.html原创 2020-09-04 00:43:27 · 77 阅读 · 0 评论 -
ArrayList和Array
(1)ArrayList是Array的复杂版本ArrayList内部封装了一个Object类型的数组,从一般的意义来说,它和数组没有本质的差别,甚至于ArrayList的许多方法,如Index、IndexOf、Contains、Sort等都是在内部数组的基础上直接调用Array的对应方法。(2)存储的数据类型ArrayList可以存储异构对象,而Array只能存储相同数据类型的数据。(3)长度的可变Array的长度实际上是不可变的,二维变长数组实际上的长度也是固定的,可变的只是其中元素的原创 2020-09-04 00:39:38 · 203 阅读 · 0 评论 -
拆箱和装箱
https://www.cnblogs.com/wang-yaz/p/8516151.html原创 2020-09-04 00:16:38 · 68 阅读 · 0 评论 -
String、StringBuffer和StringBuilder
三者的区别1、Stringbuilder和 Stringbuffer非常类似,均代表可变的字符序列,而且方法也一样String:不可变字符序列 String Buffer:可变字符序列、效率低、线程安全 Stringbuilder(JDK1.5):可变字符序列、效率高、线程不安全2.String使用陷阱:string s="a";∥创建了一个字符串s=s+"b";∥/实际上原来的"a"字符串对象已经丢弃了,现在又产生了一个字符串s+"b"(也就是"ab")。如果多次执行这些...原创 2020-09-04 00:04:20 · 76 阅读 · 0 评论 -
int和Integer
1、Integer是int的包装类,int则是java的一种基本数据类型2、Integer变量必须实例化之后才能使用,而int变量不需要3、Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值 。4、Integer的默认值是null,int的默认值是05、Integer 是一个类,是int的扩展,定义了很多的转换方法。...原创 2020-09-03 23:52:34 · 255 阅读 · 0 评论 -
&和&&的区别
1.Java中&&和&都是表示与的逻辑运算符,都表示逻辑运输符and,当两边的表达式都为true的时候,整个运算结果才为true,否则为false。2.&&的短路功能,当第一个表达式的值为false的时候,则不再计算第二个表达式;&则两个表达式都执行。3.&可以用作位运算符,当&两边的表达式不是Boolean类型的时候,&表示按位操作。...原创 2020-09-03 23:42:20 · 512 阅读 · 0 评论 -
Java中如何跳出当前多层循环
1. break、continue、return 的区别:break默认是跳出最里层的循环,也就是break所在的最近的那层循环continue是终止本次循环,继续下次循环return 结束当前方法2. 如何跳出多层循环思路:对每一层设置标志位,设置方法---变量名:注意这里的冒号至关重要for (int i = 0; i < 3; i++) { for1: for (int j = 0; j <3; j++) {原创 2020-09-03 23:36:41 · 838 阅读 · 0 评论 -
Java和JavaScript
一般认为,当时 Netscape 之所以将 LiveScript 命名为 JavaScript,是因为 Java 是当时最流行的编程语言,带有 "Java" 的名字有助于这门新生语言的传播。它们的相同之处包括:它们的语法和 C 语言都很相似; 它们都是面向对象的(虽然实现的方式略有不同); JavaScript 在设计时参照了 Java 的命名规则;它们的不同之处包括:JavaScript 是动态类型语言,而 Java 是静态类型语言; JavaScript 是弱类型的,Java 属于强原创 2020-09-03 23:28:02 · 184 阅读 · 0 评论 -
Java中的正则表达式
正则表达式定义了字符串的模式。正则表达式可以用来搜索、编辑或处理文本。正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。更多https://www.runoob.com/java/java-regular-expressions.html...原创 2020-09-03 23:22:44 · 62 阅读 · 0 评论 -
Java和C++的区别
1.Java是解释型语言,所谓的解释型语言,就是源码会先经过一次编译,成为中间码,中间码再被解释器解释成机器码。对于Java而言,中间码就是字节码(.class),而解释器在JVM中内置了; C++是编译型语言,所谓编译型语言,就是源码一次编译,直接在编译的过程中链接了,形成了机器码。2.C++比Java执行速度快,但是Java可以利用JVM跨平台。3.Java是纯面向对象的语言,所有代码(包括函数、变量)都必须在类中定义。而C++中还有面向过程的东西,比如是全局变量和全局函数。4....转载 2020-09-03 23:01:30 · 2263 阅读 · 0 评论