java吧 关注:1,246,506贴子:12,723,688
  • 7回复贴,共1

java常见面试题分享(文末有惊喜!不会真的有人不看吧)

取消只看楼主收藏回复

java常见面试题分享
(文末有惊喜!不会真的有人不看吧)


IP属地:山西来自iPhone客户端1楼2020-07-09 09:48回复
    一、static作用
    static可以修饰内部类、方法、变量、代码块。
    1、staic修饰的类是静态内部类,当声明一个事物是static时,就意味着这个域的方法不会与任何实例对象关联在一起,不用创建实例对象,就可以调用其static方法或者static域2、static修饰的方法是静态方法,属于当前类,不属于某个对象,不能被重写,可以直接用类名来调用,不能用super或者this关键字。好处:可以在不创建任何对象的前提下调用。
    3、修饰的变量是静态变量或者类变量,能够被所有的实例共享,在内存中只有一份,所有的实例对象的变量都指向它。4、修饰的代码块叫静态代码块,整个类加载的过程中只会执行一次。可以优化程序。


    IP属地:山西来自iPhone客户端2楼2020-07-09 09:49
    回复
      二、==和equals的区别
      1、==:比较的是变量(栈)内存中存放的对象的(堆)内存地址,用来判断两个对象的地址是否相同,即是否是指相同一个对象。比较的是真正意义上的指针操作。
      2、equals:比较两个对象的内容是否相等。


      IP属地:山西来自iPhone客户端3楼2020-07-09 09:49
      回复
        三、List集合的实现类有哪些?
        主要有LinkedList、ArrayList、Vector。
        1、ArrayList:底层依赖数组,查询效率高,做插入、删除效率低,线程不安全。
        2、LinkedList:底层采用双向循环链表,增删效率高,查询效率低,线程不安全。
        3、Vector:底层依赖数组,查询效率高(比ArrayList低,LinkedList高),增删效率低,线程安全。
        三者的元素都是有序,可重复,允许null值的。


        IP属地:山西来自iPhone客户端4楼2020-07-09 09:49
        回复
          四、泛型的作用?
          泛型的本质是参数化类型,所操作的数据类型作为一个参数,用在类、接口、方法的创建中。这些泛型类,泛型接口、泛型方法可以看作用指定类型作占位符,从而指定容器要持有什么类型的对象,而且由编译器来保证类型的正确性。这带来的好处:
          1、类型安全:编译器可以在编译时验证类型。不符合参数类型的不能编译通过。
          2、消除强制类型转换:消除源代码中的许多强制类型转换。增加了可读性。
          另外补充一点:泛型方法使得方法能够独立于类而产生变化。通过使用泛型方法取代将整个类泛型化。对于一个static方法,在需要给它泛型化时,我们肯定不能通过给类加泛型实现,因为该静态方法是无法访问泛型类的类型参数,只能在该static方法上加泛型。例如:


          IP属地:山西来自iPhone客户端5楼2020-07-09 09:50
          回复


            IP属地:山西来自iPhone客户端6楼2020-07-09 09:50
            回复
              五、String、StringBuffer、StringBuilder的区别:
              1、String对象是不可变的,具有只读特性,指向他的任何引用都不可能改变他的值。任何一个看起来会修改String值的方法,实际上都是创建了一个全新的String对象,线程安全。
              2、StringBuffer对象和StringBuilder对象是可变的,底层用字符数组保存字符变量,每次结果都会对对象本身进行操作,在改变对象引用(无新的对象生成)。
              3、后两者有区别,StringBuffer是线程安全的,加了同步锁。部分代码如下:处理数据比StringBuilder慢一点。
              4、StringBuilder是线程不安全的,底层没有加同步锁。
              由于以上的区别,对使用提出以下意见:
              1.如果要操作少量的数据用: String
              2.单线程操作字符串缓冲区 下操作大量数据 :StringBuilder
              3.多线程操作字符串缓冲区 下操作大量数据 : StringBuffer


              IP属地:山西来自iPhone客户端7楼2020-07-09 09:51
              回复
                我这边整理了免费的Java技术干货和一些面试资料
                零基础和架构方面的都有
                如果想免费领取这份资料,关注并私信我哦!
                (不会真的没人私聊我叭)


                IP属地:山西来自iPhone客户端8楼2020-07-09 09:51
                回复