增加内存会让计算机变快吗?
今天聊一个简单的问题,增加更多内存会让你的计算机速度变快吗?要想解答这个问题,我们需要知道cpu、内存与程序这几者的关联,实际上非常简单:首先,可执行程序存储在磁盘中(当然也可以是其它介质),可执行程序中实际上主要包含两部分内容:机器指令以及指令依赖的数
40张最全计算机网络基础思维导图
传输介质简介以太网帧结构IP编址ICMP协议ARP协议传输层协议路由基础静态路由基础距离矢量路由协议——RIP链路状态协议——OSPFHDLC&PPP原理与应用帧中继原理与配置PPPoENAT网络地址转换交换网络基础STP生成树RSTP原理与配置VRP基础命令行基础文件系统基础VRP系统管理
浮点数,你真的懂了吗?
背景大家好,我是石头哥,最近有读者问我关于浮点的问题,大概问题就是0.1+0.2==0.3?0.8-0.6==0.6-0.4?我给他丢了一篇我早在2014年写的一篇文章——一个由跨平台产生的浮点数bug|有你意想不到的结果,讲述了自己在开发过程中的一个“bug”,也因浮点数的表达引起的。回想,当初这
「拼得多」的地方,容不下一个天才黑客
作者:金磊鱼羊转自:量子位QbitAI1994年出生,15岁上浙大,22岁就拿下世界黑客大赛冠军。不到26岁的年纪,他已经成为了纳斯达克上市公司的安全老大。就是这样一位天才黑客,在2021年开年之际,却忽然开始了普法工作。背后原因,与最近出现在热搜的互联网大厂不无关系。所以,他是何许人也?又因为什么
使用Gson解析data class引发的一点思考
Gson是Android解析Json的老牌子了,它的使用和原理也被大家研究的极其透彻了,可以说这是一个相当成熟的库。但是伴随kotlin的普及,有一个问题也越发明显地暴露了出来。kotlin里有一个dataclass的概念,倒不是什么“黑科技”的东西,但是确实相当好用,它会自动生成hashcode、
多线程详解之开篇
多年来,并发就像是阻在程序员面前的一座大山,令无数人“闻之色变”。我们或者不知道何为并发,或者不知道为何需要并发,即使知道了也不一定能写出一个安全的并发程序。如果写的并发程序出了问题,我们也不知道问题出在哪里,连为什么会出现问题都要考虑好一阵子。它就是这么“可恶”,但却谁都没有办法摆脱。多线程的出现
线程的基础
安全是多线程编程的核心主题,但并不是只要使用多线程就一定会引发安全问题。要了解哪些操作是安全的,哪些是不安全的,就必须先掌握如何使用多线程。不过在操作多线程之前,我们先了解一下多线程的几种状态。线程的状态在Thread的实现中,包含一个名为State的enum类,用来标识线程运行中的各种状态,其中定
多线程详解之优先级
前文我们已经了解了线程的一些基础知识,这篇文章是对基础的一个补充。线程有个有趣的状态,叫RUNNABLE,之所以不叫RUNNING,是因为它表示线程处于一种可执行的状态,而不是已经在执行了。对一台电脑而言,CPU的个数和核心数都是有限的,但是它可以运行很多的程序,每个程序又可以创建很多个线程,所以不是每个线程一调用 start 方法就一定能马上运行,而是等待CPU有空闲的时间片时来调度。
多线程详解之优先级
好久没更新了,最近半年有些忙碌,更换了新的工作,业务很多,责任也比以往重了许多,这更激发了我对知识的渴求。但好在现在适应了过来,接下来就是继续给自己充电,在未来承担更多的职责。前文我们已经了解了线程的一些基础知识,这篇文章是对基础的一个补充。线程有个有趣的状态,叫RUNNABLE,之所以不叫RUNN
记一次Android逆向之旅(入门向)
近日市场投放部门的同事找我说,在应用商店输入关键字查看我们APP的排名,这个能不能通过技术自动化实现?本以为是件很简单的事情,结果做的时候遇到了重重阻碍,于是就有了这次逆向之旅。逆向,听起来就很黑客的词,好像比开发高大上好多倍啊。真正接触到才明白,逆向其实是一个很需要耐心,会查阅资料,又比较依赖运气
WanAndroid——探索Android应用架构的一次实践
在 《也谈Android应用架构》 和 《再谈Android应用架构——Jetpack VS 生命周期》 两篇文章中,我们详细论述了MVC、MVP、MVVM架构的思想、优缺点以及使用注意事项,并阐述了借助Jetpack强大的生命周期管控能力解决架构“本地化”的问题。但没有实践的论述不仅不直观,也应了那句Talk is cheap, show me the code.的经典名言,因此这个基于 玩An
再谈Android应用架构——Jetpack VS 生命周期
前面我们对MVC、MVP、MVVM进行了详尽的分析,但还有一个问题悬而未决,那就是生命周期。在Android平台上生命周期具有十分重要的意义,因此这也是架构必须考虑的因素之一。生命周期处理不好很容易发生内存泄漏,但对架构而言,真正困扰我们的却不是内存泄漏的问题,反而是因生命周期太短,实例被销毁重建,
也谈Android应用架构
谈到架构,想到的一定是MVC、MVP、MVVM这几个词了,然后对比一下它们的优缺点,接下来就是站队的时间了。常常写MVC,偶然见到了MVP,“嗯,真香~”。写久了MVP,又听说了MVVM,“嗯,真香~”。“真香”定律真是被用得淋漓尽致,此外还要喜新厌旧一番,使用MVVM的鄙视使用MVP的,使用MVP
Git实用指南完结篇
Git是什么?代码管理工具。Git是怎么实现的?我们不需要关心。我们只要把目光盯着每个commit,知道git的每个命令都是为此服务的,足矣。正如我在模型里形容的,git的每个分支都可以理解为一根竹子,而每个commit就是竹子的一节,这就是我们需要的全部信息。merge、rebase、cherry
Git实用指南第三篇
本篇提要:Rebase第三天:Rebase的传说路人丙是个有探索精神的人,虽然昨天通过分支+cherry-pick成功解决了问题,但他总觉得有些怪异,哪里怪异又具体说不上来。哦,大概是这样的问题,既然要摘取竹节再安在上边,我能不能直接在我的竹子上操作,而不是在副本操作呢?就像这样:最上面两节是我新做
Git实用指南第二篇
本篇提要:分支、FastForward、Cherry-Pick第二天:分支与cherry-pick的作用第一天走的比较早,到家后飞机酱听说老板过去视察工作了,内心有点慌乱,于是第二天早早去上班,看了一下竹子,完美的三节,不禁感叹路人丙干活能力确实不赖。今天来的早,要赶紧追一追,于是马上进入工作状态。
Git实用指南第一篇
本篇提要:git的核心理念、结构、代码库的创建和Merge从开始使用git至今看过无数文章,大多时候是为了解决一个特定问题,寻求一个特定的解决方案,偶尔也会看一些新手向的教程。对于前者,可能需要你具备一定的git能力,这无可厚非。但大多新手向的教程主要铺陈git的常用命令,看的时候觉得自己懂了,但实
线程的基础
安全是多线程编程的核心主题,但并不是只要使用多线程就一定会引发安全问题。要了解哪些操作是安全的,哪些是不安全的,就必须先掌握如何使用多线程。不过在操作多线程之前,我们先了解一下多线程的几种状态。线程的状态在Thread的实现中,包含一个名为State的enum类,用来标识线程运行中的各种状态,其中定
多线程详解之开篇
多年来,并发就像是阻在程序员面前的一座大山,令无数人“闻之色变”。我们或者不知道何为并发,或者不知道为何需要并发,即使知道了也不一定能写出一个安全的并发程序。如果写的并发程序出了问题,我们也不知道问题出在哪里,连为什么会出现问题都要考虑好一阵子。它就是这么“可恶”,但却谁都没有办法摆脱。多线程的出现
最长回文子串
题目回顾:题目:最长回文子串描述:给定一个字符串s,找到s中最长的回文子串。你可以假设s的最大长度为1000。示例:输入:"babad"输出:"bab"注意:"aba"也是一个有效答案。解析回文字符串可能我们很多人在学习编程语言基础时都练习过,但是只是判断了一个字符串是否是回文的而已,而今天的题目要