随笔分类 - Java
摘要:Mybatis教程: https://blog.csdn.net/hellozpc/article/details/80878563 sql语句的参数类型 parameterType有简单类型(8个基本类型和String)以及对象类型。有两种获取参数值的方法 #{字段名}:若参数类型为对象类型时,字
阅读全文
摘要:一、简介 iBatis是一款简单的数据访问工具,也可作为数据持久层的框架。对比于Hibernate虽然在对象属性的扩展上修改麻烦,但是对SQL的集中管理和主动权。 iBatis的最大优点是简便,轻量级,仅需iBatis的一个jar和数据库的驱动即可运行,而且使用iBatis仅需掌握SQL和XML的用
阅读全文
摘要:Java内部类 内部类又称为嵌套类,是在类中定义另外一个类。内部类可以处于方法内/外,内部类的成员变量/方法名可以和外部类的相同。内部类编译后会成为完全不同的两个类,分别为outer.class和outer$inner.class类。外部类只能是public或者默认。 内部类的作用 1. 内部类可以
阅读全文
摘要:ehcache 1. 基本介绍EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认CacheProvider。Ehcache是一种广泛使用的开源Java分布式缓存。主要面向通用缓存,Java EE和轻量级容器。它具有内存和磁盘存储,缓存加载器,缓存扩展,
阅读全文
摘要:参考:SpringBoot教程 Spring Boot是为了简化Spring应用的创建、运行、调试、部署等而出现的,使用它可以做到专注于Spring应用的开发,而无需过多关注XML的配置。Spring Boot特性如下: 创建独立Spring应用程序 嵌入式Tomcat,Jetty容器,无需部署WA
阅读全文
摘要:Eclipse JDK:build path 是运行时环境 ,compiler 是编译时环境 。运行时的JDK级别必须高于或等于compiler才能兼容。Project Facets表明项目特性(java项目,Web项目等,其选项可能影响项目的目录结构)Java Compiler选择的版本必须和'P
阅读全文
摘要:不可变对象(immutable objects):一旦对象被创建,它们的状态就不能被改变(包括基本数据类型的值不能改变,引用类型的变量不能指向其他的对象,引用类型指向的对象的状态也不能改变),每次对他们的改变都是产生了新的对象。JDK本身就自带了immutable类,比如String,Integer
阅读全文
摘要:参考: Java并发编程:volatile关键字解析 正确使用 Volatile 变量 volatile修饰被不同线程访问和修改的变量,共享变量包括所有的实例变量,静态变量和数组元素。volatile变量修饰符如果使用恰当的话,它比synchronized的使用和执行成本会更低,因为它不会引起线程上
阅读全文
摘要:public class JsonUtil { public static boolean compareJsonText(String str1, String str2) { return compareJsonNode(JsonUtil.readTree(str1), JsonUtil.readTree(str2)); } public ...
阅读全文
摘要:一般的类和方法中只能使用具体的类型,如果要使编写的代码可以应用于多种类型,可以使用多态或泛型。但是多态在定义时必须指定相应的基类或接口,由于类可以不断扩展,因此单继承体系会带来一定的性能损耗;而接口对程序约束性太强,代码必须使用特定的接口。使用泛型则可以编写更加通用的代码,使得代码能够应用于“某种不
阅读全文
摘要:一、JDBC(Java Database Connectivity) JDBC是Java语言中访问数据库的应用程序接口,可以为多种关系数据库提供统一访问。 jdbc.properties 测试类 二、DBCP JDBC的访问模式存在以下问题: 1. 现在的Web应用经常有几千人同时访问,然而频繁的进
阅读全文
摘要:1. Class.forName 和 import 区别 Class.forName在运行时加载相应的类到JVM内存中,然后初始化一个Class对象(注意不是类的实例),并初始化所有的static成员,执行static{}代码块。如下的com.mysql.jdbc.Driver类中的静态代码将Dri
阅读全文
摘要:参考文章 http://haolloyin.blog.51cto.com/1177454/333257 代理模式(Proxy):为其他对象提供一种代理以控制对这个对象的访问。代理需要代理类和被代理类有相同的对外接口。 1. 静态代理 2. 动态代理 动态代理具有更强的灵活性,因为它不用在我们设计实现
阅读全文
摘要:参考文章 http://www.cnblogs.com/geason/p/5774096.html http://www.iteye.com/magazines/132-Java-NIO 阻塞I/O通信模型存在以下缺点: 1. 当客户端多时,会创建大量的处理线程。且每个线程都要占用栈空间和一些CPU
阅读全文
摘要:一、抽象类 抽象类是普通的类和接口之间的一种中庸之道。 1. 如果一个类包含抽象方法,该类必须被限定为抽象类。 2. 抽象类可以不含任何抽象方法(一般用来阻止产生该类的对象,抽象类不可以用new创建对象,因为调用抽象方法没意义) 3. 抽象方法必须为public或者protected(因为如果为pr
阅读全文
摘要:一、final final数据 必须在域的定义处或每个构造器中用表达式对final进行赋值,java允许函数参数声明为final,这意味着在方法中无法更改此参数。final的基本类型表示值不可变,引用类型表示无法将其指向另一个对象,但对象本身内容可以修改。 final方法 final方法明确禁止覆盖
阅读全文
摘要:初始化和清理是影响代码安全的两个重要因素。 一、初始化 1. 方法重载 构造器与类名相同,成为强制重载方法名的原因之一。重载规则:每个重载的方法必须拥有独一无二的参数类型列表。不能根据返回值来区分重载方法。 Java基本类型的自动提升:byte(1) -> short/char(2) -> int(
阅读全文
摘要:数组与容器的区别: 1)数组是一个简单的线性序列,其存储和随机访问对象引用序列的效率最高。但是数组对象的大小是固定的。2)数组强调的是性能而不是灵活性,只有当性能成为问题时才使用数组,不然通常都使用容器。3)数组可以持有基本类型,但有了额外的自动包装机制和泛型,在容器中持有基本类型就很容易了。泛型可
阅读全文
摘要:一、 适配器模式 1. 概述 将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。 2. 模式中的角色 Target: 目标接口,客户所期待的接口。目标可以是具体的或抽象的类,也可以是接口。 Adaptee:需要适配的类或适配者类
阅读全文