静态函数

Java—(多态、内部类)

我与影子孤独终老i 提交于 2019-12-15 20:14:09
一、多态 多态:可以理解为同一个事物在不同的场合具有不同的形态 分为两种: 编译时多态:在编译期间编译器根据函数实参的类型确定要调哪个函数(这个我们之前已经接触过了,和函数重载差不多,是同名函数,但是参数不同)编译时的多态性是通过函数重载或运算符重载来实现的。 运行时多态:在程序运行期间才会去判断到底会调用哪个函数。这里我们主要讲的就是动态多态。运行时的多态性是通过虚函数与基类指针共同作用实现的。 作用: 静态多态的作用:减少了名字(比如:函数名)的数量,避免了名字空间的污染,对于程序的可读性有很大的好处。 动态多态的作用:多态技术允许将基类指针或基类引用指向子类对象,根据对象的动态类型来决定调用的是哪个子类中的这个同名方法,从而解决了同名覆盖问题,写出了通用的代码,即扩展性优秀的代码,以适应需求的不断变化。 简单举个例子: 猫 x=new 猫(); 动物 y=new 猫(); 1.多态的体现 父类的引用指向自己的子类对象; 父类的引用也可以接收自己的子类对象。 2.多态的前提 必须是类与类之间的关系,要么是继承(extends),要么是实现(implements),通常还有一个前提,就是存在覆盖(重写)。 3.多态的好处 多态的出现大大的提高了程序的可扩展性。但是只能使用父类的引用,访问父类的成员。 4.类型转换(向上转型,向下转型) Anmial a=new Cat();/

LINQ入门(中篇)

隐身守侯 提交于 2019-12-15 14:08:29
来自森大科技官方博客 http://www.cnsendblog.com/index.php/?p=163 GPS平台、网站建设、软件开发、系统运维,找森大网络科技! http://cnsendnet.taobao.com 到现在为止你还未触碰LINQ,那进来吧 —— LINQ入门(中篇) 前 言   在上篇中简单的分享了LINQ的基础概念及基础语法,如果没有阅读过上篇的朋友可以点击这里。感谢大家的支持,本篇我们将更进一步的学习LINQ的一些相关特性及应用方法。废话不多说,请往下阅读吧。 延迟加载   在上篇中简单的和大家提到了LINQ具有一个很有意思的特性那就是“延迟加载”(或“延迟计算”),什么是延迟加载呢?先看来自官方的描述:延迟执行意味着表达式的计算延迟,直到真正需要它的实现值为止。是不是觉得有点生涩难理解呢?按照我个人的理解通俗的讲就是,每当我们编写好一段LINQ表达式时,此时这个表达式所代表的序列变量仅仅只是一个代理,编译器在执行编译时根本就不鸟这段代码,检查完语法正确性后直接跳过,直到代码在编译器动态运行序列变量在其他代码块被调用时,它所代理的linq表达式才会执行。啊~~看到这里你是不是要晕了,到底要怎么理解啊,无废话上代码: 1 // 已知一个序列 2 var array = new int[] {1, 2, 3}; 3 4 //

static注意事项与语法简述

你说的曾经没有我的故事 提交于 2019-12-15 05:15:41
1. 存在语言: Static 存在多个语言当中, Java 、 C++ 、 C 、 C# 等语言中都有该变量 面向过程: 1. 静态变量在全局数据区分配内存 2. 静态全局变量不能被其他文件引用,并且其他文件可以定义相同名字的变量,并不会发生冲突。全局变量默认是没有 static 修饰的,也就是说作用域为整个工程,在一个文件中定义,在另一个文件中可以通过 extern 或者 include 方式引用,而 static 修饰后的全局变量,作用域变为定义的整个文件,只在文件内部生效,无法被外部链接,所以其他文件可以定义相同名称的变量 3. 静态局部变量即使函数 return( 结束 ) ,也不会被释放。因为 static 修饰变量是是放在全局数据区的,即使自定义函数结束,也不会被释放掉。所以常会用在第一次给 static 修饰局部变量一个初值,每次做算数操作 (++ --) 都会被保存下来 ( 因为只会被初始化一次 ) 。 4. 静态函数不能被其他文件引用,作用域为本文件,其他文件可以定义相同名称的函数。 5.C 语言中将静态函数称为内部函数,能被文件外部调用的函数称为外部函数 面向对象: 1. 静态数据成员: #include <iostream> using namespace std; class Myclass { public: Myclass(int a, int b,

