欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JAVA基础面试题

程序员文章站 2022-07-12 12:36:43
...

/*
   * 栈(stack):主要保存基本类型(或者叫内置类型)(char、byte、short、
   *int、long、 float、double、boolean)和对象的引用,数据可以共享,速度仅次于
   * 寄存器(register),快于堆。堆(heap):用于存储对象。
   */
  
  /*
   * str1和str2会是true,因为他们就是同一个abc,在java中String str2 = "abc";
   * 会先在常量池中找,没有就创建常量池对象,所以str1=str2为true
   */

  String str1 = "abc";
  String str2 = "abc";
  System.out.println(str1 == str2);

 
 
     

   String str ="";//在常量池中创建常量池对象
  String strs = new String(); //堆中创建对象
  System.out.println(str == strs); //false

 

  
  // 1,String str= new String("abc");创建了几个对象
  String demoStr = new String("abc");

 
  大概是 由于"abc"已经被创建并保存于字符串池中,因此JAVA虚拟机只会在堆中新创建一个String对象,但是它的值(value)是共享前一行代码执行时在栈中创建的三个char型值值'a'、'b'和'c'

 

 

 

2, ---------------------------------接口可以继承接口;

 

接口DemoA;

public interface DemoA {
    int a= 10;
    public void add(int x,int y);
}

 接口DemoB继承DemoA

public interface DemoB extends DemoA{

	public void addDemo(int y);
}

 

类实现接口DemoB

public class DemoTest implements DemoB {
	// 实现接口DemoB需要重载接口DemoB的方法,接口DemoB继承的DemoA 
	//所以也实现了DemoA中的方法
	public static void main(String[] args) {

	}

	// 重写接口的方法
	@Override
	public void add(int x, int y) {
		// TODO Auto-generated method stub

	}

	@Override
	public void addDemo(int y) {
		// TODO Auto-generated method stub

	}

 

 

 

 3-------------- 抽象可以实现接口

抽象类实现接口不需要重写接口中的方法,抽象类中可以定义方法和具体方法,接口只能是定义方法

抽象类DemoAb实现DemoB,不需要重写DemoB接口中的方法

public abstract class DemoAb implements DemoB{
	
		 
}

 

 

4-------抽象类是否可以继承实体类