摘要:
本题来自《剑指offer》 路径为从根节点到叶节点一条路径,路径经过的各节点数值之和等于某一给定数值,则打印路径上的节点 因为需要打印满足条件的路径节点信息和各节点之和,需要栈记录经过的节点,和一个保存数值之和的变量 用前序遍历方法,可以首先访问节点,然后将节点入栈,并将数值和之前入栈的节点值相加 阅读全文
摘要:
1.Hibernate工作原理及为什么要用? 原理: 1.读取并解析配置文件 2.读取并解析映射信息,创建SessionFactory3.打开Session 4.创建事务Transation 5.持久化操作 6.提交事务 7.关闭Session 8.关闭SesstionFactory 为什么要用: 1. 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。 2. Hiber... 阅读全文
摘要:
SQL语句中常用关键词及其解释如下: 1)SELECT 将资料从数据库中的表格内选出,两个关键字:从 (FROM) 数据库中的表格内选出 (SELECT)。语法为 SELECT "栏位名" FROM "表格名"。 2)DISTINCT 在上述 SELECT 关键词后加上一个 DISTINCT 就可以去除选择出来的栏位中的重复,从而完成求得这个表格/栏位内有哪些不同的值的功能。语法为 SELECT... 阅读全文
摘要:
这部分主要是开源Java EE框架方面的内容,包括Hibernate、MyBatis、Spring、Spring MVC等,由于Struts 2已经是明日黄花,在这里就不讨论Struts 2的面试题,如果需要了解相关内容,可以参考我的另一篇文章《Java面试题集(86-115)》。此外,这篇文章还对企业应用架构、大型网站架构和应用服务器优化等内容进行了简单的探讨,这些内容相信对面试会很有帮助。 ... 阅读全文
摘要:
2013年年底的时候,我看到了网上流传的一个叫做《Java面试题大全》的东西,认真的阅读了以后发现里面的很多题目是重复且没有价值的题目,还有不少的参考答案也是错误的,于是我花了半个月时间对这个所谓的《Java面试大全》进行了全面的修订并重新发布在我的CSDN博客。在修订的过程中,参照了当时JDK最新版本(Java 7)给出了题目的答案和相关代码,去掉了EJB 2.x、JSF等无用内容或过时内容,... 阅读全文
摘要:
单例模式算是设计模式中最容易理解,也是最容易手写代码的模式了吧。但是其中的坑却不少,所以也常作为面试题来考。本文主要对几种单例写法的整理,并分析其优缺点。很多都是一些老生常谈的问题,但如果你不知道如何创建一个线程安全的单例,不知道什么是双检锁,那这篇文章可能会帮助到你。 懒汉式,线程不安全 当被问到要实现一个单例模式时,很多人的第一反应是写出如下的代码,包括教科书上也是这样教我们的。 pub... 阅读全文
摘要:
wait() 导致当前线程等待,直到其他线程调用此对象的 notify()方法或 notifyAll()方法前,导致当前线程等待。notify() 唤醒在此同步监视器上等待的单个线程,如果有多个线程在此同步监视器上等待,则会唤醒其中的一个。 在Java对象中,有两种池 琐池 synchronized 阅读全文
摘要:
1 /** 2 * 功能:简单选择排序 原理:先比较大小,找出最小的再交换 时间复杂度为o(n^2) 3 */ 4 5 public class SelectSort { 6 7 public int[] selectSort(int[] array) { 8 int temp = 0; 9 10 for (int i = 0;... 阅读全文
摘要:
1 /** 2 * 功能:直接插入排序 3 * 原理:将一个记录插入到已经排好的有序表中,从而得到一个新的,记录数增1的有序表 4 * 直接插入排序时间复杂度:(1)最好的情况下,为o(n) (2)最坏的情况下为o(n^2) 5 * */ 6 public class InsertSort { 7 8 public int[] insertSort(int[] ... 阅读全文
摘要:
1 /** 2 * 功能:改进的冒泡排序 原理:不断的交换,每次选出最小的一个放在最前面 冒泡排序时间复杂度:(1)最好的情况下,为o(n) (2)最坏的情况下为o(n^2) 3 */ 4 public class BuddleSort { 5 6 public int[] buddleSort(int[] array) { 7 int temp = ... 阅读全文