书记我去看了我多年的情人人看上新员新员工的工资卡丢直接找书记

互联网面试题更新了!随便呈上幾道看看大家能否答出来:

(0)redis为什么是key,value的为什么不是支持SQL的?

(1)redis是多线程还是单线程(回答单线程的请回吧,为什么请回請往下看)

(2)redis的持久化开启了RDB和AOF下重启服务是如何加载的?(10个人9个回答错误)

(3)redis如果做集群该如何规划AKF/CAP如何实现和设计?

(4)10万用户┅年365天的登录情况如何用redis存储并快速检索任意时间窗内的活跃用户?

(5)redis的5种Value类型你用过几种能举例吗?

(6)100万并发4G数据10万并发400G数據,如何设计Redis存储方式

有几道题果真有难度啊?

不要小看一个redis

不要小看一个redis

      你能在互联网搜索到的很多文章都讲错了面试会有很多坑。

不要小看一个redis

不要小看一个redis

      它让你看到这里是的,马士兵教育准备的一套【直播】课《redis终极训练营》

只需2分钱参与,很多内容是全網首发现场与老师互动答疑。

马士兵教育是由马士兵老师创办

他99年清华毕业,从程序员干到CTO一直致力于推动Java、大数据、AI生根中国,其一套java基础广受欢迎有千万次播放学习。

课程价格:原价299本号粉丝仅需0.02元。

2分钱买不了吃亏买不了上当。

遇到扫码频繁请再次识別哦

(内容的价值取决于您的行动,千万莫做收藏家)

4、redis是多线程还是单线程

1、细节见真知:计算向数据移动、而非数据向计算移动

3、redis實现活跃用户/用户统计

5、redis实现排行榜/评论列表

6、redis实现推荐系统/抽奖/商品详情页

5、redis压力测试、调优点

训练营全程线上直播,只需2分钱还可鉯免费领取预习资料

扫码领预习资料仅限前200名

遇到扫码频繁,请在识别一次

(内容的价值取决于您的行动千万莫做收藏家)

除此之外,参加的小伙伴可获《JVM实战调优》书籍免费邮寄

(1)免费领预习资料;

(2)参与训练营,领马士兵老师最新【设计模式】

(3)参与尛游戏得《JVM实战调优》书籍;

(4)参与直播课程,免费抽大奖;

扫码领预习资料仅限前200名

遇到扫码频繁,请在识别一次

(内容的价值取决于您的行动千万莫做收藏家)

扫上方“二维码”,0.02元购课4个小时,值得!!!

}

今天补充昨天剩余的部分完成JVM嘚方法区,栈、堆

首先要说一下我为什么要写JVM的内容,因为前两天和朋友聊天的时候聊到了今年严峻的就业形势,然后回顾往昔朋友想起来他那时候面试的故事两年前朋友是从培训机构出身的程序猿,在他们本地的市区面试了将近100家的科技公司其中最令他印象深刻嘚是一个做商城项目的公司。

刚开始他接到通知就非常突然在周六下午让他周日去公司面试,然后说了地址就这样挂断电话了。周ㄖ面试的时候面试官刚开始就问多线程和JVM的问题,比如JVM体系结构方法区,栈、堆以及重要的GC问题。把朋友问的哑口无言一脸问号,洇为在我们的印象中这些知识点面试问的话也只是浅谈但是这个面试官一直纠缠JVM,而且问完这些就说不合适让回去所以朋友一脸懵逼嘚来一脸懵逼的去。说者无心听者有意我就得JVM还是应该重视起来,所以就向大家讲解一下JVM的相关问题

在上一篇中,我们已经了解了:

類加载器:负责加载*.class文件将字节码内容加载到内存中。其中类加载器的类型有如下:
执行引擎:负责解释命令提交给操作系统执行。
夲地接口:目的是为了融合不同的编程语言提供给Java所用但是企业中已经很少会用到了。
本地方法栈:将本地接口的方法在本地方法栈中登记在执行引擎执行的时候加载本地方法库
PC寄存器:是线程私有的,记录方法的执行顺序用以完成分支、循环、跳转、异常处理、线程恢复等基础功能。
那在这一篇中我们来聊一聊方法区、栈和堆

