默认构造函数

[JavaScript]项目优化总结

≯℡__Kan透↙ 提交于 2020-01-04 00:55:25
前端时间对公司已有项目 JavaScript 代码进行优化,本文的是对优化工作的一个总结,拿出来与大家分享。当然我的优化方式可能并不是最优的,或者说有些不对的地方,请指教。 目录 JavaScript 优化总结分为以下几点 ... 1 模块化(类编程) ... 2 静态类 ... 3 实例类 ... 5 JavaScript 压缩 / 合并 ... 8 Uglifyjs 安装 ... 9 UglifyJS 使用 ... 11 JavaScript 文件合并 ... 13 文档生成 ... 13 YUIDoc 安装与使用 ... 13 YUIDoc 标签 ... 14 公共类库说明 ... 16 目录结构 ... 16 自动合并、压 缩脚本 ... 17 文档说明 ... 18 参考链接、进一步阅读 ... 20 JavaScript 优化总结分为以下几点 优化前后对比 优化前 优化后 代码混乱,同样功能的函数重复出现在多个地方。如果需要修改实现,需要找到所有的地方。牵一发而动全身 模块化,提取公共接口组织为库、结构清晰、方便代码重用、并且能够游戏防止变量污染问题。 JavaScript 文件未压缩, size 比较大加载消耗网络耗时,阻塞页面渲染 JavaScript 公共库文件使用 UglifyJS 压缩: n Size 比较小优化了网络加载时间 n 压缩混淆了代码

ASP.NET MVC的Razor引擎:RazorView

