初始化

微信小游戏资源加载页与云存储

心不动则不痛 提交于 2020-02-22 03:08:59
------------恢复内容开始------------ 微信小游戏为什么要有开始资源加载页?     当小游戏包过大的时候,我们如何优化包的大小,最直接的先把图片或者声音等资源放到云端,等小游戏初始化后再从云端下载到本地,而小游戏包里只放代码和几张简单的加载图。 为什么微信加载资源的页面和初始化的页面是两个页面?     微信小游戏自带初始化页面是,微信从云端下载小游戏代码到本地(这个是自带的,不需要处理,更没有必要再自定义)。资源加载页是,当小游戏初始化完成后再下载资源图片和其他媒体素材,如果没有下载进度页面会停住用户体验不好,所以需要一个素材下载的进度条页面,下载完成,进度条走完,就可以进入游戏。 云存储哪家好,做小游戏当然微信自带云存储!     我们将媒体资源放到远端文 件服务器,CDN等等,但是相对于现在流行的比如阿里云,AWS,腾讯云等等,甚至什么云盘啥的都不如微信自带的云存储。因为免费5  个  G!!!!!足够了。而且上传文件后会生成一个id,通过微信下载函数传入此Id,就可以下载了!      自己动手丰衣足食 首先,我们需要将游戏的媒体资源放到云端,这里我们用微信官方的云存储 在开发平台界面打开云开发平台,        会初始化些步骤,很简单 打开存储,这几我们可以新建文件夹,以及文件 编写下载文件   将所有要下载的文件id,用数组记录下来   

Java中初始化List的几种方法

倖福魔咒の 提交于 2020-02-21 18:03:20
1.常规方法 List<String> list=new ArrayList<>(); list.add("a"); list.add("b"); 2.Array工具类 此法初始化的list不可变,无法添加和删除 List<String> list=Arrays.asList("aa","bb","cc"); 若想要list可变,需使用ArrayList包装 List<String> list=new ArrayList<>(Arrays.asList("aa","bb")); list.add("cc"); 3.匿名内部类 List<String> list=new ArrayList<>(){{ add("aaa"); add("bbb"); }}; 来源: CSDN 作者: cher搬砖日记 链接: https://blog.csdn.net/weixin_43395351/article/details/104423386

深入理解JVM(学习过程)

醉酒当歌 提交于 2020-02-21 09:30:55
深入理解JVM 这,仅是我学习过程中记录的笔记。确定了一个待研究的主题,对这个主题进行全方面的剖析。笔记是用来方便我回顾与学习的,欢迎大家与我进行交流沟通,共同成长。不止是技术。 2020年02月06日22:43:09 - 记录学习过程 终于开始了。在学习这个之前,看了zhanglong老师的 java 8 和springboot 迫不及待了。先开始吧。 写在前边 论方法论 听说之前还有netty 和 kotlin 。学习风格就是,每一门课程之前,前两节课不进入主题,讲方法论。 从他人身上学习优点。加强自己的学习。从人去学习,从事去学习。我们只有亲身经历一件事情,才会产生自己的想法。从事情学习付出的成本会相对的高一点。只有一件事,你失败了,才会发现你存在什么问题。从过程中吸收一点经验,指导着你未来学习前进的方向。从人去学习来说,不是你自己亲身经历的,要学习辨别能力。为什么大家在看书的时候,看书的印象不如你自己操作的印象深刻呢?这些都是值得去思考的。更为高效的方式,还是看别人的故事,揣摩自己的人生。将别人拥有的技能转换成自己的技能,这样才是高效的学习。 学习的过程中,一定要做到两点。 输入。输入是必要的。 有输入,必定要有输出。记笔记,写博客,给别人去讲。 能给别人讲明白的前提是自己要明白。自己明白了,就一定能给别人讲明白了吗?你自己明白,给别人讲完之后,你自己也不明白了

Go语言goroutine调度器初始化(12)

