被什么关键字修饰类的关键字的方法,只许声明,不许实现

Microsoft OLE DB Provider for SQL Server 错误 ''
[DBNETLIB][ConnectionRead (recv()).]一般性网络错误。请检查网络文档。
/articleconn.asp,行 15java期末复习题_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
java期末复习题
&&JAVA考试复习考卷
阅读已结束,下载文档到电脑
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩3页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢一、default关键字
default关键字,并不是访问修饰符中的default(默认的访问权限,不加public、private、protected访问修饰符的情况自动使用,同一包下的类可以访问字段),而是Java8的新特性,default关键字是不能修饰字段的。
Java8以前的认知,Java的接口中的方法只能定义不能有方法体,方法体是由实现类去实现的。但是如果当我们要去扩展接口时,所有接口实现类都需要去实现这个方法,这在某些业务场景中会非常不方便。所以,Java8中引入了default方法,也叫作Defender方法。通过在方法前加上default关键字,使接口方法有了默认的实现。
带有一般方法与默认方法的接口:
public interface TestDefault {
public void normalMethod();
default public void defaultMethod(){
System.out.println(&Default method!&);
测试类,只实现了接口中的一般方法:
public class Main implements TestDefault{
public void normalMethod() {
System.out.println(&Normal method!&);
public static void main(String[] args){
Main main = new Main();
main.normalMethod();
main.defaultMethod();
}但是使用default方法有一个很关键的问题,在当一个类实现两个及以上接口时,存在两个同名的default方法时,这时调用会有冲突,编译器不知道要调用哪个default方法,这一点要注意!
二、native关键字
native关键字用来修饰方法,且此方法声明时不能有方法体。native表明这个方法是使用其他语言如C/C++实现的,并生成了.dll文件,JVM通过JNI技术与.dll交互完成native功能(Java也是通过JNI技术与底层操作系统交互的)。
通过native,可以使用Java不方便实现的东西,如高效的访问操作系统,用其他编程语言实现。
使用native时也有一点需要注意,native可以与其他Java标识符连用,但是不能与abstract连用,因为使用native方法时就说明它有其他语言的实现,而abstract却显式指明了方法是无实现体的。
更多的关于native与JNI知识可参看博客:http://blog.csdn.net/xw/article/details/6989415
三、transient关键字
transient是变量修饰符,只能修饰变量,被修饰的变量在对象持久化时,该值不会被保存。
说起transient就必须先说Java的serialization机制,这种机制提供了将Java的对象型数据存储到关系型或其他类型数据库或硬盘中(也就是持久化)。需要持久化的对象的类定义时需要实现Serializable接口。但是只实现Serializable接口会导致所有变量,有用的没用地都会被持久化,这样可能会影响效率与安全性,所以就需要transient控制。
四、const与goto关键字
呵呵,放松一下,只是Java的保留字,暂时没有用到哦。
五、strictfp关键字
strictfp 关键字表示精确浮点,可应用于类、接口或方法。使用 strictfp 关键字声明一个方法时,该方法中所有的float和double表达式都严格遵守FP-strict的限制,符合IEEE-754规范。当对一个类或接口使用 strictfp 关键字时,该类中的所有代码,包括嵌套类型中的初始设定值和代码,都将严格地进行计算。严格约束意味着所有表达式的结果都必须是 IEEE 754
算法对操作数预期的结果,以单精度和双精度格式表示。&
如果你想让你的浮点运算更加精确,而且不会因为不同的硬件平台所执行的结果不一致的话,可以用关键字strictfp。
六、volatile关键字
volatile关键字用来修饰类成员变量,这个变量每次被线程访问时都会强迫从共享内存中重读变量值,而且,当该变量值发生改变时,JVM会强迫线程将变化值写到共享内存中。通过volatile就保证了不同线程同一时刻总是看到的是同一个值,保证了并发数据安全。
需要特意用volatile实现这样功能的原因是,Java语言规范了:为了获得最佳速度,允许线程保存共享成员属性的私有拷贝,而且只有当线程进入或离开同步代码块时才与共享成员变量的原始值对比。
需要注意的是,volatile应使用在多个线程访问一个成员变量的情况,但当该变量已经在synchronized代码块中或者它是常量的情况就不需使用volatile了。volatile保证并发数据安全的同时需要付出效率的代价,所以一定要在需要时才使用这个关键字。
这个关键字其实并不容易忽视,只要你深入地学习Java,这个关键字无法绕开。要想用好volatile关键词,需要了解到计算机内存模型、Java内存模型、并发编程概念等知识,通过学习这个关键字可以学习到很多有意义有意思的知识,可以参看海子的博客,我非常非常喜欢他写的客,/dolphin0520/p/3920373.html
本文已收录于以下专栏:
相关文章推荐
结论:Pattern与Matcher一起合作.Matcher类提供了对正则表达式的分组支持,以及对正则表达式的多次匹配支持. 单独用Pattern只能使用Pattern.matcher(String
...
自Java2以来,Java语言增加了一个关键字strictfp,虽然这个关键字在大多数场合比较少用,但是还是有必要了解一下。strictfp的意思是FP-strict,也就是说精确浮点的意思。在Jav...
网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。
1.strictfp, 即 strict float point (精确浮点)。
  strictfp 关键字可应用于类、接口或方法。使用 strictfp 关键字声明一个方法时,该方法中所有的fl...
Java语言中关键字strictfp的用途
自Java2以来,Java语言增加了一个关键字strictfp,虽然这个关键字在大多数场合比较少用,但是还是有必要了解一下。
strictf...
一、default关键字
default关键字,并不是访问修饰符中的default(默认的访问权限,不加public、private、protected访问修饰符的情况自动使用,同一包下的类可以访问...
近日,应邀为国家电网供电公司的领导干部进行培训,讲座的题目是《细节决定成败,什么决定细节?》与其说是一次讲座,其实更是一种“竞标”,因为对于国网供电公司而言,他们是想通过“讲座比稿”来决定后面的国网班...
1:firefox不支持innerHTML属性
2:removeAttribute()是移除属性操作,比如要移除style中定义的某个属性(如height)可以写成obj.style.removeA...
收获要点:
做事要认真,既然花费了时间,那就要有效果!
做事要有效率,复杂简单化!化难为简。
思考问题要有条例!由宏观到围观,一步一步!
在程序员的世界里,细节对于一位程序员来说是至关重要的,稍微一个小的疏忽轻则会浪费大量的时间去定位;而对于一些应用在重要领域的设备上的软件而言,这种重要性更加不言而喻了,医疗,军事,这些方面的设备的故障...
今天我们linux操作系统就针对电脑中大家平时忽略的一些电脑部件所需注意事项作一个小总结。
        它怕潮气、灰尘、拉拽。现在大部分的键盘都采用塑料薄膜开关,即...
他的最新文章
讲师:董西成
讲师:唐宇迪
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)Java——static修饰符、final修饰符、abstract修饰符、接口
一、static修饰符
static修饰符可以修饰变量、方法或代码块
用static修饰的变量叫静态变量。
静态变量有如下注意事项:
类中的静态变量属于类,而不属于某个特定的对象。类的静态成员可以与类的名称一起使用,而无须创建类的对象。(可以直接通过类名来访问静态变量,建议使用类名来调用静态变量)静态变量或方法也称为类的变量或方法。不管创建了类的多少实例,整个类中静态变量的副本只有一个,声明为static的变量实质上就是全局变量。
类的静态方法只能访问其他的静态成员,不能访问非静态成员。静态方法中没有this关键字。静态方法不能被覆盖(重写)为静态方法。
静态代码块
静态代码块是由static和{}组成的代码片段
静态代码块使用时有如下注意事项:
如果需要通过计算来初始化静态变量,可以声明一个静态块。静态块仅在该类被加载时执行一次。只能初始化类的静态数据成员。
二、final修饰符
final修饰符可修饰类、方法和变量。final在修饰类、方法和变量时表示的意义是不同的,但本质是一样的,即final表示不可改变。
final修饰类
final修饰的类不能被子类继承。
final修饰方法时,有如下规定:
使用在方法声明中使用final关键字向编译器表明子类不能覆盖此方法。使用在声明类中,一个final方法只能被实现一次。使用如果一个类为final类,那么它的所有方法都为隐式的final方法。
final修饰变量
一个变量可以声明为final,这样的目的是阻止它的内容被修改。声明final变量后,变量只能被初始化一次,然后就不能对其值进行修改了,一个final变量实质上是一个常量。
三、abstract修饰符
abstract修饰符用来修饰类和方法,使用abstract修饰符有如下规则:
修饰的类即为抽象类,不能被实例化。构造方法和static方法不能是抽象的。父类的抽象方法往往在子类中实现,抽象类可以具有指向子类对象的对象引用。
抽象类中的方法既可以是具体方法也可以是抽象方法,但一个类中如果有抽象方法那么这个类一定是抽象类。
其实接口就是一套规范。
在Java中,使用interface关键字来定义接口,接口中的方法都只有声明,没有方法主体,也可以理解为接口中只能有抽象方法。接口就是用来被子类实现的,这样可以让不同的子类遵守相同的规范,但却又有自己的实现。
看过本文的人也看了:
我要留言技术领域:
取消收藏确定要取消收藏吗?
删除图谱提示你保存在该图谱下的知识内容也会被删除,建议你先将内容移到其他图谱中。你确定要删除知识图谱及其内容吗?
删除节点提示无法删除该知识节点,因该节点下仍保存有相关知识内容!
删除节点提示你确定要删除该知识节点吗?}

我要回帖

更多关于 实现接口的关键字 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信