写点什么

2021 年您应该知道的技术之一!Java 工程师一天工作多久

发布于: 2021 年 07 月 31 日

一、内存与线程

1、内存结构

内存是计算机的重要部件之一,它是外存与 CPU 进行沟通的桥梁,计算机中所有程序的运行都在内存中进行,内存性能的强弱影响计算机整体发挥的水平。JVM 的内存结构规定 Java 程序在执行时内存的申请、划分、使用、回收的管理策略,通说来说 JVM 的内存管理指运行时数据区这一大块的管理。


2、线程运行

JVM 中一个应用是可以有多个线程并行执行,线程被一对一映射为服务所在操作系统线程,调度在可用的 CPU 上执行,启动时会创建一个操作系统线程;当该线程终止时,这个操作系统线程也会被回收。



在虚拟机启动运行时,会创建多个线程,数据区中有的模块是线程共享的,有的是线程私有的:



线程共享:元数据区、堆 Heap;


线程私有:虚拟机栈、本地方法栈、程序计数器;


单个 CPU 在特定时刻只能执行一个线程,所以多线程通过几块空间的使用,然后不断的争抢 CPU 的执行时间段。

二、元数据空间

基本描述


方法元空间(方法区)在 JVM 启动的时候被创建,是被各个线程共享的内存空间,用于存放类和方法的元数据以及常量池,比如 Class 和 Method。


在实际的开发中,经常因为加载的类太多,进而导致内存溢出问题,这样可以对元空间的大小进行扩展。


与堆的关系



元空间存放加载的类信息,当类被实例化时,堆中存储实例化的对象信息,并且通过对象类型数据的指针找到类。

三、堆空间

基本描述


JVM 启动时创建堆区,是内存管理的核心区,通常情况下也是最大的内存空间,是被所有线程共享的,几乎所有的对象实例都要在堆中分配内存,所以这里也是垃圾回收的重点空间。


堆栈关系



栈是 JVM 运行时的单位,堆是存储单位,当栈中方法结束,相关对象失去所有引用后,不会马上被移除堆空间,要等到垃圾收集器运行的时候。

总结

机会是留给有准备的人,大家在求职之前应该要明确自己的态度,熟悉求职流程,做好充分的准备,把一些可预见的事情做好。


对于应届毕业生来说,校招更适合你们,因为绝大部分都不会有工作经验,企业也不会有工作经验的需求。同时,你也不需要伪造高大上的实战经验,以此让自己的简历能够脱颖而出,反倒会让面试官有所怀疑。


你在大学时期应该明确自己的发展方向,如果你在大一就确定你以后想成为 Java 工程师,那就不要花太多的时间去学习其他的技术语言,高数之类的,不如好好想着如何夯实 Java 基础。下图涵盖了应届生乃至转行过来的小白要学习的 Java 内容:


需要获取这份学习规划路线以及文章中提到的 Java 阿里内部 Java 应届生就业宝典的同学,请转发本文支持一下,关注我,点击此处免费获取




用户头像

还未添加个人签名 2021.07.29 加入

还未添加个人简介

评论

发布
暂无评论
2021年您应该知道的技术之一!Java工程师一天工作多久