- 博客(7)
- 收藏
- 关注
原创 剑指offer面试题7:重建二叉树
题目:输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如,输入前序遍历序列{1,2, 4, 7,3, 5, 6, 8}和中序遍历序列{4, 7,2, 1,5,3,8,6},则重建如图2.6所示的二叉树并输出它的头节点。 package JianZhiOffer; /** * 重建二叉树 * 输入某二叉树的前序遍历和中序遍历的结果,请重建该而擦函数。 * 假设输入的前序遍历和中序遍历的结果中不含重复的数字 */ clas..
2020-08-17 13:25:00 191
原创 生产者消费者问题阻塞队列实现
package InterView; import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.BlockingQueue; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; class MyResources{ private volatile boolean flag =.
2020-08-12 13:07:59 241
转载 java中序列化实现原理深入代码
1.什么是序列化和反序列化 序列化 是指将Java对象保存为二进制字节码的过程。 反序列化 将二进制字节码重新转成Java对象的过程。 2.为什么序列化 我们知道,一般Java对象的生命周期比Java虚拟机短,而实际的开发中,我们需要 在Jvm停止后能够继续持有对象,这个时候就需要用到序列化技术将对象持久到磁盘或数据库。 在多个项目进行RPC调用的,需要在网络上传输JavaBean对象。我们知道数据只能以二进制的 形式才能在网络上进行传输。所以也需要用到序列化技术。 3.序列化的底层原理
2020-08-08 11:56:51 298 1
原创 static静态代码块、普通匿名代码块、构造方法的执行顺序
一、static静态代码块、普通匿名代码块、构造方法的执行时间 static静态代码块:随着类的加载而执行,只执行一次 普通匿名代码块:随着对象的创建而执行,每new一次对象执行一次。 构造方法:在创建对象的时候,new对象的时候执行。 二、一个对象创建的过程(简单描述,默认对象的类以及被加载到内存中) Student stu= new Student(); 这一句的执行过程: 1、在栈区开辟空间保存引用 stu 2、在堆区开辟空间保存实际数据 (给对象在...
2020-08-04 10:17:58 1081
转载 浏览器输入url访问的过程
前言 当我们在浏览器中输入一个网址,比如www.google.cn,浏览器就会加载出百度的主页。那么浏览器背后完成的具体是怎么样的呢? 总结起来大概的流程是这样的: (1)浏览器本身是一个客户端,当你输入URL的时候,首先浏览器会去请求DNS服务器,通过DNS获取相应的域名对应的IP (2)然后通过IP地址找到IP对应的服务器后,要求建立TCP连接 (3)浏览器发送完HTTP Request(请求)包后,服务器接收到请求包之后才开始处理请求包 (4)在服务器收到请求之后,服务器调用自身服务,返回HTTP
2020-08-02 21:37:14 4929
原创 二分查找
package search; import java.util.ArrayList; public class BinarySearch { public static void main(String[] args) { int[] arr = {1,1,1,1,8,10,89,89,1000,1000,1000,1234}; System.out.println(binarySearch(arr,0,arr.length-1,11)); .
2020-08-02 08:41:52 97
原创 基数排序
基数排序思路: 将所有待比较数值统一为同样的数位长度,数位较短的数前面补零,然后从最低位开始,依次进行一次排序。这样从最低位排序一直到最到位排序完成以后,数列就变成了一个有序序列。 我以一个数组为例: import java.util.Arrays; public class RadixSort { public static void main(String[] args) { int[] arr = {53,3,542,748,...
2020-08-01 18:47:01 125
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人