本文共 1719 字,大约阅读时间需要 5 分钟。
今年我也33了,离传说中不好找工作的35岁又更近了。说没有焦虑是对自己撒谎,于是我采访了一些人,自己思考了下,写下了这篇文章,希望能有些共鸣。
先看看大家的态度:
在职场中,关于年龄的看法各有不同。有人认为年龄大了会色老力衰,不好忽悠,不能带头加班;也有人说老油条了,学不动,加班就是磨洋工。但更多的人却认为,关键还是贡献的价值。能不能给业务带来价值?这似乎成为了衡量一个人是否值得留下的核心标准。
不知从何时起,很多企业将入职门槛限定在35岁以下,“35岁”已然成为职场老鸟的魔咒。近年来有关“程序员猝死”、“程序员跳楼”等新闻层出不穷,这股百般苦恼的邪气,已入侵到了程序员群体。每每看到这类信息,我的心情都无比沉重。大多数人在这个年龄所面临的困惑、承担的压力、肩上的重担,这个年龄的遭遇我都感同深受。
基本描述
JVM启动时创建堆区,是内存管理的核心区,通常情况下也是最大的内存空间,是被所有线程共享的,几乎所有的对象实例都要在堆中分配内存,所以这里也是垃圾回收的重点空间。
堆栈关系
栈是JVM运行时的单位,堆是存储单位。当栈中方法结束,相关对象失去所有引用后,不会马上被移除堆空间,要等到垃圾收集器运行的时候。
虚拟机栈(Java栈)在每个线程创建时都会生成一个虚拟机栈,栈的内部是一个个栈帧单元,对应Java方法的调用,其生命周期和线程周期保持一致。用来存储方法的局部遍历,部分执行结果,方法的调用和返回。
栈帧
栈帧是方法执行的数据集,维持执行过程中的各种数据信息,执行的方法依次入栈,栈顶存放当前要执行的方法,执行结束后出栈,对于栈没有垃圾回收问题。
基本描述
JVM中程序计数寄存器用来存储下一条将要执行指令的地址,执行引擎获取到指令后进行执行,是线程私有的。它可以看作是当前线程所执行的字节码的行号指示器。
前后关系
线程在获取CPU的时间段内执行代码,但是线程随时可能没有执行完就被挂起,等到线程A再次获取CPU执行时,CPU得知道执行到线程A的哪一个指令,程序计数器会存储该动作。
本地方法栈与虚拟机栈所起到的作用是类似的,虚拟机栈为虚拟机执行Java方法,本地方法栈管理虚拟机使用到的本地方法。在虚拟机规范中对本地方法栈中方法使用的语言、使用方式与数据结构并没有强制规定,因此具体的虚拟机可以自由实现它。HotSpot虚拟机直接就把本地方法栈和虚拟机栈合二为一。
这些面试全部出自大厂面试真题和面试合集当中,小编已经为大家整理完毕(PDF版)。这些面试资料涵盖了Java基础、中级、高级、开源框架、性能调优、分布式、微服务以及其他相关内容,完全免费分享给大家。
这些面试资料主要包括: - Java基础-中级-高级 - 开源框架(SSM:Spring+SpringMVC+MyBatis) - 性能调优(JVM+MySQL+Tomcat) - 分布式(限流:ZK+Nginx;缓存:Redis+MongoDB+Memcached;通讯:MQ+kafka) - 微服务(SpringBoot+SpringCloud+Dubbo) - 其他:并发编程+设计模式+数据结构与算法+网络
这些资料均经过精心整理,方便阅读和复习。如果需要可以直接下载查看,希望对大家有所帮助。
此外,我还整理了两本进阶学习笔记PDF,内容涵盖:
- 《Java架构进阶之架构筑基篇》(Java基础+并发编程+JVM+MySQL+Tomcat+网络+数据结构与算法) - 《Java架构进阶之开源框架篇》(设计模式+Spring+SpringMVC+MyBatis) - 《Java架构进阶之分布式架构篇》(限流(ZK/Nginx)+缓存(Redis/MongoDB/Memcached)+通讯(MQ/kafka)) - 《Java架构进阶之微服务架构篇》(RPC+SpringBoot+SpringCloud+Dubbo+K8s)这些学习笔记内容丰富,涵盖了从基础到高级的各个方面,非常适合需要系统学习技术的人阅读和复习。希望大家能从中受益。
转载地址:http://phhn.baihongyu.com/