首页
学习
活动
专区
工具
TVP
发布

我是攻城师

专栏作者
492
文章
963495
阅读量
119
订阅数
再谈方法调用与堆栈
堆内存是被多个线程共享的,而栈内存是线程私有的。堆主要用来存储运行时所有的对象数据和各种数组,简单点说通过new创建的实例,都会在堆上分配空间。堆在虚拟机启动时创建,并且堆具有自动垃圾回收的功能,在Java的世界里,程序员是没办法直接销毁你所创建的对象的,一切必须由GC垃圾回收器来完成,也就是你用完后的对象,并不是立即销毁的,而是在下一次gc发生时来完成回收的,堆的内存可以是固定的,也可以动态增长,并且不要求在内存里面是必须连续的,如果计算需要更多的内存,超过了当前有效的内存,那么就会抛出OutOfMemoryError异常。
我是攻城师
2018-12-14
5720
理解Java并发工具包线程池的设计
创建线程的流程依赖底层的操作系统,不同的操作系统可能不一样,此外更多的线程意味着 OS调度需要做更多的工作来决定哪一个线程可以访问资源,并且要通过OS调度切换维护线程的各种状态。
我是攻城师
2018-09-30
6930
给Java字节码加上”翅膀“的JIT编译器
上面文章在介绍Java的内存模型的时候,提到过由于编译器的优化会导致重排序的问题,其中一个比较重要的点地方就是关于JIT编译器的功能。JIT的英文单词是Just In Time翻译成中文就是及时,恰好的意思,意在说明JIT编译器优化java的class文件里面的byte code是拿捏的恰到好处。
我是攻城师
2018-07-23
8660
理解Java中的hashCode和equals方法
在Java里面所有的类都直接或者间接的继承了java.lang.Object类,Object类里面提供了11个方法,如下: 这里面我们常用的方法有三个: toString方法,相信用过Java的人都不会陌生,默认打印的是:类名@十六进制的hashCode,源码中定义如下: 在经过重写后,我们可以打印一个class的所有属性,这样在打印log或调试时比较方便。 下面重点介绍下hashCode和equals方法: (1)equals方法,在JDK默认的情况下比较的是对象的内存地址,源码如下: (2)hashc
我是攻城师
2018-05-14
1.5K5
Go将统治下一个十年?
  英文原文:Go Will Dominate the Next Decade   标题相当夸张是不是?   我本来打算用“规则”这个词的,但真的认为“统治”的描述更加准确。   只有一点就是,如题的观点是事实。   每一天我都跟许多人谈论到 Go。除了像 Google 或者 Github 这样的地方之外,在 Go 用户上我们可能已经有了世界上最大的数据集。我们也从各种渠道收集到很多有趣的生产环境运行时数据。外部数据中的一些主动策划从公共资源处获取到的,而其他部分则是自动从招聘网站、github 资源库、公
我是攻城师
2018-05-14
5190
没有更多了
社区活动
RAG七天入门训练营
鹅厂大牛手把手带你上手实战
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档