java面试题第5期

项目用到redis redis过期数据删除的机制 删除的策略

使用redis存放用户token,一些不常变化的数据,比如某个用户的菜单权限信息等
redis数据过期删除机制:
定期删除:每隔指定时间就随机找出W(默认100个)个设置了过期时间的key,假设有N个key过期了,删除这些过期的key,如果 (N/M)*100% > P(默认值25%),就再次轮训删除,
直到过期key的百分比<=P(默认值25%),这里的W和P都是可以配置的

当新数据进入redis,redis空间不足,有以下删除策略:
针对带过期时间的数据:
volatile-lru:挑选最近最少使用的数据淘汰
volatile-lfu:挑选最近使用次数最少的数据淘汰
volatile-ttl:挑选将要过期的数据进行淘汰
volatile-random:任意选择数据进行淘汰
针对所有数据:
allkeys-lru:挑选最近最少使用的数据进行淘汰
allkeys-lfu:挑选最近使用次数最少的数据淘汰
allkeys-random:任意选择数据进行淘汰
no-enviction:禁止驱逐数据,会引发错误OOM

实际项目中用到了redis哪些数据结构 用list做了什么

用到了String,List,Set,Zset,Hash
String:用来存放用户token信息,每次用户登陆之后会存放token到redis,并且设置过期时间,每次接口访问会先访问redis查询请求携带的token是否存在与redis,
不存在时需要重新登陆
List:用来做一个简易的消息队列,或者文章详情中右侧最近文章列表,这种变动不大的数据
Set:不包含重复元素的无序集合,可以用来做类似微博的共同关注,或者可能认识的功能,他可以列出两个集合的交集,或者差集
Zset:带权重的不包含重复元素的集合,会自动根据权重进行排序,可以用来做网站浏览量排行榜的功能
Hash: 相比较于直接将整个数据存放到String,如果对象的某个字段修改了,需要整条数据进行修改,如果使用hash来,只需要修改指定的某个字段值就好了

一文搞懂redis

kafka 如何保证消费者不会重复消费数据

保证幂等性,每个消息给一个唯一的id,并且创建一个消息表,
生产者创建的消息,插入消息表时先查询,这个唯一id如果有记录,就说明消息已经发送了,不要重复发送,如果唯一id数据不存在,新增消息,标记消息状态为待处理,
消费者,消息处理时,根据唯一id查询数据,如果数据状态为待处理,开始处理数据,最后将状态设置为已消费,如果状态为已消费,说明已经被别的线程消费了,不做别的处理

offset提交方式

自动提交,手动提交

kafka有没有什么确认机制保证消息一定写入kafka集群当中

spring.kafka.producer.acks:
配置为0时:只要消息通过网络发送出去就认为发送成功了,不管集群是否接收到消息
配置为1时:保证leader副本接收到消息,就认为是成功了
配置为-1时:保证所有副本都接收到了消息,才认为是成功了(等待的时间长一些,但是可以确保消息在leader和flower副本中都存在)

哈希表的作用 哈希表使用的数据结构 哈希内部解决哈希冲突的方式有哪几种

哈希表使用较低的时间复杂度,获取数据
使用的数据结构是:数组+链表+红黑树

解决hash冲突的方式:链地址法,再哈希

多线程环境下为什么要引入同步的机制

因为多线程下,如果不使用同步机制,对于同一个资源变量,会被拷贝副本到自己的线程,对于这一个资源变量的修改,对其他线程不可见,可能会出现数据丢失的情况

java内部有哪些同步的机制 回答 synchronized 和 ReentrantLock 问 这两种锁有哪些区别

针对某个变量可以使用volatile关键字保证可见性
synchronized:是java的关键字,是jvm层面的实现,非公平锁
ReentrantLock:使用AQS,是java代码层面的实现,可以实现公平锁和非公平锁

多线程什么场景下会发生死锁

例如有两个事务,事务A操作数据的顺序是12,事务B操作数据的顺序是21
这时候,假设事务A操作了数据1,事务B操作了数据2,
下一步事务A需要操作数据2了,但是数据2被事务2修改了,被锁住,那么事务A就需要进行等待,同时,事务B需要操作数据1了,但是数据1被事务A修改了,
数据1被锁住了,则事务B也需要等待,这样两个事务两个线程互相等待对方,结果就出现了死锁

解决方法:保证线程对资源的访问顺序,例如在这个操作里面,就可以根据数据id排序一下

有什么具体的办法可以避免死锁

(1)保持加锁顺序:当多个线程都需要加相同的几个锁的时候(例如上述情况一的死锁),按照不同的顺序枷锁那么就可能导致死锁产生,所以我们如果能确保所有的线程都是按照相同的顺序获得锁,那么死锁就不会发生。

(2)获取锁添加时限:上述死锁代码情况二就是因为出现了获取锁失败无限等待的情况,如果我们在获取锁的时候进行限时等待,例如wait(1000)或者使用ReentrantLock的tryLock(1,TimeUntil.SECONDS)这样在指定时间内获取锁失败就不等待;

(3)进行死锁检测:我们可以通过一些手段检查代码并预防其出现死锁

Http的请求报文和响应报文各有哪几部分组成

请求报文包含3部分。
(1)请求行,包含请求方法、URI、HTTP版本信息。
(2)请求首部字段。
(3)请求内容实体。
响应报文包含3部分。
(1)状态行,包含HTTP版本、状态码、状态码的原因短语。
(2)响应首部字段。
(3)响应内容实体。

Http 协议和TCP协议的关系是什么

TCP协议是传输层协议,主要解决数据如何在网络中传输

HTTP是应用层协议,主要解决如何包装数据。

更多IT资料【IT桃园村】,电子书,面试手册,八股文

image
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 221,576评论 6 515
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,515评论 3 399
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 168,017评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,626评论 1 296
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,625评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,255评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,825评论 3 421
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,729评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,271评论 1 320
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,363评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,498评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,183评论 5 350
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,867评论 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,338评论 0 24
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,458评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,906评论 3 376
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,507评论 2 359

推荐阅读更多精彩内容