- 博客(31)
- 资源 (5)
- 收藏
- 关注
原创 Common Gateway Interface
Common Gateway Interface,用于初始化软件服务的服务器方接口。这套接口描述了Web服务器与同一计算机上的软件的通信方式。也是一种重要的互联网技术,可以让一个客户端从网页浏览器向在执行在Web服务器上的程序请求数据。Common Gateway Interface - 简介 Common Gateway Interface(CGI—— 通用
2016-07-29 20:07:37 358
转载 MySQL计划任务(事件调度器)(Event Scheduler)
MySQL计划任务(事件调度器)(Event Scheduler)MySQL5.1.x版本中引入了一项新特性EVENT,顾名思义就是事件、定时任务机制,在指定的时间单元内执行特定的任务,因此今后一些对数据定时性操作不再依赖外部程序,而直接使用数据库本身提供的功能。要查看当前是否已开启事件调度器,可执行如下SQL:SHOW VARIABLES LIKE 'event_sche
2016-07-27 10:56:20 161
转载 亿级Web系统搭建——单机到分布式集群
当一个Web系统从日访问量10万逐步增长到1000万,甚至超过1亿的过程中,Web系统承受的压力会越来越大,在这个过程中,我们会遇到很多的问题。为了解决这些性能压力带来问题,我们需要在Web系统架构层面搭建多个层次的缓存机制。在不同的压力阶段,我们会遇到不同的问题,通过搭建不同的服务和架构来解决。 Web负载均衡 Web负载均衡(Load Balancing),简单地说就是给我
2016-07-27 00:19:27 296
转载 虚拟机中的锁优化简介(适应性自旋/锁粗化/锁削除/轻量级锁/偏向锁)
高效并发是JDK 1.6的一个重要主题,HotSpot虚拟机开发团队在这个版本上花费了大量的精力去实现各种锁优化技术,如适应性自旋(Adaptive Spinning)、锁削除(Lock Elimination)、锁膨胀(Lock Coarsening)、轻量级锁(Lightweight Locking)、偏向锁(Biased Locking)等,这些技术都是为了在线程之间更高效地共享数据,以
2016-07-26 23:32:40 553
转载 Java 并发编程:volatile的使用及其原理
一、volatile的作用 在《Java并发编程:核心理论》一文中,我们已经提到过可见性、有序性及原子性问题,通常情况下我们可以通过Synchronized关键字来解决这些个问题,不过如果对Synchronized原理有了解的话,应该知道Synchronized是一个比较重量级的操作,对系统的性能有比较大的影响,所以,如果有其他解决方案,我们通常都避免使用Synchronized来解决问
2016-07-26 23:25:10 190
转载 Java 并发编程:线程间的协作(wait/notify/sleep/yield/join)
一、线程的状态 Java中线程中状态可分为五种:New(新建状态),Runnable(就绪状态),Running(运行状态),Blocked(阻塞状态),Dead(死亡状态)。 New:新建状态,当线程创建完成时为新建状态,即new Thread(...),还没有调用start方法时,线程处于新建状态。 Runnable:就绪状态,当调用线程的的start方法后,线
2016-07-26 23:16:24 284
转载 Java并发编程:Synchronized底层优化(偏向锁、轻量级锁)
一、重量级锁 上篇文章中向大家介绍了Synchronized的用法及其实现的原理。现在我们应该知道,Synchronized是通过对象内部的一个叫做监视器锁(monitor)来实现的。但是监视器锁本质又是依赖于底层的操作系统的Mutex Lock来实现的。而操作系统实现线程之间的切换这就需要从用户态转换到核心态,这个成本非常高,状态之间的转换需要相对比较长的时间,这就是为什么Synchron
2016-07-26 23:03:38 400
转载 Java并发编程:Synchronized及其实现原理
一、Synchronized的基本使用 Synchronized是Java中解决并发问题的一种最常用的方法,也是最简单的一种方法。Synchronized的作用主要有三个:(1)确保线程互斥的访问同步代码(2)保证共享变量的修改能够及时可见(3)有效解决重排序问题。从语法上讲,Synchronized总共有三种用法: (1)修饰普通方法 (2)修饰静态方法
2016-07-26 22:31:37 330
转载 Java 并发编程:核心理论
并发编程是Java程序员最重要的技能之一,也是最难掌握的一种技能。它要求编程者对计算机最底层的运作原理有深刻的理解,同时要求编程者逻辑清晰、思维缜密,这样才能写出高效、安全、可靠的多线程并发程序。本系列会从线程间协调的方式(wait、notify、notifyAll)、Synchronized及Volatile的本质入手,详细解释JDK为我们提供的每种并发工具和底层实现机制。在此基础上,我们会进一
2016-07-26 20:03:27 249
转载 java内存模型与多线程
现代计算机,cpu在计算的时候,并不总是从内存读取数据,它的数据读取顺序优先级是:寄存器-高速缓存-内存,线程计算的时候,原始的数据来自内存,在计算过程中,有些数据可能被频繁读取,这些数据被存储在寄存器和高速缓存中,当线程计算完后,这些缓存的数据在适当的时候应该写回内存,当多个线程同时读写某个内存数据时,由于涉及数据的可见性、操作的有序性,所以就会产生多线程并发问题。 Java作为平
2016-07-26 19:31:37 189
转载 maven的生命周期
以前使用maven时没有细了解过maven的生命周期,这段时间需要自己做架构设计,为了能更好的使用maven,自己整理了下maven的生命周期以及伴随生命周期的一些概念。一、maven生命周期的组成: 1.clean生命周期 2.default生命周期 3.site生命周期 二、组成maven单个生命周期的元素:
2016-07-25 17:13:15 244
转载 Maven进价:Maven的生命周期阶段
一、Maven的生命周期Maven的生命周期就是对所有的构建过程进行抽象和统一。包含了项目的清理、初始化、编译、测试、打包、集成测试、验证、部署和站点生成等几乎所有的构建步骤。Maven的生命周期是抽象的,即生命周期不做任何实际的工作,实际任务由插件完成,类似于设计模式中的模板方法。 二、三套生命周期Maven有三套相互独立的生命周期,分别是clea
2016-07-25 17:12:39 322
转载 java集合类深入分析之TreeMap/TreeSet篇
简介 TreeMap和TreeSet算是java集合类里面比较有难度的数据结构。和普通的HashMap不一样,普通的HashMap元素存取的时间复杂度一般是O(1)的范围。而TreeMap内部对元素的操作复杂度为O(logn)。虽然在元素的存取方面TreeMap并不占优,但是它内部的元素都是排序的,当需要查找某些元素以及顺序输出元素的时候它能够带来比较理想的结果。可以说,TreeMa
2016-07-25 16:44:54 240
转载 java集合类深入分析之HashSet, HashMap篇
简介 Map和Set是比较常用的两种数据结构。我们在平常的编程中经常会用到他们。只是他们的内部实现机制到底是怎么样的呢?了解他们的具体实现对于我们如何有效的去使用他们也是很有帮助的。在这一篇文章里,已经对HashMap, HashSet的实现做了一个详细的讨论。这里主要是针对Map, Set这两种类型的数据结构规约和典型的HashMap,HashSet实现做一个讨论。Ma
2016-07-25 16:28:03 169
转载 java并发之线程封闭
线程封闭实现好的并发是一件困难的事情,所以很多时候我们都想躲避并发。避免并发最简单的方法就是线程封闭。什么是线程封闭呢?就是把对象封装到一个线程里,只有这一个线程能看到此对象。那么这个对象就算不是线程安全的也不会出现任何安全问题。实现线程封闭有哪些方法呢?1:ad-hoc线程封闭 这是完全靠实现者控制的线程封闭,他的线程封闭完全靠实现者实现。也是最糟糕的
2016-07-25 15:41:41 354
转载 java并发之原子性与可见性
原子性原子是世界上的最小单位,具有不可分割性。比如 a=0;(a非long和double类型) 这个操作是不可分割的,那么我们说这个操作时原子操作。再比如:a++; 这个操作实际是a = a + 1;是可分割的,所以他不是一个原子操作。非原子操作都会存在线程安全问题,需要我们使用同步技术(sychronized)来让它变成一个原子操作。一个操作是原子操作,那么我们称它具有原子性。java的
2016-07-25 15:20:34 237
转载 Java transient关键字使用小记
http://www.cnblogs.com/lanxuezaipiao/p/3369962.html#top 哎,虽然自己最熟的是Java,但很多Java基础知识都不知道,比如transient关键字以前都没用到过,所以不知道它的作用是什么,今天做笔试题时发现有一题是关于这个的,于是花个时间整理下transient关键字的使用,涨下姿势~~~好了,废话不多说,下面开始:1.
2016-07-23 16:10:58 209
转载 Java对象的序列化和反序列化
http://www.cnblogs.com/xdp-gacl/p/3777987.html一、序列化和反序列化的概念 把对象转换为字节序列的过程称为对象的序列化。 把字节序列恢复为对象的过程称为对象的反序列化。 对象的序列化主要有两种用途: 1) 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中; 2) 在网络上传送对象的字节序列。
2016-07-23 15:59:06 126
转载 java21个知识点重点
http://blog.csdn.net/jerroluo/article/details/520025851. JVM相关(包括了各个版本的特性)对于刚刚接触Java的人来说,JVM相关的知识不一定需要理解很深,对此里面的概念有一些简单的了解即可。不过对于一个有着3年以上Java经验的资深开发者来说,不会JVM几乎是不可接受的。JVM作为java运行的基础,很难相信对于JVM
2016-07-23 10:18:57 208
转载 Java序列化与反序列化
http://blog.csdn.net/wangloveall/article/details/7992448Java序列化与反序列化是什么?为什么需要序列化与反序列化?如何实现Java序列化与反序列化?本文围绕这些问题进行了探讨。 1.Java序列化与反序列化 Java序列化是指把Java对象转换为字节序列的过程;而Java反序列化是指把字节序列恢复为Java对象的过程
2016-07-23 10:16:05 134
原创 java中double类型的数保留两位小数的输出方法并且小数点前面是0的时候如何处理
DecimalFormat df = new DecimalFormat("######0.00"); double d1 = 3.23456 double d2 = 0.0;double d3 = 2.0;df.format(d1); df.format(d2); df.format(d3);
2016-07-19 19:21:05 3150
原创 java中获取路径中的空格处理(%20)问题
在java中获取文件路径的时候,有时候会获取到空格,但是在中文编码环境下,空格会变成“%20”从而使得路径错误,解决办法如下: Java代码 String path=Parameter.class.getResource("").getPath();//得到路径 //String path=Parameter.class.getResource("").toSt
2016-07-12 23:20:53 321
转载 关于select中DISTINCT的技巧和使用
单表的唯一查询用:distinct多表的唯一查询用:group by在使用MySQL时,有时需要查询出某个字段不重复的记录,虽然mysql提供有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重复记录的所有值。其原因是distinct只能返回它的目标字段,而无法返回其它字段,用distinct不能解决的话,我只有用二重循环查
2016-07-12 23:19:36 4461 1
转载 Servlet过滤器(Filter)
Servlet过滤器是在Java Servlet规范2.3中定义的,它能够对Servlet容器的请求和响应对象进行检查和修改。Servlet过滤器本身不生成请求和响应对象,它只提供过滤作用。Servlet过滤器能够在Servlet被调用之前检查Request对象,修改Request Header和Request内容。在Servlet被调用后检查Response Header
2016-07-11 09:39:35 220
转载 session
Web服务器跟踪客户状态通常有四种方法: 1,建立含有跟踪数据的隐藏字段 type=hidden 2,重写包含额外参数的URL 3,使用持续的Cookie 4,使用Servlet API中的Session(会话)机制Session概念: Session用于跟踪客户的状态,Session是指在一段时间内,单个客户与WEB服务器一连串相关的交
2016-07-11 09:34:22 152
转载 Servlet生命周期与工作原理
Servlet生命周期分为三个阶段: 1,初始化阶段 调用init()方法 2,响应客户请求阶段 调用service()方法 3,终止阶段 调用destroy()方法Servlet初始化阶段: 在下列时刻Servlet容器装载Servlet: 1,Servlet容器启动时自动装载某些Servlet,实现它只需要在web.X
2016-07-11 09:19:02 202
转载 mysql处理添加外键时提示error 150 问题的解决方法
当你试图在mysql中创建一个外键的时候,这个出错会经常发生,这是非常令人沮丧的像这种不能创建一个.frm 文件的报错好像暗示着操作系统的文件的权限错误或者其它原因,但实际上,这些都不是的,事实上,这个mysql报错已经被报告是一个mysql本身的bug并出现在mysql 开发者列表当中很多年了,然而这似乎又是一种误导。 在很多实例中,这种错误的发生都是因为mysql一直以来都不能
2016-07-11 08:45:33 332
转载 Tomcat去除项目名称和端口号,直接使用ip地址访问项目的方法
网站开发过程中,一般的工程访问路径是 http://10.10.20.74:8080/projectName如何设置成http://10.10.20.74/ 解决方法:首先,进入tomcat的安装目录下的conf目录,我的目录是 /usr/local/apache-tomcat-6.0.20/conf,编辑文件server.xml. 1、去除端口号80
2016-07-08 10:34:12 200
原创 android前端与后端服务器URL地址栏传输中文字符出现乱码问题
Android端:要对字符进行编码 String string = "传输的字符"; String eStr = URLEncoder.encode(string, "utf-8");服务器端:通过对获得数据进行解码 String decodeString = URLDecoder.decode(eStr, "utf-8"));
2016-07-07 17:59:52 960
原创 java.sql.exception:before start of result set
处理结果集时:出现Java.sql.exception:before start of result setrs = pt.execute();while(rs.next);
2016-07-04 18:19:56 208
JAVA API官方文档中文版
2015-05-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人