1 Arivan

尚未进行身份认证

暂无相关描述

等级
TA的排名 8w+

Java内存区域划分

本文转自大佬的博客,原文链接:https://blog.csdn.net/q5706503/article/details/84614158Java程序是交由JVM执行的,所以我们在谈Java内存区域划分的时候事实上是指JVM内存区域划分。在讨论JVM内存区域划分之前,先来看一下Java程序具体执行的过程:  首...

2019-08-20 10:32:03

TCP协议可靠性与高性能的实现原理

可靠性:1、校验和16位校验和:由发送端填充,CRC校验.接收端校验不通过,则认为数据有问题.此处的检验和不光包含TCP首部,也包含TCP数据部分.2、序列号TCP将每个字节的数据都进行了编号.即为序列号.3、确认应答每一个ACK都带有对应的确认序列号,意思是告诉发送者,我已经收到了哪些数据;下一次你从哪里开始发4、连接管理三次握手建立连接、四...

2019-08-07 10:45:15

简单概括HashMap、Hashtable、ConcurrentHashMap

2019-07-24 11:21:07

HashMap、Hashtable以及ConcurrentHashMap的区别及原理

作者:ZytheMoon原文链接:https://blog.csdn.net/ZytheMoon/article/details/88376749HashTable产生于JDK1.0,HashMap产生于JDK1.2,主要的区别有:1.线程安全2.处理速度3.使用迭代器不同4.输入参数不同5.扩充容量的大小方式不同6.计算hash以及index的方式不同。1.线程安全之间的区别...

2019-07-24 11:07:09

项目总结--阿怪快传

项目名称:阿怪快传一、项目背景在学习到Socket网络编程的时候,发现使用Socket套接字可以实现局域网内数据交互。然后就现学现卖,制作了一个可以简单实现聊天功能的小项目。项目完成之后,我在想,聊天也是一种数据传输,既然我可以实现聊天,应该也可以加上文件对端传输的功能,刚好也检验一下自己学习的成果。于是,阿怪快传就此诞生。二、实现功能1、文件对端快速传输传输速度可达70Mbps...

2019-07-22 15:50:43

项目总结--性能测试框架

项目名称:性能测试框架一、项目背景:写在前面,此项目是用于测试方法性能的小框架;写这个小项目的初衷是我在学习运用的过程中发现,很多时候,实现同种功能的方法并不是单一的,每当这种情况出现的时候,我就会纠结于到底哪一种方法更加高效?最终只能是依靠理论去进行判断。当然,有时候也会进行一些测试,但在过程中容易因为影响因素考虑不全面,而使得测试过程的科学性无法保证,最终得出的测试结果也会有一...

2019-07-19 16:07:00

TCP协议三次握手四次挥手

一、三次握手与四次挥手流程1)三次握手(TCP建立连接)1、首先客户端向被服务端发送建立连接的请求(SYN),此时客户端TCP层的状态变为SYN_SENT,等待服务端的响应;2、服务端再收到客户端的建立连接请求后,向客户端作出应答(SYN),并且向客户端发送ACK,确认其是否具有收发数据的能力,此时服务端的状态为SYN_RCVD;3、客户端收的到服务端的ACK后,需要向服务端...

2019-07-18 20:58:24

Java主流锁

一、乐观锁和悲观锁1)乐观锁(默认不会出现资源竞争)乐观锁认为自己在使用数据时不会有别的线程修改数据,所以不会添加锁,只是在更新数据的时候去判断之前有没有别的线程更新了这个数据。如果这个数据没有被更新,当前线程将自己修改的数据成功写入。如果数据已经被其他线程更新,则根据不同的实现方式执行不同的操作(例如报错或者自动重试)。Java通过CAS自旋实现2)悲观锁(默认一定会...

2019-06-16 10:59:02

堆排序思路

思路分析: 堆排序主要是使用了堆的性质,进行排序操作,主要有两种方式 1)非原地排序:将给定数据,放入大顶堆中,然后不断取出堆的最大元素,直到堆为空。取出数据的顺序,就是待排序数据的降序(此方法需要创建额外的空间,用以存放取出的数据,所以空间复杂度为O(N))。2)原地排序(常用):使用堆的元素下沉思想,在给定空间进行原地排序...

2019-06-15 17:50:26

对称二叉树(LeetCode)

题目描述:给定一个二叉树,检查它是否是镜像对称的。例如,二叉树[1,2,2,3,4,4,3]是对称的。1/\22/\/\3443但是下面这个[1,2,2,null,3,null,3]则不是镜像对称的:1/\22\\33解题思路:先检查根节点的左右...