在JVM的架构图中,Java栈、本地方法栈、程序计数器都是线程私有的而方法區跟堆一样,是一个内存共享的区域他的主要作用就是存储每一个类的结构信息,例如运行时常量池(Runtime Constant Pool)、字段和方法数据、构造函数囷普通方法的字节码内容

再简单来说方法区就是一个类的模板,在上一篇我们已经说了ClassLoader将class文件加载完成之后会把类的字节码内容放到方法区中就像把Car.class文件通过类加载器加载后,会把car这个类的结构信息存放在方法区中当你要实例化的时候再通过这个模板去new出你想要的car1,car2car2,而你创建出来这些类对象是存放在堆(heap)中的

图一是方法区中存放的内容

方法区只是一个定义、一个规范。在不同的虚拟机里头实現是不一样的这里我们主要介绍的是JDK7和JDK8的实现方式

在JDK7中方法区的实现方式叫永久代,但是它存储的部分数据是存放在JVM的一块地方的这會造成一个问题:

当类加载太多了,可能会导致内存栈溢出:java.lang.OutOfMemoryError: PermGen这样一来就不够灵活,为了提高灵活性(这只是其中一个原因)就有了元涳间

在JDK8中JVM的开发者就把永久代移除了,移至元空间中其实作用是差不多的,只是元空间不再使用JVM的内存了而是直接使用本地堆内存(native heap),说白了就是直接使用系统的内存这样就几乎不会发生内存溢出我去看了我多年的情人况,提高了灵活性

所以为什么在网上会看箌关于方法区很多不同的说法就是因为方法区的实现方式在不同的JVM中是不同,最典型的就是永久代和元空间

方法区:类似一个模板,存儲一个类的结构信息

永久代:使用JVM的内存。

元空间:使用系统内存

以上就是方法区的介绍,在介绍堆的时候还会提及

栈是一个线程私有的,主要用来管理Java程序的运行是在线程创建的时候创建的,它的生命周期跟随这线程的结束而结束当线程结束了栈的内存也就释放了,对于栈来说不会存在垃圾回收问题,因为只要线程一结束该栈就结束了

栈就类似一个子弹夹,它的特点就是“后进先出先进後出”,在Java中需要实现很多方法而这些方法就是一个一个被压进栈中的,然后再依次调用在平常中,我们所说的Java中的方法在栈其实有┅个专有名词叫栈帧栈帧主要存放三类数据:

本地变量(Local Variables):输入参数和输出参数以及方法内的变量。
栈操作(Operand Stack):记录出栈、入栈的操作
栈帧数据(Frame Data):包括类文件、方法等等。

Java中的方法存放在栈中但是这些方法到底是怎么执行的呢?

接下来我们就用一个例子来说奣一下:

 
 
 

这样的输出结果相信已经在大家的预料之中,但是这些方法在栈中是怎么运行的呢废话不说,上图二
我们都知道main方法是一切程序的入口所以程序一执行碰到的是main方法,main方法就第一个入栈了所以他们的执行过程是这样的:

程序执行碰到第一个方法是main方法,main方法入栈
再遇到的下一个方法是method_two,将其放入栈
所以就形成了图二,当他运行的时候:

弹出method_two方法在我们图三中的箭头就是PC寄存器的作用,所以在执行method_two我们需要调用method_one方法。
弹出method_one下一步,我们看到图二有指针指向main方法
弹出main方法,全部出栈
这样就形成了类似一条执行链,依次执行了main方法

栈中的数据都是以栈帧(Stack Frame)的格式存在,栈帧是一个内存区块是一个数据集,是一个有关方法(Method)和运行期数据的数据集当一个方法A被调用时就产生了一个栈帧 F1,并被压入到栈中 A方法又调用了 B方法,于是产生栈帧 F2 也被压入栈 B方法又调用了 C方法,于是產生栈帧 F3 也被压入栈 执行完毕后,先弹出F3栈帧再弹出F2栈帧,再弹出F1栈帧…… 遵循“先进后出”和“后进先出”原则每个方法执行的哃时都会创建一个栈帧,用于存储局部变量表、操作数栈、动态链接、方法出口等信息每一个方法从调用直至执行完毕的过程,就对应著一个栈帧在虚拟机中入栈到出栈的过程栈的大小和具体JVM的实现有关,通常在256K~756K之间,与等于1Mb左右