浪子不回头ぞ 提交于 2020-02-21 08:21:12
本文是《Go语言调度器源代码情景分析》系列的第12篇,也是第二章的第2小节。 本章将以下面这个简单的Hello World程序为例,通过跟踪其从启动到退出这一完整的运行流程来分析Go语言调度器的初始化、goroutine的创建与退出、工作线程的调度循环以及goroutine的切换等重要内容。 package main import "fmt" func main() { fmt.Println("Hello World!") } 首先我们从程序启动开始分析调度器的初始化。 在分析程序的启动过程之前,我们首先来看看程序在执行第一条指令之前其栈的初始状态。 任何一个由编译型语言(不管是C,C++,go还是汇编语言)所编写的程序在被操作系统加载起来运行时都会顺序经过如下几个阶段: 从磁盘上把可执行程序读入内存; 创建进程和主线程; 为主线程分配栈空间; 把由用户在命令行输入的参数拷贝到主线程的栈; 把主线程放入操作系统的运行队列等待被调度执起来运行。 在主线程第一次被调度起来执行第一条指令之前,主线程的函数栈如下图所示: 了解了程序的初始状态之后,下面我们正式开始。 程序入口 在Linux命令行用 go build 编译hello.go,得到可执行程序hello,然后使用gdb调试,在gdb中我们首先使用 info files 命令找到程序入口(Entry point

C++ Primer Plus第6版18个重点笔记

╄→尐↘猪︶ㄣ 提交于 2020-02-21 06:32:43
下面是我看《C++ Primer Plus》第6版这本书后所做的笔记,作为备忘录便于以后复习。 笔记部分 C++的const比C语言#define更好的原因? 首先,它能够明确指定类型,有类型检查功能。 其次,可以使用C++的作用域规则将定义限制在特定的函数或文件中。 第三,可以将const用于更复杂的类型,比如数组和结构。 C语言中也有const,其与C++中const的区别是: 一是作用域规则不同;另一个是,在C++中可以用const值来声明数组长度。 不能简单地将整数赋给指针,如下所示: int *ptr; ptr = 0xB8000000; // type mismatch 在这里,左边是指向int的指针,因此可以把它赋给地址,但右边是一个整数。您可能知道,0xB8000000是老式计算机系统中视频内存的组合段偏移地址,但这条语句并没有告诉程序,这个数字就是一个地址。在C99标准发布之前,C语言允许这样赋值。但C++在类型一致方面的要求更严格,编译器将显示一条错误消息,通告类型不匹配。要将数字值作为地址来使用,应通过强制类型转换将数字转换为适当的地址类型: int *ptr; ptr = (int *) 0xB8000000; // type now match 这样,赋值语句的两边都是整数的地址,因此这样赋值有效。 注意

C++学习随笔之十一:C++中的代码重用

帅比萌擦擦* 提交于 2020-02-21 05:43:58
引言: C++ 的一个主要目的是代码重用,提高效率,公有继承是实现这个目的的一种机制。还有其他的机制,本部分主要介绍其他代码重用方法,一种是包含、组合或层次化,另一种是私有或保护继承,通常组合、私有继承和保护继承哟国语实现 has-a 关系,即新的对类将包含另一个类的对象。还有一种就是和函数模板对应的类模板。 1. 包含对象成员的类: 包含对象的类就是这样一种类:类中包含了这样的一个类成员:本身是另一个类的对象。这种方法称为包含、组合或层次化。 C++和约束:C++包含让程序员能够限制程序结构的特性——使用explicit防止单参数构造函数的隐式转换,使用const限制方法修改数据等等。这样做的根本原因是:在编译阶段出现错误要比在运行阶段出现错误要好,要优。 初始化顺序:当初始化列表包含多个项目时,这些项目被初始化的顺序为它们被声明的顺序,而不是它们在初始化列表中的顺序。例如: Student(const char *str,const double *pd,int n):scores(pd,n),name(str){} 则name成员仍将首先初始化,因为在类定义中它首先被声明。 接口和实现:使用公有继承是,类可以继承接口,可能还有实现(基类的纯虚函数提供接口,但不提供实现)。获得接口是is-a关系的组成部分。而是用组合,类可以获得实现,但不能获得接口。不继承接口是has

Java连载86-List集合详解

天大地大妈咪最大 提交于 2020-02-21 02:58:22
一、List集合 1.List集合存储元素的特点: (1)有序(List集合中存储有下标)​:存进去是这样的顺序,取出来还是按照这个顺序取出​。 (2)可重复 2.深入ListJ集合 ArrayList集合底层是数组,数组​是有下标的;所以ArrayList集合有很多自己的特性​;ArrayList集合底层默认初始化容量是10,扩大之后的容量是原容量的1.5倍​;Vector集合底层默认初始化容量为10,扩大之后的容量是原容量的两倍 3.如何优化ArrayList和Vector 尽量减少扩容操作,因为扩容需要数组拷贝,数组拷贝是很耗内存的,一般推荐在创建集合的时候指定初始化容量 package com.bjpowernode.java_learning; import java.util.*; ​ public class D86_1_ListCollectionAnalysis { public static void main(String[] args) { //创建一个List集合 //Collection c = new ArrayList();//这样初始化一个列表编译没问题,但是我们就不用能用List特有的方法了 List l = new ArrayList(); //List l = new LinkedList();//这两种初始化方式哪种都可以

Linq专题之var关键字

我的未来我决定 提交于 2020-02-21 01:14:41
  在c#1.0,c#2.0中声明一个变量时,总是要指定变量的类型,如果不指定变量类型编译器就会报错,产生编译错误。在c#3.0中我们可以不指定变量的具体类型,而使用一个新的关键字"var"来指定变量的类型,该变量的实际类型将在其初始化表达式中推到出来。下面实例代码中,我们用var声明了3个局部变量,并获取他们的类型: 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Linq; 6 7 namespace LinqDemo 8 { 9 class Program 10 { 11 static void Main(string[] args) 12 { 13 14 LingVar(); 15 } 16 17 private static void LingVar() 18 { 19 20 var numberid = 10086; 21 22 var name = "IT少年"; 23 24 var arrayCity = new string[] { "BeiJing", "ShangHai" }; 25 26 27 Console.WriteLine("--numberid的类型----"); 28

玩转Zynq连载40——[ex59] 基于Zynq的双目视觉图像采集显示实例

久未见 提交于 2020-02-20 17:58:56
特权同学玩转Zynq连载40——[ex59] 基于Zynq的双目视觉图像采集显示实例 1 CMOS摄像头应用背景与驱动原理 CMOS摄像头(CMOS Sensor)是一种采用CMOS图像传感器的摄像头。摄像头主要有两类,CMOS和CCD。CMOS一般应用在普通数码设备中,CCD一般应用在高档数码设备中,它们都是光学成像,但CCD比CMOS单位成像的效果要好。CCD镜头比CMOS的颜色还原更好,并且分辨率更高。 CCD和CMOS在制造上的主要区别是,CCD是集成在半导体单晶材料上,而CMOS是集成在被称做金属氧化物的半导体材料上,但工作原理没有本质的区别。在成像方面,CCD的成像通透性、明锐度都很不错,色彩还原、曝光可以保证基本准确。而CMOS的产品往往通透性一般,对实物的色彩还原能力偏弱,曝光也都不太好。由于CMOS自身的物理特性,其成像质量和CCD还是有一定距离的。CCD制造工艺较复杂,掌握CCD技术的厂商并不多,采用CCD摄像头的价格相对也比较昂贵。但随着制造工艺的不断改进,目前CMOS和CCD的实际成像效果的差异在逐渐减小。加之CMOS的制造成本和功耗都要比CCD低不少,因此很多摄像头生产厂商更趋向于采用CMOS感光元件。正是由于低廉的价格以及高度的整合性,使得CMOS摄像头得到了更广泛的应用。 CCD是目前比较成熟的成像器件,CMOS被看作未来的成像器件

用Delphi制作DLL的方法-

北慕城南 提交于 2020-02-20 12:44:20
用Delphi制作DLL的方法 文前: 一本介绍电子书籍 http://www.cnblogs.com/Files/liangqihui/DelphiDLL.rar 一 Dll的制作一般步骤   二 参数传递   三 DLL的初始化和退出清理[如果需要初始化和退出清理]   四 全局变量的使用   五 调用静态载入   六 调用动态载入   七 在DLL建立一个TForM   八 在DLL中建立一个TMDIChildForM   九 示例:   十 Delphi制作的Dll与其他语言的混合编程中常遇问题:   十一 相关资料   一 Dll的制作一般分为以下几步:   1 .在一个DLL工程里写一个过程或函数   2 .写一个Exports关键字,在其下写过程的名称。不用写参数和调用后缀。   二 参数传递   1 .参数类型最好与window C++的参数类型一致。不要用DELPHI的数据类型。   2 .最好有返回值[即使是一个过程],来报出调用成功或失败,或状态。成功或失败的返回值最好为1[成功]或0[失败].一句话,与windows c++兼容。   3 .用stdcall声明后缀。   4 .最好大小写敏感。   5 .无须用far调用后缀,那只是为了与windows 16位程序兼容。   三 DLL的初始化和退出清理[如果需要初始化和退出清理]   1 .DLLProc