首页 > 试题广场 >

关于Java以下描述正确的有( )

[单选题]
关于Java以下描述正确的有(      )
  • native关键字表名修饰的方法是由其它非Java语言编写的
  • 能够出现在import语句前的只有注释语句
  • 接口中定义的方法只能是public
  • 构造方法只能被修饰为public或者default
这题C选项感觉有点歧义
发表于 2019-10-12 09:05:55 回复(0)
更多回答
  1. A:native是由调用本地方法库(如操作系统底层函数),可以由C,C++实现,A正确
  2. B:import是用于导包语句,其前面可以出现package,用来声明包的,B错误
  3. C:接口方法的修饰符可以是:public,abstract,default,static(后两者需要有{}),C正确
  4. D:构造方法可以用private,protected,default,private,D错误
发表于 2019-06-01 22:52:56 回复(9)
C是错的。
接口是更抽象的东西,属性默认是:public static final的,方法默认是public abstract的!

题目中如果说可以使用static或者default修饰方法,jdk1.8后是没问题的,但是绝对不可以说默认是static的:

默认意味着去掉也正确,假如我在这里去掉static:

很明显有错,所以C100%不对!
发表于 2019-08-07 15:35:07 回复(19)
D选项  “只能”一词太狭隘
不同于普通方法,构造方法(器)不能是abstract, static, final, native, strictfp, 或者synchronized的。原因如下:

构造器不是通过继承得到的,所以没有必要把它声明为final的。
同理,一个抽象的构造器将永远不会被实现。(所以也不能声明为abstract的)
构造器总是关联一个对象而被调用,所以把它声明为static是没有意义的。
没有实际的需要把构造器定义成同步的,因为它将会在构造的时候锁住该对象,直到所有的构造器完成它们的工作,这个构造的过程对其它线程来说,通常是不可访问的。 (synchronized)
本地化的方法情况特别复杂,所以JVM调用起来非常麻烦,需要考虑很多种情况,没有native关键字的情况下,JVM实现起来比较容易。

发表于 2019-06-01 21:14:50 回复(2)
JDK7及以前:接口中只能定义全局常量和抽象方法 JDK8 规定接口中可以有默认方法和静态方法 JDK9及以后版本:接口中可以有私有方法
发表于 2020-10-10 09:04:27 回复(0)
C哪里对了,他说的是默认是,而不是可以是,默认当然就是public abstract,而且没有指定版本讨论这个问题是毫无意义的,现在的企业还是1.7和1.8并存的
编辑于 2019-08-06 12:20:30 回复(7)
JDK9以后,接口允许有私有方法
编辑于 2020-04-12 14:20:27 回复(0)
构造方法可以被public protected private 修饰,如使用private修饰构造方法实现单例模式
发表于 2019-11-22 09:52:42 回复(0)
看答案满头问号,一看爱奇艺就释然了
发表于 2019-11-14 21:35:17 回复(0)
C选项: jdk 8后新增了default修饰符。接口中,被default修饰的方法,可以不是必须要实现的。
发表于 2021-11-25 10:03:46 回复(0)
以前,接口里的方法要求全部是抽象方法,java8以后允许在接口里定义默认方法和类方法。不同的是:
默认方法可以通过实现接口的类实例化的对象来调用,而类方法就相对于工具方法了。
需要注意的是,此处的静态方法只能被public修饰(或者省略不写),不能是private或者protected的。
发表于 2019-06-10 15:22:58 回复(0)
D选项,单例模式需要构造器为私有的,才能实现单例模式
发表于 2022-05-07 14:48:28 回复(0)
接口中的内部类/内部接口/内部枚举默认采用public static修饰。
发表于 2019-11-19 18:58:42 回复(0)
A“表名”写错了,应该是“表明”吧。
发表于 2019-11-11 17:09:44 回复(0)
D答案很明显错误
构造方法可以用private修饰,如果构造方法用private修饰了就不能被继承,也就是没有子类。
发表于 2022-07-12 15:58:09 回复(1)
  1. :native是由调用本地方法库(如操作系统底层函数),可以由C,C++实现,A正确
  2. B:import是用于导包语句,其前面可以出现package,用来声明包的,B错误
  3. C:接口方法的修饰符可以是:public,abstract,default,static(后两者需要有{}),C正确
  4. D:构造方法可以用private,protected,default,D错误
发表于 2021-08-24 21:04:20 回复(0)
c选项,只能是public,我就当他是权限是public,这样不对。
发表于 2020-06-25 20:37:57 回复(0)
我觉得编写和实现还是有很大的区别。。
发表于 2020-04-20 10:48:00 回复(0)
接口中定义的属性默认都是public static final的
默认的方法是public abstract的。

c中接口只能是public,感觉没啥问题啊。难不成还能使proteced,private吗,默认就是public的呀
发表于 2022-08-23 19:49:38 回复(1)
C有一点歧义呀
发表于 2021-03-06 19:46:50 回复(1)
看评论好像c答案之前是 默认是public吗?
发表于 2020-03-02 18:40:38 回复(1)