错题集锦(二) -- Java专项
错题集锦(二) -- Java专项
标签(空格分隔): 找工作
JVM的内存模型
线程共享:
- 堆(Heap):主要存放一些对象实例
- 方法区(Method Area / Non-Heap):用于存储已被JVM加载的类的信息、常量、静态变量等数据。
线程自有:
- 程序计数器(Program Counter Register):当前线程所执行的字节码的行号指示器。
- 虚拟机栈(JVM Stack,也可称作Java方法栈):主要存放基本数据类型、对象引用、returnAddress类型。
- 本地方法区(Native Method Stack):主要为Native方法服务。
Servlet与CGI(Common Gateway Interface)的比较
与CGI程序一样,Servlet可以相应用户的指令,也可以收集用户白丹的信息并给予动态反馈。
- 调用一个CGI程序时,服务器端就要新启动一个进程(当用户访问量高的时候,就会消耗系统越多的处理时间);而Servlet充分发挥了服务器端资源并高效的利用,每次调用Servlet时并不是新启用一个进程。
- CGI程序不具备平台无关性;而Servlet具备java的平台无关性,可移植行好;
- 传统的技术中,一般为二层的结构:Web服务器+数据库服务器,当网站访问量大的时候,无法克服CGI程序与数据库连接时速度慢的瓶颈;而Servlet有线程池的概念,可以利用多线程的优点,在系统缓存中事先建立好若干与数据库的连接,当需要时只需要要一个连接即可,速度快。
Servlet的生命周期
Servlet的生命周期分为5个阶段:加载、创建、初始化、处理客户请求、卸载。
- 加载:容器通过类加载器使用Servlet类对应的文件加载Servlet;
- 创建:通过Servlet构造函数创建一个Servlet对象;
- 初始化:调用init方法进行初始化;
- 处理客户请求:每当有一个客户请求,容器会创建一个线程来处理用户请求;
- 卸载:调用destroy方法让Servlet自己释放其占用的资源。
Servlet是线程不安全的,在Servlet类中可能会定义共享的变量,在并发的多线程访问下,不同的线程对成员变量的修改会引发错误。
Struts1和Struts2的对比
- Action类:
- Struts1要求Action类继承一个抽象对象;
- Struts2的Action类可以实现一个Action接口,也可以实现其他接口;
- Servlet依赖:
- Struts1 Action依赖于Servlet API;
- Struts2 Action不依赖于容器,允许Action脱离容器单独被测试;
- 线程模式:
- Struts1 Action是单例模式并且必须是线程安全的;(单例的)
- Struts2 Action对象为每一个请求产生一个实例,因此没有线程安全问题。(多例的)
AWT与Swing
- AWT:是通过调用操作系统的native方法实现的,所以在Window系统上的AWT就是Windows风格,在Linux系统上的AWT就是XWindows风格;
- Swing:是通过Lightweight组件,不是通过native方法实现的,所以Swing的窗口风格更加多样化。
forward和redirect
redirect:请求重定向。客户端行为,本质上为2次请求,地址栏改变,前一次请求对象消失。
forward:请求转发。服务器行为,地址栏不变。
new
JVM中一个字节以下的整形数据会在JVM启动的时候加载进内存。除非用new Integer()显式的创建对象,否则都是同一个对象。
基本数据类型int,double等比较的时候比较的是数值。
JVM配置参数含义
- -Xmx:最大堆大小;
- -Xms:初始堆大小;
- -Xmn:年轻代大小;
- -XXsurvivorRatio:年轻代中Eden区与Survivor区的大小比值;
错题集锦(二) -- Java专项的更多相关文章
- 20175316盛茂淞 《java程序设计》第三周课堂测试错题总结
20175316盛茂淞 <java程序设计>第三周课堂测试错题总结 出现问题 错题总结 题目1 在Ubuntu中用自己的有位学号建一个文件,教材p87 Example4_15 1. 修改代 ...
- 【笔试题】Java 易错题精选
笔试题 Java 易错题精选 1.写出下列程序的运行结果( )String 不变性Java 值传递 public class Test { public static void main(String ...
- Java 整体测试重点题 错题积累
重点题 错题积累 1: 解析: %d:用来设置输出日志的日期和时间 %m:用来输出代码中指定的消息 %n:用来输出一个回车换行符 %l:用来输出日志事件的发生位置 %p:用来输出优先级 %f:用 ...
- Java多线程习题 ===重点 ,错题积累
多线程重点,错题分析 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: . 12: 13: 14: 15:
- 20145308刘昊阳 《Java程序设计》实验二 Java面向对象程序设计 实验报告
20145308刘昊阳 <Java程序设计>实验二 Java面向对象程序设计 实验报告 实验名称 Java面向对象程序设计 实验内容 初步掌握单元测试和TDD 理解并掌握面相对象三要素:封 ...
- 20145208 实验二 Java面向对象程序设计
20145208 实验二 Java面向对象程序设计 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 实验步 ...
- COJ 0802 非传统题(二)
(颓了这么多天是时候干点正事了QAQ) 非传统题(二) 难度级别:B: 运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 还是很久很久以前,chx ...
- 20165306 实验二 Java面向对象程序设计
实验二 Java面向对象程序设计 实验要求 1.提交最后三个JUnit测试用例(正常情况,错误情况,边界情况)都通过的截图,截图上要有画图加水印,输入自己的学号.本提交点考查JUnit会不会使用,测试 ...
- 项目报错:Caused by: java.lang.ClassNotFoundException: Didn't find class "..."on path: DexPathList
项目报错: Caused by: java.lang.ClassNotFoundException: Didn't find class "com.eshore.njb.MyApplicat ...
随机推荐
- 在centos中编译putty时提示找不到gtk库的解决办法
明明已经安过gtk了, 后来在csdn上发现了前人的解决办法 yum install libgnomeui-devel 现在编译出来的putty就可以有图形界面了
- 深入了解webservice_概念总结
最近公司需要对java web端的第三方接口进行测试,使用WebService+TestNG实现,TsetNg是常用的自动化测试框架,这就不介绍了. WebService是一种跨编程语言和跨操作系统平 ...
- WebSocket简单介绍
Java后端WebSocket的Tomcat实现 一.WebSocket简单介绍 随着互联网的发展,传统的HTTP协议已经很难满足Web应用日益复杂的需求了.近年来,随着HTML5的诞生,WebSoc ...
- 解决Android SDK Manager更新下载速度慢
1.在Host文件加上 203.208.46.146 www.google.com 74.125.113.121 developer.android.com 203.208.46.146 dl.goo ...
- Java简单数据类型转换
1. Integer<---String (1) Integer x = new Integer(Integer.parseInt(String)); 2. Integer<--- ...
- jQuery中attr() 和 prop()【转】
Version 1.9.0 开始不建议使用 attr() 来对具有 true 和 false 两个属性的属性进行操作. 具有 true 和 false 两个属性的属性,如 checked, selec ...
- NIOS II CPU复位异常的原因及解决方案
NIOS II CPU复位异常的原因及解决方案 近期在用nios ii做项目时,发现一个奇怪的现象,在NIOS II EDS软件中编写好的代码,烧写到芯片中,第一次能够正常运行,但是当我按下板卡上 ...
- Linux下资源利用率监测利器—nmon使用
最近接了一个任务,就是测试公司服务器的资源利用率,这样对每种业务平时所占资源有了大体的了解,进而为下一步的虚拟化做准备.找了很多开源的工具,但都不理想,有的安装很复杂,需要联网(而我们的服务器很多都不 ...
- Nagios监控Oralce
一.本文说明: 本文是监控本地的Oracle,其实监控远端的Oracle也是跟下面的步骤差不多的. 二.安装Nagios.Nagios插件.NRPE软件: 安装步骤可以参考<Linux下Nagi ...
- 20145227《Java程序设计》第10周学习总结
20145227<Java程序设计>第10周学习总结 教材学习内容总结 网络编程 就是在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据发送到指定的位置,或者接收 ...