大萝卜小萝卜 level
获赞
1018
粉丝
130
关注
9
看过 TA
84
北京师范大学
2018
Java
IP属地:未知
暂未填写个人简介
私信
关注
2017-07-15 23:29
北京师范大学 Java
理由是什么???
一左一右:还是杭州吧,今天因为某些原因来到杭州,被这个城市迅速圈粉,环境是真的好。互联网的气息也很浓重。
0 点赞 评论 收藏
分享
2016-12-05 14:10
已编辑
北京师范大学 Java
0 点赞 评论 收藏
分享
2016-11-24 20:08
北京师范大学 Java
0 点赞 评论 收藏
分享
2016-11-07 09:57
已编辑
北京师范大学 Java
如果加载同一个类,该使用哪一个类?
卖单王子:是否是同一个类在jvm中要看加载器是否相同,只有加载器相同,类相同才认为是同一个类。双亲委托是交给父类加载,加载不了子类再加载,目的是防止破坏核心库里的类。
0 点赞 评论 收藏
分享
2016-11-03 18:12
已编辑
北京师范大学 Java
堆是由所有线程共享的,必须采取必要的同步,所以当使用new关键字在堆上分配对象时,不免影响效率。 那么有什么办法让对象如何不分配在堆而是栈上吗?
舞法天女:预先分配多个对象的空间,比方说你要栈上就用数组这样咯。然后重载new为你希望的行为。跟内存池一个概念吧。 另外头像是本人吗?是的话加我qq我给你细细道来。~。~
0 点赞 评论 收藏
分享
2016-11-01 19:23
北京师范大学 Java
1. 老年代中数组的访问方式 2. 数组多大放在JVM老年代 3.GC 有环怎么处理 这三部分谷歌也好像没有·······
牛客9182916号:1,数组访问方式和对象访问一样 2,至于多大放入老年代,有参数可以配置,正常是如果年轻化放不下,直到放老年代 3,一般的判断对象可回收有2种算法,一个引用计数算法,java是可达性分析算法,解决环的问题
投递谷歌等公司10个岗位 >
0 点赞 评论 收藏
分享
2016-10-12 20:39
北京师范大学 Java
0 点赞 评论 收藏
分享
2016-09-20 10:13
北京师范大学 Java
看了博客觉的还是抽象,不知道从哪里答起.......
torreszhu:1、接收到任务 2、判断已存在线程数是否大于等于核心线程数,如果不是,则创建新线程执行任务;否则转3 3、判断任务队列是否有界,如果不是,将任务加入队列中;否则转4 4、判断任务队列是否已满,如果不是,将任务加入队列中;否则转5 5、判断已存在线程数是否等于最大线程数,如果不是,则创建新线程执行任务;否则转6 6、拒绝该任务 按照上面的画一个流程图就明白了
0 点赞 评论 收藏
分享
2016-09-17 18:21
已编辑
北京师范大学 Java
请问怎么回答
lixiaolx:The code would only execute when someXThread was executing, in which case telling someYThread to yield would be pointless. So since the only thread worth calling yield on is the current thread, they make the method static so you won't waste time trying to call yield on some other thread . 这是stackoverflow上的回答。是说,该代码只有在某个A线程执行时会被执行,这种情况下通知某个B线程yield是无意义的(因为B线程本来就没在执行)。因此只有当前线程执行yield才是有意义的。通过使该方法为static,你将不会浪费时间尝试yield 其他线程。 讲得很清楚,就是说,如果是和线程实例绑定的话,你可能会在当前线程中尝试调用otherThread.yeild()/sleep(), 而这使没有意义的
0 点赞 评论 收藏
分享
2016-09-14 18:08
已编辑
北京师范大学 Java
interrupt 底层实现有看过吗?线程的状态是怎么样的?如果给你实现会怎么样做? 我只会第一问,后面的 线程的状态是怎么样的?如果给你实现会怎么样做?实在不会,有没有同学给解释下
永不言弃+1:楼上有的人技术还是很浮躁啊,中断只是一个标志位,JDK源码有明确表示,sleep,io等中断之后会抛出异常,然后中断位会被立即修复,改变了标志位,需要自己去判断。真正的中断机制LockSupport的park来支持,这个在 java并发包下,所以多看看源码
0 点赞 评论 收藏
分享
2016-09-23 10:29
已编辑
北京师范大学 Java
我这样回答面试官说不对````````````````````````` 代码块同步是使用monitorenter和monitorexit指令实现, monitorenter指令是在编译后插入到同步代码块的开始位置,而monitorexit是插入到方法结束处和异常处, JVM要保证每个monitorenter必须有对应的monitorexit与之配对。任何对象都有一个 monitor 与之关联,当且一个monitor 被持有后,它将处于锁定状态。线程执行到 monitorenter 指令时,将会尝试获取对象所对应的 monitor ...
youHappyOK:我自己记得笔记,网易面试也考了这道题 Synchronized的底层实现依赖于JVM, 在 HotSpot JVM实现中,锁有个专门的名字:对象监视器。 当多个线程同时请求某个对象监视器时,对象监视器会设置几种状态用来区分请求的线程: Contention List:一个虚拟的队列,所有请求锁的线程将被首先放置到该竞争队列 Entry List:Contention List中那些有资格成为***的线程被移到Entry List,ContentionList 会被线程并发访问,为了降低对ContentionList队尾的争用 Wait Set:那些调用wait方法被阻塞的线程被放置到Wait Set OnDeck:任何时刻最多只能有一个线程正在竞争锁,该线程称为OnDeck Owner:获得锁的线程称为Owner !Owner:释放锁的线程   具体实现方式是:新请求锁的线程将首先被加入到ConetentionList中,当某个拥有锁的线程(Owner状态)调用unlock之后,如果发现EntryList为空则从ContentionList中移动线程到EntryList,OnDeck线程获得锁后即变为owner线程,无法获得锁则会依然留在EntryList中
0 点赞 评论 收藏
分享
2016-09-09 13:40
已编辑
北京师范大学 Java
1.线程池的工作原理 2. newFixedThreadPool() 此种线程池如果线程数达到最大值后会怎么办,底层原理。 大家觉得怎么回答才好??????????
NSSimacer:当提交一个新任务到线程池时 首先线程池判断基本线程池(corePoolSize)是否已满?没满,创建一个工作线程来执行任务。满了,则进入下个流程; 其次线程池判断工作队列(workQueue)是否已满?没满,则将新提交的任务存储在工作队列里。满了,则进入下个流程; 最后线程池判断整个线程池(maximumPoolSize)是否已满?没满,则创建一个新的工作线程来执行任务,满了,则交给拒绝策略来处理这个任务; 如果线程池中的线程数量大于 corePoolSize 时,如果某线程空闲时间超过 keepAliveTime,线程将被终止,直至线程池中的线程数目不大于 corePoolSize;如果允许为核心池中的线程设置存活时间,那么核心池中的线程空闲时间超过 keepAliveTime,线程也会被终止。
0 点赞 评论 收藏
分享
关注他的用户也关注了:
牛客网
牛客企业服务