自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 资源 (1)
  • 收藏
  • 关注

原创 红黑树原理

什么是红黑树 红黑树是带有着色性质的二叉查找树。 性质如下: ① 每一个节点或者着成红色或者着成黑色。 ② 根节点为黑色。 ③ 每个叶子节点为黑色。(指的是指针指向为NULL的叶子节点) ④ 如果一个节点是红色的,那么它的子节点必须是黑色的。 ⑤ 从一个节点到一个NULL指针的每一条路径必须包含相同数目的黑色节点。 推论: 有n个节点的红黑树的高度最多是2log(N+1) 。 红黑树旋转操作...

2019-07-15 10:53:18 195

原创 225. 用队列实现栈

使用队列实现栈的下列操作: push(x) -- 元素 x 入栈 pop() -- 移除栈顶元素 top() -- 获取栈顶元素 empty() -- 返回栈是否为空 注意: 你只能使用队列的基本操作-- 也就是push to back, peek/pop from front, size, 和is empty这些操作是合法的。 你所使用的语言也许不支持队列。你可以使用 list 或者...

2019-07-14 23:06:13 133

原创 232. 用栈实现队列

使用栈实现队列的下列操作: push(x) -- 将一个元素放入队列的尾部。 pop() -- 从队列首部移除元素。 peek() -- 返回队列首部的元素。 empty() -- 返回队列是否为空。 示例: MyQueue queue = new MyQueue(); queue.push(1); queue.push(2); queue.peek(); // 返回 1 queue....

2019-07-14 22:51:49 114

原创 20. 有效的括号

给定一个只包括 '(',')','{','}','[',']'的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 示例 1: 输入: "()" 输出: true 示例2: 输入: "()[]{}" 输出: true 示例3: 输入: "(]" 输出: false 示例4: 输...

2019-07-14 20:07:13 119

原创 24. 两两交换链表中的节点

给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 示例: 给定 1->2->3->4, 你应该返回 2->1->4->3. 解题思路:设置一个辅助头结点,交换两个节点的位置,需要操作三个节点,所以每次操作三个节点。 /** * Definition for ...

2019-07-14 20:04:50 112

原创 206. 反转链表

反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 解题思路:设置三个指针,pre,cur,next,遍历所有节点,依次将所有节点的后继节点指向前一个节点。 public class Solution { public ListNode reverseLi...

2019-07-14 19:28:56 95

原创 JVM内存结构

所有的Java开发人员可能会遇到这样的困惑?我该为堆内存设置多大空间呢?OutOfMemoryError的异常到底涉及到运行时数据的哪块区域?该怎么解决呢?其实如果你经常解决服务器性能问题,那么这些问题就会变的非常常见,了解JVM内存也是为了服务器出现性能问题的时候可以快速的了解那块的内存区域出现问题,以便于快速的解决生产故障。 先看一张图,这张图能很清晰的说明JVM内存结构布局。 Ja...

2019-07-13 11:20:30 100

原创 类加载机制

1、什么是类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。类的加载的最终产品是位于堆区中的Class对象,Class对象封装了类在方法区内的数据结构,并且向Java程序员提供了访问方法区内的数据结构的接口。 类加载器并不需要等到某个类被“首次主动使...

2019-07-13 11:18:20 103

原创 HashMap面试

本文准备从以下几个方面去讲解HashMap: 1)HashMap源码详细分析 2)HashMap为什么是线程不安全的? 3)HashMap和HashTable的区别 4)1.7和1.8的HashMap实现区别总结 HashMap源码分析 一、构造函数 让我们先从构造函数说起,HashMap有四个构造方法,别慌 1.1 HashMap() // 1.无参构造方法、 // ...

2019-07-12 21:56:52 493

原创 ArrayList面试

ArrayList的底层数据结构是数组,具有索引,所以它的特点是:查询效率高,但增加和删除元素效率比较低。 ArrayList实现了List接口,RandomAccess接口,cloneable接口,serializeable接口。其中实现这个RandomAccess接口,证明其具有随即快速访问能力。 因为其底层数据结构是数组,所以它是有长度的。如果超出这个长度就会触发扩容机制,这个扩容机制是...

2019-07-11 22:59:34 664

原创 java反射原理

java反射就是将一个类的各个组成部分封装为其他的对象。 获取Class对象的三种方式: ①Class.forName("全类名"):多用于配置文件,将类定义在配置文件当中,通过读取配置文件,加载类。 ②类名.class:多用于参数的传递。 ③对象.getClass():多用于通过对象获取该对象的字节码。 我们已经知道,main()方法是程序的入口。那是不是在main()方...

2019-07-02 17:27:03 144

原创 java不常见的知识点

1、变量进制表示: 二进制:以0b开头 八进制:以0开头 十六进制:以0x开头 2、方法区里存放什么 源代码 类信息 静态变量 静态方法 字符串常量池 3、Integer的缓存机制 Integer在[-128,127]之间的数会缓存,实际是在系统初始化的时候就会创建一个cache数组存放-128到127,其类型为Integer。在调用valueOf的时候,首先会看是否在-12...

2019-07-02 16:26:25 186

文件上传jar包

封装了javaweb文件上传技术的jar包,该jar包可以做到一步上传文件,非常方便,欢迎大家共同探讨

2019-01-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除