試著忘記壹切 提交于 2020-01-02 02:01:45
Razor引擎具有两个核心的类型,一个是表示View本身的类型 RazorView ,另一个则是获取和创建它的 RazorViewEngine ,我们将用两篇文章对它们分别进行剖析。Razor引擎下的View通过类型 RazorView 表示,它与表示Web Form引擎View的类型 WebFormView 都是 BuildManagerCompiledView 的子类。[本文已经同步到《 How ASP.NET MVC Works? 》中] 目录 一、BuildManagerCompiledView 二、RazorView 三、实例演示:自定义View模拟RazorView的View呈现机制 一、BuildManagerCompiledView 为了能够清楚地说明实现在BuildManagerCompiledView中的View激活与呈现机制,我们列出了BuildManagerCompiledView中与此相关的内部和受保护的成员。 1: public abstract class BuildManagerCompiledView : IView 2: { 3: internal IViewPageActivator ViewPageActivator; 4: 5: protected BuildManagerCompiledView(ControllerContext

JAVA与C++区别(一)

别说谁变了你拦得住时间么 提交于 2019-12-28 19:38:33
首先,引用一句Thinking in java中作者一直在强调的一句话:一切皆对象。 本文主要关于C++和JAVA类及一些其他关键概念的区别:   在OO编程中几个关键概念无非是类,封装,继承,多态。 一:关于类 (1):在C++中定义类: class User { public:   Uers(string str,int yy){ name=str,age=yy;}   void print(){ ...... } private     string name;   int age;   };      // 类的结尾处应该以“;”结束 在C++中有两种初始方式:   User u("zhangsan",20);          //(A)   User *p=new User("zhangsan",20);     //(B) 在A中,构造函数创建了变量u,它在堆栈上为新的对象分配内存。当u离开它的作用域的时候,它的内存自动释放。 在B中,操作符new在堆上为新的对象分配内存,并返回一个指向该块内存的指针,这块内存可由delete操作符显示的进行释放:delete p;(当我们在指向一个类类型的对象的指针上使用delete时,delete操作符将会调用这类的析构函数)。 在C++中,“.”和“->”操作符成为成员访问符:u.print();                

C++知识点积累(2)

点点圈 提交于 2019-12-17 13:00:26
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 1 如果出于某些原因,需要在const成员函数中修改某一个或几个成员,那么可以将需要修改的成员声明为mutable,例如 class A { public: int m_cannotBeModified; mutable int m_needToBeModified; void ModifyMutable() const { m_needToBeModified = 1; //合法 m_cannotBeModified = 1; //不合法 } }; 2 如果一个类没有显式声明构造函数,拷贝构造函数,赋值运算符,析构函数,编译器会相应地合成一个,如果类显式定 义了任何一个构造函数,包括拷贝构造函数,编译器就不会再合成构造函数。 3 要阻止一个类对象拷贝或赋值,可以声明一个简单的基类,基类中将拷贝构造函数和赋值运算符声明为private,这样其派生类的拷贝或赋值操作在编译期就可以被检查出来。例如: class A { protected: A(){} ~A(){} private: A(const A& a){} A& operator=(const A&a){} }; class B : public A { }; int main() { B b; //B b1(b); //编译不通过 //B b2 = b;

C++的学习2

天大地大妈咪最大 提交于 2019-12-16 08:24:41
const在不同位置时的不同意义 指针类型前:声明一个指向常量的指针,程序中不能通过指针来改变它所指向的值,但指针本身的值可以改变,即指针可以指向其他数据; "*"号和指针名之间,声明一个指针常量(常指针),指针本身的值不可改变,即不能指向其他数据,但指向的数据的值可以改变; 两个地方都加,声明指向常量的指针常量,指针本身的值不可改变,指向的数据也不能通过指针改变; 函数指针 使用函数指针之前,必须先赋值,使它指向一个函数入口地址,赋值语法格式为:函数指针名 = 函数名,其中函数名代表的函数必须是一个已经定义过的,和函数指针具有相同返回类型的函数,指针调用函数格式:(*指针变量)(实参列表); 访问权限 public:可被任意实体访问; protected:只允许本类及子类的成员函数访问; private:只允许本类的成员函数访问; 构造函数 创建对象时,自动调用构造函数,不能在程序中直接调用,可有任意类型参数,但不能有返回类型; 构造函数作用:为对象分配空间、为数据成员赋初值、请求其他资源; 构造函数工作:初始化虚函数表、建立基类对象、建立非静态数据成员对象、安置虚基类对象信息、执行构造函数体中的代码; 若一个类中没有定义构造函数,编译器会自动生成不带参数的默认构造函数,格式为: < 类名 > :: < 默认构造函数名 > ( ) { } 析构函数 析构函数作用:清除对象

Visual C++ 中的重大更改

一世执手 提交于 2019-12-06 22:35:05
此文章由人工翻译。 将光标移到文章的句子上,以查看原文。 更多信息。 Visual C++ 中的重大更改 Visual Studio 2015 当你升级到 Visual C++ 编译器的新版本后,可能会在之前编译并正常运行的代码中遇到编译和/或运行时错误。新版本中会引起这类问题的更改称为 重大更改 ,通常,修改 C++ 语言标准、函数签名或内存中的对象布局时需要进行这种更改。 若要避免难以检测和诊断的运行时错误,我们建议你永远不静态链接到使用不同编译器版本编译的二进制文件。此外,当你升级 EXE 或 DLL 项目时,请确保升级它所链接的库。如果使用 CRT(C 运行时库)或 STL(标准模板库)类型,请勿在使用不同编译器版本编译的二进制文件(包括 DLL)之间传递这些类型。有关详细信息,请参阅 跨 DLL 边界传递 CRT 对象时可能的错误 。 我们进一步建议,你在编写代码时永远不依赖除 COM 接口或 POD 对象以外的特定对象布局。如果确实要编写此类代码,则必须在升级后确保其正常运行。有关详细信息,请参阅 ABI 边界处的可移植性(现代 C++) 。 本文的其余部分介绍了 Visual Studio 2015 中的 Visual C++ 中具体的重大更改,并且在本文中,术语“新行为”或“现在”均指该版本。术语“旧行为”和“之前”指 Visual Studio 2013

javaSE练习题

不羁的心 提交于 2019-12-06 13:03:11
1.在JAVA中,下列哪些说法是正确的( AC ) A.java源文件的扩展名为.java B.写好的java源程序可以直接运行 //不编译就想运行??? C.编写的源程序必须先编译后才能运行 D.程序员可以读懂扩展名为.class的文件 //字节码文件,不可能读懂的 2.下列标识符哪个是合法的( BD ) A.class B.美元符号abc C.1234 D._name 变量名首字母是英文字母、$或下划线开头,可以由字母、数字或美元符号组成。 3.下面哪些赋值语句是正确的?(ABD) A. long test = 12; B. float f = -41.2f; C. int other = (int) true;//布尔型不能强转成整型 D. double d = 12345678; E. byte b = 128; //byte范围为:-128~127 4.在Java中,下列语句不能通过编译的有( BD) A. String s= “join”+ 3; B. int a= “join”+3;//错误,字符串类型不能转换成整型 C. int a= ‘a’+5; D. float f=5+5.5;//错,小数点默认类型为double类型,转换成float类型需要进行强转 6.下列代码运行的结果是( C ) public static void main(String[] args

javaSE基础测试题

偶尔善良 提交于 2019-12-06 12:59:17
这套题目是传智播客javaEE入学测试题,我是在自己学完javaSE之后做的套题,感觉这套题考察的内容很基础,很适合自学javaSE的自测。全套试题有50个选择题,单选和多选都有,每道题2分,80分合格,快来看看你能考多少分吧! 1. 在 JAVA 中,下列哪些说法是正确的 ( AC ) A.java 源文件的扩展名为 .java //正确 B. 写好的 java 源程序可以直接运行 //源程序需要先编译才能运行 C. 编写的源程序必须先编译后才能运行 //正确 D. 程序员可以读懂扩展名为 .class 的文件 //class文件为字节码文件,看不懂 2. 下列标识符哪个是合法的 ( BD ) A.class B.$abc C.1234 D._name 变量名必须是一个以字母开头的由字母和数字构成的序列。需要注意的是,与大多数程序设计语言相比,java中的字母和数字的范围要大。字母包括‘A’~‘Z’、‘a’~'z'、‘_’、‘$’或在其他某种语言中代表字母的任何Unicode字符。 3. 下面哪些赋值语句是正确的 ?( ABD ) A. long test = 012; //正确 B. float f = -412; //正确 C. int other = (int) true; //布尔型不能强转成整型 D. double d = 0x12345678; //正确

SSH框架之Spring第一篇

自闭症网瘾萝莉.ら 提交于 2019-12-05 06:19:15
1.1. spring概述: 1.1.1 spring介绍 : Spring是分层的Java SE/EE应用 full-stack轻量级开源框架,以IoC(Inverse Of Control : 反转控制) 和 AOP(Aspect Oriented Programming : 面向切面编程) 为内核,提供了展现层SpringMVC和持久层Spring JDBC以及业务层事务管理等众多的企业级应用技术,还能整合开源世界众多著名的第三方框架和类库,成为使用最多的JavaEE企业开源框架. 1.1.3 spring的优势 方便解耦,简化开发. 通过Spring提供的IoC容器,可以将对象间的依赖关系交由Spring进行控制,避免硬编码所造成的过渡程序耦合.用户也不必再为单例模式类,属性文件解析等这些很底层的需求编写代码, 可以更专注于上层的应用. AOP编程的支撑 通过Spring的AOP功能,方便进行面向切面的编程,许多不容易用传统OOP实现的功能可以通过AOP轻松应付. 声明式事务的支持 可以将我们从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活的进行事务的管理,提高开发效率和质量. 方便程序的测试 可以用非容器依赖的编程方式进行几乎所有的的测试工作,测试不再是昂贵的操作,而是随手可做的事情. 方便集合各种优秀框架 Spring可以降低各种框架的使用难度

Python笔记3

空扰寡人 提交于 2019-12-04 17:36:44
类格式示例: class Student(): name = '' age = 0 def print_file(self): print('name:' + self.name) print('age:' + str(self.age)) 注:类中的函数,参数列表中必须有self,并且如果想在函数中引用类中变量需要使用 self.操作符。 类实例化示例: student = Student()// Student student = new Student(); 没有 java里的new 一个实例 运行这个类和调用这个类都要在类的外部 1、面向对象的两个主要部分:类、对象 2、在类的内部:可以定义若干个变量 可以定义函数 3、调用类:将类实例化 用一个变量来接收实例化的结果 4、在类里面编写函数的时候一定要传入self 5、在类中函数的定义中用到类中定义的变量时,要用self引入 总结:1、类最基本的理解:对一系列变量和函数进行封装 2、类下面的函数一定要加self,在函数内部要调用类内变量的话要通过self调用 3、类只负责定义,不负责执行,所以在类内不能对方法进行调用 构造函数 ①实例化过程自动调用构造函数, 可以在构造函数里初始化对象的特征 构造函数可以让类生成不同的对象,实例化传入不同的参数 python中构造函数的格式: def __init__(self,name