自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 Java的反射机制

Java的反射机制基本定义:(1)对于任意一个类,都能知道该类的任意属性和方法;(2)对于任意一个对象,都能调用该对象的任意属性和方法。常用方式:(1)获取Class对象;(2)实例化一个对象;(3)获取一个类的父类或者接口(单继承,多实现);(4)获取类中的所有属性;(5)获取类中的所有方法;(6)调用类中的任意一个方法。更进一步理解,可参看下面的Java代码:在这里插入...

2020-03-26 19:58:09 78

原创 Hashtable,HashMap,ConcurrentHashMap的原理和区别

(1)HashMap不是线程安全的,不支持并发操作,没有同步方法。ConcurrentHashMap是线程安全的,支持并发操作,通过继承 ReentrantLock(JDK1.7的重入锁)/CAS和synchronized(JDK1.8的内置锁)来进行加锁(分段锁),每次需要加锁的操作锁住的是一个 segment,这样只要保证每个 segment 是线程安全的,也就实现了全局的线程安全。(2)J...

2020-03-26 11:11:17 553

原创 《剑指Offer》(43)1~n整数中1出现的次数

题目:输入一个整数n,求1~n这n个整数的十进制表示中1出现的次数。例如:输入12,1~12这些整数中包含1的数字有1、10、11和12,1一共出现了5次。设N = abcde ,其中abcde分别为十进制中各位上的数字。如果要计算百位上1出现的次数,它要受到3个方面的影响:百位上的数字(c),百位以下(低位)的数字(de),百位以上(高位)的数字(ab)。① 如果百位上数字为0,百位上可...

2020-03-24 17:45:24 123

原创 《剑指Offer》(41)数流中的中位数及Java的优先队列PriorityQueue

