摘要:
本篇用于轻松记忆+彻底理解二叉树的前中后序遍历之迭代法二叉树的遍历有递归、迭代、Morris 遍历三种方法,其中递归非常简单,而Morris遍历相对复杂,因此,面试中常考察的是手写迭代法,现将二叉树的前中后序遍历的迭代法放在一起,便于理解比较和记忆。 迭代法的核心是: 借助栈结构,模拟递归的过程,需 阅读全文
posted @ 2021-07-16 22:20
一点尘尘
阅读(189)
评论(0)
推荐(0)
摘要:
线程间通信的模型有两种:共享内存和消息传递 方式一:使用 volatile 关键字 基于 volatile 关键字来实现线程间相互通信是使用共享内存的思想,大致意思就是多个线程同时监听一个变量,当这个变量发生变化的时候 ,线程能够感知并执行相应的业务。这也是最简单的一种实现方式 public cla 阅读全文
posted @ 2021-07-16 20:47
一点尘尘
阅读(235)
评论(0)
推荐(0)
摘要:
阅读全文
posted @ 2021-07-16 16:18
一点尘尘
阅读(13)
评论(0)
推荐(0)
摘要:
最近恶补计网,HTTPS涉及到的知识比较多,整理一下。HTTPS实际上就是HTTP穿上了SSL/TLS的外套,我们都知道HTTP属于应用层的协议,是离程序员比较近的,而SSL(安全套接字)与TLS(运输层安全)都属于运输层协议。其实SSL与TLS都是上个世纪的产物,最新版本的TLS建立在SSL 3. 阅读全文
posted @ 2021-07-16 15:31
一点尘尘
阅读(93)
评论(0)
推荐(0)
摘要:
1 端口 :HTTP的URL由“http://”起始且默认使用端口80,而HTTPS的URL由“https://”起始且默认使用端口443。2 安全性和资源消耗: HTTP协议运行在TCP之上,所有传输的内容都是明文,客户端和服务器端都无法验证对方的身份。HTTPS是运行在SSL/TLS之上的HTT 阅读全文
posted @ 2021-07-16 15:28
一点尘尘
阅读(183)
评论(0)
推荐(0)
摘要:
阅读全文
posted @ 2021-07-16 15:23
一点尘尘
阅读(18)
评论(0)
推荐(0)
摘要:
今天力扣上的每日一题是「395. 至少有K个重复字符的最长子串」。 解题思路本题要求的一个最长的子字符串的长度,该子字符串中每个字符出现的次数都最少为 kk。 求最长子字符串/区间的这类题一般可以用滑动窗口来做,但是本题滑动窗口的代码不好写,我改用递归。也借本题来帮助大家理解递归。 重点:我们在调用 阅读全文
posted @ 2021-07-16 14:43
一点尘尘
阅读(399)
评论(0)
推荐(0)
摘要:
133个Java面试问题列表 目录 3 年工作经验的 Java 面试题JVM 底层面试题及答案Java 基本概念面试题Java 集合框架的面试题Java IO 和 NIO 的面试题Java 最佳实践的面试问题Date、Time 及 Calendar 的面试题单元测试 JUnit 面试题编程和代码相关 阅读全文
posted @ 2021-07-16 14:37
一点尘尘
阅读(293)
评论(0)
推荐(0)
摘要:
三次握手,四次挥手 具体发送的报文和状态都要掌握(阿里) 如果想了解HTTP的协议结构,原理,post,get的区别(阿里面试题目),请参考:HTTP协议 结构,get post 区别(阿里面试) 但是如果想进入阿里的话,还是看本文理解TCP的三次握手和四次挥手,发送的报文和状态都要掌握,阿里问了好 阅读全文
posted @ 2021-07-16 08:53
一点尘尘
阅读(67)
评论(0)
推荐(0)
摘要:
HTTP协议 结构,get post 区别-HTTP状态码(阿里) 如果需要想了解相关的TCP的协议结构,底层架构,以及每次面试必问的三次握手,四次挥手可以 TCP三次握手,四次挥手参考:三次握手,四次挥手 具体发送的报文和状态都要掌握(阿里) 四层协议的参考:七层协议和四层协议(阿里) HTTP简 阅读全文
posted @ 2021-07-16 08:52
一点尘尘
阅读(262)
评论(0)
推荐(0)
摘要:
IO复用,AIO,BIO,NIO,同步,异步,阻塞和非阻塞 区别( 如果面试问到IO操作,这篇文章提到的问题,基本是必问,百度的面试官问我三个问题 (1)什么是NIO(Non-blocked IO),AIO,BIO (2) java IO 与 NIO(New IO)的区别 (3)select 与 e 阅读全文
posted @ 2021-07-16 08:46
一点尘尘
阅读(379)
评论(0)
推荐(0)
摘要:
TCP UDP 协议的区别和联系 TCP(Transmission Control Protocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立起来,其中的过程非常复杂,我们这里只做简单、形象的介绍,你只要做到能 阅读全文
posted @ 2021-07-16 08:41
一点尘尘
阅读(119)
评论(0)
推荐(0)
摘要:
深入理解Java反射+动态代理 答: 反射机制的定义: 是在运行状态中,对于任意的一个类,都能够知道这个类的所有属性和方法,对任意一个对象都能够通过反射机制调用一个类的任意方法,这种动态获取类信息及动态调用类对象方法的功能称为java的反射机制。 反射的作用: 1、动态地创建类的实例,将类绑定到现有 阅读全文
posted @ 2021-07-16 08:40
一点尘尘
阅读(74)
评论(0)
推荐(0)
摘要:
Java中String直接赋字符串和new String的区别 如String str=new String("a")和String str = "a"有什么区别? 百度的面试官问 String A="ABC"; String B=new String("ABC"); 这两个值,A,B 是否相等,如 阅读全文
posted @ 2021-07-16 08:38
一点尘尘
阅读(376)
评论(0)
推荐(0)
摘要:
今天遇到个问题: public static void main(String[] args) { List<Integer> changeList=new ArrayList<>(); dealWith(changeList); System.out.println("changeList"+ch 阅读全文
posted @ 2021-07-16 08:36
一点尘尘
阅读(88)
评论(0)
推荐(0)
摘要:
class LRUCache { //哈希表+双向链表 LinkedHashMap (最近最少使用) 缓存机制 private Map<Integer,Node> map; //存储key value value为Node节点 private int capacity; //最大容量 private 阅读全文
posted @ 2021-07-16 08:26
一点尘尘
阅读(49)
评论(0)
推荐(0)
摘要:
Java把异常作为一种类,当做对象来处理。所有异常类的基类是Throwable类,两大子类分别是Error和Exception。 系统错误由Java虚拟机抛出,用Error类表示。Error类描述的是内部系统错误,例如Java虚拟机崩溃。这种情况仅凭程序自身是无法处理的,在程序中也不会对Error异 阅读全文
posted @ 2021-07-16 08:23
一点尘尘
阅读(228)
评论(0)
推荐(0)
摘要:
泛型在java中有很重要的地位,在面向对象编程及各种设计模式中有非常广泛的应用。 什么是泛型?为什么要使用泛型? 泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数 阅读全文
posted @ 2021-07-16 08:21
一点尘尘
阅读(236)
评论(0)
推荐(0)
摘要:
什么是线程?线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速。比如,如果一个线程完成一个任务要100毫秒,那么用十个线程完成改任务只需10毫秒。Java在语言层面对多线程提供了卓越的支持,它也 阅读全文
posted @ 2021-07-16 08:19
一点尘尘
阅读(175)
评论(0)
推荐(0)
摘要:
HashMap多线程并发问题分析 目录 并发问题的症状HashMap数据结构HashMap的rehash源代码正常的ReHash过程并发的Rehash过程三种解决方案 转载: HashMap多线程并发问题分析 并发问题的症状 多线程put后可能导致get死循环 从前我们的Java代码因为一些原因使用 阅读全文
posted @ 2021-07-16 08:15
一点尘尘
阅读(237)
评论(0)
推荐(0)
摘要:
HashMap多线程并发问题分析-正常和异常的rehash1(阿里) 多线程put后可能导致get死循环 从前我们的Java代码因为一些原因使用了HashMap这个东西,但是当时的程序是单线程的,一切都没有问题。后来,我们的程序性能有问题,所以需要变成多线程的,于是,变成多线程后到了线上,发现程序经 阅读全文
posted @ 2021-07-16 08:13
一点尘尘
阅读(111)
评论(0)
推荐(0)
摘要:
redis为何单线程 效率还这么高 为何使用跳表不使用B+树做索引(阿里) 如果想了解 redis 与Memcache的区别参考:Redis和Memcache的区别总结 阿里的面试官问问我为何redis 使用跳表做索引,却不是用B+树做索引 因为B+树的原理是 叶子节点存储数据,非叶子节点存储索引, 阅读全文
posted @ 2021-07-16 08:11
一点尘尘
阅读(93)
评论(0)
推荐(0)
摘要:
面试- 阿里-. 大数据题目- 给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url? 假如每个url大小为10bytes,那么可以估计每个文件的大小为50G×64=320G,远远大于内存限制的4G,所以不可能将其完全加载到内存中处理,可以 阅读全文
posted @ 2021-07-16 08:09
一点尘尘
阅读(127)
评论(0)
推荐(0)
摘要:
class Solution { public int[] sortArray(int[] nums) { BubbleSort(nums); return nums; } private void BubbleSort(int[] nums){ if(nums == null || nums.le 阅读全文
posted @ 2021-07-16 07:49
一点尘尘
阅读(18)
评论(0)
推荐(0)
摘要:
class Solution { // 插入排序:稳定排序,在接近有序的情况下,表现优异 public int[] sortArray(int[] nums) { int len = nums.length; // 循环不变量:将 nums[i] 插入到区间 [0, i) 使之成为有序数组 for 阅读全文
posted @ 2021-07-16 07:30
一点尘尘
阅读(27)
评论(0)
推荐(0)
摘要:
class Solution { //快速排序 public int[] sortArray(int[] nums) { quickSort(nums,0,nums.length-1); return nums; } private void quickSort(int[] nums,int low 阅读全文
posted @ 2021-07-16 07:29
一点尘尘
阅读(94)
评论(0)
推荐(0)
摘要:
class Solution { int[] tmp; //临时数组复制使用 public int[] sortArray(int[] nums) { tmp = new int[nums.length]; mergeSort(nums, 0, nums.length - 1); return nu 阅读全文
posted @ 2021-07-16 07:28
一点尘尘
阅读(33)
评论(0)
推荐(0)
摘要:
class LRUCache { //哈希表+双向链表 LinkedHashMap (最近最少使用) 缓存机制 private Map<Integer,Node> map; //存储key value value为Node节点 private int capacity; //最大容量 private 阅读全文
posted @ 2021-07-16 07:26
一点尘尘
阅读(29)
评论(0)
推荐(0)
摘要:
记得开始学习Java的时候,一遇到多线程情况就使用synchronized,相对于当时的我们来说synchronized是这么的神奇而又强大,那个时候我们赋予它一个名字“同步”,也成为了我们解决多线程情况的百试不爽的良药。但是,随着学习的进行我们知道在JDK1.5之前synchronized是一个重 阅读全文
posted @ 2021-07-16 07:16
一点尘尘
阅读(88)
评论(0)
推荐(0)
摘要:
public class Solution { // 归并排序 /** * 列表大小等于或小于该大小,将优先于 mergeSort 使用插入排序 */ private static final int INSERTION_SORT_THRESHOLD = 7; public int[] sortAr 阅读全文
posted @ 2021-07-16 07:12
一点尘尘
阅读(34)
评论(0)
推荐(0)
浙公网安备 33010602011771号