String / StringBuffer / StringBuilder
1. String 是不可变的, 实例化之后是final类型的,可以尝试 String 的 replace 方法, String 本身的值是不会变的, 而是返回一个新的 String 的 instance.
2. StringBuffer 则是可变的。StringBuffer 解决了 String 的拼接需要重新分配内存的问题, 而且StringBuffer 是线程安全的:
public synchronized StringBuffer append(Object obj) {
super.append(String.valueOf(obj));
return this;
}
3. StringBuilder 和 StringBuffer 唯一的区别在于它不是线程安全的:
public StringBuilder append(Object obj) {
return append(String.valueOf(obj));
}
一般情况下,拼接 论效率, StringBuilder > StringBuffer > String
Vector / ArrayList / LinkedList
1. Vector 基于数组的实现, 其是线程安全的,所以效率上比 ArrayList 稍差。
2. ArrayList 也是基于数组的实现。
3. LinkedList 是基于双向链表的实现。
1 和 2 VS 3, 数组的查询方便, 插入需要进行移位; 而链表 方便插入, 查询稍慢。
Hashtable / HashMap / TreeMap extends Map (Key 都要重写 equals 和 hashCode 方法)
1. Hashtable 的 key/value 不能是 null, 并且 Hashtable 是线程安全的
2. HashMap 的 key 可以是 null, 其不是线程安全的
3. TreeMap key/value 不能为 null, 非线程安全, 存储是有序的, 即按照put的先后顺序。 而Hashtable和HashMap则是无序的。
4. ConcurrentHashMap, 线程安全, key/value 不能为null.
Session / Cookie
1. Cookie 是为了解决 HTTP 传输无状态而产生的。 Cookie 在客户端保留了用会的session信息, 如 SEEEIONID
2. Session则是客户保留在Server端的信息。 但客户向Server发出请求的时候,Server会检测是否包含Session相关信息。如不包含,则需要重新建立连接。
Servlet 生命周期
1. 容器实例化Servlet, 调用init()方法
2. 当请求到来的时候, 调用service()方法, service方法自动转到doGet()/doPost()方法。
3. 容器销毁Servlet, 调用destroy()方法。
HTTP 报文格式
1. 请求行 (请求方法 + URL + 版本)
2. Header (Params key:value, 如:host)
3. 空行 (代表 header 结束)
4. 数据 (get 没有, post 的时候用来放Post的表单数据)
Statement / PreparedStatement
1. Statement 只能执行一次
2. PreparedStatement 采取预编译, 之后可以多次执行(set 1, 2变量的值就可以了)
forward / redirect
1. Forward 是 服务器内部重定向 (Forward 的target不能是相对路径)
2. Redirect 则是 Server 先把 Response 返回 Client 端, 有 Client 断再进行一次请求。
hibernate / iBasis
1. hibernate 数据库无关性好, ORMapping强大,代码少
2. iBatis 门槛低, SQLMAP配置为主, 数据自动绑定。
rownumber / rowid
1. rownumber 是表结构上的物理意义上的id, 这个是递增的,先有1后有2。
2. rowid 则是表数据定义上的一个id, 可以是UUID或其他
所以在进行分页查询的时候,应该用rownumber来制定分页的区间。
SQL 优化
1. 避免使用 select *
2. Where 字句中过滤最多数据的条件应该写在最尾, 因为解析器是从右到左处理的。
3. 使用alias代替表名,解析可以省时
4. 使用Exists/Not Exist 代替 In/Not In. 比如: Not In会对子表进行一个全表的遍历,所以不要用NOT IN。
5. 还有很多不懂的。。。(索引。。。)
Struts
1. 发送 HttpServletRequest 请求
2. Filter(ApplictionContextCleanUp, Other Filter, FilterDispatcher)
3. FilterDispatcher 询问 ActionMapper 是否有匹配的 Action
4. 若有则将 Action 交给 ActionProxy, ActionProxy 先通过 ConfigurationManager 从配置文件struts.xml中找到对应的 Actin, 然后创建一个 ActionInvocation 实例来动态执行 Action (也就是动态代理 AOP)
5. 在 Action 被执行之前, 配置的所有 Invocation 都会被加载并执行
6. Action 执行完毕之后, 通过 ConfigurationManager 到struts.xml中找出执行该Action后返回结果并返回。
分享到:
相关推荐
13.md BAT及互联网公司2014前端笔试面试题--JavaScript篇 JavaScript 14.md 收集的前端面试题和答案 General 15.md 各大互联网公司2014前端笔试面试题–JavaScript篇 JavaScript 16.md 2014年最新前端开发面试题 ...
### Java学习资料与面试题精选知识点 #### 一、Java工具类及框架资源 ##### 1. 封装的工具类:opslabJutil - **简介**:这是一个封装了常用工具方法的Java库,提供了对日期处理、字符串操作、文件读写等功能的支持...
1、2021-java面试题精选.pdf 2、并发编程及答案(上).pdf 3、并发编程面试专题及答案(下).pdf 4、面试必备之乐观锁与悲观锁.pdf 5、设计模式面试专题及答案.pdf 6、消息中间件面试专题及答案.pdf 7、java后端面试...
根据给定文件的信息,我们可以总结出一系列关于MySQL的知识点,特别是针对面试中可能出现的问题及其解答。下面是详细解析: ### 1. ID 自增主键的行为 - **问题**:一张表中有 ID 自增主键,当插入了 17 条记录之后...
### JSP面试题详解 #### 1. HTTP 协议的无状态特性及有状态协议的概念 HTTP(HyperText Transfer Protocol)是一种应用层协议,用于从Web服务器传输超文本到本地浏览器的传输协议。它是一种**无状态协议**,这意味...
2008/06/17 18:51 1,792 .NET面试题-dotNet开发人员面试综合题.txt 2008/06/17 18:46 1,580 .net面试题.txt 2009/12/24 13:13 0 1.txt 2008/06/17 18:49 2,661 C#程序员面试基础问题和答案.txt 2008/06/17 18:47 2,...
10. **JVM优化**:理解JVM的内存模型,包括堆内存的分区、垃圾收集器的工作机制以及性能调优策略。 11. **网络编程**:了解Socket编程,理解TCP和UDP协议的区别,以及在Java中如何实现网络通信。 12. **数据库连接...
这些题目涵盖了Linux操作系统的基础知识,包括文件系统、进程管理、...以上是Linux面试题中涉及的主要知识点,涵盖了操作系统的核心概念和常用工具,对于准备Linux相关面试的求职者来说,理解和掌握这些内容至关重要。
good2011-4-27-tarena【】Java面试题【】java面试题及答案(基础题122道,代码题19道)【】java面试题大全-葵花宝典-培训班总结出现率比较高的面试题【】华为Java面试题集【】空中网挑选实习生的面试题1【】空中网...
面试题包含了不同技术层面的面试问题,同时也能对一些没有面试开发经验的小白给予不可估量的包装, 让你的薪水绝对翻倍, 本人亲试有效.Java面试题84集、java面试专属及面试必问课程,所有的面试题有视屏讲解, 解答方案....
张孝祥整理Java就业面试...java面试题及答案(基础题122道,代码题19道).doc Java面试题.txt Java面试题(最全,最新).pdf Java面试宝典2010版.doc java综合面试题.doc java程序员面试必备的32个要点 - Java _ Java SE.txt
Shell、awk、sed 面试题汇总 以下是从给定的文件中生成的相关知识点: Shell 1. 变量赋值:在 Shell 中,可以使用多种方法来赋值变量,包括直接赋值、使用 `read` 命令、使用命令行参数和使用命令的输出。 2. ...
【Python数据分析面试题汇总】 1. **Python求和**:Python内置函数`sum()`可用于求和,例如`sum(range(1, 101))`将计算从1到100的所有数字的总和。 2. **全局变量修改**:在函数内部修改全局变量需使用`global`...
面试题10:编写类String 的构造函数、析构函数和赋值函数 8.4 拷贝构造函数 面试题11:谈谈对拷贝构造函数和赋值运算符的认识 面试题12:写出当定义#define _INMAIN 0和不定义时代码打印结果 第9章 继承与多态 9.1 ...
架构师面试题系列之Netty面试专题及答案(10题) 架构师面试题系列之Spring Boot面试专题及答案(33题) 架构师面试题系列之Spring MVC面试专题及答案(31题) 架构师面试题系列之Spring面试专题及答案(41题) 架构...
java面试题及答案(基础题122道,代码题19道)
【大数据运维面试题解析】 1. HTTP与HTTPS的区别: - HTTPS比HTTP更安全,因为它通过SSL/TLS协议加密通信,防止数据被窃取或篡改。 - HTTPS需要CA(证书颁发机构)颁发的证书,通常需要付费,而HTTP则无需证书。 ...
根据提供的文件信息,我们可以整理出一系列与达内云计算学院面试题相关的知识点,主要涉及系统管理、应用管理和进阶服务管理等方面。下面是详细的知识点解析: ### 一、系统管理(ADMIN) 1. **文件打包备份** - ...