前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JAVA经典面试题讨论---类加载,多线程

JAVA经典面试题讨论---类加载,多线程

作者头像
疯狂的KK
发布2019-08-16 15:14:10
5050
发布2019-08-16 15:14:10
举报
文章被收录于专栏:Java项目实战Java项目实战

群里的小伙伴一个个都特别优秀,一大早便发来了小问题让大家讨论,简单讨论之后,要知其然,知其所以然,趁机巩固下近期知识

一开始我首先想到的执行顺序就是“从父到子,静态先行”,但结尾声明了final关键字的Sting类型的常量;

正确输出结果:C

把 final去掉就是从父到子,静态先行了

输出结果:

然后大家就开始讨论原因,我的猜测是只调用了内存地址(错X)...

然后又开始了...

讲String类型变成了Integer,String是引用数据类型,Integer是包装类;

运行结果:

当改变类型后,执行从父到子,且静态方法可直接通过类名调用。

原因:使用final和static同时修饰一个field字段,并且这个字段是基本类型或者String类型的,调用这个字段类不会初始化

常量存在常量池中,本质上并没有引用该常量的类,因此不会对其进行初始化

###################分割线#######################

线程究竟有几种状态?http://mp.weixin.qq.com/s?__biz=Mzg2ODA3NjA1MA==&mid=2247483821&idx=1&sn=c4490e0f2a78d98dbcc98aaa089fb5f6&chksm=ceb09ed0f9c717c6274f909383b6ce3623d6ad3f731a822c83d9fc5dd59aafae6edd601fc05d#rd

CountDownLatch:线程执行完一系列操作才被唤醒 Down 相当--

Demo:

CyclicBarrier:循环到一定点才被阻塞 相当于++

Demo:

Semaphore:并发线程的控制

Demo

创建线程有几种方式?

1:继承Thread类,实现Runable接口

2:实现Callable接口,线程池中获得

创建线程池的方式?3种

实际上使用哪种?根据阿里巴巴开发手册并发处理中,要求

【强制】线程资源必须通过线程池提供,不允许在应用中自行显式创建线程

通过new ThreadPoolExecutor()创建...

-------see see easy do do hard

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 赵KK日常技术记录 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档