- 博客(137)
- 资源 (1)
- 收藏
- 关注
转载 全面分析 Spring 的编程式事务管理及声明式事务管理(转)
摘要Spring 的事务管理是 Spring 框架中一个比较重要的知识点,该知识点本身并不复杂,只是由于其比较灵活,导致初学者很难把握。本教程从基础知识开始,详细分析了 Spring 事务管理的使用方法,为读者理清思路。先决条件本教程假定您已经掌握了 Java 基础知识,并对 Spring 有一定了解。您还需要具备基本的事务管理的知识,比如:事务的定义,隔离级别的概念,等等
2016-04-27 11:32:47
553
转载 回答阿里社招面试如何准备,顺便谈谈对于Java程序猿学习当中各个阶段的建议
引言 其实本来真的没打算写这篇文章,主要是LZ得记忆力不是很好,不像一些记忆力强的人,面试完以后,几乎能把自己和面试官的对话都给记下来。LZ自己当初面试完以后,除了记住一些聊过的知识点以外,具体的内容基本上忘得一干二净,所以写这篇文章其实是很有难度的。 但是,最近问LZ的人实在是太多了,为了避免重复回答,给自己省点力气,干脆就在这里统一回复了。 其实之前L
2016-04-21 13:57:37
1239
转载 Apache Shiro 快速入门教程,shiro 基础教程
第一部分 什么是Apache Shiro1、什么是 apache shiro :Apache Shiro是一个功能强大且易于使用的Java安全框架,提供了认证,授权,加密,和会话管理如同 Spring security 一样都是是一个权限安全框架,但是与Spring Security相比,在于他使用了和比较简洁易懂的认证和授权方式。
2016-03-31 10:12:24
827
转载 Eclipse vs. IDEA快捷键对比大全
花了一天时间熟悉IDEA的各种操作,将各种快捷键都试了一下,感觉很是不错!于是就整理了一下我经常用的一些Eclipse快捷键与IDEA的对比,方便像我一样使用Eclipse多年但想尝试些改变的同学们。另外推荐个IDEA必装插件Key Promoter ,对于你没用快捷键的操作它都会立即提示对应的快捷键,十分强大。IDEA比较惊艳的一些快捷键我都高亮了,想了解其中的神奇,就装一个IDEA亲自尝试下吧
2016-03-29 14:44:06
575
转载 使用 IDEA + Maven + Git 快速开发 Java Web 应用
目录[-]0. 引言1. 使用 Git 下载源码2. 编写 Maven 项目配置文件3. 使用 IDEA 直接打开 Maven 项目4. 编译源码5. 在 IDEA 中配置 Tomcat6. 以 Debug 方式运行应用程序7. 在 IDEA 中对 Git 进行提交与更新8. 总结0. 引言今天想跟大家分享一下我主要的 Jav
2016-03-29 11:38:59
648
转载 Git Bash+EGit在项目中配合使用最常用方法总结(根据场景使用)
最近在项目中使用Git进行代码管理,之前一直用SVN进行管理,现在谈一谈Git在项目中如何与EGit插件配合使用,高效同步开发。使用过SVN一段时间的人,初识Git一定感觉很别扭,发现会遇到各种各样的问题,感觉没有SVN方便,究其原因是还没有领略到Git之美,没有熟练使用Git。因为我在刚开始的时候就有这样的感觉,当深入研究Git一段时间之后才深深的被Git的魅力吸引,慨叹Linu
2016-03-23 10:50:11
528
转载 IaaS,PaaS及SaaS三种云服务的比较及对应的提供商
what’s IaaS PaaS and SaaS,and what’s the difference? 这些云服务的概念想必大家都已经耳熟能详,而各种云服务,云应用也渗透到了我们的日常生活当中。但是否都能准确了解云服务的概念呢?这里还是再明确一下三者之间的关系及不同之处,典型的提供商及应用场景等。IaaS(基础设施即服务 Infrastructure as a service),正如其名
2016-03-08 15:02:07
2625
转载 Oracle数据库悲观锁与乐观锁详解
Oracle数据库悲观锁与乐观锁是本文我们主要要介绍的内容。有时候为了得到最大的性能,一般数据库都有并发机制,不过带来的问题就是数据访问的冲突。为了解决这个问题,大多数数据库用的方法就是数据的锁定。 数据的锁定分为两种方法,第一种叫做悲观锁,第二种叫做乐观锁。什么叫悲观锁呢,悲观锁顾名思义,就是对数据的冲突采取一种悲观的态度,也就是说假设数据肯定会冲突,所以在数据开始读取的时候就把数据锁
2015-10-28 13:32:25
908
转载 Dubbo架构设计详解
Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合)。从服务模型的角度来看,Dubbo采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象出服务提供方(Provider)和服务消费方(Consumer)两个角色。关于注册中心、协议支持、服务监控等内容,详见后面描述。
2015-10-14 10:06:36
492
转载 终于有SpringMvc与Struts2的对比啦
目前企业中使用SpringMvc的比例已经远远超过Struts2,那么两者到底有什么区别,是很多初学者比较关注的问题,下面我们就来对SpringMvc和Struts2进行各方面的比较: 1.核 心控制器(前端控制器、预处理控制器):对于使用过mvc框架的人来说这个词应该不会陌生,核心控制器的主要用途是处理所有的请求,然后对那些特殊的请求 (控制器)统一的进行处理(字符编码、文件上传
2015-09-14 16:54:58
472
转载 Java反射机制详解
首先,我们在开始前提出一个问题:1.在运行时,对于一个java类,能否知道属性和方法;能否去调用它的任意方法? 答案是肯定的。本节所有目录如下:什么是JAVA的反射机制JDK中提供的Reflection APIJAVA反射机制提供了什么功能获取类的Class对象获取类的Fields获取类的Method获取类的Constructor新建类的实例
2015-08-24 13:57:08
467
1
转载 java 字节流与字符流的区别
字节流与和字符流的使用非常相似,两者除了操作代码上的不同之外,是否还有其他的不同呢?实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操作文件,如图12-6所示。下面以两个写文件的操作为主进行比较,但是在操作时字节流和字符流的操作完成之后都不关闭输出流。范例:使用字节流不关闭执行Java代码
2015-08-24 13:53:04
538
1
转载 深入理解Java内存模型之系列篇
深入理解Java内存模型(一)——基础并发编程模型的分类在并发编程中,我们需要处理两个关键问题:线程之间如何通信及线程之间如何同步(这里的线程是指并发执行的活动实体)。通信是指线程之间以何种机制来交换信息。在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递。在共享内存的并发模型里,线程之间共享程序的公共状态,线程之间通过写-读内存中的公共状态来
2015-08-24 13:29:25
567
转载 堆(heap)和栈(stack)、内存泄漏(memory leak)和内存溢出
简单的可以理解为:heap:是由malloc之类函数分配的空间所在地。地址是由低向高增长的。stack:是自动分配变量,以及函数调用的时候所使用的一些空间。地址是由高向低减少的。一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中
2015-07-24 15:31:30
721
转载 HashMap的原理,HashMap怎样保证key的唯一性
1. HashMap概述 HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 2. HashMap的数据结构 在java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构
2015-07-20 12:01:33
2291
转载 观察者模式
观察者模式 Observer 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。 这个主题对象在状态上发生变化时,会通知所有观察者对象,让它们能够自动更新自己。 观察者模式的组成 抽象主题角色:把所有对观察者对象的引用保存在一个集合中,每个抽象主题角色都可以有任意数量的观察者。抽象主题提供一个接口,可以增加和删除观察者角色。
2015-07-20 00:30:32
301
转载 ApplicationContext的三种实现方式以及在web.xml配置的两种方式
ApplicationContext 是 BeanFactory 接口的子接口,它增强了 BeanFactory 的功能,处于 context 包下。很多时候, ApplicationContext 允许以声明式方式操作容器,无须手动创建。可利用如 ContextLoader 的支持类,在 Web 应用启动时自动创建 ApplicationContext。当然,也可以采用编程方式创建 Applic
2015-07-20 00:10:52
626
转载 web.xml 详细介绍
1、启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取和两个结点。 2、紧急着,容创建一个ServletContext(servlet上下文),这个web项目的所有部分都将共享这个上下文。 3、容器将转换为键值对,并交给servletContext。 4、容器创建中的类实例,创建监听器。 二 Load-on-startupLoad
2015-07-19 23:29:43
261
转载 ?super T 和? extends T区别
?super T 和? extends T区别Java 泛型关键字说明? 通配符类型 表示类型的上界,表示参数化类型的可能是T 或是 T的子类 表示类型下界(Java Core中叫超类型限定),表示参数化类型是此类型的超类型(父类型),直至Objectextends 示例static class Food{}static class Fruit extends F
2015-07-19 23:23:30
345
转载 JAVA集合类详解
集合类说明及区别Collection├List│├LinkedList│├ArrayList│└Vector│ └Stack└SetMap├Hashtable├HashMap└WeakHashMap图解: 还有一张下载来的:Collection接口 Collection是最基本的集合接口,一个Co
2015-07-14 14:18:37
290
转载 java内置锁synchronized的可重入性
java内置锁synchronized的可重入性 当线程请求一个由其它线程持有的对象锁时,该线程会阻塞,而当线程请求由自己持有的对象锁时,如果该锁是重入锁,请求则会成功,否则阻塞. 我们来看看synchronized,它拥有强制原子性的内置锁机制,是一个可重入锁,所以在使用synchronized时,当一个线程请求得到一个对象锁后再次请求此对象锁,可以再
2015-07-14 14:14:37
501
转载 一些常见的项目行为状态
我们是不是经常觉得做项目时,老是不断重复之前项目的错误或问题?跳槽几次后,发现项目管理上总是有些似曾相识的感觉。不要奇怪,这很正常,大象也有过这种经历,我将这些经验总结出来,与各位分享一下。 1、拍脑袋决定完成时间 这个可以说是绝大多数项目的特点。老板一拍脑袋:XX项目一定要在X月X日上线,不管有多大困难都要达到,我只看结果,其它的你们去考虑……问题的关键不是这句话,而是这时根
2015-07-14 11:31:27
1604
转载 TCP长连接与短连接的区别
1. TCP连接当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立是需要三次握手的,而释放则需要4次握手,所以说每个连接的建立都是需要资源消耗和时间消耗的经典的三次握手示意图:经典的四次握手关闭图:2. TCP短连接我们模拟一下TCP短连接的情况,c
2015-07-10 17:07:20
332
转载 JVM性能调优
最近因项目存在内存泄漏,故进行大规模的JVM性能调优 , 现把经验做一记录。一、JVM内存模型及垃圾收集算法 1.根据Java虚拟机规范,JVM将内存划分为:New(年轻代)Tenured(年老代)永久代(Perm) 其中New和Tenured属于堆内存,堆内存会从JVM启动参数(-Xmx:3G)指定的内存中分配,Perm不属于堆内存,有虚拟机直接分配,但可以通过
2015-07-09 14:29:53
336
转载 有了Java6,还需要Axis2、XFire、CXF吗?
首先说明下,对于以上这些开源的框架和JWS,我都用过了。 看了前面一系列Java6 JWS的文章,很显然,无论从开发还是部署角度来说,Java6的JWS都是最容易的。我们不禁回想:有了Java6,还需要Axis2、XFire、CXF吗? 要回答这个问题,需要对几种JWS的实现以及其他功能做个对比就搞明白了。 1、JWS是Java语言对WebServi
2015-06-30 17:07:17
363
转载 struts2线程安全
Struts 2 Action对象为每一个请求产生一个实例,因此没有线程安全问题。Spring的Ioc容器管理的bean默认是单实例的,上一次请求处理的状态信息被保持下来,并影响了下一次的请求,实际上就是Action中的类变量被不同的请求读取,出现错误结果解决:就是不用单例, spring中bean的作用域设为prototype,每个请求对应一个实例.1、Struts1St
2015-06-29 18:01:43
409
转载 Thread的run()与start()的区别
java的线程是通过java.lang.Thread类来实现的。VM启动时会有一个由主方法所定义的线程。可以通过创建Thread的实例来创建新的线程。每个线程都是通过某个特定Thread对象所对应的方法run()来完成其操作的,方法run()称为线程体。通过调用Thread类的start()方法来启动一个线程。在Java当中,线程通常都有五种状态,创建、就绪、运行、阻塞和死亡。
2015-06-26 11:30:59
550
转载 沈询介绍-阿里云DRDS
大家好,我是主持人皮皮,欢迎做客第118期IT名人堂。从进入淘宝的六年时间里,他一直在努力的坚持着把阿里的DRDS做得更好;在六年的时间里,他从只会用SQL写点简单逻辑的数据库新手慢慢成长为一名分布式数据库领域的老手;那么阿里云的DRDS究竟是什么样的神器?作为阿里核心的中间件又是如何演变成“多点开花”的盛世?它们又是如何为阿里的双11大战保驾护航的呢?本期名人堂我们邀请到了阿里资深专家沈洵坐镇,
2015-06-25 14:48:54
8009
转载 Struts2 防止重复提交问题
相信都有表单提交的情况, 很多时候不希望出现重复提交原来的数据, 那么如何防止重复提交问题, 下面我是思考和一些参考整理的结果, 先看看其原理:防止重复提交原理: 首先,在页面访问的时候server端产生一个标志位,其保存在session中,同时该标志位放到访问的页面的某个元素中(通常为隐藏域); 其次,在session存在的有效时间内,没有其它操作时其值保持不
2015-06-24 15:34:31
419
转载 struts2防止表单重复提交的解决方案
一、造成重复提交主要的两个原因: 在平时的开发过程中,经常可以遇到表单重复提交的问题,如做一个注册页面,如果表单重复提交,那么一个用户就会注册多次,重复提交主要由于两种原因。 1、 一是,服务器处理时间久。当用户在表单中填完信息,点击“提交”按钮后,由于服务器反应时间过长没能及时看到响应信息,或者出于其它目的,再次点击“提 交”按钮,从而导致在服务器端接收到两条或多条相同的信息。
2015-06-24 15:33:24
340
转载 WAS中单元(Cell)节点(Node),以及Node、Profile 与 Server 之间的关系是什么
WAS中单元(Cell)节点(Node),以及Node、Profile 与 Server 之间的关系是什么单元:单元是整个分布式网络中一个或多个节点的逻辑分组。单元是一个配置概念,是管理员将节点间逻辑关联起来的实现方法。管理员根据具体的业务环境,制定对其整体系统集成环境有意义的条件来定义和组织构成单元的节点。就一般情况来说,可以将单元看作是最大的作用域。在 IBM WA
2015-05-28 22:59:02
4161
转载 Struts2的值栈和对象栈
目录(?)[-]ValueStack如何得到值栈:如何将对象存入值栈:让值栈执行表达式来获得值:在JSP中跳过栈顶元素直接访问第二层:在JSP中访问值栈对象本身(而不是它们的属性)ActionContextValueStack与ActionContext的联系和区别:如何获得
2015-05-26 11:17:51
4728
1
转载 SpringMVC简单构造restful, 并返回json
文章要要点:快速搭建构造restful的StringMvcGET, POST , PUT , DELETE的各种调用同一资源 多种表述 (ContentNegotiatingViewResolver解析器),既可以返回对象给JSP, 也可以返回JSON快速搭建构造restful的StringMvc首现搭建一个简单的restfulMvc框架
2015-05-22 17:06:54
402
转载 JAVA生成短8位UUID
短8位UUID思想其实借鉴微博短域名的生成方式,但是其重复概率过高,而且每次生成4个,需要随即选取一个。本算法利用62个可打印字符,通过随机生成32位UUID,由于UUID都为十六进制,所以将UUID分成8组,每4个为一组,然后通过模62操作,结果作为索引取出字符,这样重复率大大降低。经测试,在生成一千万个数据也没有出现重复,完全满足大部分需求。代码
2015-05-18 17:30:44
5650
转载 JAVA缓存技术
最近再ITEYE上看到关于讨论JAVA缓存技术的帖子比较多,自己不懂,所以上网大概搜了下,找到一篇,暂作保存,后面如果有用到可以参考。此为转贴,帖子来处:http://cogipard.info/articles/cache-static-files-with-jnotify-and-ehcache介绍 JNotify:http://jnotify.sourceforge.net/,通
2015-05-18 10:15:50
401
转载 Spring MVC 入门实例
一、spring3.1 mvc核心思想介绍 网上下载实例:SpringMVC实例Spring MVC是spring的一个web组件,它为构建稳健的web应用提供了丰富的功能。Spring MVC是基于每个逻辑和功能是高可配置的这样架构和设计的。当然spring MVC可以与其它流行的web框架像struts、webwork、javaserverface及tapestry
2015-04-02 15:02:43
1215
转载 java垃圾回收之Minor GC和Major GC
对Minor GC和Major GC做点笔记 新生代 GC(Minor GC):指发生在新生代的垃圾收集动作,因为 Java 对象大多都具备朝生夕灭的特性,所以 Minor GC 非常频繁,一般回收速度也比较快。 老年代 GC(Major GC / Full GC):指发生在老年代的 GC,出现了 Major GC,经常会伴随至少一次的 Minor G
2015-02-10 18:15:21
621
转载 详解Java GC的工作原理+Minor GC、Full GC
JVM内存管理和JVM垃圾回收 JVM内存组成结构JVM内存结构由堆、栈、本地方法栈、方法区等部分组成,结构图如下所示:1)堆所有通过new创建的对象的内存都在堆中分配,其大小可以通过-Xmx和-Xms来控制。堆被划分为新生代和旧生代,新生代又被进一步划分为Eden和Survivor区,最后Survivor由FromSpace和ToSpace组成,结构图如下
2015-02-10 17:19:48
425
转载 Minor GC 过程
如果Eden空间占满了, 会触发 minor GC。 Minor GC 后仍然存活的对象会被复制到S0中去。这样Eden就被清空可以分配给新的对象。又触发了一次 Minor GC , S0和Eden中存活的对象被复制到S1中, 并且S0和Eden被清空。 在同一时刻, 只有Eden和一个Survivor Space同时被操作。当每次对象从Eden复制到Survivor Space或者从
2015-02-10 17:13:47
654
转载 算法的时间复杂度和空间复杂度-总结
算法的时间复杂度和空间复杂度-总结 通常,对于一个给定的算法,我们要做两项分析。第一是从数学上证明算法的正确性,这一步主要用到形式化证明的方法及相关推理模式,如循环不变式、数学归纳法等。而在证明算法是正确的基础上,第二部就是分析算法的时间复杂度。算法的时间复杂度反映了程序执行时间随输入规模增长而增长的量级,在很大程度上能很好反映出算法的优劣与否。因此,作为程序员,掌握基本的算法时
2015-02-10 17:01:19
497
bootstrap-3.2.0源码
2014-08-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人