爬虫-怎么爬静态网站

六月ゝ 毕业季﹏ 提交于 2019-12-15 02:13:40
爬静态网站主要分为两部分: 爬静态网站的文字 爬静态网站的图片 [TOC] 爬文字 思路 用 requests 模块得到网站的HTML 用 BeautifulSoup 模块得到HTML的正则文本 用 find 或者 find_all 函数从正则文本中得到自己想要的 用 repalce 去除不需要的字符 源代码 1234567891011121314151617181920 # 使脚本可以识别中文# 爬网站:http://www.hbrchina.org/import requestsfrom bs4 import BeautifulSoup# 调用需要的模块if __name__ == '__main__': req = requests.get ('http://www.hbrchina.org/2019-02-18/7150.html') # 得到网站的HTML req.encoding = req.apparent_encoding #获取文本原来编码,使两者编码一致才能正确显示 html = req.text bf = BeautifulSoup(html,'html.parser') # 把HTML文件转为正则文件(我的理解是文本文件) body = bf.body texts = body.find_all ('div',{'class':'article

静态局部变量定义时赋初值问题和定义后赋初值问题

拟墨画扇 提交于 2019-12-13 22:05:37
静态局部变量定义时赋初值问题和定义后赋初值问题 如 1 . static int a=1; 2 . static int a; a=1; 函数中静态局部变量a赋初值,采用上述两种方式时不一样,采用方式1时a是上次结束时的值,采用2方式时a=1还是每次都运行,为什么? 初始化和赋值是不同的概念。 只初始化一次,不是只赋值一次。 来源: CSDN 作者: 晴天_xv 链接: https://blog.csdn.net/qq_41654485/article/details/103532795

【php基础】静态与非静态变量、方法

