自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 注解的使用

我们知道注解是在JDK1.5引入的,可能有的人没有用过注解,所以感觉注解这个东西没有什么用,但是深入了解注解,对以后学习框架有所帮助的,后面提到的JavaWeb的框架中很多都是基于注解的技术,其实注解你可以把他认为是一种标记,和接口差不多,我们知道有些接口只起到标记作用(通常叫做标记接口如:Serializable,Cloneable等,就是接口中没有任何东西,只做为一种标记),下面来看一下注

2017-07-06 11:11:11 340 1

转载 我们能从java的HelloWorld学到什么?

这是每个Java程序员都知道的。虽然简单,但是从一个简单的问题可以引入更深的思考。在这篇文章中,我们将讨论这个简单的程序。如果能更多的帮到你,请留下宝贵的意见。HelloWorld.javapublic class HelloWorld { /** * @param args */ public static void main(String[] args) { // TODO

2017-07-04 14:35:30 337

转载 java反射技术

今天我们来看一下Java中的反射技术:首先来了解一下Java中的反射的一些概念:Java中的反射是1.2引入的反射的基石:class类Class类的各个实例对象分别对应各个类在内存中的字节码,例如Person类的字节码,ArrayList类的字节码,等等。一个类被类加载器加载到内存中,占用一片存储空间,这个空间里面的内容就是类的字节码,不同的类的字节码是不同的,所以他们在内存中

2017-07-04 11:03:35 550

转载 类加载器详解

首先来了解一下字节码和class文件的区别:我们知道,新建一个Java对象的时候,JVM要将这个对象对应的字节码加载到内存中,这个字节码的原始信息存放在classpath(就是我们新建Java工程的bin目录下)指定的目录下的.class文件,类加载需要将.class文件导入到硬盘中,经过一些处理之后变成字节码在加载到内存中。下面来看一下简单的例子:[java] view

2017-06-27 12:22:38 314

转载 哈希表(散列表)原理详解

什么是哈希表?   哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。记录的存储位置=f(关键字)这里的对应关系f称为散列函数,又称为哈希(Hash函数),采用散列技术将记录存储在一块连续的存储空间中,这块

2017-06-22 15:19:50 518

转载 Callable与Future的介绍

Callable与Future 两功能是Java在后续版本中为了适应多并法才加入的,Callable是类似于Runnable的接口,实现Callable接口的类和实现Runnable的类都是可被其他线程执行的任务。Callable的接口定义如下;public interface Callable {       V   call()   throws Exception; } 

2017-06-08 11:25:50 335

转载 java中volatile关键字的含义

在java线程并发处理中,有一个关键字volatile的使用目前存在很大的混淆,以为使用这个关键字,在进行多线程并发处理的时候就可以万事大吉。Java语言是支持多线程的,为了解决线程并发的问题,在语言内部引入了 同步块 和 volatile 关键字机制。 synchronized 同步块大家都比较熟悉,通过 synchronized 关键字来实现,所有加上synchronized

2017-06-08 11:15:24 282

转载 @synchronized 锁用法

1. synchronized   这个主要是考虑多线程的程序,这个指令可以将{ } 内的代码限制在一个线程执行,如果某个线程没有执行完,其他的线程如果需要执行就得等着。Objective-C除了提供异常处理机制外,还提供了线程同步功能。异常处理在前面的“异常处理”章节有介绍。 线程的同步执行Objective-C支持程序中的多线程。这就意味着两个线程有可能同时修改同一

2017-06-08 10:21:37 255

转载 Java中@Override的作用

@Override是伪代码,表示重写(当然不写也可以),不过写上有如下好处:1、可以当注释用,方便阅读;2、编译器可以给你验证@Override下面的方法名是否是你父类中所有的,如果没有则报错。例如,你如果没写@Override,而你下面的方法名又写错了,这时你的编译器是可以编译通过的,因为编译器以为这个方法是你的子类中自己增加的方法。 举例:在重写父类的onCreate时,在方法

2017-06-08 09:56:06 248

转载 Java中的多线程

引如果对什么是线程、什么是进程仍存有疑惑,请先Google之,因为这两个概念不在本文的范围之内。用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现。说这个话其实只有一半对,因为反应“多角色”的程序代码,最起码每个角色要给他一个线程吧,否则连实际场景都无法模拟,当然也没法说能用单线程来实现:比如最常见的“生产者,消费者模型”。很多人都对其中的一些

2017-06-07 16:38:11 230

转载 通过mark和reset方法重复利用InputStream

在上篇文章中我们已经简单的知道可以通过缓存InputStream来重复利用一个InputStream,但是这种方式的缺点也是明显的,就是要缓存一整个InputStream内存压力可能是比较大的。如果第一次读取InputStream是用来判断文件流类型,文件编码等用的,往往不需要所有的InputStream的数据,或许只需要前n个字节,这样一来,缓存一整个InputStream实际上也是一种浪费。

2017-06-01 17:24:25 758

转载 Java IO最详解

初学Java,一直搞不懂java里面的io关系,在网上找了很多大多都是给个结构图草草描述也看的不是很懂。而且没有结合到java7 的最新技术,所以自己来整理一下,有错的话请指正,也希望大家提出宝贵意见。首先看个图:(如果你也是初学者,我相信你看了真个人都不好了,想想java设计者真是煞费苦心啊!) 这是Javaio 比较基本的一些处理流,除此之外我们还会提到一些

2017-05-31 17:09:08 362

转载 SQLServer XML类型

SQL Server从2005起开始支持xml类型,这个数据类型对于后期的改变非常有用。一对多的关系在后期变成了多对多的关系,XML类型就是一个不错的选择。  1、创建测试数据  创建表  --创建表,包含Xml类型列  CREATE TABLE Person  (   Id int,   Info xml  )  插入测试数据  --插入3条

2017-05-24 17:00:12 630 1

转载 SQL Server 触发器

触发器可以做很多事情,但也会带来很多问题。使用它的技巧在于在适当的时候使用,而不要在不适当的时候使用它们。  触发器的一些常见用途如下:弹性参照完整性:实现很多DRI不能实现的操作(例如,跨数据库或服务器的参照完整性以及很多复杂的关系类型)。创建神级跟踪:这意味写出的记录不仅跟踪大多数当前的数据,还包括对每个记录进行实际修改的历史数据。随着SQL Server2008中的更改数据跟踪功

2017-05-23 16:30:41 569

转载 SQL Server 锁

锁是一种防止在某对象执行动作的一个进程与已在该对象上执行的其他进行相冲突的机制。也就是说,如果有其他人在操作某个对象,那么你旧不能在该对象上进行操作。你能否执行操作取决于其他用户正在进行的操作。通过锁可以防止的问题  锁可以解决以下4种主要问题:脏读非重复性读取幻读丢失更新  1、脏读  如果一个事务读取的记录是另一个未完成事务的一部分,那么这时就发生了脏读。如果第一个事务

2017-05-12 16:45:38 374

转载 SQL Server 事务语法

事务全部是关于原子性的。原子性的概念是指可以把一些事情当做一个单元来看待。从数据库的角度看,它是指应全部执行或全部都不执行的一条或多条语句的最小组合。为了理解事务的概念,需要能够定义非常明确的边界。事务要有非常明确的开始和结束点。SQL Server中的每一条SELECT、INSERT、UPDATE和DELETE语句都是隐式事务的一部分。即使只发出一条语句,也会把这条语句当做一个事务-要么执行

2017-05-12 11:24:06 445

转载 SQL Server 表变量和临时表的区别

一、表变量  表变量在SQL Server 2000中首次被引入。表变量的具体定义包括列定义,列名,数据类型和约束。而在表变量中可以使用的约束包括主键约束,唯一约束,NULL约束和CHECK约束(外键约束不能在表变量中使用)。定义表变量的语句是和正常使用Create Table定义表语句的子集。只是表变量通过DECLARE @local_variable语句进行定义。  表变量的特征:

2017-05-09 17:01:37 368

转载 T-SQL 批处理

批处理简介  批处理是作为一个逻辑单元的T-SQL语句。如果一条语句不能通过语法分析,那么不会运行任何语句。如果一条语句在运行时失败,那么产生错误的语句之前的语句都已经运行了。  为了将一个脚本分为多个批处理,可使用GO语句。  GO语句的特点:  GO语句必须自成一行,只有注释可以再同一行上。  它使得自脚本的开始部分或者最近一个GO语句以后的所有语句编译成一个执行计划并

2017-04-27 10:49:38 893

转载 SQL Server系统存储过程

1、sp_help 查询表的信息  执行存储过程:  sp_help Person  显示结果如下:    妈了个B,有了这张图,你还不懂怎么看一张表有那些信息,那哥以后都不学SQL Server了。另外,还有约束,存储过程,自定义函数等等信息,以后补充。  2、sp_helpdb 查看数据库信息  执行存储过程:  sp_helpdb TestData

2017-04-26 15:10:06 782

转载 SQL 语句转换格式函数Cast、Convert

CAST和CONVERT都经常被使用。特别提取出来作为一篇文章,方便查找。  CAST、CONVERT都可以执行数据类型转换。在大部分情况下,两者执行同样的功能,不同的是CONVERT还提供一些特别的日期格式转换,而CAST没有这个功能。  既然CONVERT包括了CAST的所有功能,而且CONVERT还能进行日期转换,那么为什么需要使用CAST呢?实际上,这是为了ANSI/ISO兼容。C

2017-04-26 13:54:54 319

转载 编码格式简介(ANSI、GBK、GB2312、UTF-8、GB18030和 UNICODE)

编码一直是让新手头疼的问题,特别是 GBK、GB2312、UTF-8 这三个比较常见的网页编码的区别,更是让许多新手晕头转向,怎么解释也解释不清楚。但是编码又是那么重要,特别在网页这一块。如果你打出来的不是乱码,而网页中出现了乱码,绝大部分原因就出在了编码上了。此外除了乱码之外,还会出现一些其他问题(例如:IE6 的 CSS 加载问题)等等。我写本文的目的,就是要彻底解释清楚这个编码问题!如果你遇

2017-04-26 13:43:33 550

转载 SQL、T-SQL与PL-SQL的区别

SQL是Structrued Query Language的缩写,即结构化查询语言。它是负责与ANSI(美国国家标准学会)维护的数据库交互的标准。作为关系数据库的标准语言,它已被众多商用DBMS产品所采用,使得它已成为关系数据库领域中一个主流语言,不仅包含数据查询功能,还包括插入、删除、更新和数据定义功能.T-SQL是SQL语言的一种版本,且只能在SQL SERVER上使用。它是A

2017-04-26 13:31:53 3849

转载 SQL Server 分区表

分区表简介  分区表是SQL Server2005新引入的概念,这个特性在逻辑上将一个表在物理上分为多个部分。(即它允许将一个表存储在不同的物理磁盘里)。在SQL Server2005之前,分区表实际上是分布式视图,也就是多个表做union操作。  分区表在逻辑上是一个表,而物理上是多个表。在用户的角度,分区表和普通表是一样的,用户角度感觉不出来。        而在SQL Ser

2017-04-26 10:28:28 393

转载 SQL Server 文件和文件组

文件和文件组简介  在SQL Server中,数据库在硬盘上的存储方式和普通文件在Windows中的存储方式没有什么不同,仅仅是几个文件而已。SQL Server通过管理逻辑上的文件组的方式来管理文件。  SQL Server通过文件组对数据文件进行管理。我们看到的逻辑数据库由一个或者多个文件组构成。  结构图如下:        文件组管理着磁盘上的文件,文件中存放的就是SQ

2017-04-26 09:41:00 1579

转载 SQL Server逻辑读、预读和物理读

SQL Server数据存储的形式  预读:用估计信息,去硬盘读取数据到缓存。预读100次,也就是估计将要从硬盘中读取了100页数据到缓存。  物理读:查询计划生成好以后,如果缓存缺少所需要的数据,让缓存再次去读硬盘。物理读10页,从硬盘中读取10页数据到缓存。  逻辑读:从缓存中取出所有数据。逻辑读100次,也就是从缓存里取到100页数据。  SQL Server存储的最小单位是页,

2017-04-24 16:59:45 1574

原创 常用算法的时间复杂度

1、时间复杂度 (1)时间频度 一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道。但我们不可能也没有必要对每个算法都上机测试,只需知道哪个算法花费的时间多,哪个算法花费的时间少就可以了。并且一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费时间就多。一个算法中的语句执行次数称为语句频度或时间频度。记为T(n)。(2)时间复杂度

2017-04-24 14:32:54 1391

原创 java 堆排序

1、基本思想:  堆排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种,对直接选择排序的有效改进。可以利用数组的特点快速定位指定索引的元素。堆分为大根堆和小根堆,是完全二叉树。大根堆的要求是每个节点的值都不大于其父节点的值,即A[PARENT[i]] >= A[i]。在数组的非降序排序中,需要使用的就是大根堆,因为根据大根堆的要求可知,最大

2017-04-24 14:21:56 223

原创 java 归并

基本思想:  归并(Merge)排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。归并排序示例:  合并方法:设r[i…n]由两个有序子表r[i…m]和r[m+1…n]组成,两个子表长度分别为n-i +1、n-m。j=m+1;k=i;i=i; //置两个子表的起始下标

2017-04-21 15:07:17 248

原创 java 希尔排序

1、基本思想:先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录“基本有序”时,再对全体记录进行依次直接插入排序。2、操作方法:选择一个增量序列t1,t2,…,tk,其中ti>tj,tk=1;按增量序列个数k,对序列进行k 趟排序;每趟排序,根据对应的增量ti,将待排序列分割成若干长度为m 的子序列,分别对各子表进行直接插入排序。仅增量因子为1 时,

2017-04-20 15:57:26 239

原创 java 快排

通过一趟排序将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分关键字小,则分别对这两部分继续进行排序,直到整个序列有序。  把整个序列看做一个数组,把第零个位置看做中轴,和最后一个比,如果比它小交换,比它大不做任何处理;交换

2017-04-19 14:43:40 364

转载 SQL Server 视图

视图实际上就是一个存储查询,重点是是可以混合和匹配来自基本表(或者其他视图)的数据,从而创建在很多方面像另一个基表那样起作用的对象。可以创建一个简单的查询,仅仅从一个表中选择几列,而忽略其他列;或者也可以创建一个复杂的查询,连接几个表,使的这些表看起来像一个表。一、简单的视图  视图的语法如下:CREATE VIEW view name>ASSELECT statement>

2017-04-17 15:49:16 447

原创 word文档从服务器导出(用freemarker模板导出)

该方法适合小的java程序,当用到javaWeb时发现导出的word在服务器上,而不是下载到客户端,接下来这篇文章是写从服务器上下载文件到本地,下载时浏览器弹出下载框,乱码在代码里已处理。注意,不要用ajax传参,因为ajax只能处理文本信息,不能处理二进制信息。

2017-04-10 15:27:34 2560 1

转载 SQL Server存储机制

1、区段  区段(extent)是用来为表和索引分配空间的基本存储单元。它由8个连续的64KB数据页组成。  基于区段(而不是实际使用空间)分配空间的概念的要点:  一旦区段已满,那么下一记录将要占据的空间不是记录的大小,而是整个新区段的大小。一次分配一个区段而不是分配一个记录。  通过预分配空间,SQL Server节省为每个记录分配新空间的时间。    向当前分配的区段添加

2017-03-30 14:14:09 437

转载 SQLServer - 约束

一、约束的分类  在SQLServer中,有3种不同类型的约束。  1、实体约束    实体约束是关于行的,比如某一行出现的值就不允许出现在其他行,例如主键。  2、域约束    域约束是关于列的,对于所有行,某一列有那些约束,例如CHECK约束。  3、参照完整性约束    如果某列的值必须与其他列的值匹配,那就意味着需要一个参照完整性约束,例如外键。二、约束命名

2017-03-30 14:11:51 845

转载 SQL Server,MySQL,Oracle三者的区别

OracleOracle 能在所有主流平台上运行(包括Windows)。完全支持所有的工业标准。采用完全开放策略。可以使客户选择最适合的解决方案。对开发商全力支持,Oracle并行服务器通过使一组结点共享同一簇中的工作来扩展Windows NT的能力,提供高可用性和高伸缩性的簇的解决方案。如果Windows NT不能满足需要,用户可以把数据库移到UNIX中。Oracle的并行服务器对各种UNI

2017-03-29 13:39:10 973

转载 如何通过配置log4j.xml来打印指定类或指定级别的日志信息

把指定类的日志信息输出到指定appender里:============================================================                                            同样,在root元素里不要指定该appender,如下:      

2017-03-21 16:42:18 5913

转载 通过一个word模板来生成新的word并且填充内容

关于用Java编写生成word文档,动态添加数据到word文档的一些心得,经过翻阅了无数的有用的和无用的资料以后,总算找到了一种靠谱的方法1.概述经过反反复复的查阅资料,总算找到了一个靠谱的生成word的方案,这里分享给大家. 2.需求首先我们的需求是通过一个指定的word模板来生成新的word并且填充内容,内容是我们在布局页面上面就写好的,比如说EditText,TextView

2017-03-21 16:19:15 31654 8

转载 数据库设计的三大范式

关系数据库中的关系必须满足一定的要求。满足不同程度要求的为不同范式。数据库的设计范式是数据库设计所需要满足的规范。只有理解数据库的设计范式,才能设计出高效率、优雅的数据库,否则可能会设计出错误的数据库.目前,主要有六种范式:第一范式、第二范式、第三范式、BC范式、第四范式和第五范式。满足最低要求的叫第一范式,简称1NF。在第一范式基础上进一步满足一些要求的为第二范式,简称2NF。其余依此类推。

2017-03-16 15:30:25 335

转载 Java文件操作①——XML文件的读取

一、邂逅XML文件种类是丰富多彩的,XML作为众多文件类型的一种,经常被用于数据存储和传输。所以XML在现今应用程序中是非常流行的。本文主要讲Java解析和生成XML。用于不同平台、不同设备间的数据共享通信。XML文件的表现:以“.xml”为文件扩展名的文件;   存储结构:树形结构; 节点名称区分大小写。1、 id为属性, 1 id为节点2、xml文件开头要加上版

2017-03-14 09:26:38 342 1

转载 使用Spring的@Scheduled实现定时任务

Spring配置文件xmlns加入xmlns:task="http://www.springframework.org/schema/task"xsi:schemaLocation中加入http://www.springframework.org/schema/taskhttp://www.springframework.org/schema/task/spring-ta

2017-03-13 17:00:40 257

空空如也

空空如也

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

TA关注的人

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