java面试题

1.==和equals的区别?
答:的基本类型:比较的是值是否相等,引用类型:比较的是引用是否相等。
equals本质上就是
,只不过String和Interger等重写了equals方法,把它变成了值比较。
2.如何将字符串反转?
使用String Builder或StringBuffer的reverse()方法。
3.final在java中有什么作用?
final修饰的类叫最终类,该类不能被继承。
final修改的方法不能被重写。
final修饰的变量叫常量,常量必须初始化,初始化之后,值就不能被修改。
4.java的基础类型?
一共8个,分别为:byte,int,char,double,boolean,short,long,float。
5.Arraylist和Linkedlist有什么区别?
区别:
1.arraylist是基于索引的数据接口,它的底层是数组。
linkedlist是以元素列表的形式存储它的数据。
2.相对于arraylist,linkedlist的插入,添加,删除操作速度更快,因为当元素被添加到集合任意位置的时候,不需要像数组那样重新计算大小或者更新索引。
6.java中io流分为几种?
按功能来分:输入流和输出流。
按类型来分:字节流和字符流。
字节流和字符流的区别:字节流按8位传输一字节为单位输入输出数据,字符流俺16位传输以字符为单位输入输出数据。
7.http和https的区别?
http协议的缺点
通信使用明文,内容可能被窃听(重要密码泄露)
不验证通信方身份,有可能遭遇伪装(跨站点请求伪造)
无法证明报文的完整性,有可能已遭篡改(运营商劫持)
用https能解决这些问题么?
https是在http协议基础上加入加密处理和认证机制以及完整性保护,即http+加密+认证+完整性保护=https
https并非应用层的一种新协议,只是http通信接口部分用ssl/tls协议代替而已。通常http直接和tcp通信,当使用ssl时则演变成先和ssl通信,再由ssl和tcp通信。
所谓https,其实就是身披ssl协议这层外壳的http
8.Redis的数据结构有哪些?为什么Redis那么快?
数据结构:
1.String 字符串类型
是redis中最基本的数据类型,一个key对应一个value。
String类型是二进制安全的,意思是 redis 的 string 可以包含任何数据。如数字,字符串,jpg图片或者序列化的对象。
使用:get 、 set 、 del 、 incr、 decr 等
2.Hash (哈希)
是一个Mapmap,指值本身又是一种键值对结构,如 value={{field1,value1},…fieldN,valueN}}
3.链表
List 说白了就是链表(redis 使用双端链表实现的 List),是有序的,value可以重复,可以通过下标取出对应的value值,左右两边都能进行插入和删除数据。
4.Set 集合
集合类型也是用来保存多个字符串的元素,但和列表不同的是集合中 1. 不允许有重复的元素,2.集合中的元素是无序的,不能通过索引下标获取元素,3.支持集合间的操作,可以取多个集合取交集、并集、差集。
5.zset 有序集合
有序集合和集合有着必然的联系,保留了集合不能有重复成员的特性,区别是,有序集合中的元素是可以排序的,它给每个元素设置一个分数,作为排序的依据。
(有序集合中的元素不可以重复,但是score 分数 可以重复,就和一个班里的同学学号不能重复,但考试成绩可以相同)。
Redis为什么那么快?
纯内存KV操作
内部是单程实现的(不需要创建/销毁线程,避免上下文切换,无并发资源竞争的问题)
异步非阻塞的I/O(多路复用)
9.线程和进程的区别?
并发性:不仅进程之间可以并发执行,同一个进程的多个线程之间也可并发执行。
拥有资源:进程是拥有资源的一个独立单位,线程不拥有系统资源,但可以访问隶属于进程的资源。
系统开销:多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。
线程和进程在使用上各有优缺点:线程执行开销小,但不利于资源的管理和保护;而进程正相反。同时,线程适合于在SMP机器上运行,而进程则可以跨机器迁移。
10.HashMap的数据结构和原理?
HashMap由数组和链表组合构成的一种数据结构。数组里面每个地方都存了Key-Value这样的实例,首先判断key是否为null,如果为nul,直接查找Entry[0],如果不是null,先计算key的hashcode,然后经过二次hash,得到Hash值,这里的Hash特征值是一个int值。通过hash值找到对应Entry数组的index,然后找到对应所在链表对Value进行插入、删除、查询等操作。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值