private static final Logger logger= LoggerFactory.getLogger(ShiroConfig.class); (1)出于资源利用的考虑,Logger的构造方法参数是Class,决定了Logger是根据类的结构来进行区分日志,所以一个类只要一个Logger就可以了,故static (2)final表示一种编程习惯,表示该类的Logger只是记录该类的信息,否则日志会无法提供可以令人信服的记录 定义成static final,logger变量不可变,…
1.java的抽象方法为什么不能用static修饰?类抽象方法? 如上代码,在抽象类中定义static属性是没有问题的,但是定义抽象方法时是不能定义为静态(static)的,否则编译器会报错:The abstract method geta in type abstractTest can only set a visibility modifier, one of public or protected 我们只定义静态static方法完全OK,因为静态方法是属于类的,所以静态方法必须满足给类调…
1.1 简述static和final的用法? static:修饰属性,方法,代码块 (1)静态属性:也可叫类变量  类名.属性名  来访问 (共有的类变量与对象无关,只和类有关) 注意:类中的实例变量是在创建对象时被初始化的,被static修饰的属性,也就是类变量,是在类加载时被创建并进行初始化,类加载的过程是进行一次.也就是类变量只会被创建一次. (2)静态方法:类名.方法名  直接访问 注意:static修饰的方法,不能直接访问本类中的非静态(static)成员(包括方法和属性) 本类的非静…
1.关键字可以修饰的说明: 关键字 属性(是否可修饰) 方法(是否可修饰) 类(是否可修饰) static 是 是 是 final 是 是 是 abstract 否 是 是 2.关键字的意义: 关键字 意义 具体特性说明 被继承的话,会有什么后果? static 表示属于该类. 1. 修饰变量:属于该类2. 修饰方法:子类可覆盖为static,但不可覆盖为非static.3. 修饰类:属于该类 见下面详细的补充说明 final 表示一旦赋值不能改变. 1. 修饰变量:一旦赋值不能改变:2. 修饰…
一.static: 1.static是一个标识符: - 有static修饰的成员表明该成员是属于类的; - 没有static修饰的成员表明该成员是属于实例/对象的. 2.static修饰的成员(Field.方法.初始化块),与类共存亡:static修饰的成员建议总是通过类名来访问,虽然它也可以通过实例来访问(实质也是通过类来访问的),所以平时若在其他程序中见到通过实例/对象来访问static成员时,可以直接将实例/对象 替换成类名: 3.程序都是先有类再有对象的,有可能出现有类但没有实例/对象的…
1.对于final类型成员变量,一般来说有两种赋值方式: a)在声明final类型的成员变量时就附上初值 package com.cl.staticandfinal; public class FinalTest4 { final int a=7; public FinalTest4(){ } } b)在声明final类型的成员变量时不赋初值,但在类的所有构造方法中都为其赋上初值 package com.cl.staticandfinal; public class FinalTest4 { f…
Super 使用super关键字可以直接调用父类中的构造方法.属性.普通方法 super调用父类构造方法的操作,与this调用构造方法一样,语句必须放在子类构造方法的首行 public class Person { //定义父类Person private String name; //定义name属性 private int age; //定义age属性 public Person(String name,int age) { //通过构造方法设置name.age this.setName(n…
一:软件出现的目的 1:用计算机的语言描述现实世界 2:用计算机解决现实世界的问题 编程思维:  使用面向对象的思想(描述)面向对象的世界     (符合人类的思维习惯) 二:面向对象设计和开发程序的好处 1:符合人类的思维习惯 2:交流更加流畅 2:可维护性高(方便修改代码) 3: 提高设计和开发效率 三:面向对象的三大特性      1.封装性:            所谓封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏.封装…
java中Logger.getLogger(Test.class) log4的使用方法: log4是具有日志记录功能,主要通过一个配置文件来对程序进行监测有两种配置方式:一种程序配置,一种文件配置有三个主要单元要了解,Logger,appender,layout. logger是进行记录的主要类,appender是记录的方式,layout是记录的格式logger七种日志级别:debug,info,warn,error,fatal,all,off最常用的应该是debug()和info():而war…
static  1. static变量     按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量:另一种是没有被static修饰的变量,叫实例变量.两者的区别是:  对于静态变量在内存中只有一个拷贝(节省内存),JVM只为静态分配一次内存,在加载类的过程中完成静态变量的内存分配,可用类名直接访问(方便),当然也可以通过对象来访问(但是这是不推荐的).对于实例变量,没创建一个实例,就会为实例变量分配一次内存,实例变量可以在内存中有多个拷贝,互不影响(灵…
一.final 1.final变量: 当你在类中定义变量时,在其前面加上final关键字,那便是说,这个变量一旦被初始化便不可改变,这里不可改变的意思对基本类型来说是其值不可变,而对于对象变量来说其引用不可再变.其初始化可以在两个地方,一是其定义处,也就是说在final变量定义时直接给其赋值,二是在构造函数中.这两个地方只能选其一,要么在定义时给值,要么在构造函数中给值,不能同时既在定义时给了值,又在构造函数中给另外的值. 当函数参数为final类型时,你可以读取使用该参数,但是无法改变该参数的…
一.前言 一直以来都是拿来主义,向大神学习,从网上找资料,现在就把自己在工作中和学习中的所理解的知识点写出来,好记星不如烂笔头,一来可以作为笔记自己温习,二来也可以给走在求学之路的同学们一点参考意见,有什么不对的地方还请大家指出,一起讨论共同成长. Java面向对象: (1)  java内存结构 1 栈 特点:有序的内存空间(先进后出原则). 创建方式:由程序平台自身创建. 存储内容:基本数据类型(简单数据类型)的值. 存放对象的在堆空间上的地址. 个数问题:java程序执行过程有很多个栈,往往…
本节介绍JAVA里static和final的作用和使用方法以及一些需要注意的问题. 一.static static表示"全局"或"静态",用来修饰成员变量和成员方法,以及代码块. 被static修饰的成员变量和成员方法独立于该类的任何对象.也就是说,它不依赖类特定的实例,被类的所有实例共享.只要这个类被加载,JAVA虚拟机就能根据类名在运行时数据区的演绎法我内找到它们.因此,static对象可以在它的任何对象创建之前访问,无需引用任何对象. 用public修饰的st…
随便打开一个 spring 的 源文件,比如  PathMatchingResourcePatternResolver.class 里面是这样定义logger 的 import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; private static final Log logger = LogFactory.getLog(PathMatchingResourcePatternReso…
一.final 1.final变量: 当你在类中定义变量时,在其前面加上final关键字,那便是说,这个变量一旦被初始化便不可改变,这里不可改变的意思对基本类型来说是其值不可变,而对于对象变量来说其引用不可再变.其初始化可以在两个地方,一是其定义处,也就是说在final变量定义时直接给其赋值,二是在构造函数中.这两个地方只能选其一,要么在定义时给值,要么在构造函数中给值,不能同时既在定义时给了值,又在构造函数中给另外的值. 当函数参数为final类型时,你可以读取使用该参数,但是无法改变该参数的…
static  1. static变量     按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量:另一种是没有被static修饰的变量,叫实例变量.两者的区别是:  对于静态变量在内存中只有一个拷贝(节省内存),JVM只为静态分配一次内存,在加载类的过程中完成静态变量的内存分配,可用类名直接访问(方便),当然也可以通过对象来访问(但是这是不推荐的).对于实例变量,没创建一个实例,就会为实例变量分配一次内存,实例变量可以在内存中有多个拷贝,互不影响(灵…
static 在Java中声明属性.方法时,可使用关键字static来修饰. 1.static变量       按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量:另一种是没有被static修饰的变量,叫实例变量. 两者的区别是:对于静态变量在内存中只有一个拷贝(节省内存),JVM只为静态分配一次内存,在加载类的过程中完成静态变量的内存分配,可用类名直接访问(方便),当然也可以通过对象来访问(但是这是不推荐的).对于实例变量,没创建一个实例,就会为实例…
一.final 1.final变量: 当你在类中定义变量时,在其前面加上final关键字,那便是说,这个变量一旦被初始化便不可改变,这里不可改变的意思对基本类型来说是其值不可变,而对于对象变量来说其引用不可再变.其初始化可以在两个地方,一是其定义处,也就是说在final变量定义时直接给其赋值,二是在构造函数中.这两个地方只能选其一,要么在定义时给值,要么在构造函数中给值,不能同时既在定义时给了值,又在构造函数中给另外的值. 当函数参数为final类型时,你可以读取使用该参数,但是无法改变该参数的…
static static 的含义是静态的,是一个静态修饰符,一般来说,被static修饰的有以下几种,类.变量.方法.代码块. static修饰类 Java中普通的类是不允许被声明为静态的,但是有一种类特殊,那就是内部类,对内部类没什么研究,暂且先不谈. static修饰变量 static修饰成员变量时,这个变量可以直接通过 类.变量 的方式调用,而不需要new一个对象通过 对象.变量 的方式调用,static修饰的成员变量,在类加载的时候就加载了,一般把static修饰的变量叫类变量,不用s…
static关键字的用法 static的意思是"'静态的",在java里面可用于修饰属性和方法. static关键字的应用应注意以下几种情形: 1.static作用于某个字段,一个static字段对每个类来说只有一份存储空间,而非static字段是每个对象有一份存储空间. 2.static作用于方法的重要用法是不需要创建任何对象直接调用该static方法,这对于main()方法很重要. 3.static不能应用于局部变量. 4.Java中禁止使用全局方法,所以引入static方法通过类…
Java栈与堆 堆:顺序随意 栈:后进先出(Last-in/First-Out). Java的堆是一个运行时数据区,类的对象从中分配空间.这些对象通过new.newarray.anewarray和multianewarray等指令建立,它们不需要程序代码来显式的释放.堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,因为它是在运行时动态分配内存的,Java的垃圾收集器会自动收走这些不再使用的数据.但缺点是,由于要在运行时动态分配内存,存取速度较慢. 栈的优势是…
static static属性 定义:static修饰的属性就叫静态属性:如果类的某个属性,不管创建多少个对象,属性的存储空间只有唯一的一个,那么这个属性就应该用static修饰 作用:static属性可以使用对象调用,也可以直接用类名调用 特点:静态属性是类的所有对象共享的,即不管创建了多少个对象,静态属性在内存中只有一个 static方法 定义:static修饰的方法称为静态方法:如果某个方法不需要与某个特定的对象绑定,那么该方法可以使用static修饰 作用:static方法可以使用对象调…
一.final 1.final变量: 当你在类中定义变量时,在其前面加上final关键字,那便是说,这个变量一旦被初始化便不可改变,这里不可改变的意思对基本类型来说是其值不可变,而对于对象变量来说其引用不可再变.其初始化可以在两个地方,一是其定义处,也就是说在final变量定义时直接给其赋值,二是在构造函数中.这两个地方只能选其一,要么在定义时给值,要么在构造函数中给值,不能同时既在定义时给了值,又在构造函数中给另外的值. 当函数参数为final类型时,你可以读取使用该参数,但是无法改变该参数的…
面向对象的不足 凡是有利必有弊,强对象编程,使得语法简单统一,但也有其缺点,而且有很多.我们在接下来的课程里会一点点接触到.我们今天先看第一个. 有些变量和函数确实没必要定义在一个类里.强行规定这些函数在类里,反而显得累赘.想一个例子,比如正弦函数sin,常数PI,这些函数或者常量值为什么要定义在类里呢?一定要定义的话,定义在哪个类里合适呢? Java的做法是把数学函数封装到一个叫做Math的类里.叹气...一个叫Math的类,太不直观了.再来思考一个问题,如果说,我们这样写 class Mat…
Java中的内存处理机制和final.static.final static总结   装载自:http://blog.csdn.net/wqthaha/article/details/20923579 Java程序运行在JVM上,可以把JVM理解成Java程序和操作系统之间的桥梁,JVM实现了Java的平台无关性,由此可见JVM的重要性.所以在学习Java内存分配原理的时候一定要牢记这一切都是在JVM中进行的,JVM是内存分配原理的基础与前提.         一个完整的Java程序运行过程会涉…
一.static static(静态的),可以放在类.方法.字段之前. 通常,当创建类时,就是在描述那个类的外观与行为.除非用 new 创建那个类的对象,否则,实际上并未获得任何对象.执行 new 来创建对象时,数据存储空间才会被分配,其方法才可被外界调用.但是有两种情形上述方法无法解决.其一:只想为某特定域分配单一存储空间,而不去考虑究竟要创建多少对象,甚至根本就不创建任何对象:另一种情形是,希望某个方法不与包含它的类的任何对象关联在一起,也就是说,即便没有创建对象,也能够调用这个方法. st…
Java静态变量的初始化(static块的本质) 标签: javaclassstring编译器jdk工作 2010-02-06 07:23 33336人阅读 评论(16) 收藏 举报  分类: Java基础(13)  版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[+]   在网上看到了下面的一段代码: public class Test { static { _i = 20; } public static int _i = 10; public static void …
不多说,直接上干货! 牛客网Java刷题知识点之关键字static static代表着什么 在Java中并不存在全局变量的概念,但是我们可以通过static来实现一个“伪全局”的概念,在Java中static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,当然也可以修饰代码块和内部类. Java把内存分为栈内存和堆内存,其中栈内存用来存放一些基本类型的变量.数组和对象的引用变量,堆内存主要存放一些引用类型的变量.在JVM加载一个类的时候,若该类存在static修饰的成员变量和成员方法…
interface”(接口)可将其想象为一个“纯”抽象类.它允许创建者规定一个类的基本形式:方法名.自变量列表以及返回类型,但不实现方法主体.接口也可包含基本数据类型的数据成员,但它们都默认为public.static 和final.接口中定义的方法默认为public.abstract. 为什么Java接口中的成员变量默认为(public.static.final).成员方法为(public.abstract)呢? 接口是一种高度抽象的模版,接口中的成员变量是模版的一部分,其接口的实现类必须共有…
一周Java学习总结 今天就总结理清一下关于面向对象和面向过程的程序设计的一些不同特点,以及讲下static关键字. 面向对象 现在接触的Java是面向对象的,现在的程序开发几乎都是以面向对象为基础的.我现在不看书,光靠回忆去想这个特性的解释性语言,只能想到看书时很深刻的一句话,面向对象就是一个更加具体描述一个事件的一种设计方法,就像在公司里面吃饭,面向对象的话就是一个总负责人即类似大厨准备好菜谱什么的,分工下去给下属,每个人负责一个菜,每个人按照自己的秘方去完成,最后总的做出来形成一桌满汉全席…