自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 深入解析HashMap底层原理

以散列值实现的O(1)级别的查找速度,键值对的存取方式,数组加链表加红黑树的数据结构,没错,今天我们要说的就是大名鼎鼎的HashMap。本篇文章默认各位读者已经有了对HashMap的基本了解,对他的一些特性和使用方法将不再做介绍。好的,废话就这两段,我们直入正题,先从源码中看看HashMap中有哪些重要属性HashMap中的重要属性static final float DEFAULT_LOAD_FACTOR = 0.75f;static final int DEFAULT_INITIAL_CAPA

2020-09-06 13:05:07 175

原创 计算机网络面试总结

计算机网络自用面试总结,来源各个论坛面经1.TCP三次握手第一次握手:客户端发送 SYN = 1,seq = X 给服务端,表示希望与服务端建立连接第二次握手:服务端发送 SYN = 1 , ACK = 1 , ack = X + 1 ,seq = Y 给客户端 ,表示已收到请求,希望与客户端建立连接第三次握手:客户端发送 ACK = 1 ,ack = Y + 1 ,seq = X +1 给服务端,表示已收到确认,客户端进入连接状态至此三次握手结束,服务端进入连接状态2.第三次握手

2020-08-28 17:19:14 191

原创 操作系统面试总结

自用操作系统面试题总结,资料来源为网上各种面经和面试题总结1.进程和线程的区别与联系进程是分配系统资源的最小单元,线程是CPU调度的基本单元,进程下的线程共享进程的资源2.进程间通信的方式管道:单向流动、父子进程间,命名管道可以不在父子进程间信号:通过内核作为中间代理,消息队列:通过内核作为中间代理共享内存:映射一段能被其它进程访问的内存,这段共享内存由一个进程创建,但是多个进程可以访问3.缓存算法LRU算法:...

2020-08-26 22:38:24 196

原创 Android Activity 生命周期解析

首先介绍一下activity ,简介与概念来自安卓官网,链接如下安卓官方文档:activityActivity简介Activity 类是 Android 应用的关键组件,而 Activity 的启动和组合方式则是该平台应用模型的基本组成部分。在编程范式中,应用是通过 main() 方法启动的,而 Android 系统与此不同,它会调用与其生命周期特定阶段相对应的特定回调方法来启动 Activity 实例中的代码。Activity概念移动应用体验与桌面体验的不同之处在于,用户与应用的互动并不总是在同

2020-08-07 20:05:54 284

原创 ArrayList的实现原理与源码分析

ArrayList的底层数据结构就是一个数组,数组元素的类型为Object类型,对ArrayList的所有操作底层都是基于数组的。对ArrayList进行添加元素的操作的时候是分两个步骤进行的,即第一步先在object[size]的位置上存放需要添加的元素;第二步将size的值增加1。由于这个过程在多线程的环境下是不能保证具有原子性的,因此ArrayList在多线程的环境下是线程不安全的。具体举例说明:在单线程运行的情况下,如果Size = 0,添加一个元素后,此元素在位置 0,而且Size=

2020-07-29 17:20:24 191

原创 安卓学习总结-UI开发流程

最近做的工作,主要是对安卓的一系列UI组件的开发,在完成设计需求的过程中,有了一点小想法,今天来把他们总结一下。一、了解安卓中的View体系在UI开发的过程中,我们一定会使用到多种view组件,为了帮助我们更好的选择他们,了解他们的特性就成了第一步。这是一张View体系图,当然安卓系统发展到今天,View类下的子类数量已经达到了一百多个,图里包含的组件肯定不是全部,这里面是我在开发过程中接触的比较多的一些组件。二、XML设计与代码设计结合安卓提供了XML和Java代码两种方式实现UI设计,我们要

2020-07-28 14:01:42 611

原创 缩放动画 ScaleAnimation 总结

最近用到了ScaleAnimation来实现图片放大需求,今天就把使用过程中学习的一些东西总结记录一下,希望能对大家有所帮助。- ScaleAnimation是 Android官方提供的动画类Animation的子类Animation类是一个抽象类,我们通常会使用它的四个子类AlphaAnimation、RotateAnimation、ScaleAnimation和TranslateAnimation,他们分别可以实现渐变动画、旋转动画、平移动画、缩放动画 功能,当然我们今天的主角就是缩放动画 Scal

2020-07-09 15:08:38 1426

原创 LeetCode Hot100题 第739题 每日温度

先贴一下题目描述:请根据每日 气温 列表,重新生成一个列表。对应位置的输出为:要想观测到更高的气温,至少需要等待的天数。如果气温在这之后都不会升高,请在该位置用 0 来代替。例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4, 2, 1, 1, 0, 0]。提示:气温 列表长度的范围是 [1, 30000]。每个气温的值的均为华氏度,都是在 [30, 100] 范围内的整数。方法一暴力法就不介绍了,大

2020-06-14 22:49:35 325

原创 LeetCode Hot100题 第283题 移动零

这道题的难度不高,但是有很多很有趣的解法,先贴一下题目描述吧给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。...

2020-06-12 15:54:33 160

原创 LeetCode Hot100题 第448题 找到数组中消失的数字

方法一:使用hashset保存nums中的所有数,再从1开始遍历到n,找到set中不存在的key,额外使用set的空间方法二:改变nums[i]-1索引处对应的值;如果k缺失,则k-1处的值可以与其他位置的值进行区分,得到k;为了在访问原数组nums[i]-1处的值时进行还原,做出的改变为 使其取反,这样在还原时,取绝对值即可;对于原数组中重复出现的数,在改变相应索引对应值时,判断该值是否已经为负数,若是,表明重复,可以跳过。//方法1:class Solution { public L

2020-06-08 23:37:30 133

原创 LeetCode Hot100题 第53题 最大子序和题解

先贴一下这道题的题目描述:给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。这道题最好想到的解法是用动态规划法,也就是进阶里面提到的时间复杂度为O(n)级别的解法,我们先介绍动态规划思路。解法一:动态规划我们很容易想到,遍历数组每

2020-06-03 22:47:49 143

原创 LeetCode Hot100题 第2题 两数相加题解

这是一道LeetCode上的中等难度题,但这道题其实并不难,注意好细节,思路很简单,先贴一下题目的描述给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因

2020-06-02 10:15:21 267 1

空空如也

空空如也

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

TA关注的人

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