【java基础】
Xzzzzzzzo
喵喵女程序媛
展开
-
java是否可以覆盖一个private或static的方法
“static”关键字表明一个成员变量或者是成员方法可以在没有所属的类的实例变量的情况下被访问。 Java中static方法不能被覆盖, 因为方法覆盖是基于运行时动态绑定的,而static方法是编译时静态绑定的。static方法跟类的任何实例都不相关,所以概念上不适用。 java中也不可以覆盖private的方法, 因为private修饰的变量和方法只能在当前类中使用,如果是其他的类继承当前类是不能访问到private变量或方法的,当然也不能覆盖。 ...原创 2022-01-28 12:54:53 · 1789 阅读 · 0 评论 -
java中字符串常量池、class文件常量池、运行时常量池的区别
Java有三种常量池,即字符串常量池、class文件常量池、运行时常量池。 1. 字符串常量池——特殊的常量池,存在于方法区(method are), 不是堆 字符串常量池在每个VM中只有一份,他在内存中的位置如图,红色箭头所指向的区域Interned Strings, 存在于方法区, 不是堆 抽象图 String str1 = “abc”; String str2 = “abc”; String str3 = “abc”; //new 一定会新建对象——且会有类...原创 2022-01-27 21:18:44 · 1057 阅读 · 1 评论 -
java是编译性语言还是解释性语言?
一、你可以说它是编译型的。因为所有的Java代码都是要编译的,.java不经过编译就什么用都没有。 二、你可以说它是解释型的。因为java代码编译后不能直接运行,它是解释运行在JVM上的,所以它是解释运行的,那也就算是解释的了。 三、但是,现在的JVM为了效率,都有一些JIT优化。它又会把.class的二进制代码编译为本地的代码直接运行,所以,又是编译的。 像C、C++ 他们经过一次编译之后直接可以编译成操作系统了解的类型,可以直接执行的 所以他们是编译型的语言。没有经过第二次的处理 而Java不一样他..原创 2022-01-27 18:16:21 · 349 阅读 · 0 评论 -
java中一个抽象类中可以定义构造器吗
既然抽象类并不能实例化,那抽象类中的构造函数存在的意义是什么? 抽象类必须被子类继承来实现。 子类在调用父类时 无论自己有没有构造方法都会先去执行父类无参的函数。哪怕父类是抽象类。虽然抽象类不能被实例化,但是可以在构造方法中初始化一些参数;也可以在子类中调用父类的构造方法。 ...原创 2022-01-23 14:50:00 · 811 阅读 · 0 评论 -
接口中解决默认方法冲突
如果先在一个接口中将一个方法定义为默认方法,然后又在超类或者另一个接口中定义了同样的方法,那么同时实现这两个接口的类或者既继承了超类又实现了接口的类就会发生冲突。但Java提供相应的规则: 1.超类优先。如果超类提供一个具体方法,同名而且有相同参数类型的默认方法会被忽略。 2.接口冲突。如果一个超接口提供了一个默认方法,另一个接口提供了一个同名而且参数类型相同的方法,就必须解决冲突。 例子 1.假设Person是一个类(有getName方法),Named是一个接口 interface Named..原创 2022-01-22 20:59:53 · 119 阅读 · 0 评论 -
在method方法被调用之后,仅打印出a=100,B=200,
public static void main(String[] args) { int a = 10; int b = 20; method(a, b); System.out.println("a="+a); System.out.println("b="+b); tes(); } //方法1 public static void method(int a,int b) ...原创 2022-01-22 13:29:19 · 331 阅读 · 0 评论