题目:如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。Java中的优先队列PriorityQueuePriorityQueue基于优先级堆,它实现了Queue接口,可以对集合中的元素进行排序,在JDK1.5中引入。该集合内可以存放基本数据类型对象包装类(如...

2020-03-23 16:36:29 213

原创 Java实现堆排序

堆排序及图解对于一个长度为n的数组R(n)={r[0],r[1],…,r[n-1]}。大顶堆(最大堆):r(i)>=r(2i+1)且r(i)>=r(2i+2),堆顶元素必为最大值,用于升序;小顶堆(最小堆):r(i)<=r(2i+1)且r(i)<=r(2i+2),堆顶元素必为最小值,用于降序。堆排序主要包括两个过程:(1)构建堆(从最后一个非叶子节点开始,即序号为n...

2020-03-22 17:57:00 129

原创 计算机网络总结

1. OSI网络模型与TCP/IP网络模型(1)OSI网络模型OSI七层模型功能TCP/IP协议族应用层文件传输,文件服务,电子邮件,虚拟终端FTP(文件传输协议),DNS(域名系统),HTTP(超文本传输协议)等表示层代码转换,数据加密,数据格式化没有协议会话层建立或解除与别的接点的联系没有协议传输层提供端对端的接口TCP(传输控制协议...

2020-03-22 12:37:29 519

原创 String,StringBuffer,StringBuilder的区别

1. String:String对象一旦创建,其值是不能修改的(因为String类是被final关键字修饰的类),如果要修改,则会重新开辟内存空间来存储修改后的对象,即修改了String类的引用(生成一个新的String对象,但是原String对象是没有被改变的)。这是因为String类的底层是通过数组来存值的,数组长度不可变这一特性导致了上述问题。如果我们在实际开发中需要对某个字符串进行频繁地...

2020-03-18 09:00:41 68

转载 SQL经典题目

常见SQL面试题补充:SQL的top N问题SQL行列转换问题

2020-03-16 18:47:56 108

原创 SQL中的内联结和外联结

内联结:当需要查询2张表中同时存在的数据(返回在两张表中所有正确关联的行);左外联结或右外联结:需要查询2张表中在一张表存在,而在另一张表不存在的数据。内联结的查询结果都是满足连接条件的元组。但有时我们也希望输出那些不满足联结条件的元组信息。比如,我们想知道每个学生的选课情况,包括已经选课的学生(这部分学生的学号在学生表中有,在选课表中也有,是满足联结条件的),也包括没有选课的学生(这部分学生...

2020-03-16 17:41:59 1742

转载 数据库的脏读,幻读,不可重复读

数据库的脏读,幻读,不可重复读

2020-03-15 11:31:29 168

转载 动态演示揭秘“红黑树”,简单易懂!

红黑树,超强动静图详解,简单易懂

2020-03-12 21:46:35 173

原创 《剑指Offer》(33)二叉搜索树的后序遍历序列

题目:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果,如果是则返回true,否则返回false。假设输入的数组的任意2个数字互不相同。二叉搜索树(二叉排序树,二叉查找树)的特点:(1)如果左子树不空,那么左子树上所有结点的值都小于它的根结点的值;(2)如果右子树不空,那么右子树上所有结点的值都大于它的根结点的值;(3)左、右子树也分别是二叉搜索树。在后序遍历(左子树-&gt...

2020-03-12 19:12:16 76

原创 《剑指Offer》(32)之字形打印二叉树

题目:请实现一个函数按照之字形顺序打印二叉树,即第一层按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三层再按照从左到右的顺序打印,其他行以此类推。使用两个栈(后入先出)来实现。import java.util.ArrayList;import java.util.*;/*public class TreeNode//节点类{ int val = 0;//根节点的值 ...

2020-03-12 17:02:30 63

原创 《剑指Offer》(32)分行从上到下打印二叉树

题目:从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。从上到下按层打印二叉树,其实就是二叉树的层序遍历,也可以说是广度优先遍历(DFS)二叉树。当遇到广度优先遍历一个有向图或者一棵二叉树时,首先要想到的就是队列(先入先出)这种数据结构。首先遍历二叉树的树根,并将根结点添加到队列尾部,然后从队列头部取出一个节点打印出来,并将其左、右子结点依次添加到队列尾部。接下来,每次...

2020-03-07 19:36:53 113

原创 Java虚拟机(JVM)原理与特性

Java虚拟机的主要作用是从软件层面上屏蔽不同操作系统在底层硬件与指令上的区别,使得Java语言具有很好的跨平台性。完整的Java虚拟机由三部分组成:类装载子系统、运行时数据区(Java内存区域)、字节码执行引擎。一、Java内存区域与内存溢出异常1. 运行时数据区域(Java内存模型)1.1 程序计数器(Program Counter Register)程序计数器是当前线程所执行的字节码...

2020-03-07 17:23:16 615

原创 《剑指Offer》(31)栈的压入、弹出序列

题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序,假设压入栈的所有数字不相等,且压入序列和弹出序列的长度相等。通过ArrayList类来模拟堆栈工作原理,其中ArrayList类的常用方法如下:返回值类型方法booleanadd(E e):将指定元素添加到集合的尾部Eremove(int index ):移除此集合中指定位置...

2020-03-04 20:13:06 98

原创 《剑指Offer》(27)二叉树的镜像

题目:请完成一个函数,输入一棵二叉树,该函数输出它的镜像。通过画图,我们可以很容易地发现,求解一棵二叉树的镜像,其实就是前序遍历(树根->左子树->右子树)其所有的非叶子结点,若遍历到的结点的左右子树均不为空,则交换其左右子树的位置。对二叉树这种数据结构熟悉的读者,自然知道可以用递归的方法去遍历,也可以用循环的方法去遍历。1.通过递归的方法/**public class Tr...

2020-03-02 18:38:07 119

原创 《剑指Offer》(26)树的子结构

题目:输入两棵二叉树A和B,判断B是不是A的子结构(约定空树不是任何一棵树的子结构)。要查找树A中是否存在和树B结构一样的子树,可以分为2步来考虑:第一步,对树A进行层序遍历,在树A中找到和树B中的根结点的值相等的结点N;第二步,如果在树A中找到了和树B中的根结点的值相等的结点N,则继续判断树A中以结点N为根结点的子树是否包含和树B一样的结构,即判断树A中以结点N为根节点的左子结点的值和右子结点...

2020-03-01 17:47:28 83

空空如也

空空如也

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

TA关注的人

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