自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 收藏
  • 关注

原创 Stay hungry. Stay foolish.

Stay hungry. Stay foolish.

2015-05-13 21:28:07 630

转载 实用SQL语句

一、基础1、创建数据库create database database-name2、删除数据库drop database dbname3、创建表create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)根据已有的表创建新表:A:create table tab_new like tab_old

2015-07-29 16:58:16 424

转载 MAVEN常用命令

Maven库:http://repo2.maven.org/maven2/Maven依赖查询:http://mvnrepository.com/Maven常用命令: 创建Maven的普通java项目: mvn archetype:create -DgroupId=packageName -DartifactId=projectName 创建Maven的Web项目: mvn arc

2015-07-29 15:49:31 492

转载 Linux中常用操作命令

1.常用指令ls 显示文件或目录 -l 列出文件详细信息l(list) -a 列出当前目录下所有文件及目录,包括隐藏的 ,a(all)mkdir 创建目录 -p 创建目录,若无父目录,则创建,p(parent)cd 切换目录touch 创建空文件echo

2015-07-29 15:26:47 452

转载 以操作系统的角度述说线程与进程

什么是线程什么是线程?线程与进程有什么关系?这是一个非常抽象的问题,也是一个特别广的话题,涉及到非常多的知识。我不能确保能把它讲得好,也不能确保讲的内容全部都正确。即使这样,我也希望尽可能地把它讲得通俗一点,讲得明白一点,因为这是个困扰我很久的,扑朔迷离的知识领域,希望通过我的理解来揭开它一层一层神秘的面纱。1.任务调度线程是什么?要理解这个概念,必须要先了解一下操作系统的一些相关概念。大部分操作系

2015-07-07 20:20:11 573

原创 Java基础练习题

一、Java概述1.GC是什么? 为什么要有GC?答:GC是垃圾收集的意思(GarbageCollection),内存处理是编程人员容易出现问题的地方, 忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显式操作方法。

2015-06-30 15:53:22 1175

转载 How To Ask Questions The Smart Way

英文版:http://www.cnblogs.com/sanghai/p/3310033.html中文版:http://www.cnblogs.com/sanghai/p/3308215.html

2015-06-26 09:27:09 338

转载 JDK,JRE,JVM区别与联系

很多朋友可能跟我一样,已经使用JAVA开发很久了,可是对JDK,JRE,JVM这三者的联系与区别,一直都是模模糊糊的。今天特写此文,来整理下三者的关系。JDK : Java Development ToolKit(Java开发工具包)。JDK是整个JAVA的核心,包括了Java运行环境(Java Runtime Environment),一堆Java工具(javac/java/jdb等)和Java基

2015-06-26 09:14:03 385

原创 内部排序算法

1.插入排序(1)直接插入排序思想: 利用有序表的插入操作进行排序有序表的插入: 将一个记录插入到已排好序的有序表中,从而得到一个新的有序表。动画取自:http://www.cricode.com/3212.htmlvoid insertsort(ElemType R[],int n)//待排序元素用一个数组R表示,数组有n个元素{ for ( int i=1; i<n;

2015-06-11 20:14:25 289

原创 二叉树的遍历