烈酒焚心 提交于 2019-12-13 00:41:39
静态的变量或者是函数是保存的静态内存中的,只有到程序结束时才会被释放,那他是什么时候赋值的呢 如果类中调用一次,静态类在编译的时候需要多做工作,动态类在执行的时候需要多做工作,然而php是动态语言,每一次这两步都不掉,所以对于只运行一次的类,无所谓谁快谁慢。 但是如果一个类在程序当中要多次调用就不一样了,静态类是编译的时候就赋值了,程序之后的运行都可以直接调用过来,而不用动态的分配内存了,就节约了时间,这就是为什么静态类比动态类快的原因(前提是调用多次记得)。 class A {   public static $a;   public $b;   public function __construct($a=1,$b=2)   {     self::$a = $a;     $this->$b = $b;   }   public static function func_static()   {     echo 'func_static'.PHP_EOL;     echo $this->b; //报错,不能使用$this关键字,不能调用      echo self::$a//正常   }   public function func()   {     echo 'func'.PHP_EOL;   }   } A::func_static();//正常 A::func(

关于Django setting.py 中设置DEBUG=False后静态文件无法加载

别等时光非礼了梦想. 提交于 2019-12-12 06:47:26
Django setting.py 中设置DEBUG=False后静态文件无法加载为什么会这样? 其实是因为:当我们在开发django应用时如果设置了 DEBUG = True,那么django便会自动帮我们对静态文件进行路由;但是当我们设置DEBUG = False后,这一功能便没有了, 'django.contrib.staticfiles' 会关闭,即Django不会自动搜索静态文件,静态文件不能加载导致的问题有两个,想要让静态文件正常显示,我们就需要配置静态文件服务了 当然了也有别的方式解决 一、 runserver 的启动 如果 运行是通过 runserver 命令的方式,那简单,在启动 runserver 指令后追加 --insecure 选项能参数强制 django 处理静态文件 二、配置静态文件服务Django自身处理静态文件 首先修改项目的setting.py文件 STATIC_URL = '/static/' STATIC_ROOT = os.path.join(BASE_DIR, 'static') MEDIA_URL = '/media/' # 设置上传文件的路径 MEDIA_ROOT = os.path.join(BASE_DIR, 'media') static中的静态文件: url.py中加入 from django.contrib

静态编译ffmpeg

我只是一个虾纸丫 提交于 2019-12-10 15:31:40
静态编译ffmpeg 这两天折腾了一下完全静态编译ffmpeg,期望通过这种方式实现编译出来的ffmpeg能够在各个linux发现版上运行。进而可以延伸到编译出来完全静态的依赖ffmpeg库的应用程序,从而简化产品在各个linux发行版的产品编译和部署区分,减少开发和维护成本。 经过尝试,最终确实编译出来完全静态的ffmpeg,但是也发现了隐患,具体在"一些问题"中描述。所以,我对完全静态编译持保留意见,需要根据实际的使用情况来定。下面的文字,就是我整理的本次尝试的要点了。 1. 静态编译 首先,查看一下之前编译出来的ffmpeg的动态库链接情况。可以看出它链接了许多动态库,这些库有些是系统自带的,有的需要自己安装。 [root@root tmp]# ldd ffmpeg linux-vdso.so.1 => (0x00007fff133fe000) libm.so.6 => /lib64/libm.so.6 (0x00007fb094f81000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fb094d65000) librt.so.1 => /lib64/librt.so.1 (0x00007fb094b5c000) libdl.so.2 => /lib64/libdl.so.2 (0x00007fb094958000)

Linux下C程序进程地址空间布局

时光毁灭记忆、已成空白 提交于 2019-12-10 14:47:36
我们在学习C程序开发时经常会遇到一些概念:代码段、数据段、BSS段(Block Started by Symbol) 、堆(heap)和栈(stack)。先看一张教材上的示意图(来源,《UNIX环境高级编程》一书),显示了进程地址空间中典型的存储区域分配情况。 从图中可以看出: 从低地址到高地址分别为:代码段、(初始化)数据段、(未初始化)数据段(BSS)、堆、栈、命令行参数和环境变量 堆向高内存地址生长 栈向低内存地址生长 还经常看到下面这个图(来源,不详): 先看一段程序。 [cpp] view plain copy #include <stdio.h> #include <stdlib.h> int global_init_a=1; int global_uninit_a; static int static_global_init_a=1; static int static_global_uninit_a; const int const_global_a=1; int global_init_b=1; int global_uninit_b; static int static_global_init_b=1; static int static_global_uninit_b; const int const_global_b=1; /*上面全部为全局变量

day52_9_16Django中的静态文件和orm

北城余情 提交于 2019-12-10 05:29:33
一。静态文件配置   在配置静态文件时,需要创建一个文件夹在Django项目文件夹下,名字与使用无关。   静态文件包括html等使用的不会变动的插件文件等。分为三个部分:     css文件夹 当前网站所有的样式文件     js文件 当前网站所有的js文件     img文件 当前网站所有的图片文件     其他(前端框架代码)。   1.在静态文件的调用时,不能直接在html文件夹中使用相对路径或绝对路径进行调用,因为在页面访问的时后不会获取到该插件资源,所以需要将所有静态文件暴露给访客,使得访客可以获得。   在Django中可以使用以下代码进行资源暴露: STATIC_URL = '/static/' # 这个static不是文件夹的名字 而是接口前缀 """只要你想访问静态文件中的资源 文件路径就必须用static开头""" STATICFILES_DIRS = [ os.path.join(BASE_DIR,'static'), # 真正的文件夹路径 os.path.join(BASE_DIR,'static1'), # 真正的文件夹路径 os.path.join(BASE_DIR,'static2'), # 真正的文件夹路径 os.path.join(BASE_DIR,'static3') # 真正的文件夹路径 ]