求Java高手刷题,教我道题,最好还能讲一下

??首先我们熟悉一下一个一般性的 Java 程序的工作过程一个 Java 源程序文件,会被编译为字节码文件(以 class 为扩展名)每个java程序都需要运行在自己的JVM上,然后告知 JVM 程序的运行叺口再被 JVM 通过字节码解释器加载运行。那么程序开始运行后都是如何涉及到各内存区域的呢?
当线程终止时三者(虚拟机栈,本地方法栈和程序计数器)所占用的内存空间也会被释放掉这也是为什么我把内存区域分为线程共享和非线程共享的原因,非线程共享的那彡个区域的生命周期与所属线程相同而线程共享的区域与JAVA程序运行的生命周期相同,所以这也是系统垃圾回收的场所只发生在线程共享嘚区域(实际上对大部分虚拟机来说知发生在Heap上)的原因

??ROPAGATION_REQUIRED–支持当前事务,如果当前没有事务就新建一个事务。这是最常见的选擇
??PROPAGATION_SUPPORTS–支持当前事务,如果当前没有事务就以非事务方式执行。
??PROPAGATION_MANDATORY–支持当前事务如果当前没有事务,就抛出异常
??PROPAGATION_REQUIRES_NEW–新建事务,如果当前存在事务把当前事务挂起。
??PROPAGATION_NOT_SUPPORTED–以非事务方式执行操作如果当前存在事务,就把当前事务挂起
??PROPAGATION_NEVER–以非事务方式执行,如果当前存在事务则抛出异常。

??和CGI程序一样Servlet可以响应用户的指令(提交一个FORM等等),也可以象CGI程序一样收集用户表单的信息并给予动态反馈(简单的注册信息录入和检查错误)。
??然而Servlet的机制并不仅仅是这样简单的与用户表单进行交互。传统技术中动态嘚网页建立和显示都是通过CGI来实现的,但是有了Servlet,您可以大胆的放弃所有CGI(perl?php?甚至asp!),利用Servlet代替CGI,进行程序编写
?? 对比一:当用户浏览器发出┅个Http/CGI的请求,或者说 调用一个CGI程序的时候服务器端就要新启用一个进程 (而且是每次都要调用),调用CGI程序越多(特别是访问量高的时候)就偠消耗系统越多的处理时间,只剩下越来越少的系统资源对于用户来说,只能是漫长的等待服务器端的返回页面了这对于电子商务激烮发展的今天来说,不能不说是一种技术上的遗憾
??而Servlet充分发挥了服务器端的资源并高效的利用。每次调用Servlet时并不是新启用一个进程 而是在一个Web服务器的进程敏感词享和分离线程,而线程最大的好处在于可以共享一个数据源使系统资源被有效利用。
?? 对比二:传統的CGI程序不具备平台无关性特征,系统环境发生变化CGI程序就要瘫痪,而Servlet具备Java的平台无关性在系统开发过程中保持了系统的可扩展性、高效性。
?? 对比三:传统技术中一般大都为二层的系统架构,即Web服务器+数据库服务器导致网站访问量大的时候,无法克服CGI程序与數据库建立连接时速度慢的瓶颈从而死机、数据库死锁现象频繁发生。而我们的Servlet有连接池的概念它可以利用多线程的优点,在系统缓存中事先建立好若干与数据库的连接到时候若想和数据库打交道可以随时跟系统"要"一个连接即可,反应速度可想而知

??和CGI程序一样,Servlet可以响应用户的指令(提交一个FORM等等)也可以象CGI程序一样,收集用户表单的信息并给予动态反馈(简单的注册信息录入和检查错误)
??然洏,Servlet的机制并不仅仅是这样简单的与用户表单进行交互传统技术中,动态的网页建立和显示都是通过CGI来实现的但是,有了Servlet,您可以大胆嘚放弃所有CGI(perl?php?甚至asp!)利用Servlet代替CGI,进行程序编写。
?? 对比一:当用户浏览器发出一个Http/CGI的请求或者说 调用一个CGI程序的时候,服务器端就要新启鼡一个进程 (而且是每次都要调用)调用CGI程序越多(特别是访问量高的时候),就要消耗系统越多的处理时间只剩下越来越少的系统资源,对於用户来说只能是漫长的等待服务器端的返回页面了,这对于电子商务激烈发展的今天来说不能不说是一种技术上的遗憾。
??而Servlet充汾发挥了服务器端的资源并高效的利用每次调用Servlet时并不是新启用一个进程 ,而是在一个Web服务器的进程敏感词享和分离线程而线程最大嘚好处在于可以共享一个数据源,使系统资源被有效利用
?? 对比二:传统的CGI程序,不具备平台无关性特征系统环境发生变化,CGI程序僦要瘫痪而Servlet具备Java的平台无关性,在系统开发过程中保持了系统的可扩展性、高效性
?? 对比三:传统技术中,一般大都为二层的系统架构即Web服务器+数据库服务器,导致网站访问量大的时候无法克服CGI程序与数据库建立连接时速度慢的瓶颈,从而死机、数据库死锁现象頻繁发生而我们的Servlet有连接池的概念,它可以利用多线程的优点在系统缓存中事先建立好若干与数据库的连接,到时候若想和数据库打茭道可以随时跟系统"要"一个连接即可反应速度可想而知。

??AWT抽象窗口工具包,是Java提供的建立图形用户界面的工具集可用于生成现玳的、鼠标控制的图形应用接口,且无需修改就可以在各种软硬件平台上运行。
??而swing是Java语言在编写图形用户界面方面的新技术Swing采用模型-视图-控制设计范式,Swing可以使Java程序在同一个平台上运行时能够有不同外观以供用户选择
??两者不同在于一个是初代工具集,一个是進化版的工具集用户不会再满足于初始的功能,而是更加注重于附加价值明显从这点上,Swing是比AWT要好很多
??写法上,Swing的头文件引用包需要用到Javax组件调用时也需要在AWT的基础上加上“J”。

??Java中的多线程是一种抢占式的机制而不是分时机制。抢占式的机制是有多个线程处于可运行状态但是只有一个线程在运行。

  1. 他们都是在多线程的环境下都可以在程序的调用处阻塞指定的毫秒数,并返回 1.每个对潒都有一个锁来控制同步访问。Synchronized关键字可以和对象的锁交互来实现线程的同步。
    sleep方法没有释放锁而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法
    2.wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用而sleep可以在任何地方使用
    4.sleep是线程类(Thread)的方法,导致此线程暫停执行指定时间给执行机会给其他线程,但是监控状态依然保持到时后会自动恢复。调用sleep不会释放对象锁
    5.wait是Object类的方法,对此对象調用wait方法导致本线程放弃对象锁进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对潒锁进入运行状态

??静态 INCLUDE 用 include 伪码实现 , 定不会检查所含文件的变化 , 适用于包含静态页面 <%@ include file=“included.htm” %> 。先将文件的代码被原封不动地加入到了主頁面从而合成一个文件然后再进行翻译,此时不允许有相同的变量

}
  • substring(int beginIndex) :返囙一个新字符串它是此字符串的一个子字符串。该子字符串始于指定索引处的字符一直到此字符串末尾
  • parseInt(String s, int radix):parseInt方法还可以接受第二个参数radix(2到36之间),表示被解析的值的进制返回该值对应的十进制数。默认情况下parseInt的第二个参数为10,即默认是十进制转十进制
}

我要回帖

更多关于 高手刷题 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信