深度优先遍历1、先序遍历访问跟节点先序遍历左子树先序遍历右子树(1)递归算法实现:template<class T>void BinaryTree<T>::PreOrder (BinaryTreeNode<T> *root) { // 前序周游二叉树或其子树 if (root != NULL) { Visit(root->value());

2015-06-09 19:29:26 471

原创 模式匹配算法

简单模式匹配算法BF算法(Brute-Force,又称古典的、经典的、朴素的、穷举的)带回溯,速度慢算法设计思想:将主串S的第pos个字符和模式T的第1个字符比较,若相等,继续逐个比较后续字符;若不等,从主串S的下一字符(pos+1)起,重新与T的第一个字符比较。直到主串S的一个连续子串字符序列与模式T相等。返回值为S中与T匹配的子序列第一个字符的序号,即匹配成功。否则,匹

2015-06-08 07:38:39 3923

原创 synchronized与static synchronized 的区别

1.synchronized与static synchronized 的区别synchronized是对类的当前实例进行加锁,防止其他线程同时访问该类的该实例的所有synchronized块,注意这里是“类的当前实例”, 类的两个不同实例就没有这种约束了。那么static synchronized恰好就是要控制类的所有实例的访问了,static synchronized是限制线程同时访问jvm中该类

2015-06-07 15:34:15 482

原创 JavaSE复习笔记

Java语言概述基础常识:常用的DOS命令:dir : 列出当前目录下的文件以及文件夹md : 创建目录rd : 删除目录cd : 进入指定目录cd.. : 退回到上一级目录cd\: 退回到根目录del : 删除文件exit : 退出 dos 命令行echo javase>1.doc注:rd用来删除目录,del用来删除文件,del后跟的如果

2015-06-02 15:01:11 625

转载 深入探讨 Java 类加载器

类加载器(class loader)是 Java 中的一个很重要的概念。类加载器负责加载 Java 类的字节代码到 Java 虚拟机中。本文首先详细介绍了 Java 类加载器的基本概念,包括代理模式、加载类的具体过程和线程上下文类加载器等,接着介绍如何开发自己的类加载器,最后介绍了类加载器在 Web 容器和 OSGi 中的应用。类加载器是 Java 语言的一个创新,也是 Java 语言流行的重要原因

2015-05-31 07:50:54 511

转载 Java中的ReentrantLock和synchronized两种锁定机制的对比

多线程和并发性并不是什么新内容,但是 Java 语言设计中的创新之一就是,它是第一个直接把跨平台线程模型和正规的内存模型集成到语言中的主流语言。核心类库包含一个 Thread 类,可以用它来构建、启动和操纵线程,Java 语言包括了跨线程传达并发性约束的构造 —— synchronized 和 volatile 。在简化与平台无关的并发类的开发的同时,它绝没有使并发类的编写工作变得更繁琐,只是使它变

2015-05-30 09:23:29 357

原创 2015年任务

mysql mybatis、ibatis spring aop spring mvc cache 常用的lib,guava、log、commons-xxx、json、xml 设计模式 rpc 常见的数据结构和算法 多线程 啃透《java编程思想》这些东西,熟练程度都是要原理和代码级别的。

2015-05-29 14:42:47 355

转载 内部类与嵌套类

一、概述我们知道,Java是一种完全的面向对象的语言,作为对象的灵魂,类的种类是多种多样的。类大致可以分外部类和内部类两种,外部类就是我们通常使用的类,而内部类的使用要比外部类少得多,最常见的是GUI事件侦听器。内部类的应用虽然不多,但是如果能够有效地使用内部类,能达到事半功倍的效果。二、内部类和嵌套类要讨论内部类和嵌套类,首先要分清它们两者的区别与联系。首先,内部类(Inner Classes)和

2015-05-25 13:59:05 1468

原创 HttpSession

session的机制:http是无状态的协议,客户每次读取web页面时,服务器都打开新的会话,而且服务器也不会自动维护客户的上下文信息,那么要怎么才能实现会话跟踪呢?session就是一种保存上下文信息的机制,它是针对每一个用户的,变量的值保存在服务器端,通过sessionID来区分不同的客户,session是以cookie或URL重写为基础的,默认使用cookie来实现,系统会创造一个名为JSES

2015-05-22 15:45:12 461

原创 ServletContext与ServletConfig总结

一、ServletContext对象WEB容器在启动时,会为每个WEB应用程序都创建一个对应的ServletContext对象,它代表当前web应用。ServletConfig对象中维护了ServletContext对象的引用,开发人员在编写servlet时,可以通过ServletConfig.getServletContext方法获得ServletContext对象。由于一个WEB应

2015-05-22 14:30:03 378

转载 Web端服务器推送技术原理分析及dwr框架简单的使用

1. 背景“服务器推送技术”(ServerPushing)是最近Web技术中最热门的一个流行术语。它是继“Ajax”之后又一个倍受追捧的Web技术。“服务器推送技术”最近的流行跟“Ajax ”有着密切的关系。随着Ajax技术的兴起,让广大开发人员又一次看到了使用浏览器来替代桌面应用的机会,并且这次机会非常大。Ajax将整个页面的刷新变成页面局部的刷新,并且数据的传送是以异步方式进行,这使得网络延迟带

2015-05-22 08:04:44 354

原创 Java Concurrency In Practice 阅读笔记(第一、二部分)

第一章:简介1.1 并发简史促使进程出现的因素:资源利用率、公平性以及便利性等。这些因素同样也促使着线程的出现。线程允许同一个进程中同时存在多个程序控制流。线程会共享进程范围内的资源,例如内存句柄和文件句柄,但每个线程都有自己的程序计数器、栈以及局部变量等。在同一个程序中的多个线程也可以被同时调度到多个CPU上运行。线程也被称为轻量级进程。线程是现代操作系统中基本的调度单位。1.2

2015-05-17 09:14:43 1533

转载 成为一名优秀程序员所需要知道的那些事

导读:编程虽是复杂活,但成就优秀程序员的很多因素和我们在学校中最早学到的相差无几。懂得分享。尽可能使用开源,并且当你有能力的时候,要对其有所贡献。聚全社会之智慧,胜过某些“大”公司之短视。公平竞争。尝试其他技术、框架、方法和观点。不要总以为只有你的选择才是可行的。别的选择也有可能比你的要强得多。要以开放的心态,来检验其他人的选择。不要攻击他人。像第2条所说的,不要仅仅因为别人恰巧使用.Net、

2015-05-15 20:55:48 589

原创 只言片语

记得早先年少时,大家诚诚恳恳,说一句是一句。清早上火车站,长街黑暗无行人,卖豆浆的小店冒着热气。从前的日色变得慢,车,马,邮件都慢,一生只够爱一个人。从前的锁也好看,钥匙精美有样子。你锁了,人家就懂了。——木心《从前慢》素质好的人既能承受大苦难,也能承受大幸运,素质差的人则可能兼毁于两者。人们之所以烦恼、迷惑,大多是因为看得太近,而又想得太多。不如就利用孤单一人的时间使自己变得更优秀,给来的人

2015-05-15 07:42:27 287

转载 位图bitmap算法

简单地说就是用数组存放,若有数据就标志为1或true,若不存在标志为0或false。比如1,2,2,5,这里最大值为5,0至5中不存0,3,4,所以:Array[0]=0,Array[1]=1,Array[2]=2,Array[3]=0,Array[4]=0,Array[5]=1上面数中由于2有两个,所以用int存数组的值,不用boolean型,这样如果有多个同样的数字可以用值表示个数。如上

2015-05-08 15:59:46 530

原创 SSH

一、对Spring的理解。Spring实现了工厂模式的工厂类,这个类名为BeanFactory(实际上是一个接口),在程序中通常使用BeanFactory的子类ApplicationContext。Spring相当于一个大的工厂类,在其配置文件中通过元素配置用于创建实例对象的类名和实例对象的属性。Spring提供了对IOC的良好支持,IOC是一种编程思想,是一种架构艺术,利用这种思想可以很好地实

2015-05-03 10:02:49 258

转载 JAVA8 十大新特性详解

一、接口的默认方法Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可,这个特征又叫做扩展方法,示例如下:interface Formula { double calculate(int a); default double sqrt(int a) { return Math.sqrt(a); }}Formu

2015-04-25 09:50:23 509

原创 java BigDecimal

BigDecimal类:双精度浮点型变量double可以处理16位有效数。在实际应用中,需要对更大或者更小的数进行运算和处理。Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。下面列出了BigDecimal类的主要构造器和方法:构造器描述:  BigDecimal(int)创建一个具有参数所指定整数值的对象。   BigDe

2015-04-23 21:06:12 433

原创 Java Collections Framework

集合 OR 容器通常我们会用数组去保存一些基本数据类型,数组是编译器支持的类型,但是数组的一个明显缺点就是具有固定尺寸,而在一般情况下,只有在程序运行的时候,我们才能知道要保存的具体数目。Java类库提供了一套相当完善的容器框架(Collections Framework)来解决这个问题。其中基本的类型是List、Set、Queue和Map。这些对象类型也被称为集合类,但是由于Java中使用了

2015-04-23 09:36:05 522

原创 java文档注释

Java有三种注释方式。前两种分别是// 和/**/,第三种被称作说明注释,它以 /**开始,以*/结束。说明注释允许你在程序中嵌入关于程序的信息。你可以使用javadoc工具软件来生成信息,并输出到HTML文件中。说明注释,使你更加方便地记录你的程序信息。javadoc 标签:标签 描述 示例 @author 标识一个类的作者 @author description

2015-04-22 15:32:30 375

原创 学习计划

常听人说,工作的前5年是最为重要的阶段,因为这一时期的状态基本决定了你以后的人生道路。处在大三下学期的我,即将开启新的人生旅程——工作。觉得十分有必要对未来几年做一次整体规划,让我的前5年过得有价值,有意义。现在尚未进入职场,对于实际的工作环境不甚了解,也许计划要随之更改,但是基本的奋斗路线及目标可以确定下来,作为前进的指明灯。java学习:目前专注于java开发,未来也会继续深入学习该领域。

2015-04-16 16:14:57 382

转载 Java二进制兼容性原理

一、概述现在的软件越来越依赖于不同厂商、作者开发的共享组件,组件管理也变得越来越重要。在这方面,一个极其重要的问题是类的不同版本的二进制兼容性,即一个类改变时,新版的类是否可以直接替换原来的类,却不至于损坏其他由不同厂商、作者开发的依赖于该类的组件?Java二进制兼容性概念的主要目标是推动Internet上软件的广泛重用,同时它还避免了大多数C++环境面临的基础类脆弱性问题——例如,在C++中,对域

2015-04-16 14:07:24 1363

转载 风雨20年:我所积累的20条编程经验

从11岁时,我就一直在编程,并且一直都很喜欢技术和编程。这些年来,我积累了一些艰难又容易的经验。作为一名程序员,你或许还没这些经验,但我会把它们献给那些想从中学到更多的朋友。我会持续更新这些经验,我可能还会有更多的感想,但就我这20年来看,我想下面这个列表中基本不需要增添额外的东西了。下面就是我至今最难忘的经验。1. 估算解决问题所需要的时间。不要怕,承认吧!我曾见过一些程序员为了解决一个特殊问题而

2015-04-15 19:27:30 276

原创 java序列化

1. 什么是Java对象序列化Java平台允许我们在内存中创建可复用的Java对象,但一般情况下,只有当JVM处于运行时,这些对象才可能存在,即,这些对象的生命周期不会比JVM的生命周期更长。但在现实应用中,就可能要求在JVM停止运行之后能够保存(持久化)指定的对象,并在将来重新读取被保存的对象。Java对象序列化就能够帮助我们实现该功能。利用对象的序列化实现保存应用程序的当前工作状态,下次再启动的

2015-04-15 14:36:24 604

原创 java中hashcode()和equals()的详解

1. 首先equals()和hashcode()这两个方法都是从object类中继承过来的。 equals()方法在object类中定义如下: public boolean equals(Object obj) { return (this == obj); } 很明显是对两个对象的地址值进行的比较(即比较引用是否相同)。但是我们必需清楚,当String 、Math 还有Integ

2015-04-12 11:05:56 227

原创 双重检查锁定

单例创建模式是一个通用的编程习语。和多线程一起使用时,必需使用某种类型的同步。在努力创建更有效的代码时,Java 程序员们创建了双重检查锁定习语,将其和单例创建模式一起使用,从而限制同步代码量。然而,由于一些不太常见的 Java 内存模型细节的原因,并不能保证这个双重检查锁定习语有效。它偶尔会失败,而不是总失败。此外,它失败的原因并不明显,还包含 Java 内存模型的一些隐秘细节。这些事实将导致代码

2015-04-11 19:51:45 362

转载 Java 理论与实践: 正确使用 Volatile 变量

volatile 变量使用指南Java™ 语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量。这两种机制的提出都是为了实现代码线程的安全性。其中 Volatile 变量的同步性较差(但有时它更简单并且开销更低),而且其使用也更容易出错。本文将介绍几种正确使用 volatile 变量的模式,并针对其适用性限制提出一些建议。Java 语言中的 volatile 变量可以

2015-04-11 16:55:46 212

转载 java并发编程之ConcurrentHashMap

ConcurrentHashMapConcurrentHashMap是一个线程安全的Hash Table,它的主要功能是提供了一组和HashTable功能相同但是线程安全的方法。ConcurrentHashMap可以做到读取数据不加锁,并且其内部的结构可以让其在进行写操作的时候能够将锁的粒度保持地尽量地小,不用对整个ConcurrentHashMap加锁。ConcurrentHashMap的内部结构

2015-04-11 15:11:03 263

转载 ConcurrentHashMap之实现细节

ConcurrentHashMap是Java 5中支持高并发、高吞吐量的线程安全HashMap实现。其实现之精巧,令人叹服,与大家共享之。实现原理锁分离 (Lock Stripping)ConcurrentHashMap允许多个修改操作并发进行,其关键在于使用了锁分离技术。它使用了多个锁来控制对hash表的不同部分进行的修改。ConcurrentHashMap内部使用段(Segment)来表示这些不

2015-04-11 10:22:21 281

转载 JAVA 服务提供者框架介绍

服务提供者框架是指:多个服务提供者实现一个服务,系统为客户端提供多个实现,并把他们从多个实现中解耦出来。服务提供者的改变对它们的客户端是透明的,这样提供了更好的可扩展性。例如,JDBC,JMS等就是用了服务提供者框架。他们之间的关系如下图:1.服务具体实现类和服务提供者实现类是服务提供者自己去实现。以JDBC为例,这2个模块由具体的数据库提供商来实现。2.其他三个模块是java对数据库提供商怎么实现

2015-04-11 09:12:17 491

原创 Effective Java 阅读笔记

引言Java语言支持四种类型:接口、类、数组、基本类型 接口、类、数组被称为引用类型,类实例和数组是对象,而基本类型的值则不是对象。 方法的签名由它的名称和所有参数类型组成,签名不包括它的返回类型。创建和销毁对象第1条:考虑用静态工厂方法代替构造器例:public static Boolean valueOf(boolean b){ return b ? Boolean

2015-04-10 18:04:17 728

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除