harmony java框架
文件结构
java: java代码,运行逻辑
element: 元素资源,存放一些json格式文件,主要是颜色,字符串,bool值等
graphic: 表示可绘制资源。例如按钮的样式
layout: 表示布局资源, 控制控件摆放位置和控件的一些属性
media: 表示媒体资源,如图片、视频等
build: 存放最终编译后的包
项目配置文件每个项目下都有一个config文件,它包含了该HAP的一些配置信息。
{ "app": { "bundleName": "com.example.learning",//同一个应用需要保持一致 "vendor": "example",//开发商 "version": {//版本 "code": 1000000,//内部版本号,用户不可见 "name": "1.0.0"//呈现的版本号 } ...
算法设计与分析代码
子集和数问题由于本实验是为了验证数据集影响,因此没有采用一次增加两个的限界函数。此代码左支限界是 w+wi> target,右支限界是w+rest>=target. 并且由于实验网站要求在没有正确解的情况下输出近似解,因此每次触底或者左支终止之后还进行了记录。最后因为进行了排序,而数据集给出的答案中并没有进行排序,因此使用了一个结构体对开始的位置进行记录。
#include<iostream>#include<fstream>#include<vector>#include<string>#include <windows.h>#define N 6#define MAX_ANS 1000using namespace std;struct node{ int sum; int loc;};int time=0;int ans=0;int nearest = 0;int use[MAX_ANS][N+1];void quick(vector<node>& a, i ...
搭配
含义搭配是两个及两个以上的词组成的词汇表示。
例如:strong tea vs. powerful tea vs. powerful drugmake a decision vs. take a decisionknock … door vs. hit … door
这些搭配有时候并没有什么语法规则,仅仅是约定俗称的习惯,因此单纯的基于规则进行进行词语匹配有时候无法找出这些搭配。
寻找搭配的方法基于频率基于频率的基本思想就是统计一个语料中二元组出现的次数。但是统计完成之后可能出现如下图所示情况。
of the in the等搭配毫无意义,因此我们需要想办法筛选出不需要的留下需要的。
一种方法是使用停用词表删去停用词,第二种方法是基于规则筛选掉某些不太可能出现搭配的方案,例如介词和副词搭配。
均值和方差很多时候二元组并不是紧密相连的,他们之间往往有一定距离,并且还需要知道两个词的先后顺序。例如:she knocked on his doorThey knocked at the door100 women knocked on Donaldson’s doorA man knocked ...
祝李杏-张成百年好合
祝愿
此祝:
若日月含光有时且尽
愿郎妾之情未得绝期
夫妻将作比翼鸟
此日起共为一身
只持死别
毋有生离
拥一人
一生之幸
信郎妾定执手偕老
与共白首
springboot注解
bean相关bean是spring架构的一大支柱,它构建了spring的框架。
bean是什么bean可以是xml中的字段,也可以是用户定义的类。在定义他们后,spring会自动的查找这些bean并把它们加入到spring的bean容器中。然后在我们需要的时候可以从容器中拿取bean对象。
大致过程为:
注册: 根据xml文档和注解(@Bean, @Component等)找到相应的对象,并将这些这些对象的定义信息保存起来(并没有实例化,定义信息包括一些xml中的初始值等)。
发布到springloc容器中,但是此时还是没有实例化
装配: 在这些资源都找到后,会根据@Autowired进行实例化加入到各个类中,类似于链接过程。
bean的生命周期为:
图片源自
spring的容器又叫ioc容器(控制反转), bean就是被这个容器实例化、管理、组装的对象。
依赖注入: spring启动时会把所需的类实例化为对象,如果该对象有依赖,那么他会寻找依赖对象并且实例化放到该对象中,这便是依赖注入。
控制反转: new操作现在基本交给spring去做了,而不是使用传统的构造函数传参方式,这 ...
js 动画
动画过去想要实现动画都是使用定时器,但是定时器的精度不高,可能导致动画播放不平滑。为了使计时精确,便是用requestAnimationFrame(func).并且这个函数还可以有一个参数,它的类型是DOMHighResTimeStamp,表示开始执行回调函数的时刻。
没执行一次requestAnimationFrame(func),他就会执行一次回调函数。但是这并不是一定的,如果调用太快他会自动进行合并。可以认为有一个任务队列,调用这个函数将它插入这个队列中,但是如果队列中有这个函数就不会插入。
function updateProgress(time){ var div = document.getElementById("status"); div.style.width = (parseInt(div.style.width, 10) + 5) + "%"; if(div.style.left != "100%") { requestAnimationFrame ...
链接
基础记得gcc编译器编译的步骤吗?预处理,编译,汇编,链接。首先前两步是为了生成.s的汇编文件,然后第三步就是生成机器码。但是如果第三步就已经完成了所有事为什么还要第四步呢?
首先我们要知道,编译时是各个文件独立编译的,也就是说这个时候如果分配了地址很可能发生这个函数的地址和另外一个文件中函数的地址相同的尴尬事情发生,为了避免这种事情,在编译到.o文件的时候一些其他文件要用的函数和变量使用一个符号来表示的,然后在链接阶段再来连连看把地址安上。
目标文件目标文件有三种:
可重定位目标文件,也就是汇编后形成的.o文件。可以和其他文件链接新城可执行文件
可执行目标文件,也就是可执行文件
共享目标文件,一种特殊的可重定向目标文件,可以在运行时重定向(动态链接)
可重定位目标文件
上面是一个elf文件结构图,这是现在linux中目标文件格式。各种目标文件中都有类似的格式。
ELF头,存放了一些基础信息,例如大端序还是小端序,文件类型等等。
.text节,已编译的机器代码。
.rodata。只读数据,例如printf中的格式串和跳转表
.data;以初始化全局和静态变量
.bss; 未初始化 ...
js异步编程
期约基础期约类似于事件处理。例如let p = new Promise((resolve, reject) => {});setTimeout(console.log, 0, p1);timeout的三个参数第一个是执行的函数,第二个是等待的时间,后面的都是函数的参数
他和普通的timeout的区别在于它可以通过函数设置参数,从而异步决定某些函数是否执行及这些函数的参数。
期约具有三种状态: 待定(pending)、兑现/解决(resolved)、拒绝(rejected)
在待定状态下,期约可以落定,一旦跳转到解决或拒绝状态就不能再变化。
Promise((resolve, reject) => {…}): reslove和reject是跳转到解决或拒绝状态的函数。两个函数都可以传递一个参数,resolve的参数表示解决期约的值(感觉有点像返回值)。reject的参数表示拒绝的理由。此外,reject还会抛出一个异常
new Promise(() => setTimeout(console.log, 0, 'executor' ...
ld链接脚本语法
语法
说明
ENTRY(symbol)
将符号symbol的值作为入口地址(主函数)。ld中有多种方法指定入口地址,他们的优先级如下排列。 1. ld中的-e选项 2. 脚本中的ENTRY 3. _start符号 4. .text段第一个字节地址 5. 0
STARTUP(filename)
将文件filename作为链接中的第一个输入文件
SEARCH_DIR(path)
库查找目录
INPUT(file, file, …)
将指定文件作为输入文件
INCLUDE filename
将指定文件包含进链接脚本(这是对脚本来说的,相当与在脚本中写了#include 加入其他脚本)
PROVIDE(symbol)
在链接脚本中添加某个符号
此外,最基本的命令就是定义段的SECTIONS了,它的格式为:
SECTIONS{ secname : { contents }}secname是输出文件的对应段,contents是输入文件的段其中contents的语法为: filename(sections) ...
js事件
事件流过程<!DOCTYPE html><html> <head> <title>Event Bubbling Example</title> </head> <body> <div id="myDiv">Click Me</div> </body></html>当点击div后.click事件冒泡顺序:1. div2. body3. html4. document也就是从内部不断的向父节点传递,直到传递到根节点
但是如果使用事件捕获,会出现不同的结果。它的顺序正好和前面讲的相反。
而在事件流中,真正的处理顺序是事件捕获、到达目标和事件冒泡。事件捕获时从根节点到达目标节点的过程,事件冒泡是从目标节点到根节点的过程。
事件处理程序事件是用户或浏览器执行的动作,例如单击,单击,悬停等。事件处理程序的名字统一以on开头,例如onclick, onload等。
html事件处理程序
有些处理函数可以在html中直接指定。例如: ...