java程序员面试题记录

java程序员面试题记录_第1张图片
image.png

java基础

    1. &与&&的区别
      都是逻辑运算符,都是判断两边同时为真则为真,否则为假。但是&&当第一个条件不成立之后,后面的条件就不再继续执行,而&还是会继续执行,知道整个的条件语句都执行完为止(&&具备短路功能,效率更高)
    1. 使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变?
      new一个对象的时候,会把对象存放在堆里。而每个对象都会分配到一个内存地址,而这个内存地址是不能改变的,而指向的对象的内容是可以改变的。


      java程序员面试题记录_第2张图片
      image.png
    1. 静态变量和实例变量的区别:
    • 在语法定义上的区别:静态变量前需要加static关键字修饰,而实例变量前不加
    • 在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个变量。
    • 静态变量不属于某个实例对象,而是属于类的,所以也称为类变量,只要程序加载了类的字节码,不用创建任何的实例对象,静态变量就会被分配空间,静态变量就可以使用了。
      总之:实例变量必须通过创建对象后才能才可以通过这个对象来使用,静态变量就可以直接通过类来使用。
      静态变量使用时,通过类名.名称 来使用。实例变量必须通过初始化后才能使用,实例变量是实例化后才会分配的空间,而静态变量是在类加载的时候会分配空间。
  • 4.是否可以从一个static方法内部发出对非static方法的调用
    答:不可以。因为非static是与对象关联在一起的,必须创建一个对象后,才可以在该对象上进行方法的调用,而static方法调用时不需要创建对象,可以直接调用。也就是说,当一个static方法被调用时,可能还没有创建任何的实例对象。如果从一个static方法内部中发出对非static方法的调用,这个非static方法是关联到那个对象上的呢?逻辑无法成立,所以从一个static方法内部发出对非static方法的调用是不可以的!
    总结:非static方法可以调用static方法,但是static方法不可以调用非static方法

  • 5.“==”与equals的区别
    答:“==”如果是判断值类型的话,是判断内容是否相同,如果判断引用类型的则是判断内存地址是否相同;equals 只判断值的内容是否相同

  • 6.integer与int的区别
    答:

你可能感兴趣的:(java程序员面试题记录)