🌓

(转)算法之优先队列 PriorityQueue解决Top K 问题

转自:https://www.jianshu.com/p/a4a1984fc4ff 解决方法:维护一个大小为 K 的小顶堆,依次将数据放入堆中,当堆的大小满了的时候,只需要将堆顶元素与下一个数比较:如果大于堆顶元素,则将当前的堆顶元素抛弃,并将该元素插入堆中。遍历完全部数据,Top K 的元素也自然都在堆里面了。 当然,如果是求前 K 个最小的数,只需要改...

阅读全文

Java中Lambda表达式解析

在大部分开发者看来,Lambda 表达式只是一种语法糖,简化了书写匿名内部类的写法。实际上Lambda表达式并不仅仅是匿名内部类的语法糖,JVM内部是通过invokedynamic指令来实现Lambda表达式的,与内部类的实现有很大的差异。本文主要记录lambda的实现原理。 一、函数式接口众所周知Javascript具有一个强大的特性:闭包。Java中最接...

阅读全文

观《百鸟朝凤》有感

此刻子时,在朋友的推荐下看完了整部《百鸟朝凤》,看完之后我立马起身来打开电脑,心中思绪万千,准备写下来记录下来。自我观看了这么多电影以来,头一次是如此的触动,头一次留下来这样的眼泪,记得上一次很有感触还是因为《忠犬八公的故事》,那次泪水到了眼角,我忍住了,没有掉下来。这部电影实在是让我太感动了,我的泪水憋不下去了,源源不断地从眼眶里面流出来。我捂着自己的嘴巴...

阅读全文

Android骨架屏效果的实现与原理解析

大家在使用淘宝的时候,如下图所示有遇到这样的效果,其会只展示一部分骨架大致图,等数据加载完毕之后再展示真正的页面数据。与菊花图相比起来,这样的实现能更好的提升用户的体验,这种效果称做:Skeleton Screen Loading,中文叫做骨架屏,本文主要记录其实现过程。 1、骨架屏的实现方式 在现在主流的骨架屏实现效果中有两种方式: 通过View或者Ad...

阅读全文

Android 插件化之ClassLoader

插件化要解决的三个核心问题:类加载、资源加载、组件生命周期管理。 在Android插件化中其原理实际是 Java ClassLoader的原理,此博文主要对Android插件化中类加载中的DexClassLoader做总结,便于之后对Android插件化的理解学习。 Android的Dalvik虚拟机和Java虚拟机的运行原理相同都是将对应的java类加载在...

阅读全文