目录JDK1.8的新特性接口(interface)的默认方法与静态方法lambda表达式(是一个匿名函数)为什么需要使用lambda表达式举个例子,创建一个线程并调用,采用匿名内部类和lambda表达式的方式lambda表达式的使用条件应用场景函数接口及@FuncationInterfacelambda表达式基本语法lambda的简化规则匿名内部类的原理与lambda表达式的区别所需类型不一样类型的抽象方法数量不一样实现原理不一样常用的4个函数式接口方法引用(代码的简化,主要是函数式接口与需要引用的方法返回值与参数类型及数量一致)方法引用的三种格式stream流什么需要使用stream流、st
目录JDK1.8的新特性接口(interface)的默认方法与静态方法lambda表达式(是一个匿名函数)为什么需要使用lambda表达式举个例子,创建一个线程并调用,采用匿名内部类和lambda表达式的方式lambda表达式的使用条件应用场景函数接口及@FuncationInterfacelambda表达式基本语法lambda的简化规则匿名内部类的原理与lambda表达式的区别所需类型不一样类型的抽象方法数量不一样实现原理不一样常用的4个函数式接口方法引用(代码的简化,主要是函数式接口与需要引用的方法返回值与参数类型及数量一致)方法引用的三种格式stream流什么需要使用stream流、st
MyDisruptorV6版本介绍在v5版本的MyDisruptor实现DSL风格的API后。按照计划,v6版本的MyDisruptor作为最后一个版本,需要对MyDisruptor进行最终的一些细节优化。v6版本一共做了三处优化:解决伪共享问题支持消费者线程优雅停止生产者序列器中维护消费者序列集合的数据结构由ArrayList优化为数组Array类型(减少ArrayList在get操作时额外的rangeCheck检查)由于该文属于系列博客的一部分,需要先对之前的博客内容有所了解才能更好地理解本篇博客v1版本博客:从零开始实现lmax-Disruptor队列(一)RingBuffer与单生产者
MyDisruptorV6版本介绍在v5版本的MyDisruptor实现DSL风格的API后。按照计划,v6版本的MyDisruptor作为最后一个版本,需要对MyDisruptor进行最终的一些细节优化。v6版本一共做了三处优化:解决伪共享问题支持消费者线程优雅停止生产者序列器中维护消费者序列集合的数据结构由ArrayList优化为数组Array类型(减少ArrayList在get操作时额外的rangeCheck检查)由于该文属于系列博客的一部分,需要先对之前的博客内容有所了解才能更好地理解本篇博客v1版本博客:从零开始实现lmax-Disruptor队列(一)RingBuffer与单生产者
echarts地图制作离线地图下载地址https://datav.aliyun.com/tools/atlas/index.htmlecharts文档地址https://echarts.apache.org/zh/option.html基于VUE编写,其他框架请自行转换,大同小异基础配置先让地图内容出来,npm安装步骤省略,请参考官方文档,创建的div必须设置宽度和高度,关于图表的宽高自适应,参考我的另一篇文章import*asechartsfrom"echarts";importzhongguofrom"@/assets/mapJson/data-city.json"exportdefaul
echarts地图制作离线地图下载地址https://datav.aliyun.com/tools/atlas/index.htmlecharts文档地址https://echarts.apache.org/zh/option.html基于VUE编写,其他框架请自行转换,大同小异基础配置先让地图内容出来,npm安装步骤省略,请参考官方文档,创建的div必须设置宽度和高度,关于图表的宽高自适应,参考我的另一篇文章import*asechartsfrom"echarts";importzhongguofrom"@/assets/mapJson/data-city.json"exportdefaul
目录安卓驱动开发过程机器介绍步骤step1:下载android11源码一、谷歌的源码下载:二、rk3568提供的源码下载:step2:编译android源码(make命令)1.编译的几个选项2.开始编译step3:编写驱动文件step4:开始构建镜像(build.sh)两种驱动编译方式1.驱动编译到内核介绍:2.驱动编译成内核模块介绍:m1.驱动编译到内核实战s1.drivers文件夹内创建自己的驱动文件夹并写入驱动文件。s2.构建镜像时的各模块的设置s3.根据设置,确定编译构建内核的步骤s4:构建内核镜像s5小结:m2.驱动编译成内核模块实战s1.先建立一个文件夹放置驱动c文件和Makefi
目录安卓驱动开发过程机器介绍步骤step1:下载android11源码一、谷歌的源码下载:二、rk3568提供的源码下载:step2:编译android源码(make命令)1.编译的几个选项2.开始编译step3:编写驱动文件step4:开始构建镜像(build.sh)两种驱动编译方式1.驱动编译到内核介绍:2.驱动编译成内核模块介绍:m1.驱动编译到内核实战s1.drivers文件夹内创建自己的驱动文件夹并写入驱动文件。s2.构建镜像时的各模块的设置s3.根据设置,确定编译构建内核的步骤s4:构建内核镜像s5小结:m2.驱动编译成内核模块实战s1.先建立一个文件夹放置驱动c文件和Makefi
Umi4从零开始实现动态路由、动态菜单🍕前言🍔前期准备📃数据表🤗Mock数据🔗定义类型🎈开始🎃获取路由信息🧵patchRoutes({routes,routeComponents})📸生成动态路由所需的数据formattedRoutePathroutePathcomponentPathfilePath🍖生成动态路由数据及组件😋完成✨踩坑🍕前言近期在写Umi4的练习项目,计划实现一个从服务器获取路由信息并动态生成前端路由和导航菜单的功能。本文记录了相关知识、思路以及开发过程中踩到的坑。🍔前期准备📃数据表后端同学可以参考CREATETABLE`menus`(`id`INT(10)NOTNULLAU
Umi4从零开始实现动态路由、动态菜单🍕前言🍔前期准备📃数据表🤗Mock数据🔗定义类型🎈开始🎃获取路由信息🧵patchRoutes({routes,routeComponents})📸生成动态路由所需的数据formattedRoutePathroutePathcomponentPathfilePath🍖生成动态路由数据及组件😋完成✨踩坑🍕前言近期在写Umi4的练习项目,计划实现一个从服务器获取路由信息并动态生成前端路由和导航菜单的功能。本文记录了相关知识、思路以及开发过程中踩到的坑。🍔前期准备📃数据表后端同学可以参考CREATETABLE`menus`(`id`INT(10)NOTNULLAU