05 2016 档案

摘要:上篇通过一个简单的例子说明了线程安全与不安全,在例子中不安全的情况下输出的结果恰好是逐个递增的(其实是巧合,多运行几次,会产生不同的输出结果),为什么会产生这样的结果呢,因为建立的Count对象是线程共享的,一个线程改变了其成员变量num值,下一个线程正巧读到了修改后的num,所以会递增输出。 要说 阅读全文
posted @ 2016-05-31 00:01 CSniper 阅读(331) 评论(0) 推荐(0)
摘要:作为一个Java Web开发人员,很少也不需要去处理线程,因为服务器已经帮我们处理好了。记得大一刚学Java的时候,老师带着我们做了一个局域网聊天室,用到了AWT、Socket、多线程、I/O,编写的客户端和服务器,当时做出来很兴奋,回学校给同学们演示,感觉自己好NB,呵呵,扯远了。上次在百度开发者 阅读全文
posted @ 2016-05-30 23:59 CSniper 阅读(420) 评论(0) 推荐(0)
摘要:1 背景 1 1.1 MVCC:Snapshot Read vs Current Read 2 1.2 Cluster Index:聚簇索引 3 1.3 2PL:Two-Phase Locking 3 1.4 Isolation Level 4 2 一条简单SQL的加锁实现分析 5 2.1 组合一: 阅读全文
posted @ 2016-05-30 22:38 CSniper 阅读(331) 评论(0) 推荐(0)
摘要:原文出处: 陶邦仁 Spring事务机制主要包括声明式事务和编程式事务,此处侧重讲解声明式事务,编程式事务在实际开发中得不到广泛使用,仅供学习参考。 Spring声明式事务让我们从复杂的事务处理中得到解脱。使得我们再也无需要去处理获得连接、关闭连接、事务提交和回滚等这些操作。再也无需要我们在与事务相 阅读全文
posted @ 2016-05-28 00:49 CSniper 阅读(19388) 评论(1) 推荐(1)
摘要:原文出处: hollischuang(@Hollis_Chuang) 作为一个Java开发人员,经常要和各种各样的工具打交道,除了我们常用的IDE工具以外,其实还有很多工具是我们在日常开发及学习过程中要经常使用到的。博主偏爱使用在线工具,因为个人觉得这样比较方便。本文就总结了一下我常用的在线工具。欢 阅读全文
posted @ 2016-05-28 00:37 CSniper 阅读(720) 评论(0) 推荐(1)
摘要:项目中常常用到搜索,特别是导航类的网站。自己做关键字搜索不太现实,直接调用百度的是最好的选择。使用jQuery.ajax的jsonp方法可以异域调用到百度的js并拿到返回值,当然$.getScript也可以实现跨域调用js。 ok,了解了jsonp的原理和应用后,我们看看百度的智能提示是如何做的在c 阅读全文
posted @ 2016-05-27 23:39 CSniper 阅读(1449) 评论(1) 推荐(0)
摘要:前言: 我们都知道事务的几种性质,数据库为了维护这些性质,尤其是一致性和隔离性,一般使用加锁这种方式。同时数据库又是个高并发的应用,同一时间会有大量的并发访问,如果加锁过度,会极大的降低并发处理能力。所以对于加锁的处理,可以说就是数据库对于事务处理的精髓所在。这里通过分析MySQL中InnoDB引擎 阅读全文
posted @ 2016-05-24 23:50 CSniper 阅读(2703) 评论(0) 推荐(2)
摘要:MySQL凭借着出色的性能、低廉的成本、丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库。虽然性能出色,但所谓“好马配好鞍”,如何能够更好的使用它,已经成为开发工程师的必修课,我们经常会从职位描述上看到诸如“精通MySQL”、“SQL语句优化”、“了解数据库原理”等要求。我们知道一般的应用系 阅读全文
posted @ 2016-05-24 00:36 CSniper 阅读(295) 评论(0) 推荐(0)
摘要:触发器(trigger):监视某种情况,并触发某种操作。 触发器创建语法四要素:1.监视地点(table) 2.监视事件(insert/update/delete) 3.触发时间(after/before) 4.触发事件(insert/update/delete) 语法: create trigge 阅读全文
posted @ 2016-05-23 11:19 CSniper 阅读(368) 评论(0) 推荐(0)
摘要:在学习SQL的过程中,会遇到一个让你迷糊的Schema的概念。实际上,schema就是数据库对象的集合,这个集合包含了各种对象如:表、视图、存储过程、索引等。为了区分不同的集合,就需要给不同的集合起不同的名字,默认情况下一个用户对应一个集合,用户的schema名等于用户名,并作为该用户缺省schem 阅读全文
posted @ 2016-05-19 18:06 CSniper 阅读(76651) 评论(1) 推荐(8)
摘要:如果我们想了解数据库中的User和Schema到底什么关系,那么让我们首先来了解一下数据库中User和Schema到底是什么概念。 在SQL Server2000中,由于架构的原因,User和Schema总有一层隐含的关系,让我们很少意识到其实User和Schema是两种完全不同的概念,不过在SQL 阅读全文
posted @ 2016-05-19 17:57 CSniper 阅读(2113) 评论(0) 推荐(1)
摘要:事务的几种传播特性1. PROPAGATION_REQUIRED: 如果存在一个事务,则支持当前事务。如果没有事务则开启2. PROPAGATION_SUPPORTS: 如果存在一个事务,支持当前事务。如果没有事务,则非事务的执行3. PROPAGATION_MANDATORY: 如果已经存在一个事 阅读全文
posted @ 2016-05-17 16:11 CSniper 阅读(5442) 评论(0) 推荐(0)
摘要:Spring AOP中,有Before advice和After advice,这两个advice从字面上就可以很容易理解,但是Around advice就有点麻烦了。 乍一看好像是Before advice和After advice的组合,也就是说pointcut会在joinpoint执行前后各执 阅读全文
posted @ 2016-05-16 19:44 CSniper 阅读(5740) 评论(0) 推荐(1)
摘要:本文由 ImportNew - lomoxy 翻译自 javapapers。 目录 在这个Java GC系列教程中,让我们学习用于垃圾回收监视和分析的工具。然后,选用一种工具来监视一个Java示例程序的垃圾回收过程。如果你是一名初学者,你最好仔细阅读该系列教程。你可以从这里(垃圾回收介绍)开始。 J 阅读全文
posted @ 2016-05-12 19:14 CSniper 阅读(805) 评论(0) 推荐(0)
摘要:本文由 ImportNew - 好好先生 翻译自 javapapers。 目录 在这篇教程中我们将学习几种现有的垃圾回收器。在Java中,垃圾回收是一个自动的进程可以替代程序员进行内存的分配与回收这些复杂的工作。这篇是垃圾回 收教程系列的第三篇,在前面的第2部分我们看到了在Java中垃圾回收是如何工 阅读全文
posted @ 2016-05-12 19:13 CSniper 阅读(5434) 评论(0) 推荐(1)
摘要:本文由 ImportNew - 伍翀 翻译自 javapapers。 目录 本教程是为了理解基本的Java垃圾回收以及它是如何工作的。这是垃圾回收教程系列的第二部分。希望你已经读过了第一部分:《Java 垃圾回收介绍》。 Java 垃圾回收是一项自动化的过程,用来管理程序所使用的运行时内存。通过这一 阅读全文
posted @ 2016-05-12 19:12 CSniper 阅读(460) 评论(0) 推荐(0)
摘要:本文由 ImportNew - 好好先生 翻译自 javapapers。 Java的内存分配与回收全部由JVM垃圾回收进程自动完成。与C语言不同,Java开发者不需要自己编写代码实现垃圾回收。这是Java深受大家欢迎的众多特性之一,能够帮助程序员更好地编写Java程序。 下面四篇教程是了解Java 阅读全文
posted @ 2016-05-12 19:10 CSniper 阅读(459) 评论(0) 推荐(0)
摘要:原文出处: 海 子 在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办法使得线程可以复用 阅读全文
posted @ 2016-05-12 19:08 CSniper 阅读(241) 评论(0) 推荐(0)
摘要:原文出处: Bro__超 序言 最近学习java,接触到了回调机制(CallBack)。初识时感觉比较混乱,而且在网上搜索到的相关的讲解,要么一言带过,要么说的比较单纯的像是给CallBack做了一个定义。当然了,我在理解了回调之后,再去看网上的各种讲解,确实没什么问题。但是,对于初学的我来说,缺了 阅读全文
posted @ 2016-05-12 19:00 CSniper 阅读(915) 评论(0) 推荐(1)
摘要:本文由 ImportNew - liken 翻译自 Journaldev。 Java线程是执行某些任务的轻量级进程。Java通过Thread类提供多线程支持,应用可以创建并发执行的多个线程。 应用中有两类线程——用户线程和守护线程。当启动应用时,main线程是创建的第一个用户线程,我们可以创建多个用 阅读全文
posted @ 2016-05-12 18:56 CSniper 阅读(871) 评论(0) 推荐(0)
摘要:原文出处: cnblogs-小学徒V 在Java中,它的内存管理包括两方面:内存分配(创建Java对象的时候)和内存回收,这两方面工作都是由JVM自动完成的,降低了Java程序员的学习难度,避免了像C/C++直接操作内存的危险。但是,也正因为内存管理完全由JVM负责,所以也使Java很多程序员不再关 阅读全文
posted @ 2016-05-12 18:35 CSniper 阅读(1257) 评论(0) 推荐(0)
摘要:本文由 ImportNew - 黄小非 翻译自 winterbe。 ImportNew注:有兴趣第一时间学习Java 8的Java开发者,欢迎围观《征集参与Java 8原创系列文章作者》。 以下是《Java 8简明教程》的正文。 “Java并没有没落,人们很快就会发现这一点” 欢迎阅读我编写的Jav 阅读全文
posted @ 2016-05-12 18:32 CSniper 阅读(294) 评论(0) 推荐(0)
摘要:1.在eclipse设置JVM参数 打开eclipse-窗口-首选项-Java-已安装的JRE(对在当前开发环境中运行的java程序皆生效,也就是在eclipse中运行的java程序)编辑当前使用的JRE,在缺省VM参数中输入: -Xmx1024m -Xms1024m -Xmn256m -Xss16 阅读全文
posted @ 2016-05-12 18:18 CSniper 阅读(55837) 评论(2) 推荐(4)
摘要:原文出处: 海 子 说到垃圾回收(Garbage Collection,GC),很多人就会自然而然地把它和Java联系起来。在Java中,程序员不需要去关心内存动态分配和垃圾回收的问题,这一切都交给了JVM来处理。顾名思义,垃圾回收就是释放垃圾占用的空间,那么在Java中,什么样的对象会被认定为“垃 阅读全文
posted @ 2016-05-12 18:02 CSniper 阅读(521) 评论(0) 推荐(0)
摘要:原文出处: 朱小厮 Java 中的堆是 JVM 所管理的最大的一块内存空间,主要用于存放各种类的实例对象。在 Java 中,堆被划分成两个不同的区域:新生代 ( Young )、老年代 ( Old )。新生代 ( Young ) 又被划分为三个区域:Eden、From Survivor、To Sur 阅读全文
posted @ 2016-05-12 17:48 CSniper 阅读(411) 评论(0) 推荐(0)
摘要:摘自:http://topmanopensource.iteye.com/blog/1738178 进行多线程编程,同步控制是非常重要的,而同步控制就涉及到了锁。 对代码进行同步控制我们可以选择同步方法,也可以选择同步块,这两种方式各有优缺点,至于具体选择什么方式,就见仁见智了,同步块不仅可以更加精 阅读全文
posted @ 2016-05-10 18:27 CSniper 阅读(15763) 评论(2) 推荐(4)
摘要:同步的方法: 一、同步方法 即有synchronized关键字修饰的方法。 由于java的每个对象都有一个内置锁,当用此关键字修饰方法时, 内置锁会保护整个方法。在调用该方法前,需要获得内置锁,否则就处于阻塞状态。 注: synchronized关键字也可以修饰静态方法,此时如果调用该静态方法,将会 阅读全文
posted @ 2016-05-10 17:16 CSniper 阅读(419) 评论(0) 推荐(0)
摘要:译文出处: 张坤 原文出处:Jakob Jenkov Java内存模型规范了Java虚拟机与计算机内存是如何协同工作的。Java虚拟机是一个完整的计算机的一个模型,因此这个模型自然也包含一个内存模型——又称为Java内存模型。 如果你想设计表现良好的并发程序,理解Java内存模型是非常重要的。Jav 阅读全文
posted @ 2016-05-10 15:40 CSniper 阅读(235) 评论(0) 推荐(0)
摘要:Webservice的一个最基本的目的就是提供在各个不同平台的不同应用系统的协同工作能力。 其实WebService并不是什么神秘的东西,它就是一个可以远程调用的类,或者说是组件。 为什么要使用WebService? WebService是一个新的概念,它并不是微软首先提出的,但是微软的dotnet 阅读全文
posted @ 2016-05-05 23:24 CSniper 阅读(269) 评论(0) 推荐(0)
摘要:原文出处: 海 子 在程序设计中,进行异常处理是非常关键和重要的一部分。一个程序的异常处理框架的好坏直接影响到整个项目的代码质量以及后期维护成本和难度。试想一下,如果一个项目从头到尾没有考虑过异常处理,当程序出错从哪里寻找出错的根源?但是如果一个项目异常处理设计地过多,又会严重影响到代码质量以及程序 阅读全文
posted @ 2016-05-05 22:59 CSniper 阅读(207) 评论(0) 推荐(0)
摘要:原文出处: 朱小厮 在《Java虚拟机类加载机制》一文中详细阐述了类加载的过程,并举了几个例子进行了简要分析,在文章的最后留了一个悬念给各位,这里来揭开这个悬念。建议先看完《Java虚拟机类加载机制》这篇再来看这个,印象会比较深刻,如若不然,也没什么关系~~下面是程序代码: 1 2 3 4 5 6 阅读全文
posted @ 2016-05-05 22:52 CSniper 阅读(234) 评论(0) 推荐(0)
摘要:原文出处: 朱小厮 看到这个题目,很多人会觉得我写我的java代码,至于类,JVM爱怎么加载就怎么加载,博主有很长一段时间也是这么认为的。随着编程经验的日积月累,越来越感觉到了解虚拟机相关要领的重要性。闲话不多说,老规矩,先来一段代码吊吊胃口。 1 2 3 4 5 6 7 8 9 10 11 12 阅读全文
posted @ 2016-05-05 22:48 CSniper 阅读(216) 评论(0) 推荐(0)
摘要:原文出处: 海 子 学过C语言的朋友都知道C编译器在划分内存区域的时候经常将管理的区域划分为数据段和代码段,数据段包括堆、栈以及静态数据区。那么在Java语言当中,内存又是如何划分的呢? 由于Java程序是交由JVM执行的,所以我们在谈Java内存区域划分的时候事实上是指JVM内存区域划分。在讨论J 阅读全文
posted @ 2016-05-05 22:35 CSniper 阅读(272) 评论(0) 推荐(0)
摘要:转载出处:http://cantellow.iteye.com/blog/838473 第一种(懒汉,线程不安全): Java代码 public class Singleton { private static Singleton instance; private Singleton (){} p 阅读全文
posted @ 2016-05-05 19:54 CSniper 阅读(159) 评论(0) 推荐(0)
摘要:为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必须满足一定的范式。 在实际开发中最为常见的设计范式有三个: 1.第一范式(确保每列保持原子性) 第一范式是最基本的范式。如果数 阅读全文
posted @ 2016-05-04 16:50 CSniper 阅读(149) 评论(0) 推荐(0)
摘要:英文原文: 11 Important Database designing rules 简介 在您开始阅读这篇文章之前,我得明确地告诉您,我并不是一个数据库设计领域的大师。以下列出的 11 点是我对自己在平时项目实践和阅读中学习到的经验总结出来的个人见解。我个人认为它们对我的数据库设计提供了很大的帮 阅读全文
posted @ 2016-05-04 16:46 CSniper 阅读(471) 评论(0) 推荐(0)