变量

spring注入静态成员变量

你离开我真会死。 提交于 2020-04-01 12:49:18
  工作中遇到的问题,在工具类里面需要给静态成员变量注入值,而静态成员变量是在类加载的时候加载的,所以一直报空指针。 在网上找了几种方法,记录一下。   第一种:使用set函数注入。 1 @Component 2 public class LogUtil { 3 4 private static PayLogDao logDao ; 5 @Autowired 6 public void setLogDao(PayLogDao logDao){ 7 LogUtil.logDao = logDao; 8 } 9 }   第二种:使用 @PostConstructy注解。 1 @Component 2 public class LogUtil { 3 @Autowired 4 private PayLogDao logDao ; 5 6 private static LogUtil logUtil; 7 8 @PostConstruct 9 private void init() { 10 logUtil = this; 11 } 12 13 public static void writeSuccessLog(String ip,String mac,String clazz,String msg){ 14 PayLog log = new PayLog(); 15 log

Java8增强的包装类

余生颓废 提交于 2020-04-01 07:52:15
为了解决8中基本数据类型的变量不能当成Object 类型变量使用的问题,Java提供了包装类的概念,为8种基本数据类型分别定义了相应的引用类型,并称为基本数据类型的包装类。 JDK 1.5提供了自动装箱和自动拆箱功能。 自动装箱就是把一个基本类型变量直接赋值给对应的包装类变量,或者赋值给Object变量; 自动拆箱则相反,允许直接把包装类对象直接赋值给一个对应的基本类型变量。 除此之外,包装类还可实现基本类型变量和字符串之间的转换,把字符串类型的值转换为基本类型的值有两种方式: 1、利用包装类提供了parseXxx(String s)静态方法; 2、利用包装类提供的Xxx(String s)构造器。 String 类提供了多个valueOf()方法,用于将基本类型变量转换成字符串。 public class PrimitiveString { public static void main(String[] args) { // TODO Auto-generated method stub String inStr = "123"; int it1 = Integer.parseInt(inStr); System.out.println(it1); String floatStr = "4.22"; //将String变量转化成float变量 float f1 = new

php利用递归函数实现无限级分类

[亡魂溺海] 提交于 2020-04-01 07:51:31
   递归函数是我们常用到的一类函数,最基本的特点是 函数自身调用自身 ,但必须在调用自身前 有条件判断 ,否则无限无限调用下去。实现递归函数可以采取什么方式呢?本文列出了三种基本方式。理解其原来需要一定的基础知识水品,包括对全局变量,引用,静态变量的理解,也需对他们的作用范围有所理解。递归函数也是解决无限级分类的一个很好地技巧。如果对无限级分类感兴趣,请参照 php利用递归函数实现无限级分类 。我习惯套用通俗的话解释复杂的道理,您确实不明白请参见 手册 。   利用引用做参数   先不管引用做不做参数,必须先明白引用到底是什么?引用不过是指两个不同名的变量指向同一块存储地址。本来每个变量有各自的存储地址,赋值删除各行其道。现在可好,两个变量共享一块存储地址。 $a =& $b ; 。实际上指的是 $a 不管不顾自己原来的存储地址,非要和 $b 共享一室了。因而任何对存储地址数值的改变都会影响两个值。     函数之间本来也是各行其是,即便是同名函数。递归函数是考虑将引用作为参数,成为一个桥梁,形成两个函数间的数据共享。虽然两个函数见貌似操作的是不同地址,但是实际上操作的是一块儿内存地址。    function test($a=0,&$result=array()){ $a++; if ($a<10) { $result[]=$a; test($a,$result); }echo

javascript编码规范总结

◇◆丶佛笑我妖孽 提交于 2020-04-01 07:35:39
1.嵌入规则 Javascript程序应该尽量放在.js的文件中,需要调用的时候在页面中以<script src="filename.js">的形式包含进来。Javascript代码若不是该页面专用的,则应尽量避免在页面中直接编写Javascript代码。 2.对齐缩进与换行 a) 缩进 在同一系统中应采用同一种缩进标准,本文提倡缩进大小为4个空格。各编译器对Tab键所代替的空白大小定义不同。建议在设置开发环境时,将编辑器里的Tab快捷键重新设置成4个空格。多数编译器提供了此功能。否则建议按4次空格来进行缩进。 b) 换行 在以下位置必须换行: 每个独立语句结束后; if、else、catch、finally、while等关键字前; 运算符处换行时,运算符必须在新行的行首。 对于因为单行长度超过限制时产生的换行,参考行长度中的策略进行分隔。 1).字符串过长截断 每行代码应小于80个字符。若代码较长应尽量换行,换行应选择在操作符和标点符号之后,最好是在分号“;”或逗号“,”之后。下一行代码相对上一行缩进4个空格。这样可以有效防止复制粘贴引起的代码缺失等错误并增强可读性。 按一定长度截断字符串,并使用+运算符进行连接。分隔字符串尽量按语义进行,如不要在一个完整的名词中间断开。特别的,对于HTML片段的拼接,通过缩进,保持和HTML相同的结构: 也可使用数组来进行拼接,相对

html/css/ javascript笔记

情到浓时终转凉″ 提交于 2020-04-01 06:33:12
1.JavaScript 中call()方法和apply()方法的作用相同,他们的区别在于接收参数的方式不同。对于call(),第一个参数是this值没有变化,变化的是其余参数都直接传递给函数。(在使用call()方法时,传递给函数的参数必须逐个列举出来。使用apply()时,传递给函数的是参数数组。 call 、bind 、 apply 这三个函数的第一个参数都是 this 的指向对象,第二个参数差别就来了: call的参数是直接放进去的,第二第三第n个参数全都用逗号分隔,直接放到后面 obj.myFun.call(db,'成都', ... ,'string' ); apply的所有参数都必须放在一个数组里面传进去 obj.myFun.apply(db,['成都', ..., 'string' ]); bind除了返回是函数以外,它 的参数和call 一样。 当然,三者的参数不限定是string类型,允许是各种类型,包括函数 、 object 等等! 2. Ajax 和 Flash 1.Ajax的优势:1.可搜索性 2.开放性 3.费用 4.易用性 5.易于开发。 2.Flash的优势:1.多媒体处理 2.兼容性 3.矢量图形 4.客户端资源调度 3.Ajax的劣势:1.它可能破坏浏览器的后退功能 2.使用动态页面更新使得用户难于将某个特定的状态保存到收藏夹中

01.JS基本语法-数据类型和变量

老子叫甜甜 提交于 2020-04-01 04:58:59
:JavaScript代码可以直接嵌在网页的任何地方,但一般写在之间,必须要有自己的闭标签 JS的基本结构 <script type="text/javascript"> <!-- JavaScript 语句; --> </script > JS只能在客户端执行,并且不能操作服务器端 引入这个文件 ②JavaScript严格区分大小写 <html> <head> <script src="/static/js/abc.js"></script> </head> <body> ... </body> </html> 变量 变量名是大小写英文、数字、$和_的组合,且不能用数字开头。变量名也不能是JavaScript的关键字,声明变量赋值时指明数据类型: var width=5; var a; // 申明了变量a,此时a的值为undefined var $b = 1; // 申明了变量$b,同时给$b赋值,此时$b的值为1 var s_007 = '007'; // s_007是一个字符串 var Answer = true; // Answer是一个布尔值true var t = null; // t的值是null var:提前声明 可以不声明之间赋值【不推荐】 注意 : JavaScript严格区分大小写 js是一门动态语言 strict模式

作业六总结

ε祈祈猫儿з 提交于 2020-04-01 03:19:09
一、知识点总结:一定的 1.函数概述: 函数→function→功能,函数就是能完成一定功能的程序段。 如果程序规模不大,只需一个主函数和基本的库函数即可。 否则,用户需要编写能实现一定功能的子函数。 2.函数的功能: 主函数就像一个控制面板,子函数就像控制面板上的按钮。 每个子函数可以实现功能。 子函数可以减少重复编写程序段的工作量。 同一个子函数可以被一个或多个函数多次调用。 3.函数使用说明: C程序是由一个或多个函数组成。 C程序总是从main函数开始执行,而不管将其写在前面、中间或最后。在调用完其它函数后返回到main函数。 子函数相互独立,可以互相调用,但是子函数不可调用主函数。 4.函数分类: 从用户角度看,C语言函数分为两类:   (1)库函数(标准函数):是系统提供定义,用户编程时可直接调用。printf(),scanf()。   (2)用户定义函数:是用户自己编写的用来解决具体问题的函数。cylinder(),max(),PrintStar()。 从函数的形式看,函数分为两类:   (1)无参函数:不需要向函数传递参数。PrintStar()。   (2)有参函数:需要向函数传递必要的参数。cylinder(r,h),max(a,b) 从函数有无返回值看,函数分为两类:   (1)有返回值函数:函数经过运算,得到一个明确的结果,并需要回送该结果。cylinder

Ruby之变量

大憨熊 提交于 2020-04-01 03:08:36
最近在进行Rails的学习,不可缺少的会使用Ruby这一门语言.曾经有过Java的学习经验,并且很毛躁的扫过很一些网上下载的资料.其中很大的缺点是自己对有些基础的知识掌握的不是很明了.现在重新系统的学习Ruby的知识,以下内容有可能借鉴其它博主相关博文。 Ruby之变量 Ruby与大部分的脚本语言不同,它有自己的命名规范(采用CoC)。 Ruby语言有变量有以下几种 注意Ruby语言中常量与伪变量都没有类型(如Java中的String、Int、Long等等)。 1.常量 (Constants) 常量首字母必须大写(常用的规范是整个变量名单词都大写),常量应当只赋值一次。 2.局部变量 局部变量由小写字母或下划线(_)开头。 3. 实例变量 实例变量由@开头,它的范围限制在 self 对象内.两个不同的对象,即使属于同一个类,也可以拥有不同值的实变量.从对象外部来看,实变量不能改变 甚至观察(比如, Ruby的实变量从来不是公用的),除非方法由程序员明确声明.像全局变量一样,实变量在初始前的值是nil. 4. 类变量 类变量其实就是类的静态变量,这点跟Java很相似。 5. 全局变量 全局变量由$开头.它们可以在程序的任何位置访问到.在初始化前,全局变量有一个特殊的值 nil. 来源: https://www.cnblogs.com/keen-allan/archive/2012

ruby变量

萝らか妹 提交于 2020-04-01 03:08:05
Ruby 支持五种类型的变量。 一般小写字母、下划线开头:变量(Variable)。局部变量的作用域从 class、module、def 或 do 到相对应的结尾或者从左大括号到右大括号 {}。 当调用一个未初始化的局部变量时,它被解释为调用一个不带参数的方法。 对未初始化的局部变量赋值也可以当作是变量声明。变量会一直存在,直到当前域结束为止。局部变量的生命周期在 Ruby 解析程序时确定。 $ 开头:全局变量(Global variable)。 @ 开头:实例变量(Instance variable)。 @@ 开头:类变量(Class variable)类变量被共享在整个继承链中,且必须初始化后才能在方法定义中使用 大写字母开头:常量(Constant)。 定义在类或模块内的常量可以从类或模块的内部访问,定义在类或模块外的常量可以被全局访问。 常量不能定义在方法内。引用一个未初始化的常量会产生错误。对已经初始化的常量赋值会产生警告。 来源: https://www.cnblogs.com/family-626-77/p/6132787.html

ref,out(摘)

∥☆過路亽.° 提交于 2020-04-01 02:11:58
ref和out的区别在C# 中,既可以通过值也可以通过引用传递参数。通过引用传递参数允许函数成员更改参数的值,并保持该更改。若要通过引用传递参数, 可使用ref或out关键字。ref和out这两个关键字都能够提供相似的功效,其作用也很像C中的指针变量。它们的区别是: 1、使用ref型参数时,传入的参数必须先被初始化。对out而言,必须在方法中对其完成初始化。 2、使用ref和out时,在方法的参数和执行方法时,都要加Ref或Out关键字。以满足匹配。 3、out适合用在需要retrun多个返回值的地方,而ref则用在需要被调用的方法修改调用者的引用的时候。 注:在C#中,方法的参数传递有四种类型:传值(by value),传址(by reference),输出参数(by output),数组参数(by array)。传值参数无需额外的修饰符,传址参数需要修饰符ref,输出参数需要修饰符out,数组参数需要修饰符params。传值参数在方法调用过程中如果改变了参数的值,那么传入方法的参数在方法调用完成以后并不因此而改变,而是保留原来传入时的值。传址参数恰恰相反,如果方法调用过程改变了参数的值,那么传入方法的参数在调用完成以后也随之改变。实际上从名称上我们可以清楚地看出两者的含义--传值参数传递的是调用参数的一份拷贝,而传址参数传递的是调用参数的内存地址