手头有一个暂时闲置的树莓派,就想把他利用起来,于是就想用树莓派搭建一个直播平台实现b站24小时实时直播。具体步骤:参考鸣谢:https:blog.oliverxu.cn20190207%E4%BD%BF%E7%94%A8%E6%A0%91%E8%8E%93%E6%B4%BE%E6%90%AD%E5%BB%BA%E5%AE%B6%E5%BA%AD%E5%AE%A0%E7%89%A9%E7%9B%91%E6%8E%A7%E5%B9%B6%E5%9C%A8B%E7%AB%9924%E5%B0%8F%E6%97%B6%E7%9B%B4%E6%92%AD项目所需配件树莓派树莓派摄像头(选用那种带CSI接口的摄像头,淘宝...
2020-09-24 13:40:14 1.6w浏览 0点赞 0回复 0收藏
前言本文参考《Android开发艺术与探索》第四章内容及网上几篇博客,里面融入笔者的个人理解。希望能对大家理解View有所帮助。基本概念介绍介绍View的工作原理之前我们首先要理解DecorView和ViewRoot两个概念:1、DecorViewDecorView是Windows中的View的最顶层View。我们可以根据下面一副图来认识它:由这幅图我们可以看到,其实DecorView是一个FrameLayout,里面是一个垂直的线性布局,在线性布局中分上下两部分FrameLayout,上...
2020-09-24 10:03:39 1.2w浏览 0点赞 0回复 0收藏
前言从这篇文章开始,后面我们将持续介绍JAVA虚拟机的工作原理。作为一名Android程序员,我们都知道Java代码有很多种运行方式,比如:可以在命令行中运行,可以在开发工具中运行,可以以jar文件的形式运行,甚至可以在网页中运行。这些执行的方式都离不开JRE(JavaRuntimeEnvironment)即Java运行时环境。我们平时开发之前搭建环境安装的JDK里面也有JRE,下面这张图片中我们可以看出JRE包含Java虚拟机和Java的一些核心组件库。什...
2020-09-23 12:19:42 1.3w浏览 0点赞 0回复 0收藏
前段时间忽然发现自己对于Androidstudio的Gradle打包并不了解,这篇博客参考网上众多教程,为大家详细介绍Gradle。Gradle简介WewouldliketointroduceGradletoyou,abuildsystemthatwethinkisaquantumleapforbuildtechnologyintheJava(JVM)world.Gradleprovides:AveryflexiblegeneralpurposebuildtoollikeAnt.Switchable,buildbyconventionframeworksalaMaven.Butweneverlockyouin!Verypowerfulsupportformultiprojectbuilds.Very...
2020-09-23 10:53:59 1.7w浏览 0点赞 0回复 0收藏
Button类型分类按照按钮的形状,按钮可以分为:普通按钮椭圆按钮胶囊按钮圆形按钮其它Button类型效果和代码普通按钮普通按钮和其他按钮的区别在于不需要设置任何形状,只设置文本和背景颜色即可,例如:<Buttonohos:width"150vp"ohos:height"50vp"ohos:textsize"27fp"ohos:text"button"ohos:backgroundelement"$graphic:colorblueelement"ohos:leftmargin"15vp"ohos:bottommargin"15vp"ohos:rightpadding"8vp"ohos:leftpadding"...
2020-09-22 11:54:27 1.4w浏览 1点赞 1回复 0收藏
一:ConcurrentSkipListMapTreeMap使用红黑树按照key的顺序(自然顺序、自定义顺序)来使得键值对有序存储,但是只能在单线程下安全使用;多线程下想要使键值对按照key的顺序来存储,则需要使用ConcurrentSkipListMap。ConcurrentSkipListMap的底层是通过跳表来实现的。跳表是一个链表,但是通过使用“跳跃式”查找的方式使得插入、读取数据时复杂度变成了O(logn)。跳表(SkipList):使用“空间换时间”的算法,令链表的每个...
2020-09-22 10:44:30 8606浏览 0点赞 0回复 0收藏
直接上代码:C语言:include<stdio.h>include<algorithm>voidmean(floatdata,intlen,float&mean,float&max,float&min){floatsumdata[0];maxdata[0];mindata[0];for(inti1;i<len;i){sumdata[i];if(data[i]>max)maxdata[i];if(data[i]<min)mindata[i];}meansumlen;}voidnormalize(floatdata,intlen){floatm0.0;floatmx0.0;floatmn0.0;mean(data,len,m,mx,mn);printf("mean:%f\nmax:%f\nmin:%f\n",m,mx,mn);for(inti0;i<len;i){data[i](data[i]m)(mxmn);}}Python:defNormalize(data):mnp.mean(data)mxmax(data)mnmin(data)return[(float(i)m)(mxmn)foriindata]作者:aiexception来源:CSDN
2020-09-21 15:00:50 1.4w浏览 0点赞 0回复 0收藏
接上回的单例模式线程是否安全https:harmonyos.51cto.composts871我们先来谈谈枚举枚举是JDK1.5推出的新特性,本身也是一个class类我们先创建一个枚举publicenumEnumTest{INSTANCE;写一个就为单例publicEnumTestgetInstance(){returnINSTANCE;}}枚举是线程安全的吗?直接上代码测试!classSingleTest{publicstaticvoidmain(String[]args){EnumTestinstance1EnumTest.INSTANCE;EnumTestinstance2EnumTest.INSTANCE;System.out.pr...
2020-09-21 11:10:39 1.1w浏览 0点赞 0回复 0收藏
饿汉式缺点:可能会浪费内存线程安全懒汉式缺点:只有在单线程下才有效多线程下会破坏单例模式线程不安全饿汉是线程安全的,我们在这不讨论他,主角是我们的懒汉式!!publicclassLazyMan{私有化构造方法privateLazyMan(){}创建一个对象不赋值privatestaticLazyManlazyMan;对外提供方法publicstaticLazyMangetInstance(){if(lazyMannull){(1)try{为了更好的体现多线程睡眠使所有线程都进入Thread.sleep(1000);}catch(Exceptione){e.p...
2020-09-18 15:41:33 9634浏览 0点赞 0回复 0收藏
目录1JVM的内存区域布局2JVM五大数据区域介绍3JVM运行时内存布局和JMM内存模型区别4JMM内存模型交互操作1JVM的内存区域布局java代码的执行步骤有三点java源码文件>编译器>字节码文件字节码文件>JVM>机器码机器码>系统CPU执行JVM执行的字节码需要用类加载来载入;字节码文件可以来自本地文件,可以在网络上获取,也可以实时生成。就是说你可以跳过写java代码阶段,直接生成字节码交由JVM执行其中Java虚拟机栈、程序计数器、Heap...
2020-09-17 13:35:43 1.3w浏览 0点赞 0回复 1收藏
目录1四种内部类2内部类的使用场景和优点3成员内部类4成员内部类的访问范围详解5静态内部类6局部内部类7匿名内部类1四种内部类成员内部类静态内部类局部内部类匿名内部类2内部类的使用场景和优点内部类的优点:每个内部类都能独立地继承一个类(实现多个接口),无论外部类是否已经继承或者实现,对于内部类都没有影响。内部类的存在使得Java的多继承机制变得更加完善在开发设计中会存在一些使用接口很难解决的问题,而类却只能继...
2020-09-17 11:19:10 7905浏览 0点赞 0回复 0收藏
有没有具体一些的解释什么是FeatureAbility?
2020-09-16 15:29:54 9.0w浏览 0点赞 1回复 0收藏
目录1对象的实例化过程2类的加载过程3触发类加载的条件4对象的实例化过程5类加载器和双亲委派规则,如何打破双亲委派规则1对象的实例化过程对象的实例化过程是分成两部分:类的加载初始化,对象的初始化要创建类的对象实例需要先加载并初始化该类,main方法所在的类需要先加载和初始化类初始化就是执行<clinit>方法,对象实例化是执行<init>方法一个子类要初始化需要先初始化父类2类的加载过程类的加载机制:如果没有相应类的cla...
2020-09-16 13:58:48 1.3w浏览 0点赞 0回复 0收藏
目录1异常的分类和继承关系2几种常见异常类的解析3Java异常关键字4开发过程处理异常注意点5异常和AutoCloseable(1.7JDK的语法糖)6throw和throws的区别7guava的Throwables类了解一下欢迎指正文中错误参考文章方法中发生异常,会创建一个异常对象交给JVM处理,该异常对象包含异常名称,异常描述以及异常发生时应用程序的状态。创建异常对象并交给JVM的过程称为抛出异常。这会有一系列的方法调用,这系列方法调用的有序列表叫做调...
2020-09-16 13:18:01 9735浏览 0点赞 0回复 0收藏
实战需求本期,我们来从零开始通过代码实现在第一个页面点击按钮跳转到第二个页面。前期文章HarmonyOS鸿蒙入门教程之01基础环境和开发工具(教程含源码)HarmonyOS鸿蒙开发之02开发工具安装HarmonyOS鸿蒙入门教程之03运行开发工具完成基础配置DevEcoStudio(教程含源码)HarmonyOS鸿蒙开发之04运行第一个helloworld(教程含源码)HarmonyOS鸿蒙开发之05运行第一个页面(教程含源码)HarmonyOS鸿蒙开发之06通过代码创建页面Featu...
2020-09-16 12:53:17 1.5w浏览 0点赞 3回复 0收藏
实战需求本期,我们来从零开始通过代码创建一个页面前期文章HarmonyOS鸿蒙入门教程之01基础环境和开发工具(教程含源码)HarmonyOS鸿蒙开发之02开发工具安装HarmonyOS鸿蒙入门教程之03运行开发工具完成基础配置DevEcoStudio(教程含源码)HarmonyOS鸿蒙开发之04运行第一个helloworld(教程含源码)HarmonyOS鸿蒙开发之05运行第一个页面(教程含源码)通过代码编写您的第一个鸿蒙App页面1、创建FeatureAbility1.1什么是FeatureAb...
2020-09-16 12:49:15 1.2w浏览 1点赞 4回复 0收藏
实战需求本期,我们来从零开始创建一个鸿蒙App前期文章HarmonyOS鸿蒙入门教程之01基础环境和开发工具(教程含源码)HarmonyOS鸿蒙开发之02开发工具安装HarmonyOS鸿蒙入门教程之03运行开发工具完成基础配置DevEcoStudio(教程含源码)HarmonyOS鸿蒙开发之04运行第一个helloworld(教程含源码)编写您的第一个鸿蒙App页面1、创建项目如何创建项目,请参考这篇文章《HarmonyOS鸿蒙开发之04运行第一个helloworld(教程含源码)》2、...
2020-09-16 11:52:49 1.0w浏览 0点赞 0回复 0收藏
实战需求本期,我们来从零开始创建一个鸿蒙App前期文章HarmonyOS鸿蒙入门教程之01基础环境和开发工具(教程含源码)HarmonyOS鸿蒙开发之02开发工具安装HarmonyOS鸿蒙入门教程之03运行开发工具完成基础配置DevEcoStudio(教程含源码)编写您的第一个鸿蒙App1、创建项目打开DevEcoStudio,在欢迎页点击CreateHarmonyOSProject,创建一个新工程。2、选择开发设备类型选择设备类型和模板,以Wearable为例,选择EmptyFeatureAbility(...
2020-09-16 11:43:47 1.2w浏览 0点赞 0回复 0收藏
实战需求运行开发工具完成基础配置DevEcoStudio(教程含源码)往期文章HarmonyOS鸿蒙入门教程之01基础环境和开发工具(教程含源码)HarmonyOS鸿蒙开发之02开发工具安装运行App1、指定SDK2、接受License3、自动下载SDK4、完成安装工作作者:知识大胖来源:CSDN
2020-09-16 11:31:10 1.0w浏览 0点赞 5回复 0收藏
一、下载工具DevEcoStudio开发工具请通过下面的文章下载。《HarmonyOS鸿蒙入门教程之01基础环境和开发工具(教程含源码)》二、解压安装1、解压2、一路next3、全部都勾选上4、建议重启一下作者:知识大胖来源:CSDN
2020-09-16 11:25:32 1.2w浏览 1点赞 0回复 0收藏