小米一面

小米一面
1、自我介绍
2、类加载时的参数
3、堆(new的对象一定在堆吗?这个问题不知道怎么回答,大佬说一下)
4、实现线程的方式,问线程池参数
5、项目,bababa
6、手写双重校验锁单例模式
7、session的作用域
8、给了一个sql题,写sql语句
然后完了。。是不是一面二面没有连着就是凉了#小米##面经##校招##Java工程师#
全部评论
不一定在堆上,两种情况,1.new一个引用类型的时候,如果常量池没有值,会在常量池中new这个对象,再在堆上new这个对象。2.通过逃逸分析后没有发生逃逸的对象会直接分配到栈里,从而缓解堆内存,发生逃逸指的是一个对象的指针被多个方法或者线程引用,比如方法中直接return一个对象。
点赞 回复 分享
发布于 2019-09-05 15:33
jvm栈上分配
点赞 回复 分享
发布于 2019-09-04 12:22
数组和对象在堆里。然后还有一个就是标量替换,就是如果你的代码的对象引用没有逃逸的情况下,会把对象(聚量)转换成标量(栈桢里的变量)因此堆里面就没有这个对象。
点赞 回复 分享
发布于 2019-09-04 13:10
第三个已经不是一定了,可以看看逃逸分析,有在栈上的
点赞 回复 分享
发布于 2019-09-04 12:28
new的话可以看一下malloc实现啊 过大的话会调用mmap() new的区域会在自由存储区(抽象概念)
点赞 回复 分享
发布于 2019-09-05 15:30
不过类加载时的参数是什么啊
点赞 回复 分享
发布于 2019-09-04 18:33
我是一面完后十多分钟打电话通知二面的
点赞 回复 分享
发布于 2019-09-04 18:33
逃逸分析,会在栈中分配
点赞 回复 分享
发布于 2019-09-04 16:46
逃逸分析,有的时候会直接在栈里面
点赞 回复 分享
发布于 2019-09-04 16:42
string对象在常量池
点赞 回复 分享
发布于 2019-09-04 12:47
没有逃逸的话可以放到栈中分配,这样对象的生命周期就和栈帧一致,可以减少GC压力。
点赞 回复 分享
发布于 2019-09-04 12:28
不一定可以new到全局里
点赞 回复 分享
发布于 2019-09-04 12:20
类加载时的参数指的是啥?
点赞 回复 分享
发布于 2019-09-04 12:19
C++new的话不一定在堆,可以自己配置,在其他地方也可以(但我没配置过
点赞 回复 分享
发布于 2019-09-04 12:17

相关推荐

迷茫的大四🐶:能不能好好排个版,谁会看这么长的简历啊,说明书吗
校招求职吐槽
点赞 评论 收藏
分享
评论
1
38
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务