static

设计模式之单例模式

随声附和 提交于 2020-03-25 17:09:02
单例模式类图是23种设计模式类图中最简单的,因为它的类图上只有一个类! 什么时候会用到单例模式呢? 有一些对象我们只需要一个,比如说:线程池(ThreadPool)、缓存(cache)、日志对象、充当打印机设备的驱动程序的对象等等,如果创造出多个实例,就会出现程序行为异常或者与结果不一致的现象。 如何创造出独一无二的对象实例呢? 我们都知道:如果我有一个类NewObject(), 我想创建这个类的对象,怎么做?--------new NewObject()就可以了; 是不是可以无限创建呢? --------如果它是公开类就可以; 如果它的构造函数是私有的呢? -------那别的类就不可以实例化它了(调用不了它的构造函数); 那谁来实例化它呢? --------只能它自己进行实例化了; 那我怎么使用它呢? --------通过get方法暴露出来; 那么: public class NewObject{ //声明静态变量类 private static NewObject newObject; //构造函数私有化 private NewObject(); //get方法暴露出去以便其他类调用 public static NewObject getInstance(){ //判断变量类是否已经实例化 //如果newObject引用为null,表示还没有创建实例

Python之路【第十一篇】前端初识之HTML

吃可爱长大的小学妹 提交于 2020-03-25 15:04:44
首先,要说的是我们领导总挂在嘴边的一句话:一入前端深似海。之前没有接触过前端,一直不懂这句话的含义,直到最近写作业改需求的时候才发现,因为web页面是直接面向客户的,所以需求的修改都和前端有关,有时候甚至不需要修改后台的代码就可以满足新的需求。突然对前端工程师的未来表示担忧,于我来说,这些繁琐的细节性工作我希望始终与其保持安全距离,嘻嘻!   不喜归不喜,然而python是一门自动化语言,分工不像java开发那样明确,所以也需要掌握前端的知识,关于前端的知识网上比比皆是,在这里就不多做赘述,今天想说的还是我在学习过程中的一些困扰,面对那些繁琐的js文件,css文件和html文件,你是不是也和我一样蒙圈。。。不知道该往哪里放,不知道目录结构怎么安排?现在就来分享一下我从前端同事那里偷师来的目录结构和引用方式吧~~~ 初识那些乱七八糟的文件   要写好一个web页面,必不可少的是html文件,css文件,和js文件。可是这些东西到底是什么呢?举个栗子:html就是一个赤裸裸的人,css则是人的衣服,而js就是一个人的行为,它支配页面上的所有动作。我们写html,用各种标签、容器来承装不同的文字、图片,总之html做的就是把我们要表达的一股脑的写在页面上。但是它们在什么位置、什么颜色,好看不好看,就不是html的工作了,这个装饰页面的工作就交给了css。有了css和html

成员变量和局部变量有什么区别?

此生再无相见时 提交于 2020-03-25 15:00:34
3 月,跳不动了?>>> FAQ2.13 成员变量和局部变量有什么区别? class A { int a;// 成员变量 public static void main(String[] args) { int b;// 局部变量 } } ———————————————————————————————————————————————————————————————————————————————————————— 类体由 2 部分构成 : 一部分是变量的定义 ; 一部分是方法的定义 ( 一个类中可以有多个方法 ) 在变量定义部分定义的变量叫做类的成员变量 , 成员变量在整个类中都有效 . ( 全局变量应该是成员变量的俗称 ) 在方法体中定义的变量叫做局部变量 , 局部变量只在定义它的方法中有效 . 成员变量又分为 实例变量 和 类变量 (static 静态变量 ). class One { float x; //x 为实例变量 static int y; // 只要有关键字 static,y 为类变量 } ———————————————————————————————————————————————————————————————————————————————————————— 1. 成员变量可以被 public , protect , private , static

成员变量和局部变量

元气小坏坏 提交于 2020-03-25 14:40:48
3 月,跳不动了?>>> 成员变量( 存在于堆内存中,和类一起创建 )和局部变量( 存在于栈内存中,当方法执行完成,让出内存,让其他方法来使用内存 )。 区别 1、在类中的位置不同 成员变量:在类中方法外面 局部变量:在方法或者代码块中,或者方法的声明上(即在参数列表中) 2、在内存中的位置不同,可以看看 Java程序内存的简单分析 成员变量:在堆中(方法区中的静态区) 局部变量:在栈中 3、生命周期不同 成员变量:随着对象的创建而存在,随着对象的消失而消失 局部变量:随着方法的调用或者代码块的执行而存在,随着方法的调用完毕或者代码块的执行完毕而消失 4、初始值 成员变量:有默认初始值,java会给她一个初始值:基本数据类型是0,应用数据类型是null 局部变量:没有默认初始值,使用之前需要赋值,否则编译器会报错(The local variable xxx may not have been initialized) 局部变量的优先级高于成员变量 public class myTest3 { String name = "成员变量"; public static void main(String[] args) { new myTest3().show(); } public void show() { //局部变量优先级比成员变量高 String name = "局部变量";

Django-MTV简介

两盒软妹~` 提交于 2020-03-25 07:19:05
MTV模型 Django的MTV分别代表: Model(模型):负责业务对象与数据库的对象(ORM) Template(模版):负责如何把页面展示给用户 View(视图):负责业务逻辑,并在适当的时候调用Model和Template 此外,Django还有一个urls分发器,它的作用是将一个个URL的页面请求分发给不同的view处理,view再调用相应的Model和Template Django基本命令 1、下载Django: pip3 install django 2、创建一个django project django - admin.py startproject mysite 3、在mysite目录下创建应用(新应用) python manage.py startapp blog 4、启动django项目 python manage.py runserver 8080 5、同步更改数据库表或字段 python manage.py syncdb 注意:Django 1.7.1 及以上的版本需要用以下命令 python manage.py makemigrations python manage.py migrate 6、清空数据库 python manage.py flush 7、创建超级管理员 python manage.py createsuperuser #

WC Java 实现

十年热恋 提交于 2020-03-25 05:04:24
要求 基本要求 [x] -c 统计文件字符数 (实现) [x] -w 统计文件词数 (实现) [x] -l 统计文件行数(实现) 扩展功能 [x] -s 递归处理目录下符合条件得文件(实现) [x] -a 返回文件代码行 / 空行 / 注释行(实现) [x] 支持各种文件的通配符(*,?)(实现) 高级功能 [ ] -x 图形化界面(未实现) GitHub仓库:https://github.com/Pramy/wc 设计 按照需求可以分为3个模块,1:对文件内容的统计,2:对输入指令的解析,3:批量操作 第一个模块:可以将文本一行一行分析得到自己的结果,可以将一种指令对应一个处理器(handler),在程序启动的时候加载所有处理器,然后针对不同的指令调用不同的处理器,并且应该有获取结果的接口,然后再对各种处理进行抽象,抽象出Handler接口。 第二个模块:第二个模块加上第一个模块就需要相对调整第一个模块,根据输入的指令解析后,得到各种各样的处理器,然后把它连成一条处理链,将需要分析的一行字符串,从头到尾依次处理,也应当有一条获取结果的调用链,从头到尾一次获取处理结果,然后再对模块一的Handler进行抽象,得到AbstractHandler,各种处理器应当继承这个抽象处理器,然后对输入的命令进行匹配,查找 理器的架构图如下 第三个模块:根据-a命令来设计批量分析功能 代码

7 种单例模式设计

时间秒杀一切 提交于 2020-03-24 03:32:59
饿汉式 // final 不允许被继承 public final class Singleton { // 饿汉式,先new private static Singleton singleton = new Singleton(); // 私有构造不允许外部 new private Singleton(){ } public static Singleton getInstance(){ return singleton; } } 饿汉式的问题是 instance 在被 ClassLoader加载后很长时间才能在使用,如果类中的资源是重资源,那么就必须使用懒汉式 懒汉式 // final 不允许被继承 public final class Singleton { // 饿汉式,先new private static Singleton singleton = null; // 私有构造不允许外部 new private Singleton(){ } public static Singleton getInstance(){ if (singleton == null){ singleton = new Singleton(); } return singleton; } } 问题是多线程下不能保证实例的唯一性。 懒汉式+ 同步 // 但是 只允许一个 线程 访问这个方法

浅谈对static的理解

余生长醉 提交于 2020-03-23 21:46:58
相信很多朋友在面试过程中都遇到过关于static的相关题目,接下来我们来分析一下static。 static(静态的),用来修饰成员变量,成员方法,它随着类的加载而加载,使用static修饰的数据可以直接使用类名来调用。由此可以得出,静态的方法是不可以访问非静态的成员方法和成员变量的,因为非静态需要依赖对象来调用。但是相反的,非静态的方法是可以访问静态的成员方法和成员变量的。 使用static修饰的方法不能使用this,这是因为static随着类的加载而加载,不存在依赖对象的情况。 根据上述两点我们可以总结出来静态的特性:只在类加载时执行一次,根据这个特性还可以得出静态使用的地方,那就是在创建对象前就需要调用方法或者变量。 最后大家可以看一下下面这个题的运行结果 public class son extends Farther{ static { System.out.println("子类的静态代码块被调用了"); } public son() { System.out.println("子类的构造方法执行了"); } public static void main(String[] args) { new son(); } } class Farther { static { System.out.println("父类的静态代码块被调用了"); } public

PHP中new static 的用法和new self 之间的区别

房东的猫 提交于 2020-03-23 16:36:10
3 月,跳不动了?>>> 啥都不多说: 举个栗子: class wangjh{ /** * @return wangjh 实例化self */ public function selfObj(){ return new self(); } /** * @return static 实例化static */ public function staticObj(){ return new static(); } /** * @return string 获取被调用的类的名称 */ public function sayClass(){ return get_called_class().'<br>'; } } class extendWangjh extends wangjh{ } class root extends extendWangjh{ } $a = new wangjh(); $aObj = $a->selfObj(); $b = new wangjh(); $bObj = $b->staticObj(); $c = new extendWangjh(); $cObj = $c->selfObj(); $d = new extendWangjh(); $dObj = $d->staticObj(); var_dump($aObj == $bObj); // true var

php中普通变量与static变量的区别

北城以北 提交于 2020-03-23 16:35:57
3 月,跳不动了?>>> 众所周知:php是一中弱类型语言,所以,在定义变量的时候我们是不需要明确指明相应的数据类型的! 但是,有这个一个关键字 static 可以让一个变量的行为变的很古怪(对不理解他的人来说)! 下面,我们看一个普通的例子 function testfunc(){ $var = 3; echo ++$var; echo '<br>'; } testfunc(); testfunc(); testfunc(); 此程序输出:三个4 。例子到这里还是很容易理解的!因为每次调用了相同的函数 var 变量都会进行一次初始化! 步入正题:再举个栗子 function testfunc1(){ static $var = 3; echo ++$var; echo '<br>'; } testfunc1(); testfunc1(); testfunc1(); 乍一看和上一个程序没有什么区别(实际上已经多了一个 static 修饰) 但是这次的结果和上面的是完全不同的 输出结果如下 4 5 6 再来看一个意外的例子 function testfunc1(){ static $var = 3+4; echo ++$var; echo '<br>'; } testfunc1(); testfunc1(); testfunc1(); 这里的输出结果如下: Parse error: