面试

面试官问:你说说Redis的几个过期策略?

这一生的挚爱 提交于 2021-02-19 10:47:41
在使用redis时,一般会设置一个过期时间,当然也有不设置过期时间的,也就是永久不过期。当设置了过期时间,redis是如何判断是否过期,以及根据什么策略来进行删除的。 设置过期时间 expire key time(以秒为单位) 这是最常用的方式 setex(String key, int seconds, String value) 字符串独有的方式 除了字符串自己独有设置过期时间的方法外,其他方法都需要依靠expire方法来设置时间如果没有设置时间,那缓存就是永不过期如果设置了过期时间,之后又想让缓存永不过期,使用persist key 三种过期策略 定时删除 在设置key的过期时间的同时,为该key创建一个定时器,让定时器在key的过期时间来临时,对key进行删除 优点: 保证内存被尽快释放 缺点: 若过期key很多,删除这些key会占用很多的CPU时间,在CPU时间紧张的情况下,CPU不能把所有的时间用来做要紧的事儿,还需要去花时间删除这些key 定时器的创建耗时,若为每一个设置过期时间的key创建一个定时器(将会有大量的定时器产生),性能影响严重 懒汉式式删除 key过期的时候不删除,每次通过key获取值的时候去检查是否过期,若过期,则删除,返回null。 优点: 删除操作只发生在通过key取值的时候发生,而且只删除当前key,所以对CPU时间的占用是比较少的

「面试原题 + 图文详解 + 实例代码」二叉搜索树-双指针-贪心 面试题汇总

余生颓废 提交于 2021-02-19 05:51:36
本文将覆盖 「字符串处理」 + 「动态规划」 方面的面试算法题,文中我将给出: 面试中的题目 解题的思路 特定问题的技巧和注意事项 考察的知识点及其概念 详细的代码和解析 开始之前,我们先看下会有哪些重点案例: 为了方便大家跟进学习,我在 GitHub 建立了一个仓库 仓库地址: 超级干货!精心归纳 视频、归类、总结 ,各位路过的老铁支持一下!给个 Star ! <br> 现在就让我们开始吧! <br> 二叉搜索树 二叉搜索树(Binary Search Tree),它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉搜索树。 <br> <br> 验证二叉搜索树 给定一个二叉树,判断其是否是一个有效的二叉搜索树。 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。 示例 : 输入: 5 / \ 1 4 / \ 3 6 输出: false 解释: 输入为: [5,1,4,null,null,3,6]。 根节点的值为 5 ,但是其右子节点值为 4 。 解题思路 乍一看,这是一道很简单的题。只需要遍历整棵树,检查 node.right

工作10年后,再看String s = new String("xyz") 创建了几个对象?

半世苍凉 提交于 2021-02-19 02:57:15
点击上方蓝色“ 方志朋 ”,选择“设为星标” 回复“ 666 ”获取独家整理的学习资料! 转自:艾小仙 这个问题相信每个学习java的同学都不陌生,作为一个经典的面试题,到现在工作这么多年了我真是认为挺操蛋的一个问题,在网上到现在你仍然可以看见很多讨论这个问题的人,其中不乏工作很多年的人都有争论,我认为还是有必要来说一说这个问题的。 从方法区说起 常量池存在于方法区,而方法区在jdk1.7版本前后改变比较大,所以还是先来说说方法区的演变。 在jdk1.7版本之前,常量池存在于方法区,方法区是堆的一个逻辑部分,他有一个名字叫做 非堆 。 1.7版本把字符串常量池放到了堆中。 而在1.8以后,则是移除了永久代,方法区概念保留,方法区的实现改为了元空间,常量池还是在堆中。 为什么要说方法区的改变,只是为了文章接下来的内容不会由于JDK的版本而产生分歧,接下来内容都会以jdk1.8版本作为基础来讨论。 String s = new String("xyz"); 先来一段代码 public class Test { public static void main (String[] args) { String s = "xyz" ; } } 接着我们javac编译代码,然后用javap来反编译,执行javap -c Test 从结果来看,ldc命令 在常量池中创建了一个"xyz"的对象

工作10年后,再看String s = new String("xyz") 创建了几个对象?

梦想的初衷 提交于 2021-02-19 02:28:03
点击上方 " 程序员小乐 "关注, 星标或置顶一起成长 后台回复“ 大礼包 ”有惊喜礼包! 关注订阅号「 程序员小乐 」,收看更多精彩内容 每日英文 When a person cannot answer directly to ur question, probably the answer is too painful for you to know or too hard for them to admit. 如果一个人不正面回答你的问题,可能是说出来你难以接受,或者他们不愿意承认。 每日掏心话 一生中,最光辉的一天并非功成名就的那一天,而是从悲叹与绝望中产生对人生挑战与勇敢迈向意志的那一天。 来 自 :艾小仙 | 责编:乐乐 后端架构师(ID:study_tech) 第 1085 次推文 往日回顾: 2020 中国软件 100 强,腾讯第二、阿里第三,他第一! 正文 这个问题相信每个学习java的同学都不陌生,作为一个经典的面试题,到现在工作这么多年了我真是认为挺操蛋的一个问题,在网上到现在你仍然可以看见很多讨论这个问题的人,其中不乏工作很多年的人都有争论,我认为还是有必要来说一说这个问题的。 从方法区说起 常量池存在于方法区,而方法区在jdk1.7版本前后改变比较大,所以还是先来说说方法区的演变。 在jdk1.7版本之前,常量池存在于方法区,方法区是堆的一个逻辑部分

