内存泄漏是指分配出去的内存不再使用,但是无法回收。
44.Java内存模型及各个区域的OOM,如何重现OOM
这部分内容很重要,详细阅读《深入理解Java虚拟机》,也可以详细阅读这篇文章
45.出现OOM如何解决
一. 可通过命令定期抓取heap dump或者启动参数OOM时自动抓取heap dump文件。
二. 通过对比多个heap dump,以及heap dump的内容,分析代码找出内存占用最多的地方。
三. 分析占用的内存对象,是否是因为错误导致的内存未及时释放,或者数据过多导致的内存溢出。
47.Java内存管理及回收算法
阅读这篇文章:Java 内存区域和GC机制 - Leo Chin- 博客园
48.Java类加载器及如何加载类(双亲委派)
阅读文章:
https://www.ibm.com/developerworks/cn/java/j-lo-classloader/(推荐)
1. 启动类加载器(bootstrap classloader)用来加载java核心类库,无法被java程序直接引用。springmvc面试题 - t0404的博客 - 博客频道 - csdn.net。3. 深入解析http原理并实现http模式下的android 网络编程。 * 博客:http://blog.csdn.net/qq969422014/article/category/2944339。
50.Statement和PreparedStatement之间的区别
词库的检索效率、存储效率得到了较大提高。(3)预埋单一般直接允许将单子分成不同的笔数,在市场己开市的情况下,使用这个功能可以更方便的分批减仓或加仓,对于大资金炒家,可以提高“工作”效率,方便哪些喜欢隐藏大单的人。(3)提高了存储效率,通过虚拟化技术解决了存储空间的浪费,可以自动重新分配数据,提高了存储空间的利用率。
二.使用
Statement 对象。在对只执行一次性存取的时侯,用
Statement 对象进行处理。PreparedStatement
对象的开销比Statement大,对于一次性操作并不会带来额外的好处。
三.statement每次执行sql语句,相关都要执行sql语句的编译,preparedstatement是预编译得,
preparedstatement支持批处理
四.
代码片段1:
String updateString = "UPDATE COFFEES SET SALES = 75 " + "WHERE
COF_NAME LIKE ′Colombian′";
stmt.executeUpdate(updateString);
代码片段2:
PreparedStatement updateSales = con.prepareStatement("UPDATE COFFEES SET
SALES = ? WHERE COF_NAME LIKE ? ");
updateSales.setInt(1, 75);
updateSales.setString(2, "Colombian");
updateSales.executeUpdate();
片断2和片断1的区别在于,后者使用了PreparedStatement对象,而前者是普通的Statement对象。PreparedStatement对象不仅包含了SQL语句,而且大多数情况下这个语句已经被预编译过,因而当其执行时,只需DBMS运行SQL语句,而不必先编译。当你需要执行Statement对象多次的时候,PreparedStatement对象将会大大降低运行时间,当然也加快了访问的速度。
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-93146-9.html
直接击沉