05 2017 档案

摘要:InnoDB是MySQL的默认存储引擎, InnoDB支持的最大存储限制是64TB,支持事务安全,支持行锁,支持B树索引,不支持哈希索引和全文索引,支持集群索引,支持数据缓存,支持索引缓存,不支持数据可压缩,空间使用比较高,内存使用也比较高,批量插入的速度比较低,支持外键。 比较重要的就是支持事务安 阅读全文
posted @ 2017-05-30 11:01 alittlecomputer 阅读(156) 评论(0) 推荐(0)
摘要:Hibernate是一个框架 一个Java领域的持久化框架 一个ORM框架 对象的持久化: 狭义的理解:“持久化”仅仅指把对象永久保存到数据库中。 广义的理解:“持久化”包括和数据库相关的各种操作: -保存:把对象永久保存到数据库中。 -更新:更新数据库中的对象。 -删除:从数据库中删除一个对象 - 阅读全文
posted @ 2017-05-29 21:42 alittlecomputer 阅读(129) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2017-05-29 20:51 alittlecomputer 阅读(1) 评论(0) 推荐(0)
摘要:基于XML的方式配置事务 直接看代码: db.properties 阅读全文
posted @ 2017-05-29 20:38 alittlecomputer 阅读(180) 评论(0) 推荐(0)
摘要:事务的隔离级别,回滚,只读,过期 当同一个应用程序或者不同应用程序中的多个事务在同一个数据集上并发执行时,可能会出现许多意外的问题。 并发事务所导致的问题可以分为下面三种类型: -脏读 -不可重复读 -幻读 看代码: db.properties applicationContext.xml 当同一个 阅读全文
posted @ 2017-05-29 16:08 alittlecomputer 阅读(164) 评论(0) 推荐(0)
摘要:事务的传播行为 当事务方法被另一个事务方法调用时,必须指定事务应该如何传播,例如:方法可能继续在现有事务中运行,也可能开启一个新的事务,并在自己的事务中运行。 事务的传播行为可以由传播属性指定.Spring定义了7中类型的传播行为。 默认的传播行为是REQUIRED 直接看代码: db.proper 阅读全文
posted @ 2017-05-29 15:29 alittlecomputer 阅读(172) 评论(0) 推荐(0)
摘要:声明式事务 直接上代码: db.properties applicationContext.xml 阅读全文
posted @ 2017-05-29 14:56 alittlecomputer 阅读(172) 评论(0) 推荐(0)
摘要:Spring中的事务管理 事务简介 事务管理是企业级应用程序开发中必不可少的技术,用来确保数据的完整性和一致性。 事务就是一系列的动作,他们被当做一个单独的工作单元,这些动作要么全部完成,要么全部不起作用。 事务的四个关键属性(ACID) -原子性(atomicity):事务是一个原子操作,由一系列 阅读全文
posted @ 2017-05-29 14:46 alittlecomputer 阅读(235) 评论(0) 推荐(0)
摘要:使用具名参数 直接看代码: db.properties applicationContext.xml 阅读全文
posted @ 2017-05-28 10:34 alittlecomputer 阅读(209) 评论(0) 推荐(0)
摘要:Spring对JDBC的支持 直接看代码: db.properties applicationContext.xml 不推荐使用继承JdbcDaoSupport 阅读全文
posted @ 2017-05-28 10:04 alittlecomputer 阅读(178) 评论(0) 推荐(0)
摘要:我们看基于XML配置的方式配置AOP 看代码: 返回结果: 稍微修改代码: 返回结果: 阅读全文
posted @ 2017-05-28 08:00 alittlecomputer 阅读(162) 评论(0) 推荐(0)
摘要:重用切面表达式 我们有的时候在切面里面有多个函数,大部分函数的切入点都是一样的,所以我们可以声明切入点表达式,来重用。 返回结果: 可以看到我们在LoggingAspect里面声明的 declareJoinPointException可以起作用。一般情况下,这个方法不用写其他的代码。 阅读全文
posted @ 2017-05-28 07:20 alittlecomputer 阅读(196) 评论(0) 推荐(0)
摘要:切面优先级 先看代码: 返回结果: 可以看到我们这里有两个切面,但是哪个切面先执行?哪个切面后执行? 我们可以在切面上加@Order(1),这样来规定哪个先执行,哪个后执行,数字越小,优先级越高,越先执行。 阅读全文
posted @ 2017-05-28 07:08 alittlecomputer 阅读(260) 评论(0) 推荐(0)
摘要:返回通知,异常通知,环绕通知 看代码: 执行结果: 在这里稍微改改代码:我们把异常改成空指针异常 执行结果: 可以看到异常通知没有执行。只有当发生空指针异常时才会执行。 下面看环绕通知: 返回结果: 环绕通知一般来说不常用。 阅读全文
posted @ 2017-05-28 06:52 alittlecomputer 阅读(205) 评论(0) 推荐(0)
摘要:后置通知 看代码: 输出结果: 阅读全文
posted @ 2017-05-27 17:48 alittlecomputer 阅读(197) 评论(0) 推荐(0)
摘要:Spring AOP AspectJ:Java社区里最完整最流行的AOP框架 在Spring2.0以上的版本中,可以使用基于AspectJ注解或者基于XML配置的AOP 看代码: 输出结果: 在看代码: 输出结果: 在看代码: 输出结果: 1.SpringAOP 加入jar包: spring-aop 阅读全文
posted @ 2017-05-27 17:41 alittlecomputer 阅读(134) 评论(0) 推荐(0)
摘要:AOP编程 问题: 代码混乱: 越来越多的非业务需求(日志和验证等)加入后,原有的业务方法急剧膨胀,每个方法在处理核心逻辑的同事还必须兼顾其他多个关注点。 代码分散:以日志需求为例,只是为了满足这个单一需求,就不得不在多个模块(方法)里面多次重复相同的日志代码,如果日志需求发生变化,必须修改所有模块 阅读全文
posted @ 2017-05-27 15:26 alittlecomputer 阅读(136) 评论(0) 推荐(0)
摘要:泛型依赖注入 看代码: 输出结果: 阅读全文
posted @ 2017-05-27 14:10 alittlecomputer 阅读(132) 评论(0) 推荐(0)
摘要:接上一次讲课 先看代码: 输出结果: 可以看到空指针异常,因为没有办法调用userController.execute(); 组件装配 <context:component-scan>元素还会自动注册AutowiredAnnotationBeanPostProcessor实例,该实例可以自动装配具有 阅读全文
posted @ 2017-05-27 13:47 alittlecomputer 阅读(238) 评论(0) 推荐(0)
摘要:基于注解的方式配置bean(基于注解配置Bean,基于注解来装配Bean的属性) 在classpath中扫描组件 组件扫描(component scanning):Spring能够从classpath下自动扫描,侦测和实例化具有特定注解的组件。 特定组件包括: -@Component:基本注解,表示 阅读全文
posted @ 2017-05-24 22:27 alittlecomputer 阅读(221) 评论(0) 推荐(0)
摘要:通过FactoryBean来配置Bean 下面是配置文件 下面是输出结果: 阅读全文
posted @ 2017-05-21 19:51 alittlecomputer 阅读(149) 评论(0) 推荐(0)
摘要:Bean的配置方法 通过工厂方法(静态工厂方法&实例工厂方法),FactoryBean 通过调用静态工厂方法创建Bean 调用静态工厂方法创建Bean是将对象创建的过程封装到静态方法中,当客户端需要对象时,只需要简单的调用静态方法,而不用关心创建对象的细节。 要声明通过静态方法创建的Bean,需要在 阅读全文
posted @ 2017-05-21 19:32 alittlecomputer 阅读(149) 评论(0) 推荐(0)
摘要:IOC容器中Bean的生命周期 Spring IOC容器可以管理Bean的生命周期,Spring允许在Bean生命周期的特定点执行定制的任务。 Spring IOC容器对Bean的生命周期进行管理的过程: -通过构造器或工厂方法创建Bean实例 -为Bean的属性值和对其他Bean的引用 -调用Be 阅读全文
posted @ 2017-05-21 10:52 alittlecomputer 阅读(189) 评论(0) 推荐(0)
摘要:Spring表达式语言:SpEL Spring表达式语言(简称SpEL)是一个支持运行时查询和操作对象图的强大的表达式语言。 语法类似于EL:SpEL使用#{...}作为定界符,所有在大括号中的字符都将被认为是SpEL SpEL为bean的属性进行动态复制提供了便利。 通过SpEL可以实现: -通过 阅读全文
posted @ 2017-05-21 10:05 alittlecomputer 阅读(200) 评论(0) 推荐(0)
摘要:使用外部属性文件 在配置文件里面配置Bean时,有时需要在Bean的配置里面混入系统部署的细节信息(例如:文件路径,数据源配置信息等)而这些部署细节实际上需要和Bean配置相分离。 Spring提供了一个PropertyPlaceholderConfigurer的BeanFactory后置处理器,这 阅读全文
posted @ 2017-05-20 19:19 alittlecomputer 阅读(193) 评论(0) 推荐(0)
摘要:看如下代码 输出结果为: 可以看到从IOT获得的Car实例是单例的。 事实上,我们可以设置bean的作用域,如下: 下面是输出结果 使用prototype作用域,bean的实例就不是单例的了。每次获取Bean的时候返回的都是新的Bean。默认值是单例的。 阅读全文
posted @ 2017-05-20 16:48 alittlecomputer 阅读(155) 评论(0) 推荐(0)
摘要:Bean之间的关系:继承和依赖。 继承Bean配置 Spring允许继承bean的配置,被继承的bean称为父bean,继承这个父bean的Bean称为子Bean。 子Bean从父Bean中继承配置,包括Bean的属性配置。 子Bean也可以覆盖从父Bean继承过来的配置。 父Bean可以作为配置模 阅读全文
posted @ 2017-05-20 16:32 alittlecomputer 阅读(227) 评论(0) 推荐(0)
摘要:XML配置里的Bean自动装配 Spring IOC容器可以自动装配Bean。需要做的仅仅是在<bean>的autowire属性里指定自动装配的模式 ByType(根据类型自动装配):若IOC容器中有多个与目标Bean类型一致的的Bean,在这种情况下,Spring将无法判定哪个Bean最适合该属性 阅读全文
posted @ 2017-05-20 15:56 alittlecomputer 阅读(181) 评论(0) 推荐(0)
摘要:集合属性 在Spring中可以通过一组内置的xml标签(如:<list>,<set>,<map>)来配置集合属性。 配置java.util.List类型的属性,需要制定<list>标签,在标签里面包含一些元素,这些标签可以通过<value>指定简单的常量值,通过<ref>指定对其他Bean的引用,通 阅读全文
posted @ 2017-05-19 22:35 alittlecomputer 阅读(288) 评论(0) 推荐(0)
摘要:注入参数详解:null值和级联属性 可以使用专用的<null/>元素标签为Bean的字符串或其他对象类型的属性注入null值。 和Struts,Hiberante等框架一样,Spring支持级联属性的配置。 可以如下设置null值 输出结果 看下面级联属性的赋值 下面是输出结果,注意:属性需要先初始 阅读全文
posted @ 2017-05-19 21:27 alittlecomputer 阅读(214) 评论(0) 推荐(0)
摘要:注入的方式:1.属性注入(setter方法)2.构造方法注入3.p名称空间注入 复杂属性的注入:1.对象的注入2.数组注入&List集合注入&Map注入&Properties注入 属性注入 属性注入就是通过setter方法注入Bean的属性值或依赖的对象。 属性植入使用<property>元素,使用 阅读全文
posted @ 2017-05-18 22:46 alittlecomputer 阅读(176) 评论(0) 推荐(0)
摘要:这次课我们详细理解一下Spring,理解每一行代码到底是什么意思。 我们在上次的代码上做一点修改: Persion.java 1 package com.study.entity; 2 3 public class Persion { 4 5 private String name; 6 priva 阅读全文
posted @ 2017-05-18 21:41 alittlecomputer 阅读(207) 评论(0) 推荐(0)
摘要:今天先不讲Spring是什么。我们直接通过代码来看Spring框架的一下基本用法。以此来看Spring到底是什么。 我们使用Eclipse来作为IDE,因为Eclipse是免费的。 首先,我们创建一个Maven的项目。 在Eclipse中点击File,New,Maven Project 我们得到一个 阅读全文
posted @ 2017-05-17 22:17 alittlecomputer 阅读(235) 评论(0) 推荐(0)
摘要:从Java虚拟机的角度来讲,只存在两种不同的类加载器:一种是启动类加载器(Bootstrap ClassLoader),这个类加载器使用C++语言实现,是虚拟机自身的一部分,另外一种就是所有其他的类加载器,这些类加载器都由Java语言实现,独立于虚拟机外,并且全都继承自抽象类java.lang.Cl 阅读全文
posted @ 2017-05-12 15:20 alittlecomputer 阅读(308) 评论(0) 推荐(0)
摘要:Java虚拟机规范中并没有进行强制玉树什么情况下需要开始类加载过程。但是对于初始化阶段,虚拟机规范则是严格规定了有且仅有5种情况必须立即对类进行“初始化”(而加载,验证,准备自然需要在此之前开始): 1.遇到new,getstatic,putstatic,或invokestatic这4条字节码指令时 阅读全文
posted @ 2017-05-12 11:07 alittlecomputer 阅读(5013) 评论(2) 推荐(2)
摘要:虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验,转换解析和初始化,最总形成可以被虚拟机直接使用的Java类型。这就是虚拟机的类加载机制。 类加载的过程: 类从被加载到虚拟机内存中开始,到卸载出内存位置,它的整个生命周期包括:加载(Loading),验证(Verification), 阅读全文
posted @ 2017-05-12 09:51 alittlecomputer 阅读(167) 评论(0) 推荐(0)
摘要:先看代码 阅读全文
posted @ 2017-05-11 21:36 alittlecomputer 阅读(151) 评论(0) 推荐(0)
摘要:先看代码 还有一个方法 阅读全文
posted @ 2017-05-11 21:16 alittlecomputer 阅读(163) 评论(0) 推荐(0)
摘要:先看代码 阅读全文
posted @ 2017-05-11 20:57 alittlecomputer 阅读(161) 评论(0) 推荐(0)
摘要:x称为一个长度为n的数组的a的主元素,如果这个数组里面等于x的元素的数目不少于n/2个。 例如,a={2,3,2,2,5,3,2,4,2},x=2就是这个主元素。给定包含n个元素的数组a,主元素问题就是判断数组a是否包含一个主元素x。 三个方法实现: 方法一: 求中文书,主元素可定是中位数,否则该元 阅读全文
posted @ 2017-05-11 20:39 alittlecomputer 阅读(2452) 评论(0) 推荐(0)
摘要:如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。 虽然我们在对各种收集器进行比较,但是并非为了挑出一个最好的收集器。因为直到现在为止还没有最好的收集器出现,更加没有万能的收集器,所以我们选择的只是对具体应用最合适的收集器。 1.Serial收集器(串行收集器) 这个收集器是一 阅读全文
posted @ 2017-05-11 18:05 alittlecomputer 阅读(314) 评论(0) 推荐(0)
摘要:根据对象的存活率(年龄)Java堆内存划分为3种,新生代,老年代,永久代; 1.新生代 比如我们在方法中区new一个对象,那这方法调用完毕后,对象就会被回收,这就是一个典型的新生代对象。 现在的商业虚拟机都采用这种手机算法来回收新生代,新生代中的对象98%都是朝生夕死的,所以并不需要按照1:1的比例 阅读全文
posted @ 2017-05-10 15:19 alittlecomputer 阅读(1913) 评论(1) 推荐(0)
摘要:1.标记-清除算法 概念 标记阶段:先通过根节点,标记所有从根节点开始的可达对象,因此,未被标记的对象就是未被引用的垃圾对象; 清除阶段:清除所有未被标记的对象。 缺点: 标记和清除的过程效率不高(标记和清除都需要从头便利到尾) 标记清除后会产生大量不连续的碎片。 2.复制算法 概念: 将原有的内存 阅读全文
posted @ 2017-05-10 09:57 alittlecomputer 阅读(320) 评论(0) 推荐(0)
摘要:当对象不馁引用的时候,这个对象就是死亡的,等待GC进行回收。 1.引用计数法 概念: 给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就增加1;当应用失效时,计数器值就减1;任何时刻计数器为0是对象就是不可能再被使用的。 但是: 主流的java虚拟机并没有选用引用计数器算法,其中一个最主 阅读全文
posted @ 2017-05-09 15:08 alittlecomputer 阅读(1325) 评论(0) 推荐(0)
摘要:可达的/可触及的 Java对象呗创建后,如果被一个或者多个变量引用,那就是可达的,即从根节点可以触及到这个对象。 其实就是从根节点扫描,只要这个对象在引用链中,那就是可触及的。 可恢复的 Java对象不再被任何变量引用就进入了可恢复状态。 在回收该对象之前,该对象的finalize()方法进行资源整 阅读全文
posted @ 2017-05-09 09:39 alittlecomputer 阅读(672) 评论(0) 推荐(0)
摘要:Java程序在运行时,需要在内存中分配空间。为了提高运行效率,就对数据进行了不同的空间划分。因为每一片区域都有特定的数据处理方式和内存管理方式。 具体分为5种内存空间: 程序计数器:保证线程切换后能恢复到原来的执行位置。 虚拟机栈:(栈内存)为虚拟机执行java方法服务,方法被调用时,创建栈帧- 本 阅读全文
posted @ 2017-05-09 09:29 alittlecomputer 阅读(3566) 评论(0) 推荐(1)
摘要:强引用 用的最广,我们平时写代码时,new一个Object存放在堆内存,然后用一个引用指向它。它就是强引用。 如果一个对象具有强引用,那么垃圾回收期绝不会回收它,当内存空间不足,java虚拟机宁愿抛出OutOfMemoryError错误,使程序终止异常,也不会随意回收具有强引用的对象来解决内存不足问 阅读全文
posted @ 2017-05-08 11:34 alittlecomputer 阅读(254) 评论(0) 推荐(0)
摘要:转自http://www.cnblogs.com/selene/p/4604605.html 话不多说,先看看原始的JDBC程序代码,看看这样的代码存在什么样子的问题。 package com.utils; import java.sql.Connection; import java.sql.Dr 阅读全文
posted @ 2017-05-07 20:44 alittlecomputer 阅读(251) 评论(0) 推荐(0)
摘要:输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空) 阅读全文
posted @ 2017-05-06 21:42 alittlecomputer 阅读(221) 评论(0) 推荐(0)
摘要:输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。 阅读全文
posted @ 2017-05-06 21:17 alittlecomputer 阅读(248) 评论(0) 推荐(0)
摘要:import java.util.ArrayList; import java.util.Queue; import java.util.LinkedList; /** public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode... 阅读全文
posted @ 2017-05-06 17:20 alittlecomputer 阅读(212) 评论(0) 推荐(0)
摘要:Statement用于执行不带参数的简单SQL语句,并返回它所生成的结果,每次执行SQL豫剧时,数据库都要编译该SQL语句。 PreparedStatement表示预编译的SQL语句的对象,用于执行带参数的预编译的SQL语句。 CallableStatement则提供了用来调用数据库中存储过程的接口 阅读全文
posted @ 2017-05-06 14:21 alittlecomputer 阅读(4918) 评论(0) 推荐(1)
摘要:JSP使用动作来动态的插入文件,实现重定向和对JavaBean的引用等功能。它公有6个基本动作:jsp:include,jsp:useBean,jsp:setProperty,jsp:getProperty,jsp:forward和jsp:plugin. 下面对这些动作进行简单介绍: 1.jsp:i 阅读全文
posted @ 2017-05-06 09:26 alittlecomputer 阅读(3729) 评论(0) 推荐(0)
摘要:输出的结果如图所示: 阅读全文
posted @ 2017-05-05 15:35 alittlecomputer 阅读(8495) 评论(0) 推荐(0)