JAVA
千里码万里行
无码不欢
展开
-
Spring中bean的生命周期
Spring 中bean 的生命周期短暂吗?在spring中,从BeanFactory或ApplicationContext取得的实例为Singleton,也就是预设为每一个Bean的别名只能维持一个实例,而不是每次都产生一个新的对象使用Singleton模式产生单一实例,对单线程的程序说并不会有什么问题,但对于多线程的程序,就必须注意安全(Thread-safe)的议题,防止多个线程同时转载 2016-08-18 23:27:01 · 242 阅读 · 0 评论 -
Servlet工作原理解析
一、从servlet容器说起 Servlet容器有很多种实现,比如:Jetty、Tomcat,这里以Tomcat为例介绍。在Tomcat的容器等级中,Context容器直接管理Servlet在容器中的包装类Wrapper,所以Context容器如何运行将直接影响Servlet的工作方式。Tomcat容器模型如下图: 从上图可以看出,Tomca转载 2016-08-21 20:14:59 · 2956 阅读 · 0 评论 -
Servlet 工作原理解析
Servlet 工作原理解析Web 技术成为当今主流的互联网 Web 应用技术之一,而 Servlet 是 Java Web 技术的核心基础。因而掌握 Servlet 的工作原理是成为一名合格的 Java Web 技术开发人员的基本要求。本文将带你认识 Java Web 技术是如何基于 Servlet 工作,你将知道:以 Tomcat 为例了解 Servlet 容器是如何工作的转载 2016-08-21 20:18:43 · 759 阅读 · 0 评论 -
大数据量下的分页解决方法
三种主流数据库的分页语句:SQL SERVER: String sql = "select top " + pageSize + "* from XXX where id not in " + "(select top " + pageSize * (pageNumber-1) + "id from XXX order by id)" + "order by id";转载 2016-08-10 08:30:51 · 4533 阅读 · 0 评论 -
Java JDBC中的Statement和PreparedStatement
以Oracle为例吧Statement为一条Sql语句生成执行计划,如果要执行两条sql语句select colume from table where colume=1;select colume from table where colume=2;会生成两个执行计划一千个查询就生成一千个执行计划!PreparedStatement用于使用绑定变量重用执行计划转载 2016-08-10 08:36:16 · 298 阅读 · 0 评论 -
主键和唯一索引的区别
-- 区别 主键是一种约束,唯一索引是一种索引,两者在本质上是不同的。主键创建后一定包含一个唯一性索引,唯一性索引并不一定就是主键。唯一性索引列允许空值,而主键列不允许为空值。主键列在创建时,已经默认为空值 + 唯一索引了。主键可以被其他表引用为外键,而唯一索引不能。一个表最多只能创建一个主键,但可以创建多个唯一索引。主键更适合那些不容易更改转载 2016-08-10 08:39:27 · 362 阅读 · 0 评论 -
主键、唯一键与唯一索引的区别
原文地址:http://blog.sina.com.cn/s/blog_82ee2ee60100xwl4.html这篇文章的意义已经理解,但是他举得例子不错,保存下来,下次想看的时候可以参考一下。 一般,我们看到术语“索引”和“键”交换使用,但实际上这两个是不同的。索引是存储在数据库中的一个物理结构,键纯粹是一个逻辑概念。键代表创建来实施业务规则的完整性约束。索引和键的转载 2016-08-10 08:40:10 · 2977 阅读 · 0 评论 -
sql语句优化
sql语句优化 性能不理想的系统中除了一部分是因为应用程序的负载确实超过了服务器的实际处理能力外,更多的是因为系统存在大量的SQL语句需要优化。为了获得稳定的执行性能,SQL语句越简单越好。对复杂的SQL语句,要设法对之进行简化。常见的简化规则如下: 1)不要有超过5个以上的表连接(JOIN)2)考虑使用临时表或表变量存放中间结果。3)少用子查询4)转载 2016-08-10 08:42:19 · 283 阅读 · 0 评论 -
SpringMVC深度探险(二) —— SpringMVC概览
本文是专栏文章(SpringMVC深度探险)系列的文章之一,博客地址为:http://downpour.iteye.com/blog/1330596。 对于任何事物的研究,总是由表及里、由浅入深地进行。在本系列的第二篇文章中,我们将通过不同的观察视角,对SpringMVC做一些概要性的分析,帮助大家了解SpringMVC的基本构成要素、SpringMVC的发展历程以及SpringMVC的设转载 2016-08-22 21:48:40 · 288 阅读 · 0 评论 -
SpringIOC--初始化源码解析
IOC容器的初始化过程步骤第一步Resource定位过程 在上一篇Spring从入门到精通(一)----IoC(控制反转) 中,详细的介绍了IOC的基本原理,本篇博客就不再赘述;这次主要是从源码的角度来给大家分享SpringIOC的初始化过程。深入的了解其原理。 SpringIOC容器的关键两个主要的容器系列: BeanF转载 2016-08-20 20:18:01 · 266 阅读 · 0 评论 -
Spring从入门到精通(一)----IoC(控制反转)
理论背景什么是控制反转IoC理论背景 在采用面向对象方法设计的软件系统中,它的底层实现都是由N个对象组成的,所有的对象通过相互合作,最终实现系统的业务逻辑。 如果我们打开机械手表的后盖,就会看到与上面类似的情景,各个齿轮分别带动时针、分针和秒针顺时针旋转,从而在表盘上产生正确的时间。上图描述的的就是这样的一个齿轮组,他拥有多个独立的齿轮,转载 2016-08-20 20:14:24 · 346 阅读 · 0 评论 -
什么是java序列化,如何实现java序列化?或请解释Serializable接口的作用
首先要明确序列化的目的: 1.无论何种类型的数据,都是以二进制的形式在网络上传送,为了由一个进程把Java对象发送给另一个进程,需要把其转换为字节序列才能在网络上传送,把JAVA对象转换为字节序列的过程就称为对象的序列化,将字节序列恢复成Java对象的过程称为对象的反序列化,(然后java.io.ObjectOutPutStream的writeObject(Object obj)的方转载 2016-08-09 00:19:15 · 10759 阅读 · 0 评论 -
Java容器类的深入理解
Java容器类包含List、ArrayList、Vector及map、HashTable、HashMap ArrayList和HashMap是异步的,Vector和HashTable是同步的,所以Vector和HashTable是线程安全的,而ArrayList和HashMap并不是线程安全的。因为同步需要花费机器时间,所以Vector和HashTable的执行效率要低于ArrayList转载 2016-08-18 23:32:19 · 326 阅读 · 0 评论 -
JAVA容器
容器可以管理对象的生命周期、对象与对象之间的依赖关系,您可以使用一个配置文件(通常是XML),在上面定义好对象的名称、如何产生(Prototype 方式或Singleton 方式)、哪个对象产生之后必须设定成为某个对象的属性等,在启动容器之后,所有的对象都可以直接取用,不用编写任何一行程序代码来产生对象,或是建立对象与对象之间的依赖关系执行JAVA的应用程序容器(Container)转载 2016-08-18 23:37:16 · 242 阅读 · 0 评论 -
java中的容器讲解
细说Java之util类:线性表,链表,哈希表是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构。这些类均在java.util包中。本文试图通过简单的描述,向读者阐述各个类的作用以及如何正确使用这些类。Collection├List│├LinkedList│├ArrayList│└Vector│└Stack└Se转载 2016-08-18 23:40:44 · 204 阅读 · 0 评论 -
初识轻量级Java开源框架 --- Spring
spring是一个轻量级Java框架,其核心思想就是DI(Dependency Injection,即依赖注入)和IoC(Inversion of Control,即控制反转),因为其开源、低侵入性,现在已经席卷了很大一部分市场,其最大竞争对手乃是JavaEE框架EJB。EJB3.0以前,由于其笨重以及使用繁琐,被人们无奈弃用,取而代之就是spring,但是spring也有它的局限性,就是spri转载 2016-08-18 23:47:11 · 1372 阅读 · 0 评论 -
什么叫死锁?产生死锁的条件和预防死锁的各种方法
什么叫死锁?所谓死锁: 是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。那么为什么会产生死锁呢?1.因为系统资源不足。2.进程运行推进的顺序不合适。 3.资源分配不当。1、产生死锁的四个必要条件并举个例子说明死锁的产生首先我们要明白死锁的定义,死锁是两个或多个进程对资源的需求引起的冲突,可以做个转载 2016-08-08 00:46:47 · 2264 阅读 · 4 评论 -
一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?
这个是可以的,一个“.java”源文件里面可以包含多个类,但是只允许有一个public类,并且类名必须和文件名一致。每个编译单元只能有一个public 类。这么做的意思是,每个编译单元只能有一个公开的接口,而这个接口就由其public 类来表示。你可以根据需要,往这个文件里面添加任意多个提供辅助功能的package 权限的类。但是如果这个编译单元里面有两个或两个以上的public 类的转载 2016-08-08 00:51:14 · 2625 阅读 · 5 评论 -
Java中的异常处理机制的简单原理和应用
异常是指java程序运行时(非编译)所发生的非正常情况或错误,与现实生活中的事件很相似,现实生活中的事件可以包含事件发生的时间、地点、人物、情节等信息,可以用一个对象来表示,Java使用面向对象的方式来处理异常,它把程序中发生的每个异常也都分别封装到一个对象来表示的,该对象中包含有异常的信息。 Java对异常进行了分类,不同类型的异常分别用不同的Java类表示,所有异常的根类为java.转载 2016-08-08 00:57:46 · 837 阅读 · 2 评论 -
深入Synchronized和java.util.concurrent.locks.Lock的区别详解
主要相同点:Lock能完成Synchronized所实现的所有功能。主要不同点:Lock有比Synchronized更精确的线程予以和更好的性能。Synchronized会自动释放锁,但是Lock一定要求程序员手工释放,并且必须在finally从句中释放。synchronized 修饰方法时 表示同一个对象在不同的线程中 表现为同步队列如果实例化不同的对象 那么synchronized转载 2016-08-08 23:57:23 · 301 阅读 · 0 评论 -
关于JAVA多线程同步
因为需要,最近关注了一下JAVA多线程同步问题。JAVA多线程同步主要依赖于若干方法和关键字。将心得记录如下:1 wait方法: 该方法属于Object的方法,wait方法的作用是使得当前调用wait方法所在部分(代码块)的线程停止执行,并释放当前获得的调用wait所在的代码块的锁,并在其他线程调用notify或者notifyAll方法时恢复到竞争锁状态(一转载 2016-08-09 00:07:44 · 267 阅读 · 0 评论 -
Spring mvc 原理浅析
Spring MVC主要包括以下要点:1:由DispatcherServlet控制的整个流程;2:注解驱动的控制器,其中包括请求映射、数据的绑定和格式化;3:文件上传;4:一些杂项,如静态资源处理、异常处理等等。这些东西构成了精致的Spring MVC框架,下面我将针对这些要点做详细讨论,以期其能在开发上对各位观众有些作用。1. Spring M转载 2016-08-22 21:59:25 · 520 阅读 · 0 评论 -
SpringMVC学习——组件解析
SpringMVC学习——组件解析Spring MVC框架结构图前端控制器(DispatcherServlet) 控制器组件(Controller) 处理器映射器组件(HandlerMapping) 处理器适配器组件(HandlerAdapter)拦截器组件(HandlerInterceptor)视图解析器转载 2016-08-22 22:07:54 · 893 阅读 · 0 评论 -
Java实现几种常见排序方法
日常操作中常见的排序方法有:冒泡排序、快速排序、选择排序、插入排序、希尔排序,甚至还有基数排序、鸡尾酒排序、桶排序、鸽巢排序、归并排序等。冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。转载 2016-10-13 22:44:52 · 327 阅读 · 0 评论 -
mysql为utf8为什么网页返回数据及写入mysql数据库均为乱码?
原创 2017-02-16 01:12:24 · 431 阅读 · 0 评论 -
SpringMVC4+thymeleaf3的一个简单实例(篇二:springMVC与thymeleaf的整合)
开始之前,我们首先要准备一些东西:以下12个jar文件:spring-aop-4.3.3.RELEASE.jarspring-beans-4.3.3.RELEASE.jarspring-context-4.3.3.RELEASE.jarspring-core-4.3.3.RELEASE.jarspring-expression-4.3.3.RELEASE.jarsp转载 2018-01-22 17:26:43 · 1219 阅读 · 0 评论 -
ORACLE分页查询SQL语法——最高效的分页
--1:无ORDER BY排序的写法。(效率最高)--(经过测试,此方法成本最低,只嵌套一层,速度最快!即使查询的数据量再大,也几乎不受影响,速度依然!)SELECT * FROM (SELECT ROWNUM AS rowno, t.* FROM emp t WHERE hire_date BETWEEN TO_DATE转载 2018-01-15 00:09:14 · 331 阅读 · 0 评论 -
thymeleaf解析html5标签出错(没有结束符)解决办法
thymeleaf对html标签强类型检查,处理如下;1. 导入LEGACYHTML5依赖jar包 net.sourceforge.nekohtml nekohtml 1.9.22 2. 修改thymeleaf模板参数配置,由HTML5-->LEGACYHTML53. 重启server,完成原创 2018-02-01 18:43:04 · 1028 阅读 · 0 评论 -
SpringBoot+Thymeleaf实现html文件引入(类似include功能)
由于对高大上的前端处理不太熟悉,想直接通过MVC的方式进行内容传递,因此选用了Thymeleaf模版处理向前端传值的问题。但是觉得很多PHP框架所实现的include模版的方式很不错,能够很好的实现头文件、导航、页尾等和主要内容的解耦,因此想通过使用Thymeleaf模版的同时,也能实现类似于include的功能。思路和背景觉得如果有精力,最好还是RESTFul的结构,然后前端采用ang转载 2018-01-26 13:58:49 · 9972 阅读 · 0 评论 -
OOA/OOD/OOP的区别[转]
这是一个故事: "工程師修了一條隧道,隧道的一端就是美麗的風景,很多人會開車通過隧道.雖然隧道內已經有燈了,但是設計者擔心隧道可能會停電,所以在隧道的入口立了牌子,提醒駕駛員進入隧道前開燈.可是由此却使得駕駛員由於看到美麗的風景而忘記關燈的情況的發生." 引来对ooa,ood,oop的理解; 分析师拿到了政府,民众,组织,社团等的需求,这里泛指所有来自客户的需求了;了解需求,分析需求,分析技术实现...转载 2018-03-15 09:53:18 · 358 阅读 · 0 评论 -
身份证接口文档
https://www.juhe.cn/docs/api/id/153接口地址:http://v.juhe.cn/certificates/typeList.php返回格式:json请求方式:get/post请求示例:http://v.juhe.cn/certificates/typeList.php?key=您申请的appkey接口备注:查询支持的证件类型清单请求参数说明: 名称必填类型说明 k...转载 2018-03-13 16:44:06 · 1491 阅读 · 0 评论 -
递归求阶乘
JAVA递归求阶乘原创 2018-12-20 15:21:14 · 779 阅读 · 0 评论 -
Java开发中的23种设计模式详解
一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式转载 2016-09-26 22:50:12 · 364 阅读 · 0 评论 -
JAVA23种设计模式全解析
一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式转载 2016-09-26 22:46:50 · 3465 阅读 · 2 评论 -
Java多线程学习(吐血超详细总结)
目录(?)[-]一扩展javalangThread类二实现javalangRunnable接口三Thread和Runnable的区别四线程状态转换五线程调度六常用函数说明使用方式为什么要用join方法七常见线程名词解释八线程同步九线程数据传递 本文主要讲了java中多线程的使用方法、线程同步、线程数据传递、线程状态及相转载 2016-10-11 19:10:55 · 424 阅读 · 0 评论 -
Java中List集合的遍历
一、对List的遍历有三种方式 List list = new ArrayList(); list.add("testone"); list.add(“testtwo”); ... 第一种: for(Iterator it = list.iterat转载 2016-08-11 01:36:56 · 2132 阅读 · 0 评论 -
Java学习之Iterator(迭代器)的一般用法
迭代器(Iterator) 迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构。迭代器通常被称为“轻量级”对象,因为创建它的代价小。 Java中的Iterator功能比较简单,并且只能单向移动: (1) 使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返转载 2016-08-11 13:31:49 · 258 阅读 · 0 评论 -
Iterator的remove方法可保证从源集合中安全地删除对象
如果对正在被迭代的集合进行结构上的改变(即对该集合使用add、remove或clear方法),那么迭代器就不再合法(并且在其后使用该迭代器将会有ConcurrentModificationException异常被抛出).如果使用迭代器自己的remove方法,那么这个迭代器就仍然是合法的。package chapter1;import java.util.HashMap;i转载 2016-08-11 13:34:54 · 9107 阅读 · 0 评论 -
JDBC的工作原理
工作原理流程:装载驱动程序---->获得数据库连接---->使用Statement或PreparedStatement执行SQL语句----> 返回执行的结果---->关闭相关的连接JDBC 原理浅析一.本节目的:了解JDBC的概念及工作原理写在详解前对JAVA基础知识的回顾:JAVA接口:是一系列方法的声明,是一些方法特征的集合,转载 2016-08-12 00:45:43 · 420 阅读 · 0 评论 -
Java使用JDBC连接数据库的实现方法
本文实例讲述了Java使用JDBC连接数据库的实现方法,是Java数据库程序设计里非常实用的重要技巧。分享给大家供大家参考。具体如下:JDBC(Java Data Base Connectivity)数据库连接,通常我们在编写web应用或java应用程序要连接数据库时就要使用JDBC。使用JDBC连接数据库一般步骤有:1、加载驱动程序?1转载 2016-08-12 00:52:04 · 588 阅读 · 0 评论