![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ThinkInProgramming
文章平均质量分 52
Dylanioucn
想写一首关于世界的诗,以编程的方式~
展开
-
想写一首关于世界的诗,以编程的方式~
很多很多时候,会有种热泪盈眶的错觉,比如清晨午后黄昏不经意间洒落的阳光,挥手间流转的微风,摇曳的叶子,动听的音乐,温暖的文字,可爱的人儿,可口的饭菜,健康的身体,脚踏实地的日子~从小就爱哼听过的好听的调儿,那时候还只有从录音机或电视剧里才能听到,但大都只能听一次就过了,没法存起来一直听,所以就只能一直反复哼唱才能多记住一会。所以,就幻想以后把好听的都收藏下来。到后来有mp3/4,有了随身听,有了手机,小时候的愿望实现啦,随时想听就听(除了电量不够给力,所以还是偏爱mp4)很幸运能做自己喜欢的事情,所以贪原创 2022-04-11 08:04:46 · 218 阅读 · 0 评论 -
让星星⭐月亮告诉你,美团技术文章合集获取方式(2017-2020)及百度云盘汇总下载链接分享
每逢年末,美团技术团队都会推出年度技术文章合集,涵盖前端、后台、算法、数据、运维、安全等多个领域,可谓是年货满满!故在此将获取方式分享给大家,希望对大家的工作和学习有所帮助。先截个图让大家感受下年货的味道:1.关注美团技术团队微信号:meituantech2.然后在公众号内回复2017年货、2018年货、2019年货、2020年货即可获取对应年度技术文档的下载连接。3.【2017-2020】合集百度云下载链接如果大家不想一个一个的去下载,这里整理了【2017-2020】合集,下载链接如原创 2021-02-06 21:16:57 · 574 阅读 · 2 评论 -
HashMap扩容时的rehash方法中(e.hash & oldCap) == 0算法推导
HashMap在扩容时,需要先创建一个新数组,然后再将旧数组中的数据转移到新数组上来此时,旧数组上的数据就会根据(e.hash & oldCap) 是否等于0这个算法,被很巧妙地分为2类:① 等于0时,则将该头节点放到新数组时的索引位置等于其在旧数组时的索引位置,记未低位区链表lo开头-low;② 不等于0时,则将该头节点放到新数组时的索引位置等于其在旧数组时的索引位置再加上旧数组长度,记为高位区链表hi开头high.具体,详见下述的算法推导解析:算法:(e.hash & old原创 2020-06-08 15:50:53 · 10173 阅读 · 33 评论 -
从底层数据结构和CPU缓存两方面剖析LinkedList的查询效率为什么比ArrayList低
虽然前面有写到LinkedList与ArrayList的增删改查效率的全面比较,但回想一下还是有必要对这两者的查询效率做一个单独的比较,也能进一步加深理解。这次分底层数据结构和CPU缓存两方面展开它们分别对查询效率的阐述。一、底层数据结构对查询效率的影响1.ArrayList底层数据结构ArrayList底层数据结构是动态数组,创建数组时会给它分配一整段连续的物理内存空间,只要知道数组首地址和数组存储的元素类型,就可以根据指定索引值直接推导得出该索引位置对应的内存地址,进而就可以直接访问得到到该内存地原创 2020-06-05 14:05:06 · 590 阅读 · 0 评论 -
让星星⭐月亮告诉你,分享开始读源码的感受,望共勉
这段时间,一直在钻HashMap的源码,越读到后面,心里越觉得有什么想要说的,下面通过HashMap的扩容方法引出我想分享的一些思考和感受。HashMap的resize扩容方法,最迷人之处在于其巧妙的运用了核心算法:e.hash&oldCap,据此算法将旧数组中的数据很有效的转移到了新数组的对应索引位置上。好像越来越意识算法的至关重要,而且更厉害的是,可以将数学公式恰到好处地运用在亟需它的场景里。能设计出如此这般算法的又该是何等神仙人物~源码解读,从一开始的生拉硬拽,东张西望,到处网罗各种文章资原创 2020-06-04 21:37:59 · 227 阅读 · 0 评论 -
让星星⭐月亮告诉你,Java017Java泛型-参数化类型(泛型类、泛型接口、泛型方法)
摘自《Java编程思想》一般的类和方法,只能使用具体的类型,要么是基本类型,要么是自定义的类。如果要编写可以应用于多种类型的代码,这种刻板的限制对代码的束缚就会很大。在面向对象编程语言中,多态算是一种泛化机制。例如,可以将方法的参数类型设为基类,那么该方法就可以接收从这个基类中导出的任何类作为参数。这样的方法更加通用一些。有时,由于Java的单继承体系,也会使得程序受限太多。如果方法的参数是...转载 2020-04-03 11:02:41 · 1253 阅读 · 1 评论 -
随处可见的缓存思想(有补充的欢迎留言交流)
cpu中的指令寄存器:它是芯片上的指令仓库,有了它CPU就不必停下来查找计算机内存中的指令,从而大幅提高了CPU的运算速度数据库连接池:有了它,就不必在操作数据库时每次都创建新的数据库连接,减少了开销同时也提高了效率Java程序中的内存表:程序需要频繁操作的数据库表,可以预先存放到内存中,这样的话,程序可以直接从内存操作数据,而且也不必使用数据库连接资源,速度得到提升,资源消耗也降低。...原创 2020-02-23 17:02:26 · 149 阅读 · 0 评论 -
Java016重载、重写及@Override
Java016重载、重写及@Override什么是重载?什么是重写?@OverrideJava016重载、重写及@Override什么是重载?重载是在一个类的内部进行的。新增的重载方法与类内部的已有方法具有相同的方法名、返回值类型,但参数类型/参数顺序/参数个数不同。着重为了处理一个类型在处理某个问题时,可能遇到的各种不同情形。什么是重写?重写/覆写,是在...原创 2019-01-16 23:53:23 · 408 阅读 · 0 评论 -
Java015复用类之组合、继承和代理
Java015复用类之组合、继承和代理什么是组合?什么是继承? 在组合与继承之间选择 选择组合的情况 选择继承的情况 再论组合与继承什么是代理? Java015复用类之组合、继承和代理什么是组合?在新的类中产生现有类的对象。由于新的类是有现有类的对象所组成,所以这种方法被成为组合。组合只是复用了现有程序代码...原创 2019-01-16 23:52:21 · 168 阅读 · 0 评论 -
Java014Java静态导入
Java014Java静态导入What?什么是静态导入?Why?为何使用静态导入?Attentiom! Java014Java静态导入What?什么是静态导入?静态导入语法://导入类的所有成员import static 包名.类名.*;//导入要用的类的静态成员import static 包名.类名.具体静态成员;//例如:import sta...原创 2019-01-13 19:17:17 · 135 阅读 · 0 评论 -
Java013怎样以及因何配置Java环境变量
Java013怎样以及因何配置Java环境变量How?怎样设置Java环境变量?Why?为何要设置Java环境变量?JAVA_HOME环境变量作用PATH环境变量作用CLASSPATH环境变量作用Othertools.jar作用dt.jar作用基础类库 Java013怎样以及因何配置Java环境变量How?怎样设置Java环境变量?JAVA_HO...原创 2019-01-13 19:16:08 · 951 阅读 · 0 评论 -
Java012Java访问权限控制
Java012Java访问权限控制Why?为何要进行访问权限控制呢? How?怎么进行访问权限控制? 1包:库单元 1.1代码组织 1.2创建独一无二的包名 1.3定制工具库 1.4用import改变行为 1.5对使用包的忠告 2. Java访问权限修饰词 2.1包访问权限(有时也表示为friendly) 2.2public接口访问权限2.3priv...原创 2019-01-13 19:12:09 · 233 阅读 · 0 评论 -
Java011Java程序初始化顺序
Java011Java程序初始化顺序1.父类静态变量2.父类静态代码块3.子类静态变量4.子类静态代码块5.父类非静态变量6.父类非静态代码块7.父类构造器8.子类非静态变量9.子类非静态代码块10.子类构造器Java程序初始化一般遵循3+1个原则:1.静态对象(变量)先于非静态对象(变量)初始化,其中静态对象(变量)只初始化一次,而非静态对象(变量...转载 2019-01-07 22:57:55 · 119 阅读 · 0 评论 -
Java010return_break_continue_label_switch_enum
Java010 return_break_continue_label_switch_enum①return②break③continue④label: ⑤switch和enuma. switchb. enum Java010 return_break_continue_label在Java中有很多关键词表示无条件分支,它们只是表示这个分支无需任何测试即可发...原创 2019-01-07 22:55:44 · 182 阅读 · 0 评论 -
Java009if_else_while_do_while_for_foreach
Java009if_else_while_do_while_for_foreach①if-else②while_do-while_for迭代a.whileb.do-whilec.ford.无穷循环③逗号操作符/分隔符a. 逗号操作符b. 逗号分隔符④foreach Java009if_else_while_do_while_for_foreach...原创 2019-01-07 22:51:57 · 170 阅读 · 0 评论 -
Java008 this关键字(认真阅读,会有收获的哦,理解why)
Java008 this关键字(认真阅读,会有收获的哦,理解why)①假设你希望在方法的内部获得对当前对象的引用②this关键字对于将当前对象传递给其他方法也很有用③在构造器中调用构造器④static的含义 Java008 this关键字(认真阅读,会有收获的哦,理解why)如果由同一类型的两个对象,分别是a和b,你可能向知道,如何才能让这两个对象都能调用peel()方...原创 2019-01-07 22:47:26 · 152 阅读 · 0 评论 -
Java007 Java多态-后期绑定
何为绑定?绑定指的是一个方法调用与方法所在类(方法主体)关联起来。前期/静态/编译时绑定若在程序执行前进行绑定(如果有的话,由编译器和连接程序实现),叫做前期/静态/编译时绑定。前期绑定是面向过程语言中默认的绑定方式。这么做意味着编译器将产生对一个具体函数名字的调用,而运行时将这个调用解析到将要被执行的代码的绝对地址(为何能将调用解析到将要被执行的代码的绝对地址?因为:前期绑定,在程序...原创 2019-01-07 22:43:57 · 365 阅读 · 0 评论 -
TIP001 开始思考学习编程的方式方法
很多时候都陷入了某个技术点或者概念的深挖再忘的怪圈,明明以前对此做过专题分析啊(网上各种搜索),为什么再用到的时候又不认识了呢,像个小白一样满脑袋XXX。其实呢,原因很简单:虽然做过点对点研究,这里研究一点那里研究一点,却没有形成全面的认知,不清楚技术在知识图谱中所处的位置,以及为什么它会处于目前这个位置,前因后果是什么?比如:IO-BIO-NIO-Netty。是怎样一笔笔演变过来的?每个技术的特...原创 2018-11-27 23:24:59 · 173 阅读 · 0 评论