【面试题的归纳总结】面试题目的总结1

1.集合类的应用场景和优劣

单列collection集合

list集合

● ArrayList集合(基于数组,最常用):
希望元素可以重复,又有索引,索引查询快
● LinkedList集合(基于链表):
希望元素可重复,又有索引,增删首尾操作快

Set集合

● HashSet集合(基于哈希表):
希望增删改查快,但元素不重复、无序、无索引
● LinkedHashCode集合(基于哈希表和双链表)
希望增删改查快,但元素不重复、有序、无索引
● TreeSet集合(基于红黑树,后续可用List集合实现排序)
要对对象排序

双列map集合

map集合

● HashMap(最常用)
元素按照键是无序、不重复、无索引,值不做要求
● LinkedHashMap
元素按照键是有序,不重复,无索引,值不作要求
● TreeMap
元素按照键是排序,不重复,无索引,值不做要求

2.集合类的继承结构

在这里插入图片描述

3.arraylist和linkedlist的区别

List 接口的两种不同实现,并且两者都不是线程安全的

ArrayList在初始化的时候,有初始大小10,插入新元素的时候,会判断是否需要扩容,扩容的步长是0.5倍原容量,扩容方式是利用数组的复制,因此有一定的开销

● ArrayList集合(基于数组,最常用):
希望元素可以重复,又有索引,索引查询快
● LinkedList集合(基于链表):
希望元素可重复,又有索引,增删首尾操作快
在这里插入图片描述

4.map集合的原理

jdk7前:数组+链表

jdk8:数组+链表+哈希表

5.hashmap原理

数组+链表+哈希表

6.list和set区别

在这里插入图片描述

7.list和map的区别

8.HashSet和HashMap区别

hashSet的底层数据结构:hashTable;数组+链表+红黑树

底层都是hash表结构,hashSet底层就是hashmap;
HashSet

9.java和c的区别

在这里插入图片描述

10.java三大特性

● 封装
● 继承
● 多态

11.接口和抽象类的区别

相同点:接口和抽象类都不能被实例化
不同点:抽象类中可以有抽象的方法,也可以没有,可以定义属性;接口中的方法都是抽象的,并且接口中的变量都是静态的常量
在这里插入图片描述

12.字符串有哪些类

字符串的类String、StringBuilder、StringBuffer;工作中大部分是单线程

StringBuffer是线程安全的但执行速度较慢,StringBuilder线程不安全但执行速度快

StringBuilder >StringBuffer>String
在这里插入图片描述

13.线程安全

1.什么是线程安全问题

就是 多线程环境中 , 且存在数据共享 , 一个线程访问的共享 数据被其他线程修改了, 那么就发生了线程安全问题 , 整个访问过程中 , 无一共享的数据被其他线程修改了 就是线程安全的
程序中如果使用成员变量, 且对成员变量进行数据修改 , 就存在数据共享问题, 也就是线程安全问题

线程安全的类

类里所有方法都是同步方法(但构造方法不加同步锁synchroned),eg:StringBuffer

14.多线程的几种实现方法

run():普通方法,调用单线程;start():启动新线程,进入就绪状态

● 实现runnable接口(工作常用)——>因接口多实现
● 继承thread类
● 实现callable接口(有返回值)

15.JDK与JRE的区别

JDK >JRE> JVM

JDK:包含JRE和开发者工具包,是java程序开发工具包(管开发)
JRE :java程序的运行时环境,包含JVM和运行时所需的核心类库(管运行)
JVM:java虚拟机
jdk包括jre——>jdk:开发者工具包;jre:java运行时环境——>javac:编译器;java:执行器

16.方法重载与重写的区别

重载:

一个类中定义多个相同名的方法

要求:

①方法名同,但形参列表(个数、类型、顺序)不同;

②与返回值类型、访问修饰符无关

重写:

子类对父类方法的覆盖
子类的某成员方法与父类的一模一样

要求

● 方法名同,形参同,返回值同;访问修饰符可同,或更宽泛
● 重写父类方法后,调用时优先执行子类重写后的方法

17. == 与equals区别

比较堆区地址;equals比较内容,但需要重写(6.16test)
● 默认比较堆区地址
默认实现为(this
obj),比较两个对象地址是否相同
● 重写后比较对象里具体的值
○ equals()方法覆盖步骤
■ 比较两个引用是否指向同一个对象
■ 判断obj是否为null
■ 判断两个引用指向的实际对象类型是否一致
■ 强制类型转换
■ 依次比较各个属性值是否相同

18.什么是io流

输出输入流、字节字符流(种类)、序列化流、打印流、转换流、缓冲流

19.get和post

默认使用get
在这里插入图片描述

请求转发与重定向的区别

在这里插入图片描述

JSP与Servlet的区别

在这里插入图片描述

session和cookie

共同点:都是完成一次会话内多次请求间数据共享的;
在这里插入图片描述

应用场景:

● 购物车:使用Cookie来存储
● 以登录用户的名称展示:使用Session来存储
● 记住我功能:使用Cookie来存储
● 验证码:使用session来存储

域对象的两种

区别在于生命周期的不同
session:默认保存一次会话的30min内;request:一次请求内有效

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值