参考链接: Java中的可访问和非访问修饰符 1.final 修饰类时表明该类不能被继承,自然类中的方法默认是final型的。 2.final 修饰方法时不允许被子类覆盖,也就是可以被继承。...一个final类中,一个final方法只能被实现一次。 ...static修饰的方法中不得含有非静态的方法和非静态的变量。因为非静态的方法和变量通常是和对象绑定在一块的。而static方法是和对象无关。 ...static修饰的变量,不会影响到对象访问权限(方法也是),静态变量和类绑定只存在一个副本,而那些和对象绑定的变量则因为对象不同,可以存在多个副本也不会冲突。 static修饰模块。...本文主要参考的文章除了以上提到的外还有http://lavasoft.blog.51cto.com/62575/18771/,这里也是讲的static和final区别。
1、final: final关键字可用于类、方法、变量前。 final修饰的类不可被继承,例如java.lang.Math就是一个 final类,不可被继承。...(){ name = "鱼"; #此时变量属性不可再改变 } } 2、static: 2.1)static关键字用来修饰变量、方法、游离块和内部类,称这些变量、方法和内部类为静态变量...2.1.1)案例 package com.sp; import java.util.Calendar; public class Person { String name; static int count...2.4)static 不可用于修饰构造器 2.5)static修饰的属性和方法,对象之间是共享的。 2.6)static修饰的属性和方法,可以直接用类名调用。 2.7)static游离块。...2.7.1)static除了用于修饰变量和方法外,还可以用于修饰类中的游离块(自由块)。 2.7.2)所谓类的“游离块”,就是在类中用“{}”包含起来的不属于任何方法或构造器的代码段。
: 类名.方法 如 Math.pow 所有同一个类的类成员共享,共用一个; 其值可以修改 静态方法不能向对象实施操作,静态方法中不可以使用this关键字; 不能访问类中实例域(非static域 / 变量...static int getNextId() { return nextId; } } 被static定义的静态域独立于Java 的堆栈,独占一个存储空间; static的方法在装载...class得时候往往首先完成,比构造方法早,此时非static得属性和方法还没有完成初始化。...#Static 定义的类中程序块 如 public class example{ static{ //some } } 在该段代码被执行时,首先执行static中的程序,并且只会执行一次...---- final #final定义的类 不能被继承;不允许其他人对这个类进行任何改动; 类中所有方法都被隐式设置为final; 类中的成员变量可以被定义为final或非final; #final
这篇文章我们学习一下Java中final和static关键字的作用! final 「修饰引用」: final关键字可以用来修饰引用、方法和类。...「修饰方法」: 当使用final修饰方法时,这个方法将成为最终方法,无法被子类重写。但是,该方法仍然可以被继承。 「修饰类」: 当用final修改类时,该类成为最终类,无法被继承。...比如和数学相关的静态资源放在java.lang.Math中,和日历相关的静态资源放在java.util.Calendar中,这样就很清晰了 避免重名。...与非static的区别: 在内存中存放的位置不同:所有static修饰的属性和方法都存放在内存的方法区里,而非静态的都存在堆内存中 出现的时机不同:静态属性和方法在没创建对象之前就存在,而非静态的需要在创建对象才存在...注:静态属性、静态方法、非静态属性都可以被继承和隐藏,但是不可以被重写,非静态方法可以被重写和继承 static静态代码块 静态代码块只能写在类中方法外,不能写在方法中,它会随着类的加载而优先于各种代码块和构造方法的加载
java早期为效率问题引出final方法,但现在发现存在诸多毛病,不推荐使用 第三种情况,final修饰域,final修饰域又分为修饰基本类型域和修饰对象 final修饰基本类型域...,一旦初始化,数值保持不变 final修饰引用类型域,一旦初始化,则引用对象的地址不再发生变化,但是对象的内容可以改变 3,static关键字,可用来修饰域,方法,代码块和类...,static修饰域,表示一个类中只存在一份这样的静态域,不论该类创建了多少个对象,静态域只有一份,没有拷贝 第四种情况,static修饰方法,在static修饰的方法中只能调用静态域,静态方法中不能出现...this,和super关键字,而且静态方法和静态域可以使用类名或者对象去调用,而非静态的只能使用对象去调用 在代码中验证this,static,final,关键字 Person.java文件 public...文件,final修饰的域和final修饰的对象,以及static修饰的域和static修饰的变量 public class MainActivity extends Activity {
二、参考资料 1、java入门之关键字static和final 2、static和final的区别
this指当前对象,静态方法中不用声明实例对象在java中,程序执行时 类的字节码文件会被加载到内存中,如果类没有创建对象 类的成员变量则不会分配到内存;但对于被static修饰的静态变量/方法,堆中有一个专属的静态变量区...此时静态方法和非静态方法都在内存当中,所以在静态方法中可以使用对象去调用一个非静态方法。4)static修饰的成员属于类,会存储在静态区,是随着类的加载而加载的,且只加载一次,所以只有一份,节省内存。...在Java类下,使用 { } 括起来的代码被称为代码块 。2)静态代码块:static{}。特点——需要通过static关键字修饰,随着类的加载而加载,并且自动触发、只执行一次。...Java提供了final关键字,表示修饰的内容不可变。final:最终的、不可改变的。可用于修饰类、方法、变量。...格式如下:修饰符 final 返回值类型 方法名(参数列表){ //方法体}注意:对于类、方法来说,abstract关键字和final关键字不能同时使用。
Java final 与 static final 数据 声明数据为常量,可以是编译时常量,也可以是在运行时被初始化后不能被改变的常量。...private 方法隐式地被指定为 final,如果在子类中定义的方法和基类中的一个 private 方法签名相同,此时子类的方法不是重写基类方法,而是在子类中定义了一个新的方法。...static 静态变量 静态变量:又称为类变量,也就是说这个变量属于类的,类所有的实例都共享静态变量,可以直接通过类名来访问它。静态变量在内存中只存在一份。...(); // Illegal combination of modifiers: 'abstract' and 'static' } 只能访问所属类的静态字段和静态方法,方法中不能有 this 和 super...import static com.xxx.ClassName.* 初始化顺序 静态变量和静态语句块优先于实例变量和普通语句块,静态变量和静态语句块的初始化顺序取决于它们在代码中的顺序,最后才是构造函数的初始化
这一篇主要记录几个java中常用的关键字。...(一)final 1.final,可以用来修饰类,类的成员变量,类的局部变量,类的方法; 2.final修饰类时,此类不可以被继承,但是,这个类可以继承其他类; 3.final修饰方法时,此方法不可以把被覆盖...,但是父类中没有被final修饰的方法,子类覆盖后可以加final; 4.final修饰的变量,称为常量,只能赋值一次; 5.final修饰成员变量,需要创建时就初始化,或者,在构造方法中初始化,否则会报如下错误...:Variable 'a' might not have been initialized; (二)static
static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。 ...被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。 只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们。...static修饰的成员变量和成员方法习惯上称为静态变量和静态方法,可以直接通过类名来访问,访问语法为: 类名.静态方法名(参数列表…) 类名.静态变量名 用static修饰的代码块表示静态代码块,当Java...oublic static final double PI = 3.14; ... } 在程序中,可以采用Math.PI的形式获得这个常量。 ...静态方法中不能用this和super关键字,不能直接访问所属类的实例变量和实例方法(就是不带static的成员变量和成员成员方法),只能访问所属类的静态成员变量和成员方法。
1)为什么接口中的属性都默认为static和final?Sun公司当初为什么要把java的接口设计发明成这样?...【新手可忽略不影响继续学习】 答:马克-to-win:接口中如果可能定义非final的变量的话,而方法又都是abstract的,变量的修改就需要实现类来完成。...interface就像一个合同,规定后来的类A和B, 都按照这个合同来做事,怎么能谁想怎么改就怎么改?另外,为什么必须为static呢?...马克-to-win,这样,未来的子类的static方法也能访问到它,可以最大限度的发挥接口属性的功能。
前言 学习了面向对象的一些知识点后,在看别人的代码中经常会看到 static 和 final 两个关键字,那你知道它俩都是做什么用的么,使用的时候需要注意啥呢?...今天的内容就来一起了解下,static 和 final 关键字的使用。 static 静态的意思,是 Java 中常用的修饰符,既可以用它来修饰成员变量,也可以用它来修饰成员方法。...静态变量 静态变量就是用 static 来修饰的成员变量,最重要的特点就是一个类中的静态变量被类中的所有对象所共享。它不属于任何一个对象,而是属于类。其生命周期同类一样,共生共存,是优先于对象的。...一个静态方法中只能访问静态变量和其他的静态方法。而不能访问非静态的变量和方法。 但一个非静态方法一方面既可以访问静态变量,也可以访问非静态变量;另一方面,也既可以访问静态方法,也可以访问非静态方法。...另外,我们也对 final 用来修饰变量、方法和类时的场景进行了回顾。 码字不易,如果本文对你所有帮助,那就来个一键三连吧!
,此时类中的所有成员方法,都会被隐式地指定为 final 方法; 使用 final 方法的原因有两个。...第一个原因是把方法锁定,防止任何继承类修改它的含义;第二个原因是效率,早期的 Java 版本中,会将 final 方法转为内嵌调用,但是如果方法过于庞大,可能看不到内嵌调用带来的任何性能提升(如今已经不需要显示使用...static 关键字主要有以下四种使用场景: 修饰成员变量和成员方法: 被 static 修饰的成员属于类,不属于这个类的某个对象,被类中所有的对象共享,可以并且建议通过类名进行调用。...被 static 声明的成员变量属于静态成员变量,静态变量存放在 Java 内存区域的方法区,调用格式:类名.静态变量名、类名.静态方法名(); 静态代码块: 静态代码块定义在类中方法外, 静态代码块在非静态代码块之前执行...它不能使用任何外围类的非static成员变量和方法; 静态导包(用来导入类中的静态资源): 格式为:import static xxx,可以导入某个类中的指定静态资源,并且不需要显式使用类名来调用类中的静态成员和静态方法
一、关键字Static 我们从关键字static可以修饰哪些东西入手,逐一的剖析static的使用和要注意的地方。...变量和实例变量的区别: i)static变量对于每个类而言在内存中只有一个,能被类的所有实例所共享; 实例变量对于每个类的每个实例都有一份,它们之间互不影响; ii)Java虚拟机在加载类的过程中为...3)静态初始化块----在类加载时只执行一次 对静态变量进行初始化,当Java虚似机加载类时,就会执行该代码块;被static 所修饰的成员变量和成员方法表明归某个类所有,它不依赖于类的特定实例,被...String类就是final修饰的类,所有字符串是不能改变的,只能通过拼接创建新的 String对象,这样很浪费内存,所以又有了StringBuilder和StringBuffer;这两 个类后面再解释...三、思考final、finally和finalize的区别 后面出一篇关于这个的文章,敬请关注。
一、final 根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。...System.out.print(i); } } 二、static static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java...被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们。...2、静态方法 静态方法可以直接通过类名调用,任何的实例也都可以调用,因此静态方法中不能用this和super关键字,不能直接访问所属类的实例变量和实例方法(就是不带static的成员变量和成员成员方法...4、static和final一块用表示什么 static final用来修饰成员变量和成员方法,可简单理解为“全局常量”!
Java 中 final, static, this, super 关键字总结 1. final 关键字 final关键字主要用在三个地方:变量、方法、类。...使用final 方法的原因有两个: 把方法锁定,以防任何继承类修改它的含义; 效率。在早期的Java实现版本中,会将final方法转为内嵌调用。...被static 声明的成员变量属于静态成员变量,静态变量 存放在 Java 内存区域的方法区。...它不能使用任何外围类的非static成员变量和方法。...静态导包(用来导入类中的静态资源,1.5之后的新特性): 格式为:import static 这两个关键字连用可以指定导入某个类中的指定静态资源,并且不需要使用类名调用类中静态成员,可以直接使用类中静态成员变量和成员方法
想想之前学的知识都忘了好多就有点悲伤(⊙︿⊙) 这次复习的知识点是面向对象的关键字static,final,this,super,一些注意的点和知识点。 ...文章目录 常见关键字总结:static,final,this,superfinal 关键字static关键字修饰成员变量和成员方法(常用)静态代码块静态导包补充内容静态方法与非静态方法 static...使用final关键字的原因: 需要将方法锁定,防止任何类继承或者修改其含义;效率问题,在早起的Java版本中,会将关键字final修饰的方法转为内嵌使用,如果方法过于庞大,可能看不懂内嵌带来的效率性能提升...static关键字 static关键字主要有以下四种使用场景: **修饰成员变量和成员方法:**被static修饰的成员属于类,不属于这个单个类的单个对象,被类中的所有的对象所共享,可以通过类名调用...静态导包(用来导入类中的静态资源,1.5之后的新特性): 格式为:import static 这两个关键字连用可以指定导入某个类中的指定静态资源,并且不需要使用类名调用类中静态成员,可以直接使用类中静态成员变量和成员方法
final Java关键字final有“不可改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。你可能出于两种理解而需要阻止改变:设计或效率。...不可修饰:static方法中不能用this和super关键字。static不可修饰外部类、局部变量【static 属于类的,局部变量属于其方法,并不属于类】。...static修饰的代码块在JVM加载类时只会执行一次 final类不能被继承,没有子类,final类中的方法默认是final的 针对方法: static修饰的属性和方法属于类,可以用类名.静态属性 /...方法名 访问 static方法中不能用this和super关键字,普通方法可以但还是推荐使用类名访问静态方法和静态变量 static方法必须被实现,而不能是抽象的abstract final方法不能被子类覆盖重写...static final 代表static与final二者的共同体,static final和final static语法和用法上没有任何区别,一般习惯static写在前面。
Java当中static和非static变量的区别 static 修饰的变量称为类变量或全局变量或成员变量,在类被加载的时候成员变量即被初始化,与类关联,只要类存在,static变量就存在。...static修饰的变量在加载的时候先于main方法加载在内存中的数据共享区-------方法区,而非static的变量在加载的时候,是要创建变量才加载在堆内存中的。...在类中调用成员变量时直接调用或者以类名.变量名方式调用,实例变量则用this或者直接调用。 static方法和非static方法的区别 static修饰的方法也和static一样。...静态的static方法中不能使用this或者super关键字,因为static方法是先于对象创建之前就已经加载的方法,是属于类的方法,而this和super指向的是本类的对象或者父类的对象,非静态的方法是属于对象的...,方法里可以用this和super。
领取专属 10元无门槛券
手把手带您无忧上云