静态函数

BroadcastReceiver详解

◇◆丶佛笑我妖孽 提交于 2019-12-07 01:14:41
二、注册相关 1、静态注册实例程序 大家可能会问,什么叫静态注册实例程序,先不要管上面的标题,慢慢往下看,后面在讲动态注册时会再提到。 先构造一个接收器: [java] view plain copy public class MyReceiver extends BroadcastReceiver { private static final String TAG = "MyReceiver"; @Override public void onReceive (Context context, Intent intent) { // TODO Auto-generated method stub String msg = intent.getStringExtra("msg"); Log.i(TAG, "MyReceiver:"+msg); } } 直 接派生自BroadcastReceiver,在OnReceive()函数中进行处理即可,我们前面说了,广播的传递是靠Intent 的,OnReceive的第二个参数,就是广播传过来的Intent,因为后面我们在发送广播时,会利用PutStringExtra放进去一个标识为 msg的字符串,所以这里我们可以利用GetStringExtra把这个字符串取出来。然后用Log标记下这个类接收到了这个消息,以便我们跟踪。 大家可能会想

前端静态资源缓存

≡放荡痞女 提交于 2019-12-07 00:51:44
1.项目中boot cdn 引入的多个文件缓存时间太短了,是否应该设置足够大?比如一年,如果真有bug需要修复,在手动改? 更彻底就是直接作为配置项: 就像basket.js nprogress.css nprogress.js jquery.min.js xlsx.core.min.js analytics.js 然后以vendor为单位 send batch requests 参考资料:https://www.sitepoint.com/how-to-improve-loading-time-with-basket-js/ 2. 使用webpack-html-plugin 打出来的css 放到js后面去了,阻塞了css 渲染 是不是应该把index。css提前????放到js前面啊 3. 有些方法太慢了, 考虑两种优化方式 1)parallelJS 多线程 2) 基于函数式的缓存 来源: oschina 链接: https://my.oschina.net/u/2267438/blog/709737

java的内存管理机制

不打扰是莪最后的温柔 提交于 2019-12-06 21:23:29
C++内存管理详解: 内存分配方式简介   在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。   栈,在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。   堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。   自由存储区,就是那些由malloc等分配的内存块,他和堆是十分相似的,不过它是用free来结束自己的生命的。   全局/静态存储区,全局变量和静态变量被分配到同一块内存中,在以前的C语言中,全局变量又分为初始化的和未初始化的,在C++里面没有这个区分了,他们共同占用同一块内存区。   常量存储区,这是一块比较特殊的存储区,他们里面存放的是常量,不允许修改。 堆和栈究竟有什么区别? 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事

Python中的静态方法?

我的梦境 提交于 2019-12-06 18:11:27
Python中是否可以有无需初始化类即可调用的静态方法,例如: ClassName.static_method() #1楼 我认为 史蒂文实际上是对的 。 为了回答最初的问题,然后,为了建立一个类方法,只需假设第一个参数不会成为调用实例,然后确保仅从类中调用该方法。 (请注意,此答案是针对Python 3.x的。在Python 2.x中,您将在调用类本身的方法时遇到 TypeError 。) 例如: class Dog: count = 0 # this is a class variable dogs = [] # this is a class variable def __init__(self, name): self.name = name #self.name is an instance variable Dog.count += 1 Dog.dogs.append(name) def bark(self, n): # this is an instance method print("{} says: {}".format(self.name, "woof! " * n)) def rollCall(n): #this is implicitly a class method (see comments below) print("There are {} dogs

很多人都会做错的一道JVM题?【分享】

旧街凉风 提交于 2019-12-06 15:16:10
有关Java虚拟机类加载机制相关的文章一搜一大把,笔者这儿也不必再赘述一遍了。笔者这儿捞出一道code题要各位大佬来把玩把玩,假定你一眼就看出了端倪,那么祝贺你,你可以下山了: ​   public class StaticTest   {    public static void main(String[] args)    {    staticFunction();    }    static StaticTest st = new StaticTest();    static    {    System.out.println("1");    }    {    System.out.println("2");    }    StaticTest()    {    System.out.println("3");    System.out.println("a="+a+",b="+b);    }    public static void staticFunction(){    System.out.println("4");    }    int a=110;    static int b =112;   }   问题:请问这段程序的输出是什么?一般关于这类问题,小伙伴们脑海中必定浮现出这样的常识点:   Java中赋值次第:  

c/c++里的 堆区 栈区 静态区 文字常量区 程序代码区

随声附和 提交于 2019-12-06 14:58:57
一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由 编译器 自动分配释放 ,存放 函数 的参数值, 局部变量 的值等 。其操作方式类似于数据结构中的栈。 堆(heap):由malloc,new等分配的空间的地址,地址由低向高增长(程序员释放)。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于 链表 。 栈(stack):是自动分配变量,以及函数调用所使用的一些空间(所谓的局部变量),地址由高向低减少; 3、全局区(静态区)(static)— 全局变量和 静态变量 的存储是放在一块的, 初始化的 全局变量 和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。程序结束后由系统释放 。-->分别是data区,bbs区 4、文字常量区 — 常量字符串就是放在这里的,程序结束后由系统释放 。-->coment区 5、程序代码区 — 存放函数体的二进制代码。-->code区 二、例子程序 这是一个前辈写的,非常详细 //main.cpp int a = 0; 全局初始化区 char *p1; 全局未初始化区 main() { int b; 栈 char s[] = "abc"; 栈 char *p2; 栈 char *p3 =

jinjia2 flask加载静态文件

淺唱寂寞╮ 提交于 2019-12-06 13:51:01
一、加载静态文件 静态文件:css 文件、js文件、图片文件 加载静态文件使用的是“url_for”函数 语法:{{ url_for( "static", filename="xxxxx" ) }} 路径查找,要以当前项目的static目录作为根目录。 二、实例: 来源: https://www.cnblogs.com/yingxiongguixing/p/11987485.html

java之static关键字

我们两清 提交于 2019-12-06 11:30:57
标签(空格分隔): static static 关键字: 用于修饰成员(成员变量和成员函数) 被修饰的成员具有以下的特点: 1.随着类的加载而加载 2.优先于对象存在 3.被所有对象所共享 4.可以直接被类名调用 使用注意: 静态方法只能访问静态成员 静态方法中不可以写this,super关键字 主函数是静态的 class Person { String name; String country ="CN"; public void sho(){ System.out.println(name+"::"+country); } } class StaticDemo{ public static void main(String[] args){ Person p=new Person(); p.name="zhangsan"; p.sho(); } } 对于上述的案例解释说明一下:存在堆内存中 例如:Person p=new Person() new Person() name=null country="cn" 第二个对象:存在堆内存中 new Person() name=null country="cn" 问题对象越多,内存的存储的共同数据就会越多,如果我们这么这么也可以,对象越多,内存中的country越多,因为country每个人都一样,问题来了

ABAP学习(14):ABAP面向对象

一曲冷凌霜 提交于 2019-12-06 10:52:33
ABAP面向对象 1、类的定义与实现 类定义: 语法:Class <类名> definition. Public section. Methods:<方法名> Importing <参数名> type <参数类型> Exporting <参数名> type <参数类型>. Endclass. 类实现: 语法:Class <类名> implementation. Public section. Method <方法名>. 实现具体代码块. Endmethod. Endclass. 2、抽象类 抽象类定义,抽象方法定义,使用Abstract关键字。 示例: "抽象类定义 "抽象类可以包含静态成员 class-data ,class-methods,class-events "抽象类可以包含非抽象方法 "抽象类可以不定义任何方法 "抽象类 不可以create object 创建实例,但是可以用create object type ref to 创建抽象类引用,并接受子类实例 CLASS base_class DEFINITION ABSTRACT. "抽象类 关键子abstract,基类 PUBLIC SECTION. METHODS:message ABSTRACT "抽象方法 IMPORTING msg TYPE String OPTIONAL. METHODS:sayHello

存储持续性、作用域和链接性

荒凉一梦 提交于 2019-12-06 08:50:31
存储持续性、作用域和链接性 c++中使用3中不同的方案存储数据 c++11中使用4中不同的方案存储数据。 这些方案的区别在于数据保留在内存中的时间。 自动存储持续性 在函数定义中声明的变量的存储持续性为自动的。2种 静态存储持续性 在函数定义外定义的变量和使用关键字static定义的变量的存储持续性为静态。他们在整个程序运行过程中都存在。3种 线程存储持续性c++11 多核处理器中很常见。如果变量是使用thread_local声明的,则其生命周期和所属线程一样长。 动态存储持续性 使用new运算符分配的内存将一直存在,直到使用delete运算符将其释放或程序终止为止。有时被称为自由存储或堆。 作用域和链接 作用域描述了名称在文件的多大范围可见。 作用域为局部的变量只能在定义它的代码块中用。 作用域为全局的变量在定义位置到文件结尾之间都可用。 自动变量为局部作用域。静态变量为全局作用域还是局部作用域取决于它是如何被定义的。 在函数原型作用域中使用的名称只在包含参数列表的括号内使用。 在类声明的成员的作用域为整个类。 在名称空间中的声明的变量的作用域为整个名称空间。全局作用域是名称空间作用域的特例。 c++函数的作用域为整个类或整个名称空间。但不能是局部。因为不能在代码块中定义函数。如果函数作用域为局部,则只对之间可见。不能被其他函数调用。 链接性描述了名称如何在不同单元间共享