2019-06-09 08:57:54

二叉树的层次遍历(LeetCode)

题目描述:给定一个二叉树,返回其按层次遍历的节点值。(即逐层地,从左到右访问所有节点)。例如:给定二叉树:[3,9,20,null,null,15,7],3/\920/\157返回其层次遍历结果:[[3],[9,20],[15,7]]解题思路:利用队列的先进先出原则,先将每一层的节点...

2019-06-06 15:09:48

二分搜索树中任意节点的删除

删除二分搜索树中的任意节点,主要分为以下几种情况1)需要删除的节点为叶子节点;这种情况是最简单的,只需要切断二叉树与该叶子节点的联系即可。2)需要删除的节点只有左子树;在这种情况下,需要找到该节点的左子节点, 切断该节点与左孩子节点的联系、删除该节点与双亲节点的联系。 然后将左孩子节点代替该节点,与双亲节点相连。 3)需要删除的节点只有右子树;在这种情况下,...

2019-06-03 18:00:46

保持城市天际线(LeetCode)

题目描述:在二维数组grid中,grid[i][j]代表位于某处的建筑物的高度。我们被允许增加任何数量(不同建筑物的数量可能不同)的建筑物的高度。高度0也被认为是建筑物。最后,从新数组的所有四个方向(即顶部,底部,左侧和右侧)观看的“天际线”必须与原始数组的天际线相同。城市的天际线是从远处观看时,由所有建筑物形成的矩形的外部轮廓。请看下面的例子。建筑物高度可以增加的最大总和...

2019-05-28 11:47:04

不要二(牛客网)

题目描述:链接:https://www.nowcoder.com/questionTerminal/1183548cd48446b38da501e58d5944eb二货小易有一个W*H的网格盒子,网格的行编号为0~H-1,网格的列编号为0~W-1。每个格子至多可以放一块蛋糕,任意两块蛋糕的欧几里得距离不能等于2。对于两个格子坐标(x1,y1),(x2,y2)的欧几里得距离为:((x1-x...

2019-05-27 14:48:19

基于命令行界面的简易收银系统

功能实现: 浏览商品清单、添加商品、下架商品、修改商品信息、商品信息存于properties文件中 查看订单、下单、取消商品、修改订单信息、账单结算功能 实现思路:使用到的技术: properties属性文件 集合框架 I/O流 操作字符串(分隔、截取等) 程序结构与逻辑控制 封装、多态 效果展示:主...

2019-05-24 20:44:03

最优除法 (LeetCode)

题目描述:给定一组正整数,相邻的整数之间将会进行浮点除法操作。例如,[2,3,4]->2/3/4。但是,你可以在任意位置添加任意数目的括号,来改变算数的优先级。你需要找出怎么添加括号,才能得到最大的结果,并且返回相应的字符串格式的表达式。你的表达式不应该含有冗余的括号。示例:输入:[1000,100,10,2]输出:"1000/(100/10/2)"...

2019-05-16 21:57:28

volatile关键字与双重检验锁单例模式

volatile关键字的特性1、保证被volatile定义的变量对所有线程的可见性 即某线程对volatile变量的操作,其他线程会立刻得知 2、使用volatile变量的语义是禁止指令重排序 volatile变量前面的操作结果对于后面的操作可见的。 volatile变量前面的代码一定会先于后面的代码执行。 由于...

2019-05-12 16:22:54

分发饼干(LeetCode)

题目描述:假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子i,都有一个胃口值gi,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干j,都有一个尺寸sj。如果sj>=gi,我们可以将这个饼干j分配给孩子i,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。注意:你可以假设胃口...

2019-05-11 16:23:20

相对名次(LeetCode)

题目描述:给出N名运动员的成绩,找出他们的相对名次并授予前三名对应的奖牌。前三名运动员将会被分别授予“金牌”,“银牌”和“铜牌”("GoldMedal","SilverMedal","BronzeMedal")。(注:分数越高的选手,排名越靠前。)示例1:输入:[5,4,3,2,1]输出:["GoldMedal","SilverMedal...

2019-05-10 16:26:26

二进制手表(LeetCode)

题目描述:二进制手表顶部有4个LED代表小时(0-11),底部的6个LED代表分钟(0-59)。每个LED代表一个0或1,最低位在右侧。例如,上面的二进制手表读取“3:25”。给定一个非负整数n代表当前LED亮着的数量,返回所有可能的时间。案例:输入:n=1返回:["1:00","2:00","4:00","8:00...

2019-05-06 15:07:26

查看更多

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