JAVA基础面试

本文主要涵盖JAVA基础知识,包括常用数据结构、Collection接口与类、Object类方法、关键字final和static、多线程共享变量、数据库对比以及关系型与非关系型数据库的特点。重点讲解了数组、栈、队列、链表、Map接口中的HashMap和HashTable,以及线程安全的ConcurrentHashMap。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

常用的数据结构

  1. 数组:固定长度、查找快、添加删除慢

  2. 栈:后进先出
  3. 队列:先进先出,适用于多线程阻塞队列管理
  4. 链表:可增减长度,查找遍历慢、添加删除快
  5. 散列表:实现一些集合
  6. 图:边和点


Collection接口和Collection类

Collection接口

List接口

  1. LinkedList:链表实现,插入删除快,查找慢

  2. ArrayList:数组实现,插入删除慢,查找快

  3. Vector:线程安全

  4. Stack

Set接口

  1. HashSet:去重

Map接口

  1. HashMap:非同步的
  2. HashTable:同步的
  3. ConcurrentHashMap:同步

Collections类

提供集合类的一些常用方法。

  1. sort:排序
  2. reverse:反转
  3. suffer:随机排序
  4. fill:替换集合中的元素
  5. copy:复制
  6. min/max:取最小最大值

Object类的基本方法

  1. toString:获取对象的信息
  2. equals:判断对象是否相等(需重写,否则判断的是对象的地址)
  3. hashCode:返回对象的物理地址,常与equals方法同时重写,确保对象相等
  4. getClass:返回运行时类
  5. clone:对象的副本
  6. finallize:对象垃圾回收时可能用到
  7. notify(),notifyAll(),wait():线程相关

final关键字

  1. 修饰类:不能被继承
  2. 修饰方法:不能被重写
  3. 修饰成员变量:必须赋值、如果是基本类型则不能被更改、如果是引用类型地址不能变,值可变

static关键字

修饰类/修饰方法/修饰变量/静态块,独立于该类的对象,类加载时会执行首先执行,只加载一次。


final static 连用

修饰的变量和方法是全局的,通过雷鸣直接访问


多线程共享变量

volatile:保证线程访问时拿到的变量都是最新的


mysql与oracle的区别

mysql:中小型、开源、分页使用limit

oracle:大型、收费、分页使用rownum


关系型数据库与非关系型数据库区别

关系型特点:

  1. 采用关系模型组织数据
  2. 事务一致性
  3. 二维表格

关系型优点:

  1. 容易理解
  2. 使用方便(sql)
  3. 易于维护(完整性)
  4. 支持sql,可用于复杂查询

关系型缺点:

  1. 读写性能差
  2. 固定表结构
  3. 高并发读写慢
  4. 海量高效读写慢

非关系型特点:

  1. 使用k-v存储
  2. 分布式
  3. 不支持原子性
  4. 数据结构化存储

优点:

  1. 读写性能高
  2. 基于k-v存储,易扩展

缺点:

  1. 不支持sql
  2. 无事务

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值