大家说说Java的Runnable接口

问题描述

我是想说, 其run方法前面为啥要加个abstract?看源码时偶然注意到的: public interface Runnable {    public abstract void run();}

解决方案

这段代码在JDK 1.0时代已经是如此了。java.lang.Runnable的代码部分从JDK 1.0.2到JDK6都一直没有变过,只有注释里的说明有少量更新而已。已经能用就没人想去改了…吧。不过即便是当时的Java语言规范也是不鼓励这种写法的。Java语言规范第一版:9.4 抽象方法声明引用Every method declaration in the body of an interface is implicitly abstract, so its body is always represented by a semicolon, not a block. For compatibility with older versions of Java, it is permitted but discouraged, as a matter of style, to redundantly specify the abstract modifier for methods declared in interfaces.Every method declaration in the body of an interface is implicitly public. It is permitted, but strongly discouraged as a matter of style, to redundantly specify the public modifier for interface methods.
解决方案二:
好像我写时都不加的
解决方案三:
314220663 写道这种贴都可以上主页,现在JAVAEYE混的人,什么技术水平?难道都是些新手了。能不能上主页,不是由我们决定的。哈哈。是由网站的机制。你很高手吗?高手不都是一步一步成长起来的嘛。
解决方案四:
akunamotata 写道pianyao 写道我是想说, 其run方法前面为啥要加个abstract?看源码时偶然注意到的:
解决方案五:
该类是一接口(interface),其内的方法都是抽象(abstract)方法,abstract关键字可有可无!!
解决方案六:
接口就是特殊的抽象类,所以默认就是public abstract.
解决方案七:
骨之灵魂 写道djb_daydayup 写道li445970924 写道Checkmate 写道akunamotata 写道pianyao 写道我是想说, 其run方法前面为啥要加个abstract?看源码时偶然注意到的:
解决方案八:
mengdboy 写道dongya1987 写道接口中的方法默认是public abstract的,写不写都行+1+2012
解决方案:
stupid,语法都没懂
解决方案:
这种贴都可以上主页,现在JAVAEYE混的人,什么技术水平?难道都是些新手了。
解决方案:
djb_daydayup 写道li445970924 写道Checkmate 写道akunamotata 写道pianyao 写道我是想说, 其run方法前面为啥要加个abstract?看源码时偶然注意到的:
解决方案:
怎么简单就怎么写好了。
解决方案:
dongya1987 写道接口中的方法默认是public abstract的,写不写都行+1
解决方案:
不是默认就是public abstract
解决方案:
li445970924 写道Checkmate 写道akunamotata 写道pianyao 写道我是想说, 其run方法前面为啥要加个abstract?看源码时偶然注意到的:
解决方案:
就像接口中的变量,默认就是public static final.如public interface If { int ONE = 1; public static final int TWO = 2; //一致}
解决方案:
我认为这样的写法是为了减少编译器的预处理,你写这样一个接口public interface Runnable { void run();}编译,再将class文件反编译,你会发现它变成了这样public interface Runnable { public abstract void run();}
解决方案:
想起我曾经的主管要求接口里的方法签名要写public但不写abstract……个人喜欢两者都不写,简洁。
解决方案:
RednaxelaFX 写道这段代码在JDK 1.0时代已经是如此了。java.lang.Runnable的代码部分从JDK 1.0.2到JDK6都一直没有变过,只有注释里的说明有少量更新而已。已经能用就没人想去改了…吧。不过即便是当时的Java语言规范也是不鼓励这种写法的。Java语言规范第一版:9.4 抽象方法声明引用Every method declaration in the body of an interface is implicitly abstract, so its body is always represented by a semicolon, not a block. For compatibility with older versions of Java, it is permitted but discouraged, as a matter of style, to redundantly specify the abstract modifier for methods declared in interfaces.Every method declaration in the body of an interface is implicitly public. It is permitted, but strongly discouraged as a matter of style, to redundantly specify the public modifier for interface methods.+1
解决方案:
会被投新手贴么
解决方案:
写与不写都是一个意思interface的方法默认就是public abstract的字段默认就是public static final的
解决方案:
接口里面的方法天生就是public abstract声明的,这个不加,直接写 void xxx()也没问题的
解决方案:
Checkmate 写道akunamotata 写道pianyao 写道我是想说, 其run方法前面为啥要加个abstract?看源码时偶然注意到的:
解决方案:
akunamotata 写道pianyao 写道我是想说, 其run方法前面为啥要加个abstract?看源码时偶然注意到的:
解决方案:
dongya1987 写道接口中的方法默认是public abstract的,写不写都行+1
解决方案:
pianyao 写道我是想说, 其run方法前面为啥要加个abstract?看源码时偶然注意到的:
解决方案:
接口中的方法默认是public abstract的,写不写都行
解决方案:
求语法达人解释。。。我还真不明白这个意义。
解决方案:
pianyao 写道我是想说, 其run方法前面为啥要加个abstract?看源码时偶然注意到的:
解决方案:
加是为了醒目,如果不加是为了简便...

时间: 2024-10-06 11:50:52

大家说说Java的Runnable接口的相关文章

Java基础-23总结多线程,线程实现Runnable接口,线程名字获取和设置,线程控制,线程安全,同步线程

你需要的是什么,直接评论留言. 获取更多资源加微信公众号"Java帮帮" (是公众号,不是微信好友哦) 还有"Java帮帮"今日头条号,技术文章与新闻,每日更新,欢迎阅读 学习交流请加Java帮帮交流QQ群553841695 分享是一种美德,分享更快乐! 1:多线程(理解) (1)多线程:一个应用程序有多条执行路径 进程:正在执行的应用程序 线程:进程的执行单元,执行路径 单线程:一个应用程序只有一条执行路径 多线程:一个应用程序有多条执行路径 多进程的意义? 提高

Java 多线程的Thread类和Runnable接口

  Thread 类 Thread 类是一个具体的类,即不是抽象类,该类封装了线程的行为.要创建一个线程,程序员必须创建一个从 Thread 类导出的新类.程序员必须覆盖 Thread 的 run() 函数来完成有用的工作.用户并不直接调用此函数:而是必须调用 Thread 的 start() 函数,该函数再调用 run().下面的代码说明了它的用法: 创建两个新线程 import java.util.*; class TimePrinter extends Thread { int pause

java实现多线程的两种方式继承Thread类和实现Runnable接口的方法_java

实现方式和继承方式有什么区别呢? *区别: *继承Thread:线程代码存放在Thread子类run方法中 *实现Runnable:线程代码存放在接口的子类的run方法中 *实现方式的好处:避免了单继承的局限性 *在定义线程时,建议使用实现方式,当然如果一个类没有继承父类,那么也可以通过继承Thread类来实现多线程 *注意:Runnable接口没有抛出异常,那么实现它的类只能是try-catch不能throws *Java对多线程的安全问题提供了专业的解决方式就是同步代码块synchroniz

JAVA之旅(十二)——Thread,run和start的特点,线程运行状态,获取线程对象和名称,多线程实例演示,使用Runnable接口

JAVA之旅(十二)--Thread,run和start的特点,线程运行状态,获取线程对象和名称,多线程实例演示,使用Runnable接口 开始挑战一些难度了,线程和I/O方面的操作了,继续坚持 一.Thread 如何在自定义的代码中,自定义一个线程呢? 我们查看API文档,我们要启动一个线程,先实现一个子类, package com.lgl.hellojava; public class MyThread extends Thread { @Override public void run()

Java多线程初学者指南(3):使用Runnable接口创建线程

实现Runnable接口的类必须使用Thread类的实例才能创建线程.通过Runnable接口创建线程分为两步: 1.将实现Runnable接口的类实例化. 2.建立一个Thread对象,并将第一步实例化后的对象作为参数传入Thread类的构造方法. 最后通过Thread类的start方法建立线程. 下面的代码演示了如何使用Runnable接口来创建线程: package mythread; public class MyRunnable implements Runnable { public

java多线程编程之使用runnable接口创建线程_java

1.将实现Runnable接口的类实例化. 2.建立一个Thread对象,并将第一步实例化后的对象作为参数传入Thread类的构造方法. 最后通过Thread类的start方法建立线程.下面的代码演示了如何使用Runnable接口来创建线程: package mythread;public class MyRunnable implements Runnable{ public void run() {  System.out.println(Thread.currentThread().get

Java 继承Thread类和实现Runnable接口的区别

ava中线程的创建有两种方式: 1.  通过继承Thread类,重写Thread的run()方法,将线程运行的逻辑放在其中 2.  通过实现Runnable接口,实例化Thread类     在实际应用中,我们经常用到多线程,如车站的售票系统,车站的各个售票口相当于各个线程.当我们做这个系统的时候可能会想到两种方式来实现,继承Thread类或实现Runnable接口,现在看一下这两种方式实现的两种结果. public class TheadDemo extends Thread{ private

在JavaScript中调用Java类和接口的方法_javascript技巧

前言 本文中所有的代码使用 JavaScript 编写,但你也可以用其他兼容 JSR 223 的脚本语言.这些例子可作为脚本文件也可以在交互式 Shell 中一次运行一个语句的方式来运行.在 JavaScript 中访问对象的属性和方法的语法与 Java 语言相同. 本文包含如下几部分: 1.访问 Java 类 为了在 JavaScript 中访问原生类型或者引用 Java 类型,可以调用 Java.type() 函数,该函数根据传入的完整类名返回对应对象的类型.下面代码显示如何获取不同的对象类

java 抽象类与接口的定义

java  抽象类与接口的定义 Jvm : 抽象规范: 一个具体实现 一个运行的虚拟机实例 装载器: 启动类装载器,自定义装载器(继承 java.lang.ClassLoader ) 解析的内型信息放入方法区,对象放入堆,一个新线程,有自己 java 栈放中间数据, pc 计数器. 接口与抽象类深入 java 没有多重继承,意味一个类只能继承一个父类所以绝对必要的时候,才用继承 所以表示相同行为的方法都应该声明为一个接口的的形式,并使用不同的实现类对其进行实现. 缺点:每一个实现类都需要显示的实