4 一名路过的小码农啊

尚未进行身份认证

我要认证

逆风的方向更适合飞翔,不怕万人阻挡,只怕自己投降

等级
TA的排名 2w+

网络协议|HTTP协议详解

目录简介发展史 (1)HTTP/0.9 (2)HTTP/1.0(3)HTTP/1.1 (4)HTTP/2总结HTTP常用的请求方式HTTP请求头HTTP响应头HTTP状态码COOKIE和SESSIONHTTPS简介 HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快...

2020-07-04 18:31:03

高频算法题(二)

此为篇章二,(一)主要总结了高频的算法题,题目来自于字节跳动按岗位汇总算法高频题515. 在每个树行中找最大值public List<Integer> largestValues(TreeNode root) { Map<Integer,Integer> map=new HashMap<>(); Queue<TreeNode> que=new LinkedList<>(); Queue.

2020-07-03 17:47:56

高频算法题(一)

目录k个一组反转链表121. 买卖股票的最佳时机15. 三数之和155. 最小栈124. 二叉树中的最大路径和199. 二叉树的右视图3. 无重复字符的最长子串88. 合并两个有序数组108. 将有序数组转换为二叉搜索树110. 平衡二叉树236. 二叉树的最近公共祖先33. 搜索旋转排序数组322. 零钱兑换518. 零钱兑换 II83. 删除排序链表中的重复元素206. 反转链表215. 数组中的第K个最大元素56. 合并区...

2020-07-03 11:42:29

TCP干货

目录一、起源二、TCP 协议怎么理解全双工?TCP 的数据包如何组织?三、TCP 工作流程四、 三次握手五、 四次挥手一、起源TCP 是传输层的协议,全称是叫做 Transmission Control Protocol,这个协议在 IETF RFC 793 进行了定义。 在互联网产生之前,我们的电脑都是相互独立的,每台机器都有着自己的操作系统并保持着自己的运行。 于是,为了将这些电脑连接起来,并能够基于一种"通道"的形式进行数据、资源的传输及交互,IETF 制定..

2020-06-30 21:06:34

B树、B+树、红黑树详细解析

目录B树特性结构应用:B+树特性数据结构应用:红黑树特性数据结构​应用:相关问题B树跟B+树比较B树特性一个m阶的B树具有如下特征:根结点至少有两个子女。 每个中间节点都包含k-1个元素和k个孩子,其中 m/2 <= k <= m 每一个叶子节点都包含k-1个元素,其中 m/2 <= k <= m 所有的叶子结点都位于同一层。 每个节点中的元素从小到大排列,节点当中k-1个元素正好是k个孩子包含的元素.

2020-06-27 19:20:24

输入一个网址发生的事情

目录1.DNS解析2.进行TCP连接3.浏览器发送HTTP请求4.封装5.服务器处理请求6.浏览器解析渲染页面7.关闭TCP连接1.DNS解析输入一个网址并按回车的时候浏览器会根据输入的URL去查找对应的IP,具体过程如下:(1)首先是查找浏览器缓存,浏览器会保存一段时间内访问过的一些网址的DNS信息,域名被缓存的时间限制可以通过TTL属性来设置。(2)如果没有找到对应的记录,这个时候浏览器会尝试调用操作系统缓存来继续查找这个网址的对应DNS信息。(3).

2020-06-23 18:47:03

设计模式详解|原型模式

概述原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。例如,一个对象需要在一个高代价的数据库操作之后被创建。我们可以缓存该对象,在下一个请求时返回它的克隆,在需要的时候更新数据库,以此来减少数据库调用。原型模式:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象浅拷贝:将一

2020-06-23 16:16:54

设计模式详解|建造者模式

目录概述数据结构优缺点实现概述建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。建造者模式:将一个复杂对象的构建与它的表示分离,使得相同的构建过程可以创建不同的表示。它关注如何一步一步的创建一个复杂的对象,如果用了建造者模式,那么用户就只需要指定需要建造的类型就可以.

2020-06-23 15:33:42

设计模式详解|单例模式

目录概述适用场景优缺点实现饿汉式懒汉式概述单例模式是一种创建型模式许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。比如在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据由一个单例对象统一读取,然后服务进程中的其他对象再通过这个单例对象获取这些配置信息。这种方式简化了在复杂环境下的配置管理。适用场景需要生成唯一序列的环境 需要频繁实例化然后销毁的对象。 创建对象时耗时过多或者耗资源过多,但又经常用到...

2020-06-23 10:22:19

JVM 内存结构|1.7 1.8 区别详解

目录概述JVM内存分配各个分区介绍1.7和1.8区别概述字节码文件生成:首先Java源代码文件(.java后缀)会被Java编译器编译为字节码文件(.class后缀),然后由JVM中的类加载器加载各个类的字节码文件,加载完毕之后,交由JVM执行引擎执行。在整个程序执行过程中,JVM会用一段空间来存储程序执行期间需要用到的数据和相关信息,这段空间一般被称作为Runtime Data Area(运行时数据区),也就是我们常说的JVM内存。因此,在Java中我们常常说到的内存管理.

2020-06-17 15:25:28

java并发|synchronized关键字和锁升级过程详解

目录synchronized使用场景用法应用方式:实现原理:锁优化1、锁升级2、锁粗化3、锁消除synchronized使用场景用法synchronized可用来给对象和方法或者代码块加锁,当它锁定一个方法或者一个代码块的时候,同一时刻最多只有一个线程执行这段代码。应用方式:作用于实例方法,当前实例加锁,进入同步代码前要获得当前实例的锁;作用于静态方法,当前类加锁,进去同步代码前要获得当前类对象的锁;作用于代码块,对括号里配置的对象加锁...

2020-06-17 14:05:38

43. 字符串相乘

43. 字符串相乘给定两个以字符串形式表示的非负整数num1和num2,返回num1和num2的乘积,它们的乘积也表示为字符串形式。/** num1的第i位(高位从0开始)和num2的第j位相乘的结果在乘积中的位置是[i+j, i+j+1] 例: 123 * 45, 123的第1位 2 和45的第0位 4 乘积 08 存放在结果的第[1, 2]位中 index: 0 1 2 3 4 ...

2020-06-01 16:58:21

leetcode|多线程专题

1114. 按序打印我们提供了一个类:public class Foo {public void one() { print("one"); }public void two() { print("two"); }public void three() { print("three"); }}三个不同的线程将会共用一个Foo实例。线程 A 将会调用 one() 方法线程 B 将会调用two() 方法线程 C 将会调用 three() 方法请设计修改程序,以确保 ...

2020-05-30 15:36:04

排列组合相关问题

无重复元素组合面试题 08.04. 幂集幂集。编写一种方法,返回某集合的所有子集。集合中不包含重复的元素。说明:解集不能包含重复的子集。public void dfsSubSet(List<List<Integer>> list,List<Integer> arr,int[] nums,int cur){ list.add(new ArrayList<>(arr)); for(int i=cur;i<nu

2020-05-29 15:20:31

leetcode|面试题专题

面试题51. 数组中的逆序对在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。利用归并排序,将数组分成两部分,前面一部分和后面一部分,进行归并的时候,需要比较两个数组的数值大小,如果第二个数组的值小的话,代表前一个数组剩下的都比当前值大,则可以计算出逆序对的大小private int cnt=0; public void merge(int[] nums,int ps,int pe,int ls,int le){

2020-05-27 21:23:11

设计模式|模板方法

目录模板方法概述模板方法模式结构与实现角色策略模式的优缺点优点缺点具体实现具体方法钩子函数模板方法概述模板方法的定义如下:定义一个操作中算法的框架,而将一些步骤延迟到子类中。模板方法模式使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。模板方法模式是一种基于继承的代码复用技术,它是一种类行为型模式。在程序开发中,经常会遇到这种情况:某个方法要实现的算法需要多个步骤,但其中有一些步骤是固定不变的,而另一些步骤则是不固定的。为了提高代码.

2020-05-25 21:05:52

idea maven打包包含依赖其他jar的文件

当前项目示例,其中引用了aspose.slides jar包,并编写一个测试类。import com.aspose.slides.Presentation;import com.aspose.slides.SaveFormat;public class Test { public void getPPt() throws Exception{ Presentation pres1 = new Presentation("f://aa.pptx"); RW_

2020-05-18 17:49:04

设计模式|策略模式

目录策略模式概述策略模式结构与实现策略模式的适用场景策略模式的优缺点主要优点主要缺点具体实现策略模式概述策略模式定义如下:策略模式(Strategy Pattern):定义一系列算法类,将每一个算法封装起来,并让它们可以相互替换,策略模式让算法独立于使用它的客户而变化,也称为政策模式(Policy)。策略模式是一种对象行为型模式。在策略模式中,我们可以定义一些独立的类来封装不同的算法,每一个类封装一种具体的算法,在这里,每一个封装算法的类我们都可以称之.

2020-05-17 15:49:47

JAVA|String 类详解

目录String 特性字符串常量池实例解析一、两个字符串常量二、new方式新建三、常量字符串拼接四、变量拼接五、常量拼接六、加了final修饰的拼接字符串总结1.String类初始化后是不可变的(immutable)2.引用变量与对象3.创建字符串的方式4.使用String不一定创建对象5.使用new String,一定创建对象String中方法intern方法String中的“+”String、StringBuffer、St.

2020-05-17 11:21:56

设计模式|适配器模式

目录适配器模式概述适配器模式结构与实现对象适配器类适配器接口适配器具体实现笔记本电脑的工作电压大约是20V,而我国的家庭用电是220V,如何让20V的笔记本电脑能够在220V的电压下工作?答案是引入一个电源适配器(AC Adapter),俗称充电器或变压器,有了这个电源适配器,生活用电和笔记本电脑即可兼容。再例如,读卡器是作为内存卡和笔记本之间的适配器。将内存卡插入读卡器,再将读卡器插入笔记本,这样就可以通过笔记本来读取内存卡。在软件开发中,有时也存在类似这种不兼容的

2020-05-16 20:51:10

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv3
    勤写标兵Lv3
    授予每个自然周发布7篇到8篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。