Android面试题集:以前烂大街的四大组件-Activity,面试重提这些知识点你还记得吗?

风流意气都作罢 提交于 2021-02-18 23:15:16
前言 虽然有很多面试的文章里都有这些题目,但是我每次在看的时候,总是会觉得有些分散,复习的时候还要重新去找到对应的文章,所以我就想着自己来整理一下,并且把题目给分一下类型;自己整理可以帮助我复习的同时还可以巩固一遍;这次主要是4大组件相关,后续我会继续整理,觉得有帮助的可以点个赞。 接下来是关于Activity的面试题了: 描述一下Activity 生命周期? onCreate() Activity第-次被创建的时候调用,一些初始化操作可以在这里完成。 onStart() 这个方法在Activity 由不可见变为可见的时候调用。 onResume() 这个方法在Activity 准备好和用户进行交互的时候调用。此时的Acivity一定位于返回栈的栈顶,并且处于运行状态。 onPause() 这个方法在系统准备去启动或者恢复另-个Activity的时候调用。 onStop() 这个方法在Activity 完全不可见的时候调用。它和onPause()方法的主要区别在于,如果启动的新Activity 是一个对话框式的Activity,那么onPause()方法会得到执行,而onStop()方法并不会执行。 onDestroy() 这个方法在Activity被销毁之前调用,之后Activity的状态将变为销毁状态。 onRestart

C# 面试常见问题

寵の児 提交于 2021-02-18 18:32:01
Q:接口与抽象类的区别(所有公司都问,关键是我基本上都说不全,翻了个最简单好记的答案共享) 按三点答:先答属性:抽象类可以有普通成员变量,接口不行; 然后答方法:抽象类有非抽象的方法和构造方法,并且修饰符可以是私有的,接口只能是抽象的方法,并且修饰符是public,最后说一句只能继承一个抽象类,但能实现多个接口。 Q:ADO.NET的特点,几个对象都是用来干啥的 Q:asp.net页面传值有哪些方式 Q:转发和重定向有什么不同 Q:IIS6和IIS7是怎么工作的?他们有什么不同 Q: 存储过程有什么优势 A: 存储过程是放在数据库服务器上的,最直观的就是在执行sql的时候不需要网络传输sql语句只要传输 需要执行的数据就好.存储过程是预编译的普通sql执行需到数据库中进行检查sql是否正确然后再进行编译,执行效率比普通sql高。 Q:union union all的区别 A: union 把两个表之间的数据放到一起并进行排序,去重复.union all 把两个表的数据放到一起不排序不去重。 Q:数据库删除数据有哪些方法?使用哪些命令,都有哪些效果? A:可以通过DROP TRUNCATE 以及DELETE进行数据的删除,DROP 可以删除数据库和表(整个结构),TRUNCATE在不带条件时与DELETE类似 二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE

赠书|我是培训机构出身的程序员,不敢告诉任何人

五迷三道 提交于 2021-02-18 18:06:47
我之前也写过关于培训的文章,其实对于培训,我的看法是在慢慢改变的,现在的我一直觉得,培训真的是一条路,但是有一点,培训出身,有的时候真的会被有色眼镜看待,推荐一篇相关的文章给大家! 文末赠书! 作者丨褚杏娟 培训机构出身程序员和科班程序员之间,有鄙视链吗? 1“谁都看不上培训机构的” “我是培训 + 外包出来的,确实有被甲方嫌弃过。”2016 年从电子信息专业毕业的小右说起这个话题有些落寞。 公务员考试失利的小右在大四上学期开始找工作,但因为学习成绩一般,工作找得并不顺利。这个情况持续一段时间后,小右决定去参加某培训机构的 Java 培训。“电子信息专业虽说属于计算机范畴,但其实和编程还不一样的,我也是没办法。”小右很无奈。 培训机构的课程对有一定 C、C++ 基础的小右来说还算比较轻松。他所在的那家培训机构的上课内容就是老师带着做做项目,教的代码在后面工作中可以复用。几个月后小右从培训机构毕业,第一份工作是北京当地蛮著名的一个外包机构,薪资 5K。 与同批毕业找到不错工作的同学们比,小右还是感到些许心酸。“上课的学费,我是走的贷款。和培训机构签过协议,毕业就可以找到工作。找不到,损失由培训机构承担;找得到,机构每个月要从我的薪资里面抽一部分还学费。“北京的生活成本本来就高,加上机构的抽成,对于刚毕业的小右来说,无疑压力很大。 在这家外包公司呆了一年后,小右跳槽了—

我是培训机构出身的程序员,不敢告诉任何人

|▌冷眼眸甩不掉的悲伤 提交于 2021-02-18 17:50:37
点击上方 SQL数据库开发 ,关注获取 SQL视频教程 SQL专栏 SQL数据库基础知识汇总 SQL数据库高级知识汇总 来源 | InfoQ 作者丨褚杏娟 培训机构出身程序员和科班程序员之间,有鄙视链吗? 1 “谁都看不上培训机构的” “我是培训 + 外包出来的,确实有被甲方嫌弃过。”2016 年从电子信息专业毕业的小右说起这个话题有些落寞。 公务员考试失利的小右在大四上学期开始找工作,但因为学习成绩一般,工作找得并不顺利。这个情况持续一段时间后,小右决定去参加某培训机构的 Java 培训。“电子信息专业虽说属于计算机范畴,但其实和编程还不一样的,我也是没办法。”小右很无奈。 培训机构的课程对有一定 C、C++ 基础的小右来说还算比较轻松。他所在的那家培训机构的上课内容就是老师带着做做项目,教的代码在后面工作中可以复用。几个月后小右从培训机构毕业,第一份工作是北京当地蛮著名的一个外包机构,薪资 5K。 与同批毕业找到不错工作的同学们比,小右还是感到些许心酸。“上课的学费,我是走的贷款。和培训机构签过协议,毕业就可以找到工作。找不到,损失由培训机构承担;找得到,机构每个月要从我的薪资里面抽一部分还学费。“北京的生活成本本来就高,加上机构的抽成,对于刚毕业的小右来说,无疑压力很大。 在这家外包公司呆了一年后,小右跳槽了——仍旧是家外包公司。

lintCode第一题A+B问题

痞子三分冷 提交于 2021-02-18 17:26:27
http://www.lintcode.com/zh-cn/problem/a-b-problem/ 问题: 给出两个整数a和b, 求他们的和, 但不能使用 + 等数学运算符。 注意事项 你不需要从输入流读入数据, 只需要根据aplusb的两个参数a和b, 计算他们的和并返回就行。 您在真实的面试中是否遇到过这个题? 说明 a和b都是 32 位 整数么? 是的 我可以使用位运算符么? 当然可以 样例 如果 a = 1 并且 b = 2, 返回3 涉及知识点: javascript中的位操作符,参考资料 javascript高级程序设计 按位非(NOT) 按位操作的本质:操作数的负值减1。用~表示 按位与(AND) (&)表示。两个操作数先转为二进制,比较二进制中的每一位数,如果两个都是1,则返回1。其中任何一位是0,结果都是0 例如: var result = 25&3; 底层操作为:(最后8位) 25:0001 1001 3:0000 0011 &:0000 0001 返回 1 按位或(OR) (|)表示。两个操作数先转为二进制,比较二进制中的每一位数,如果有一个位是1的情况下返回1,而只有在两个位都是0的情况下才返回0 例如: var result = 25|3; 底层操作:(最后8位) 25: 0001 1001 3: 0000 0011 |: 0001 1011 返回27

2021新年最新分享:阿里Java岗5轮技术面经整理

北慕城南 提交于 2021-02-18 15:37:05
写在前面 又到了收割Offer的季节,你准备好了吗?曾经的我,横扫各个大厂的Offer。还是那句话:进大厂临时抱佛脚是肯定不行的,一 定要注重平时的总结和积累,多思考,多积累,多总结,多复盘,将工作经历真正转化为自己的工作经验。 面经分享 今天给大家分享一个面试大厂的完整面经,小伙伴们可以对照下,这些面试题自己是否都会了呢? 同时后面还整理了这些问题的一套面试解析文档及架构学习笔记资料,有需要的小伙伴 一轮技术面(90分钟) hashmap和hashtable区别 为什么会产生死锁 jvm类加载 java反射获取私有属性,改变值 反射用途 所用数据库 项目难点,问题 如何解决项目中遇到的问题 项目中遇到的最难解决的地方 二轮技术面(120分钟) 讲项目 数据库乐观锁使用 如何分库分表 MySQL极限 HashMap源码 设计一个线程安全的HashMap 快排的实现,时间复杂度和空间复杂度 会什么算法 如何把项目变成SOA架构 Spring源码,最深刻的模块,aop用途 JVM内存模型 垃圾回收机制 项目中查看垃圾回收 三轮技术面(150分钟) ConcurrentHashMap底层原理? 手写一个LRU(用LinkedHashMap) HashMap底层数据结构? JDK1.8中的HashMap为什么用红黑树不用普通的AVL树? 为什么在8的时候链表变成树?