码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 大数据_面试题_Java篇集锦


    大数据_面试题_Java篇集锦

    • Java基础语法
      • [面试题]:下面的区别是什么?
      • [面试题]&和&&的区别是什么?|和||的区别是什么?
    • 面向对象
      • [面试题]请简述final关键字
    • 常用类
      • [面试题] : equals和==的区别?(Object类)
      • [面试题] final、finally、finalize的区别(Object类)
      • [面试题] String s = "a" + "b" + "c" 创建了几个对象 ?(String类)
      • [面试题] String s = new String("abc") 创建了几个对象 ?(String类)
      • [面试题] String s1 = new String("hello");(String类)
      • [面试题] StringBuffer和StringBuilder的区别?(String类)
    • 集合
      • [面试题] ArrayList的底实现?(List接口实现类)
      • [面试题] ArrayList和LinkedList的区别?(List接口实现类)
      • [面试题] ArrayList和Vector的区别?(List接口实现类)
      • [面试题] ArrayList,LinkedList,Vector的区别?(List接口实现类)
      • [面试题]HashMap和Hashtable的区别?(List接口实现类)
      • [面试题] : Collection和Collections的区别?(List接口实现类)
      • [面试题]继承Thread和实现Runnable有什么区别?(多线程)
      • [面试题]sleep和wait的区别?(多线程)

    Java基础语法

    [面试题]:下面的区别是什么?

    short s = 3;
    //s = s + 3;//不可以因为short会自动类型提升为int
    s += 3;// 可以:不会改变原来的数据类型-底层做了强转的处理。

    [面试题]&和&&的区别是什么?|和||的区别是什么?

    	&和&&的区别是什么?
    	当运算符左边的结果为true时&和&&右边的式子都会执行。
    	当运算符左边的结果为false时(右边的值不能影响最终结果)
    		&右边的式子要执行
    		&&右边的式子不会执行
    		
    	|和||的区别是什么?
    	当运算符左边的结果为false时&和&&右边的式子都会执行。
    	当运算符左边的结果为true时(右边的值不能影响最终结果)
    		|右边的式子要执行
    		||右边的式子不会执行
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    面向对象

    [面试题]请简述final关键字

    final修饰类(最终的类)-太监类:该类不能被继承。(比如:String StringBuilder,....)
    final修饰方法(最终的方法):不能被重写
    final修饰的变量 :值不能被修改
    
    final修饰的属性:没有默认值要求必须赋值
        赋值的方式 :①显示赋值 ②代码块赋值 ③构造器赋值-
        一定要保证无论调用哪个构造器都可以给该变量赋值
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    常用类

    [面试题] : equals和==的区别?(Object类)

           == :
                如果运算符两边是基本数据类型比较的是具体的值
                如果运算符两边是引用数据类型比较的是地址值。
           equals :
                如果类中不重写equals方法那么调用的是Object中的equals方法那么比较的是地址值。
                如果类中重写了equals方法其本上都是比较内容(看重写方法中做了什么)。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    [面试题] final、finally、finalize的区别(Object类)

    final是一个修饰符可以修饰类,方法,变量。
    finally是try-catch-finally中的一个关键字。finally中的代码一定会执行。
    finalize :finalize是一个方法名,它是Object类中声明的一个方法,
    它是由GC垃圾回收器在回收垃圾对象之前用于释放该对象在JVM以外占用的内存和资源。
    (
    比如调用了native方法 native方法调用的是c程序。
    c程序用的不是JVM的内存GC无法对该内存区域进行管理
    再通过代码去清理JVM以外的内存(不清理就会导致内存泄露-该内存一直在被占用)
    )

    [面试题] String s = “a” + “b” + “c” 创建了几个对象 ?(String类)

    1个-字符串常量池

    [面试题] String s = new String(“abc”) 创建了几个对象 ?(String类)

                如果字符串常量池中没有abc 那么会创建2个对象 1个在字符串常量池 1个在堆中
                如果字符串常量池中已经存在abc 那么会创建1个对象在堆中
    
    • 1
    • 2

    [面试题] String s1 = new String(“hello”);(String类)

    			String s2 = s1.intern();
    
    • 1

    [面试题] StringBuffer和StringBuilder的区别?(String类)

    String:         不可变的字符序列   线程安全
    StringBuffer:   可变的字符序列     线程安全
    StringBuilder:  可变的字符序列     线程不安全
    补充效率方面:StringBuilder > StringBuffer > String
    
    • 1
    • 2
    • 3
    • 4

    结论:如果需要频繁进行字符串的拼接可以使用StringBuilder和StringBuffer

    集合

    [面试题] ArrayList的底实现?(List接口实现类)

        当我们通过ArrayList的空参构造器创建对象时底层会创建一个长度为0的Object[]。
        当我们第一次向该对象中添加元素时底层会扩容 扩容的长度为10(原来的长度是0).
        当我们向该对象中添加第11个元素时底层会再次扩容扩容为原来的1.5倍。
        并且将原来的数组中的元素copy到当前数组中。
    
    • 1
    • 2
    • 3
    • 4

    [面试题] ArrayList和LinkedList的区别?(List接口实现类)

        ArrayList底层是数组,LinkedList底层是双向链表
        ArrayList和LinkedList都不是线程安全的
    
    • 1
    • 2

    [面试题] ArrayList和Vector的区别?(List接口实现类)

        1.ArrayList和Vector底层都是Object[]
        2.ArrayList是线程不安全的,Vector是线程安全的。
        3.ArrayList空参构造器创建的是一个长度为0的数组,
        	Vector空参构造器创建的是一个长度为10的数组
            ArrayList扩容为原来的1.5倍。Vector默认扩容为原来的2倍(也可以指定扩容大小)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    [面试题] ArrayList,LinkedList,Vector的区别?(List接口实现类)

    1.ArrayList和Vector底层都是数组。LinkedList底层是双向链表
    2.ArrayList和LinkedList是线程不安全的。Vector是线程安全的。

    [面试题]HashMap和Hashtable的区别?(List接口实现类)

        1.HashMap是线程不安全的 Hashtable是线程安全的 (重要)
        2.HashMap和Hashtable底层都是Hash表
        3.HashMap的空参构造器中只给加载因子赋值0.75 
        	(第1次创建的数组长度为16-Node[] 阈值是12)
          Hashtable的空参构造器中创建了一个长度为11的Entry[]  加载因子0.75  阈值是8
        4.Hashtable中的key,value不能是null (重要)
          HashMap中的key,value可以是nulll
        5.HashMap扩容为原来的2倍。Hashtable扩容为原来的2倍+1
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    [面试题] : Collection和Collections的区别?(List接口实现类)

    Collections工具类 : 用来对集合做一些操作
    Collection是一个接口

    [面试题]继承Thread和实现Runnable有什么区别?(多线程)

        1.实现接口和继承类 - 实现接口更灵活因为可以多实现。
        2.线程安全
            同步代码块 :
                继承Thread : 锁不可以是this
                实现Runnable : 锁可以是this
            同步方法
                继承Thread : 同步方法要使用静态同步方法--锁是当前类的运行时类(类信息)
                实现Runnable : 同步方法不是静态的 - 锁是this
        3.共享数据
             继承Thread : 如果共享数据是在Thread子类中声明的该共享数据需要使用static修饰
             实现Runnable : 如果共享数据是在Runnable接口的实现类中声明的
             	共享数据不需要使用static修饰
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    [面试题]sleep和wait的区别?(多线程)

    (1)sleep()不释放锁,wait()释放锁
    (2)sleep(时间)指定休眠的时间,wait()/wait(时间)可以指定时间也可以无限等待直到notify或notifyAll
    (3)sleep()在Thread类中声明的静态方法,wait方法在Object类中声明

  • 相关阅读:
    ChatGPT AIGC 一键总结SQL优化所有知识点
    java每日一题:static与final的区别
    萌新的FPGA学习绪论-1
    【CV学习笔记】tensorrtx-yolov5 逐行代码解析
    LeetCode解法汇总2591. 将钱分给最多的儿童
    看我为了水作业速通 opengl freeglut!
    UDF提权(mysql)
    pytest
    【机器学习】树模型的三种序列化方式的区别(模型存储大小、序列化所用内存、序列化速度)
    【飞桨PaddleSpeech语音技术课程】— 语音合成
  • 原文地址:https://blog.csdn.net/Saniana/article/details/137887123
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号