博客
关于我
正值找工作的好时光,来看看这份精心准备的面试总结吧
阅读量:128 次
发布时间:2019-02-26

本文共 1428 字,大约阅读时间需要 4 分钟。

Java 面试总结

1. 计算机基础

TCP/IP

TCP/IP 是一对协议,分别负责数据的可靠传输和无连接性。TCP 层通过三次握手建立连接,确保数据可靠传输,而 IP 层负责数据的路由和分发。

HTTPS

HTTPS 是基于 SSL/TLS 的协议,采用了以下加密方式:

  • 哈希算法:MD5、SHA
  • 对称加密:AES、DES
  • 非对称加密:RSA其握手过程包括:
  • 客户端发送协议版本和随机数。
  • 服务器确认加密方式并发送数字证书。
  • 客户端解密随机数并生成对话秘钥。
  • 2. 对象

    • 抽象类与接口:抽象类可以有实现方法,接口只能声明方法。
    • 内部类:包括静态类、成员类、局部类、匿名类。
    • 类关系:包括继承、实现、组合、聚合、依赖、关联。

    方法

    • 方法签名:包含方法名称和参数列表,是 JVM 的唯一标识。
    • 参数传递:基本类型和引用类型都采用值复制。
    • 静态代码块:只在类初始化时执行一次。
    • @Override:一大两小两同。
    • @Override 的限制:不能是静态、final、构造方法。

    重载

    @Overridepublic void method() {}@Overridepublic int compute() {}

    重载通过方法名和参数列表区分。

    3. 数据类型

    引用类型

    • 强引用:不会被回收,需手动释放。
    • 软引用:内存不足时会被回收。
    • 弱引用:无论内存是否足够都会被回收。
    • 虚引用:无法通过虚引用获取对象,仅用于跟踪回收。

    String

    • StringBuffer:线程安全,允许修改。
    • StringBuilder:非线程安全,性能更高。
    • String:不可变,常量池优化。

    4. 异常与日志

    异常分类

    • Error:严重问题,不可恢复。
    • Exception:非致命异常,分为 checked 和 unchecked。
    • UncheckedException:RuntimeException 及其子类。

    JVM

    • 字节码:通过 JVM 执行,JVM 提供跨平台支持。
    • 类加载过程:包括加载、链接、初始化、使用、卸载。
    • 内存布局:包括程序计数器、虚拟机栈、本地方法栈、堆、方法区。

    5. 数据结构与集合

    数据结构

    • 线性结构:数组、链表、队列、栈。
    • 树结构:二叉树、红黑树、平衡树。
    • 图结构:网格、图链、无向图。

    集合框架

    • List:ArrayList(数组实现,插入删除慢)、LinkedList(链表实现,插入删除快)。
    • Map:HashMap(哈希表)、TreeMap(有序 Map)。
    • Set:HashSet(哈希集合)、TreeSet(有序集合)。

    6. 并发与多线程

    线程安全

    • 互斥性:通过锁机制实现。
    • 不可见性:锁只能被持有线程访问。
    • 线程本地存储:ThreadLocal 提供线程私有变量。

    线程池

    • 线程管理:复用线程,控制最大并发数。
    • 任务队列:缓存策略和拒绝机制。

    ThreadLocal

    • 内存泄漏:由于 ThreadLocalMap 的弱引用机制,需谨慎使用。
    • 使用方法:通过 get、set、remove 方法管理线程变量。

    7. 其他

    Red-Black Tree

    • 定义:节点颜色交替,根节点黑色,叶节点黑色。
    • 性质:红节点的子节点黑色,路径黑色节点数相同。
    • 操作:旋转保证树高。

    ConcurrentHashMap

    • 分段锁:基于 Segment 实现。
    • 优化:将链表转换为红黑树,提升性能和效率。

    欢迎关注我的公众号,获取更多技术内容!

    转载地址:http://cuny.baihongyu.com/

    你可能感兴趣的文章
    NISP一级,NISP二级报考说明,零基础入门到精通,收藏这篇就够了
    查看>>
    NISP国家信息安全水平考试,收藏这一篇就够了
    查看>>
    NIS服务器的配置过程
    查看>>
    Nitrux 3.8 发布!性能全面提升,带来非凡体验
    查看>>
    NiuShop开源商城系统 SQL注入漏洞复现
    查看>>
    NI笔试——大数加法
    查看>>
    NLog 自定义字段 写入 oracle
    查看>>
    NLog类库使用探索——详解配置
    查看>>
    NLP 基于kashgari和BERT实现中文命名实体识别(NER)
    查看>>
    NLP 模型中的偏差和公平性检测
    查看>>
    Vue3.0 性能提升主要是通过哪几方面体现的?
    查看>>
    NLP 项目:维基百科文章爬虫和分类【01】 - 语料库阅读器
    查看>>
    NLP_什么是统计语言模型_条件概率的链式法则_n元统计语言模型_马尔科夫链_数据稀疏(出现了词库中没有的词)_统计语言模型的平滑策略---人工智能工作笔记0035
    查看>>
    NLP三大特征抽取器:CNN、RNN与Transformer全面解析
    查看>>
    NLP学习笔记:使用 Python 进行NLTK
    查看>>
    NLP度量指标BELU真的完美么?
    查看>>
    NLP的不同研究领域和最新发展的概述
    查看>>
    NLP的神经网络训练的新模式
    查看>>
    NLP采用Bert进行简单文本情感分类
    查看>>
    NLP问答系统:使用 Deepset SQUAD 和 SQuAD v2 度量评估
    查看>>