1、jdk 6可以管理到多少线程?A 100左右 B 1000左右 C 10000 左右 。如果一个应用需要使用大量的内存,您有两种方式,第一,使用64位系统,让JDk寻址到4G以上内存;第二,软件采用分布式,使用多个JVM。请分析两种方式的利弊
2. JDK 1.6 的新特性,您使用过哪些,你觉得哪些特性在您负责的哪些项目中是起到关键作用的?
2. JDK 1.6 的新特性,您使用过哪些,你觉得哪些特性在您负责的哪些项目中是起到关键作用的?
第二,实用64位操作系统性能要好很多,但是需要64位硬件支持。使用多个JVM,就是垂直集群了,垂直集群具有集群的各种优点,再加个前端web服务器可以实现均衡负载,硬件上,普通机器单机就可以实现。
所以应用中还是应该有个上界。
但是做一个推测---编译系统heap size基本最大就1M,每个线程都用自己的堆栈,一般32-XP等操作系统寻址是2G,
那也就2000线程上下呀!
64位VISTA系统主板也就烧到支持64G内存---寻址肯定大于64G, 按照64G计算,那会有60000上下。
所以64位JDK可能会在一万上下,32位JDK估计也就一千上下。
------------------------------------------------------------------------------------------------------------
我这是推测,没有经过证实。
----------------------------------
第二题:我会选择64位JDK,这个成本小。如果采用分布式,成本基本会在原有基础上呈模块数成本的幂次递升。
但是分布式还是根本解决方法。-------------------------------------------------------------------------------------------------------------
新特性我一个也没用到。但是Derby感觉对我很重要,这是完成插拔框架的基础。也许那一天我会把struts以数据库的形式提供大家使用。反正吹牛也不上税!
其实第一个题的答案已经在题里透露出来了,只是你没有用心去找。先分析一下题:1、jdk 6可以管理到多少线程?A 100左右 B 1000左右 C 10000 左右 。如果一个应用需要使用大量的内存,您有两种方式,第一,使用64位系统,让JDk寻址到4G以上内存;第二,软件采用分布式,使用多个JVM。请分析两种方式的利弊 红色部分:可以放JDK增加到4G的内存,一个线程在内存中占用大约1M,那么他说的4G也就是4000个线程的空间,在win32的系统中,JDK最大只能到2G,那么就是2000个线程的空间,抛出去其他资源耗内存的空间,那么能支持的线程数也就是在 1000左右,那么答案就是B但是这样的推算不能绝对,因为也要看服务器的硬件配置。所以你可以回答在win32单cpu下能管理到1000左右线程。剩下的问题是大量使用内存的应用,在程序开发中,不能把所有可能遇到的问题都推到硬件上去解决,所以最好选择第二种方案,利用分布式,其实很多大型应用就是利用分布式,在程序无法再提高性能的情况下,才选择增加硬件配置。2. JDK 1.6 的新特性,您使用过哪些,你觉得哪些特性在您负责的哪些项目中是起到关键作用的? 其实这个题是一个活动题,也不见得他问的有多高明,我觉得JDK升级到6.0后最好的就是他对GC的改良。这个问题没什么大的意义,属于垃圾题,因为面试的人可能一直都在用5.0. 虽然我是在用6.0,但是你不能确定面试的人都在用6.0做开发,所以你不知道面试的人有没有在项目中用到6.0.
至于线程管理。
以我的开发经验,一个大的系统,也不可能使用超过200个线程的情况。
所以,1K和10K这种情况,几乎不可能出现。
如果楼主的程序中,非要那么多的线程才能解决问题的话,不妨找到问题的瓶颈在何处,更改先有算法以解决问题。
其次是内存的问题。
内存爆掉的问题,一般会是由数据库操作而引起的,这种情况下,可以通过释放缓存、将数据分批查询处理等方法来解决。
程序启动后,所加载的信息,一般是不会超过800M的,留下200M左右的空间,作为程序处理数据的缓存空间,一般情况下是能够解决问题的。
就看楼主有没有实力将程序的数据缓存空间控制在200M左右或以内的范围内。
当然,在面向对象的编程理念中,线程处理所涉及到得对象,某种意义上,也可以称为缓存。
对于26楼的回答,算是学习了,几乎属于文盲系列,呵呵......