走进 JDK 之 PriorityQueue
这是 Java 集合框架的第三篇文章了,前两篇分别解析了 ArrayList 和 LinkedList,它们分别是基于动态数组和链表来实现的。今天来说说 Java 中的优先级队列 PriorityQueue,它是基于堆实现的,后面也会介绍堆的相关概念。 PriorityQueu…
走进 JDK 之 LinkedList
如果你了解链表的基本结构的话,LinkedList 的源码其实还是比较容易理解的。LinkedList 是基于双向链表实现的,与 ArrayList 不同的是,它在内存中不占用连续的内存空间,相连元素之间通过 “链” 来链接。对于单链表,每个节点有一个 后继指针 指向下一个节点…
早恋与加密第一回: 古典加密
近日听到坊间传闻,儿子早恋了,给小姐姐塞 “情书” 被班主任当场截获。儿子却不以为然,理直气壮的反驳:“现在凡事都得讲究证据,老师您不能污蔑我!这根本不是情书呀!” 。无奈之下,老师把情书转交给老父亲我,叫我自己处理。 老父亲我是一位程序员,打开 “情书” 一看,好家伙。果然是…
走进 JDK 之 ArrayList(二)
上篇文章 走进 JDK 之 ArrayList(一) 简单分析了 ArrayList 的源码,文末留下了一个问题,modCount 是干啥用的?下面我们通过一个小例子来引出今天的内容。 报错位置是 ArrayList 的内部类 Itr 中的 checkForComodifica…
走进 JDK 之 ArrayList(一)
这篇本来是准备写 Java 集合框架概述 的,就是写起来效果不怎么样,可能是对整个 Java 集合框架还没有做到了然于心。所以还是先来源码分析,写完所有集合类的分析之后,再来总体概述。今天就从最最常用的 ArrayList 说起。 ArrayList 是一种可以动态增长和缩减的…
可以提高程序员效率的工具!
后来去到公司,换了Mac。MarkdownPad2在Mac平台是不支持的,所以我只能去找别的Markdown编辑器了。也体验了几款Markdown编辑器,还是觉得没有MarkdownPad2用得顺手(所以在刚换的上Mac的时候,会把我的Windows打开来写文章...haha)…
方舟编译器最新技术细节
今天的 华为有技术·EMUI媒体沙龙 中,华为消费者BG软件部总裁王成录博士和大家分享了华为黑科技背后的故事,其中透露了关于方舟编译器的更多细节。作为一名 Android 开发,我也一直关注着方舟的最新动态。在方舟发布的第一时间,我也写了一篇相关的文章 说说方舟编译器,对方舟和…
什么是TensorBoard?
首先来讲讲TensorBoard是什么吧,我当时是在官方文档里学习的,官网也放出了介绍TensorBoard的视频。我在b站搜了一把,发现也有,大家可以先去看看视频了解一下(其实已经说得很好了): 因为我们编写出来的TensorFlow程序,建好一个神经网络,其实我们也不知道神…
钻钻 “单例” 的牛角尖
上篇文章 走进 JDK 之 Enum 提到过,枚举很适合用来实现单例模式。实际上,在 Effective Java 中也提到过(果然英雄所见略同): 首先什么是单例?就一条基本原则,单例对象的类只会被初始化一次。在 Java 中,我们可以说在 JVM 中只存在该类的唯一一个对象…
走进 JDK 之 Enum
什么是枚举?说实话,在我这些年的开发生涯中,用过枚举的次数大概两只手都可以数的过来。当然你不能说枚举一无是处,只能说是我对 Java 理解的还不够深刻,在可以使用枚举的时候并没有去使用。 假设我有两个孩子(其实不用假设),每到周末他们都不知道去上什么辅导班。于是我就写了一个简单…
《你并不了解 String》 勘误
写技术文章其实是个很好的学习方式。首先你得自己摸清楚原理,然后才能尝试去表达出来。你写出来的东西,别人看了,给予你反馈,也是一个互相学习的过程。这不,前几天碰到一个读者提出的一个问题,让我发现了自己文章中的一个疏漏,下面就来说说这个问题。 看一遍,想一遍,如果还不能准确给出答案…
真香!Kotlin+MVVM+LiveData+协程 打造 Wanandroid!
Wanandroid 是鸿洋鸿大大的安卓开源知识网站,包含最新博文,最新项目,常用工具,公众号文章收录等等功能,同时也开源了所有 API 接口,方便大家打造自己的 Wanandroid 客户端。Github 上关于 Wanandroid 的客户端也层出不穷,Java的,Kotl…
laravel 先排序后分组怎么写
原生我知道,但是用laravel的方式我写不出来,因为后面还要分页,自己写分页太麻烦了,哪位大神说说,谢谢!下列为原生的sqlselect*from(selectf.id,f.user_id,u.ni
什么是ZooKeeper?
上次写了一篇 什么是消息队列?以后,本来想入门一下Kafka的(装一下环境、看看Kafka一些概念啥的)。后来发现Kafka用到了ZooKeeper,而我又对ZooKeeper不了解,所以想先来学学什么是ZooKeeper,再去看看什么是Kafka。 ZooKeeper相信大家…
说说 方舟编译器
华为继去年推出黑科技 GPU Turbo 之后,今年再次扔出了一枚重磅炸弹, 安卓性能革命,华为方舟编译器,号称解决安卓程序 “边解释边执行” 的低效,全程执行机器码高效运行程序。架构级优化,显著提升性能。系统操作流畅度提升 24%,系统响应提升 44%,三方应用操作流畅度提升…
什么是消息队列?
公司用到的很多技术,自己之前都没学过(尬),于是只能慢慢补了。这次给大家写写我学习消息队列的笔记,希望对大家有帮助。 消息队列不知道大家看到这个词的时候,会不会觉得它是一个比较高端的技术,反正我是觉得它好像是挺牛逼的。 我们先不管消息(Message)这个词,来看看队列(Que…
走进 JDK 之谈谈字符串拼接
今天是 String 系列最后一篇了,字符串的拼接。日常开发中,字符串拼接是很常见的操作,一般常用的有以下几种: 以上都是执行一次的结果,可能不太严谨,但还是能反映问题的。执行次数越多,性能差距越明显,StringBuilder > StringBuffer > contact…
你并不了解 String
先说一些话题外话。 上篇文章 Core Java 52 问(含答案) 阅读量意外的高,总算没白费我整理了一个清明假期。其实也挺出乎我的意料的,因为涉及的内容大多数是 Java 基础。但是基础可能也正是很多人所欠缺的,正如我一直在写的 走进 JDK 系列,也算是从 JDK 源码的…
Core Java 52 问(含答案)
上篇文章 4.9k Star 安卓面试知识点,请收下! 翻译了 Mindorks 的一份超强面试题,今天带来的是其中 Core Java 部分 52 道题目的答案。题目的质量还是比较高的,基本涵盖了 Java 基础知识点,面向对象、集合、基本数据类型、并发、Java 内存模型、…
4.9k Star 安卓面试知识点,请收下!
逛 Github 的时候看到一份超强面试题,来自 MindOrks 开源的 android-interview-questions。虽说是一份安卓面试题,但其中包含了 数据结构与算法 、Java 核心基础 、Android 核心基础 、设计模式 等各方面内容。大致浏览了一下,质…