本人本人整理收藏了20年多家公司面试知識点整理 共127页的PDF 免费分享给大家,想要资料的话点击或者私信我,暗号LXY 深入底层,剖析源码了解本质。 爱编程爱生活,爱分享!

講完了栈的内容现在我们来看一个大家在实际开发中会碰到的一个错误,请看下列代码:

 

上述是一个递归调用的例子现在来执行一下,看看会出现一个什么结果:
相信大家多多少少都会遇到过上述的错误栈溢出。原因如下:

由于我们的方法method_one一直在递归调用自己而且並没有停止的条件。所以method_one这个方法就会被一直压入栈中JVM中的内存又是有限的,上述我们也提到了Java中的栈是随着线程的生命周期结束而结束的不会存在垃圾回收机制,内存得不到释放而方法又不断的进栈最终内存不够造成栈溢出的现象。图三
以上就是本人对栈的理解朂后来到了重头戏堆(heap),那就下篇再进行介绍吧哈哈哈。

觉得作者写的不错的请大家点赞鼓励一下谢谢大家的观看

}

上个月我把工资卡丢了重新去銀行补办了一张,但是忘记将新卡号告诉公司结果公司将工资打到丢失那张卡上

昨儿去银行,银行说我丢失那张卡已经注销应该打不進去。但是公司这边还没有收到退款我想知道大概什么时候公司可以收到退款?
全部
  • 答:要告诉,虽然卡内的基本账户会在挂失补办中自動转移到新卡中但卡号是工行代发工资的纽带,必须告诉

  • 答:如果卡号一样就回落卡号不同的话你需要去你们财务部门进行工资卡的更噺

  • 答:可以补办的。 银行卡丢失补卡流程: 挂失银行卡需缴纳10元服务费: ① 可先进行电话口头挂失,保证账户资金安全; ② 随后到银荇营业厅填写挂失申请书...

  • 答:逾期了就会被催收,催收就是给你发短信打电话提醒你按时履约还钱,别把征信搞坏了当然你一直不還钱,他肯定就要一直给你打电话毕竟人家只想赚你一点利息,你连本金都...

  • 答:建议你可以做点黄金、白银的现货随时可以买卖,有晚盘方便白天非常忙没时间交易的个人投资者,保证金交易你可以去天风证券看看

  • 答:你只要第一次到银行办理投资理财的业务,留丅信息和手机号码以后有新的理财产品会通知你。你的理财产品到期账户有变动都会发短消息给你。

  • 答:中途如有漏存应在次月补齊,未补存者到期支取时按实存金额和实际存期,以支取日人民银行公告的活期利率计算利息

  • 1、白醋加水浸泡 水中的碳酸盐累积多了就變成了水垢堵塞花洒孔,对付碳酸盐的最好办法就是用酸去中和...

  • 第一:当金属的外表面发生腐蚀情况时,可以进行表面外膜的快速去除 第二:用于一些车辆家具用品的修整,...

  • 热力管道又称热力管网热力管道是指从一些供热中心向建筑传输热力的供热管道,它必须具囿强力的抗腐蚀、抗...

  • 1.金属光泽的冷调简约中带奢华,闪亮的高贵质感与质朴的纸质混搭,更增添空间墙面的层次感和立体感...

  • 1、质感強、空间感强 2、繁富典雅、高贵华丽,这是金属墙纸带给我们的体验不过,通常这种感受只有在酒...

  • 如果你要用到集成板千年舟无疑是恏的选择。千年舟集成板板芯表现优秀全部用质量优良大径的原木拼接,指...

  • 集成板是在实木的基础上再加工的来看看千年舟集成板,咜首先采用优质大径原木然后再制成小方材,在长度...

  • 当然可不过质量是关键,选生态板十大品牌的千年舟生态板就挺好的首先它稳萣性好,比较抗菌防霉也耐磨...

}

我要回帖

更多关于 你有没有情人 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信