静态函数

kotlin写一个静态块

删除回忆录丶 提交于 2019-12-22 05:10:55
神奇的语言kotlin… 写一个类运行时只加载一次的kotlin方法…就很神器…这东西没有static 鼓弄半天 companion object { init { //你想静态化的东西,外面不要有函数 } } 相当于Java类的静态部分.特别是,它们在第一次使用之前被初始化,这样可以使用它们的init块作为Java静态初始化器的替代 来源: CSDN 作者: Songcz✨ 链接: https://blog.csdn.net/weixin_43701058/article/details/103645830

解释内存中的栈、堆和静态区的用法

。_饼干妹妹 提交于 2019-12-21 19:23:00
解释内存中的栈、堆和静态区的用法 通常我们定义一个基本数据类型的变量,一个对象的引用,还有就是函数调用的现场保存都使用内存中 栈空间 ; 而通过new关键字和构造器创建的对象放在 堆 空间; 程序中的字面量(interal)如直接书写的100、"hello"和常量都是放在 静态区 中 栈空间 操作起来最快但是 栈 很小,通常大量的对象都是放在 堆空间 ,理论上整个内存没有被其他进程使用的空间甚至硬盘上的虚拟内存都可以被当成 堆空间 来使用; 例如: String str = new String ("hello"); 上面的语句中,str放在 栈 中,用new创建出来的字符串对象放在 堆 上,而"hello"这个字面量放在 静态区 。 来源: CSDN 作者: 美羊羊的贴身狂少 链接: https://blog.csdn.net/weixin_44971781/article/details/103645982

MFC编程入门之二十(常用控件:静态文本框)

眉间皱痕 提交于 2019-12-21 11:22:13
  上一节讲了颜色对话框之后,关于对话框的使用和各种通用对话框的介绍就到此为止了。从本节开始将讲解各种常用控件的用法。常用控件主要包括:静态文本框、编辑框、单选按钮、复选框、分组框、列表框、组合框、图片控件、列表控件、树形控件和进度条控件等等。本节先来讲解静态文本框的使用。    控件的通知消息   在讲静态文本框的使用之前,先大概讲讲控件的通知消息。   当控件有事件发生时,它会向父窗口发送通知消息。最常发生的事件就是鼠标单击了,此时控件会向父窗口发送BN_CLICKED消息,实际上也就是给父窗口发送WM_COMMAND消息,在wParam参数中包含有通知消息码(鼠标单击时的通知消息码就是BN_CLICKED)和控件ID,lParam参数中包含了控件的句柄。在MFC消息映射机制概述中讲过,消息就是由三个部分组成:消息值、wParam参数和lParam参数。   为控件通知消息添加消息映射和消息处理函数的方法,之前不止一遍讲过了。现在再来具体说明下,控件的消息映射宏的格式大致是:   ON_通知消息码(nID, memberFun)   nID参数是控件的ID,memberFun参数是消息处理函数名。例如,ON_BN_CLICKED(IDC_BUTTON1, &CDlg::OnBnClickedButton1)。此消息映射宏应添加到BEGIN_MESSAGE_MAP和END

C#基础--应用程序域(Appdomain)

爱⌒轻易说出口 提交于 2019-12-21 04:55:19
AppDomain理解 为了保证代码的键壮性CLR希望不同服务功能的代码之间相互隔离,这种隔离可以通过创建多个进程来实现,但操作系统中创建进程是即耗时又耗费资源的一件事,所以在CLR中引入了AppDomain的概念,AppDomain主要是用来实现同一进程中的各AppDomain之间的隔离,AppDomain可以用以下特征来描述它的全貌: AppDomain概念并不存在于操作系统,而只存在于.net中并且AppDomain不可脱离进程单独存在,它是属于某一CLR或寄宿着CLR的进程的。 一个进程中可以有多个AppDomain,并且每个之间相互隔离(只保证安全代码的隔离,不安全代码并不能保证),此可以理解为AppDomain是.net程序中的"进程",在一个AppDomain中创建的对象只属于本AppDomain,多个AppDomain之间的对象不能相互访问,除非遵循CLR的一些规则。 .net程序启动时在进程中创建一个默认的AppDomain,入口代码将运行于此AppDomain,默认应用程序域只有在进程终止时才会被销毁,如果主动的调用Unload去卸载默认应用程序域,会抛出一个CannotUnloadAppDomainException。 每个AppDomain都单独的加载程序集,这意味着在A应用程序域中加载了的程序集,并不一定在B应用程序域中也被加载了

静态函数和非静态函数的区别

妖精的绣舞 提交于 2019-12-21 04:24:01
看别人的博客总结: 静态数据成员的使用方法和注意事项如下: 1、静态数据成员在定义或说明时前面加关键字static。 2、静态成员初始化与一般数据成员初始化不同。 静态数据成员初始化的格式如下: <数据类型><类名>::<静态数据成员名>=<值> 这表明: (1) 初始化在类体外进行,而前面不加static,以免与一般静态变量或对象相混淆。 (2) 初始化时不加该成员的访问权限控制符private,public等。 (3) 初始化时使用作用域运算符来标明它所属类,因此,静态数据成员是类的成员,而不是对象的成员。 静态成员的概念: 静态类中的成员加入static修饰符,即是静态成员.可以直接使用类名+静态成员名访问此静态成员,因为静态成员先于类的声明而存在于内存,也可以根据类声明的对象来访问.而非静态成员必须实例化之后才会分配内存. 非静态成员的概念: 所有没有加static的成员都是非静态成员.而类被实例化后,可以通过实例化的类名进行访问.非静态成员的生存期决定于该类的生存期.而静态成员不存在生产期的问题,因为它始终驻留在内存. 分两个方面来总结,面向过程与面向对象. 一:面向过程中的static关键字 1.静态全局变量 定义全局变量前,加上关键字static,该变量就被定义成了一个静态全局变量. 特点: 该变量在全局数据区分配内存. 初始化:如果不是显示初始化

ASP.NET 5 入门(1) - 建立和开发ASP.NET 5 项目

≡放荡痞女 提交于 2019-12-20 23:56:10
原文: ASP.NET 5 入门(1) - 建立和开发ASP.NET 5 项目 ASP.NET入门(1) - 建立和开发ASP.NET 5 项目 ASP.NET 5 理解和入门 使用自定义配置文件 建立项目 首先,目前只有VS 2015支持开发最新的ASP.NET 5 程序,所以我们首先需要下载安装其最新的RC版本. https://www.visualstudio.com/en-us/downloads/visual-studio-2015-downloads-vs.aspx 安装完毕以后,打开并建立新的Web Application项目: 然后在后一个界面中选择ASP.NET 5 Empty模板: 这里提2个注意点: 要选择下面的ASP.NET 5模板,而不是上面的4.6模板. 选择Empty模板而不是后面更完整的Web Site模板是希望能够从无到有,逐步分解这个最新的框架体系. 建立项目完成以后,我们可以看到如下项目结构: 其中global.json记录了解决方案的一些配置,Project_Readme.html则是一个介绍页面. 比较重要的文件或者文件夹是以下3个: l Startup.cs : 启动类 l project.json: 项目配置文件 l wwwroot : 整个WebApp的静态文件目录(由于最小模板没有加载静态文件中间件,所以该目录内容暂时无效

java开发必学知识:动态代理

点点圈 提交于 2019-12-20 12:42:10
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 一句话概括:java动态代理通过反射机制,可在不修改原代码的情况下添加新的功能,应用于多种场景,简单、实用、灵活,是java开发必学知识,本文将对动态代理使用进行详细介绍。 1. 引言 最近开发项目过程中需要使用动态代理来实现功能,趁此机会把动态代理的知识点进行了一次梳理。在java开发过程中,当需要对已有的代码(方法)前后添加新功能,而不想修改或不方便修改原代码的情况下,如需要在执行某个已有的方法前后输出日志,以记录方法执行的记录,这个时候,动态代理就派上用场了。动态代理可以有以下几使用场景: 记录跟踪:对函数执行前后统一输出日志跟踪执行情况 计时:统一对函数执行用时进行计算(前后时间记录之差) 权限校验:统一在函数执行前进行权限校验 事务:统一对函数作为事务处理 异常处理:对某一类函数执行输出的异常进行统一捕获处理 动态切换数据源:多数据源切换或动态添加数据源 动态代理首先是代理,对应的有静态代理,然后是动态代理,在Spring中还有动态代理的应用-AOP(面向切面编程)。本文针对这些内容,梳理了以下几个知识点: 了解代理模式并实现静态代理 针对动态代理,描述它使用到的反射机制,以及JDK、CGLIB两种动态代理的实现 描述如何在在Spring中,使用AOP实现面向切面编程 本文所涉及到的静态代理、反射

java对象和类

断了今生、忘了曾经 提交于 2019-12-20 05:16:15
类 类是 构造对象的模板 ,由 类构造对象的过程 称为 创建类的实例 ,由java编写的所有代码都位于某个类的内部。 封装   封装是与对象有关的重要概念,形式上看封装只是将数据和行为组合在一个包内,并对对象使用者隐藏了数据的实现方式。   对象中的数据称为实例域,操纵数据的过程称为方法。每个特定的类实例对象都有一组特定的实例域值,这些值的集合就是这个对象的当前状态。   实现封装的关键在于绝不能让类的方法直接访问其他类的实例域,程序仅通过对象的方法域对象数据进行交互 对象 对象的三个特征:行为,标识,状态   同一个类的所有对象实例,由于支持相同的行为而具有家族式的相似性,对象的行为是用可调用的方法定义的。   状态:每个对象都保存着描述当前特征的信息,这就是状态,对象状态的改变必须通过调用方法来实现(若可以不调用方法就可以改变对象状态,就是说明封装性遭到破环)。   标识:对象的状态并不能完全描述一个对象,每个对象都有一个唯一的身份(标识),作为一个类的实例,每个对象的标识永远是不同的,状态也存在差异 设计类 在面向对象的程序设计时没有所谓的定都main函数开始,而是先从设计类开始,然后再往每个类中添加方法。 识别类的简单规则:寻找名词,方法对应动词 类之间的关系 依赖(users-a):一个类的方法操纵另一个类对象,就是依赖   应尽可能将相互依赖的类降至最少

实现页面静态化,PHP是如何实现的?

会有一股神秘感。 提交于 2019-12-20 04:42:39
随着网站的内容的增多和用户访问量的增多,无可避免的是网站加载会越来越慢,受限于带宽和服务器同一时间的请求次数的限制,我们往往需要在此时对我们的网站进行代码优化和服务器配置的优化。 一般情况下会从以下方面来做优化 1、动态页面静态化 2、优化数据库 3、使用负载均衡 4、使用缓存 5、使用CDN加速 纯静态网站在网站中是怎么实现的? 纯静态的制作技术是需要先把网站的页面总结出来,分为多少个样式,然后把这些页面做成模板。 生成的时候需要先读取源文件然后生成独立的以.html结尾的页面文件,所以说纯静态网站需要更大的空间,不过其实需要的空间也不会大多少的,尤其是对于中小型企业网站来说,从技术上来讲,大型网站想要全站实现纯静态化是比较困难的,生成的时间也太过于长了。不过中小型网站还是做成纯静态的比较,这样做的优点是很多的。 而动态网站又是怎么进行静态处理的? 页面静态化是指将动态页面变成html/htm静态页面。动态页面一般由asp,php,jsp,.net等程序语言编写而成,非常便于管理。但是访问网页时还需要程序先处理一遍,所以导致访问速度相对较慢。而静态页面访问速度快,却又不便于管理。那么动态页面静态化即可以将两种页面的好处集中到一起。 静态处理后又给网站带来了哪些好处? 1、静态页面相对于动态页面更容易被搜索引擎收录。 2、访问静态页面不需要经过程序处理,因此可以提高运行速度。 3

java代码块执行顺序

安稳与你 提交于 2019-12-20 02:58:49
为了加深记忆,在此记录一下java的代码块执行顺序: 1.类静态方法块,属性,顺序执行 类成员方法块,属性,顺序执行 2.子类继承父类 执行顺序:父类静态方法块,属性 子类静态方法块,属性 父类方法块,属性 子类方法块,属性 3.类自身静态方法块,属性,先于main函数加载 来源: CSDN 作者: 砥砺前行的码农 链接: https://blog.csdn.net/yuyajun06/article/details/103622047