08 2016 档案

摘要:今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情。当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能。这里,我们不会讲过多的SQL语句的优 阅读全文
posted @ 2016-08-24 12:04 CSniper 阅读(317) 评论(0) 推荐(0)
摘要:玩过Linux的人都会知道,Linux中的命令的确是非常多,但是玩过Linux的人也从来不会因为Linux的命令如此之多而烦恼,因为我们只需要掌握我们最常用的命令就可以了。当然你也可以在使用时去找一下man,他会帮你解决不少的问题。然而每个人玩Linux的目的都不同,所以他们常用的命令也就差异非常大 阅读全文
posted @ 2016-08-24 11:49 CSniper 阅读(215) 评论(0) 推荐(0)
摘要:1. 概述 多任务和高并发是衡量一台计算机处理器的能力重要指标之一。一般衡量一个服务器性能的高低好坏,使用每秒事务处理数(Transactions Per Second,TPS)这个指标比较能说明问题,它代表着一秒内服务器平均能响应的请求数,而TPS值与程序的并发能力有着非常密切的关系。在讨论Jav 阅读全文
posted @ 2016-08-24 11:48 CSniper 阅读(229) 评论(0) 推荐(0)
摘要:在Web1.0时代,人们更多是关注服务器端动态脚本语言的安全问题,比如将一个可执行脚本(俗称Webshell)通过脚本语言的漏洞上传到服务器上,从而获得服务器权限。在Web发展初期,随着动态脚本语言的发展和普及,以及早期工程师对安全问题认知不足导致很多”安全血案”的发生,至今仍然遗留下许多历史问题, 阅读全文
posted @ 2016-08-24 11:27 CSniper 阅读(15823) 评论(0) 推荐(1)
摘要:原文出处: 伍 翀 单例模式算是设计模式中最容易理解,也是最容易手写代码的模式了吧。但是其中的坑却不少,所以也常作为面试题来考。本文主要对几种单例写法的整理,并分析其优缺点。很多都是一些老生常谈的问题,但如果你不知道如何创建一个线程安全的单例,不知道什么是双检锁,那这篇文章可能会帮助到你。 懒汉式, 阅读全文
posted @ 2016-08-23 16:55 CSniper 阅读(367) 评论(0) 推荐(0)
摘要:我们都知道,在JDK1.5之前,Java中要进行业务并发时,通常需要有程序员独立完成代码实现,当然也有一些开源的框架提供了这些功能,但是这些依然没有JDK自带的功能使用起来方便。而当针对高质量Java多线程并发程序设计时,为防止死蹦等现象的出现,比如使用java之前的wait()、notify()和 阅读全文
posted @ 2016-08-17 19:04 CSniper 阅读(11489) 评论(0) 推荐(0)
摘要:Executor框架是指java 5中引入的一系列并发库中与executor相关的一些功能类,其中包括线程池,Executor,Executors,ExecutorService,CompletionService,Future,Callable等。他们的关系为: 并发编程的一种编程方式是把任务拆分 阅读全文
posted @ 2016-08-17 17:41 CSniper 阅读(742) 评论(0) 推荐(0)
摘要:摘自:http://blog.csdn.net/tsyj810883979/article/details/6956290 阅读全文
posted @ 2016-08-17 17:10 CSniper 阅读(351) 评论(0) 推荐(0)
摘要:原文出处: 嘟嘟MD 原文出处: 嘟嘟MD 前言 多线程并发编程是Java编程中重要的一块内容,也是面试重点覆盖区域,所以学好多线程并发编程对我们来说极其重要,下面跟我一起开启本次的学习之旅吧。 正文 线程与进程 1 线程:进程中负责程序执行的执行单元线程本身依靠程序进行运行线程是程序中的顺序控制流 阅读全文
posted @ 2016-08-17 17:04 CSniper 阅读(471) 评论(0) 推荐(0)
摘要:原文出处: imzoer 在这篇文章中,总结了一下面试过程中遇到的关于ThreadLocal的内容。总体上说,这样回答,面试算是过得去了。但是,这样的回答,明显仅仅是背会了答案,而没有去研究ThreadLocal的最根本的实现原理。 一共有两个问题。 1、每个线程的变量副本是存储在哪里的? 2、变量 阅读全文
posted @ 2016-08-11 19:16 CSniper 阅读(450) 评论(0) 推荐(0)
摘要:前言 在Java并发包中有这样一个包,java.util.concurrent.atomic,该包是对Java部分数据类型的原子封装,在原有数据类型的基础上,提供了原子性的操作方法,保证了线程安全。下面以AtomicInteger为例,来看一下是如何实现的。 以这两个方法为例,incrementAn 阅读全文
posted @ 2016-08-10 18:48 CSniper 阅读(232) 评论(0) 推荐(0)
摘要:类加载器按照层次,从顶层到底层,分为以下三种: (1)启动类加载器(Bootstrap ClassLoader) 这个类加载器负责将存放在JAVA_HOME/lib下的,或者被-Xbootclasspath参数所指定的路径中的,并且是虚拟机识别的类库加载到虚拟机内存中。启动类加载器无法被Java程序 阅读全文
posted @ 2016-08-10 18:33 CSniper 阅读(257) 评论(0) 推荐(0)
摘要:(1) 选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。如果有3个以上的表连 阅读全文
posted @ 2016-08-09 12:06 CSniper 阅读(190) 评论(0) 推荐(0)
摘要:1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在nu 阅读全文
posted @ 2016-08-09 12:05 CSniper 阅读(224) 评论(0) 推荐(0)
摘要:首先说说二分查找法。 二分查找法是对一组有序的数字中进行查找,传递相应的数据,进行比较查找到与原数据相同的数据,查找到了返回1,失败返回对应的数组下标。 采用非递归方式完成二分查找法。Java代码如下所示。 [java] view plain copy print? /* * 非递归二分查找算法 * 阅读全文
posted @ 2016-08-09 00:28 CSniper 阅读(15358) 评论(0) 推荐(0)
摘要:本文作者: 伯乐在线 - 朱小厮 。 说到redis就会联想到memcached,反之亦然。了解过两者的同学有那么个大致的印象: redis与memcached相比,比仅支持简单的key-value数据类型,同时还提供list,set,zset,hash等数据结构的存储; redis支持数据的备份, 阅读全文
posted @ 2016-08-05 11:34 CSniper 阅读(332) 评论(0) 推荐(0)
摘要:原文出处: 摆渡者 引言 曾几何时,我也敲打过无数次这样的命令: 然而之前的我都只关心过版本号,也就是第一行的内容。今天,我们就来看看第3行输出的内容:JVM的类型和工作模式。 其实说Server和Client是JVM的两种工作模式是不准确的,因为它们就是不同的虚拟机,因此应该说有两种类型的JVM。 阅读全文
posted @ 2016-08-01 17:23 CSniper 阅读(1758) 评论(1) 推荐(1)
摘要:原文出处: where 一、科普定义 这篇博文的两个主角“synchronized”和“读写锁” 1)synchronized 这个同步关键字相信大家都用得比较多,在上一篇“多个线程之间共享数据的方式”中也详细列举他的应用,在这就不多说只做几点归纳: Java提供这个关键字,为防止资源冲突提供的内置 阅读全文
posted @ 2016-08-01 16:44 CSniper 阅读(1542) 评论(0) 推荐(0)