Java面试全攻略:基础、JSP&Servlet、J2EE与安全

需积分: 26 0 下载量 66 浏览量 更新于2024-07-26 收藏 253KB DOC 举报
"这是一份全面的JAVA面试题集,涵盖了Java基础知识、JSP&Servlet技术、J2EE相关知识以及其他重要的话题,旨在帮助求职者准备Java相关的面试。" 一、Java基础知识 Java语言拥有八种基本数据类型,包括整型(byte、short、int、long)、浮点型(float、double)、字符型(char)和布尔型(boolean)。String对象不是基本数据类型,而是类,与基本类型不同,它支持对象的方法操作,如拼接、查找、替换等。字符串反转可以通过创建新字符串并从后向前遍历来实现;字符串替换则可以利用substring和concat方法完成。 数据类型转换涉及数值型字符与数字间的互换,例如,Integer.parseInt()和Integer.toString()可以实现Integer与字符串的转换,而Double.parseDouble()和Double.toString()对应于Double类型的转换。四舍五入到小数点前两位可以用Math.round()方法。 日期和时间处理方面,Java提供Calendar类和Date类获取年月日、小时分秒,用System.currentTimeMillis()获取自1970年以来的毫秒数,通过Calendar类的add()和set()方法获取当月最后一天,使用SimpleDateFormat进行日期格式化。 数组和集合是Java中的重要概念,数组是固定大小的存储结构,而集合如ArrayList、LinkedList、HashSet、HashMap等提供了动态扩展和操作的便利。文件和目录操作,如File类的exists()判断文件或目录是否存在,listFiles()获取目录下所有文件和子目录,以及FileReader/Writer进行文件读写。 Java的多态性体现在继承、方法重载和方法覆盖上。继承允许子类继承父类的属性和行为,重载是同一类中方法名相同但参数列表不同的方法,覆盖则是子类对父类方法的重新定义。 编码转换问题,如将GB2312编码转换为ISO-8859-1,可以使用InputStreamReader和OutputStreamWriter配合相应字符集实现。 访问数据库通常使用JDBC,Statement用于执行静态SQL,PreparedStatement用于预编译SQL,提高效率并防止SQL注入。 二、JSP&Servlet技术 JSP是动态网页技术,Servlet是服务器端的Java程序,两者都可用于处理HTTP请求,但JSP侧重视图展示,Servlet处理业务逻辑。在Web开发中,HTML标记需转义以避免解析错误。JSP通过request对象读取客户端请求,通过getAttribute()等方法访问CGI变量,realPath()方法获取JSP文件的实际路径。 Cookie和Session是会话管理工具,Cookie存储在客户端,适用于少量、不敏感数据,Session存储在服务器,适用于大量或敏感数据。JSP包含外部文件可通过<%@ include %>和<jsp:include %>,前者在编译时合并,后者在运行时合并,各有应用场景。 三、J2EE相关知识 J2EE(现在称为Java EE)是一个企业级应用平台,包含J2SE和J2ME,提供Web服务、EJB、JMS等技术。ApplicationServer如Tomcat、JBoss,提供部署、管理、事务处理等功能,连接池优化数据库资源,减少创建和销毁连接的开销。Web.xml是应用的部署描述符,配置应用的行为。 四、其他 Web安全性涉及表单验证、SSL加密、基本认证等,MVC模式分离了模型、视图和控制器,提高代码复用和可维护性。面试者还需要了解自己项目的安全实践。 这份面试题集覆盖了Java程序员所需的核心技能和知识,有助于求职者全面复习和准备面试。