自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Hello_zihan的博客

站在巨人的肩膀上、向前走

  • 博客(48)
  • 收藏
  • 关注

原创 Java之内部类

1、创建内部类  可以将一个类的定义放在另一个类的定义内部,这就是内部类。public class OuterClass { static InnerClass iClass1 = new OuterClass().new InnerClass();//静态变量 OuterClass.InnerClass iClass3 = new InnerClass();//非静态变量声明方法

2016-11-19 12:30:17 329

原创 记录一下使用bat文件批量执行sql文件

可以一行一行输入到cmd中yunxing::表示注释@echo off ::@表示不显示当前命令 echo off表示不显示后续命令F: ::切换到F盘 cd F:\MySQL5.5\bin\ ::进入mysql安装目录,如果配置了mysql环境变量,可不需要该语句@set db=installmen

2016-11-16 19:15:51 1429

转载 Java之synchronized

作者:GangWang 出处:http://www.cnblogs.com/GnagWang/ 记下来,很重要。Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。     一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行

2016-11-13 23:38:05 291

原创 Java之多线程

1、进程与线程       我们常用的QQ就是一个进程,但是只有在启动之后,才开启了一个进程,开启时需要一定的内存和资源来运行;而线程是在QQ启动之后运行的一些任务,比如QQ聊天、视频,都需要新的线程来执行该任务,即先有进程,然后再有线程。2、Java程序中多线程的实现 继承Thread类和实现Runable接口,新线程执行,即是执行run()方法里的内容:public class

2016-11-13 14:34:26 324

原创 Java之Object流

Object流是一种处理流,分为ObjectOutputStream、ObjectInputStream,可以写入对象、读取对象。public class TestObjectIO { public static void main(String args[]) throws Exception { Test test = new Test(); test.k = 8; File

2016-11-12 23:01:30 414

原创 Java之数据流

数据流也是一种处理流,分为DataOutputStream和DataInputStream两种,提供了可以存取与机器无关的Java原始类型数据(如int,double等)的方法import java.io.*;public class TestDataStream { public static void main(String[] args) { ByteArrayOutput

2016-11-12 22:16:03 499

原创 Java之转换流

转换流也是处理流的一种,分为OutputStreamWriter、InputStreamReader两种,是将字节流转化为字符流进行读取或者写入。public class TestTransForm1 { public static void main(String[] args) { try { //将OutputStream转换成Writer Outpu

2016-11-12 16:17:20 243

原创 Java设计模式之适配器模式

适配器模式(Adapter Pattern)将一个类的接口转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。public class DuckTestDrive { public static void main(String[] args) { MallardDuck duck = new MallardDuck();//创建一只鸭子 WildTurk

2016-11-05 17:26:31 190

原创 Java设计模式之单例模式

单例模式(Singleton Pattern)用来创建独一无二的,只能有一个实例的对象的入场券。 经典的单例模式,不考虑多线程:public class Singleton { private static Singleton uniqueInstance;//使用静态变量来记录Singleton类的唯一实例 // other useful instance variables her

2016-11-05 13:21:44 243

原创 Java之处理流

Java的处理流是包装在流上面的流,对被包装的流进行增强扩展,就相当于在原来的管道上封装一个更为强大的管道。如下图所示:根据节点流需要包装的流的不同,及处理的数据单位不同,分为以下几类:

2016-11-03 20:32:59 339

原创 Java之节点流

Java中的流按照功能可以分为节点流和处理流。其中节点流是直接用来访问数据源,而数据源又分为文件、内存、管道(线程间通信使用),所以就需要不同的类来进行处理。每次从数据源中读取的数据单位又可以分为字节和字符。按照这三种来划分,节点流分为如下:  拿FileInputStream来说,当我们从硬盘上按照字节来读取数据时,需要先调用下面的语句                      

2016-11-03 18:09:28 599

原创 Java之IO概述

java.io包里的类太多了,第一次看到这些API时会感觉非常零乱,实际上是因为里面用了装饰者模式(设计模式中写),会一层层包装扩展,因此类会很多,显得很琐碎。里面的绝大部分类图如下,图片来自:http://davidisok.iteye.com/blog/2106489                           1、流       java中读取文件内容或者写入文件内容

2016-11-03 15:45:21 391

原创 Java集合之HashSet

//此类实现 Set接口,由哈希表(实际上是一个 HashMap实例)支持。它不保证 set的迭代顺序。非线程安全 JDK1.7 java.utilpublic class HashSet extends AbstractSet implements Set, Cloneable, java.io.Serializable //可克隆、可

2016-11-03 11:13:39 253

原创 Java集合之AbstractSet

//此类提供 Set 接口的骨干实现,从而最大限度地减少了实现此接口所需的工作 JDK1.7 java.utilpublic abstract class AbstractSet extends AbstractCollection implements Set { //构造方法 protected AbstractSet() { } //比较指

2016-11-03 10:47:10 687

原创 Java集合之SortedMap、NavigableMap

public interface SortedMap extends Map {//提供关于键的总体排序的 Map JDK1.7 java.util Comparator comparator();//返回对此映射中的键进行排序的比较器;如果此映射使用键的自然顺序,则返回 null。 SortedMap subMap(K fromKey, K toKey);//返回此映射的

2016-11-02 23:21:24 445

原创 Java集合之HashMap

HashMap基于哈希表的Map接口的实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。并且该类是非线程安全的。 HashMap的底层是一个数组加链表的集合。它的数据结构如下:           HashMap底层是一个table数组,数组的长度(table.length)始终要求是2的N次幂。每次在该Has

2016-11-02 21:38:06 292

原创 Java集合之AbstractMap

//此类提供 Map接口的骨干实现,以最大限度地减少实现此接口所需的工作public abstract class AbstractMap implements Map { protected AbstractMap() {//构造方法 } public int size() {//返回此映射中的键-值映射关系数 return entrySet().siz

2016-11-02 14:43:07 213

原创 Java集合之Map

Map,即键值对。将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。此接口取代Dictionary 类,后者完全是一个抽象类,而不是一个接口。Map 接口提供三种collection 视图,允许以键集、值集或键-值映射关系集的形式查看某个映射的内容。public interface Map {//JDK1.7 java.util int size();//

2016-11-02 13:17:08 190

原创 Java集合之Vector、Stack

Vector类中大部分方法都在前面详细写过,方法内部的实现就不再重复。//Vector类可以实现可增长的对象数组,实现了RandomAccess接口,随机访问速度快。线程安全。 JDK1.7 java.utilpublic class Vector extends AbstractList implements List, R

2016-11-02 12:55:53 535

原创 Java集合之Set、SortedSet、NavigableSet

public interface Set extends Collection {//不包含重复元素集合 JDK1.7 java.util int size();//元素个数 boolean isEmpty();// set不包含元素,则返回 true boolean contains(Object o);//set包含指定的元素,则返回 true I

2016-11-01 22:46:04 2274

原创 Java集合之LinkedList

前面写过ArrayList,此类继承了RandomAccess这个标记接口,标记其随机访问速度快(例如使用get方法,set方法等通过索引直接定位的方法),因为其底层是数组,所以直接通过索引定位速度较快。而LinkedList底层是链表,随机访问速度相对较慢,因此其要一步步移动指针来定位;但是执行插入或删除时,LinkedList较快,因此其直接指针修改即可,而ArrayList要重新移动数据来填

2016-11-01 17:44:04 204

原创 Java集合之AbstractSequentialList

public abstract class AbstractSequentialList extends AbstractList {//继承AbstractList JDK1.7 java.util protected AbstractSequentialList() {//构造器protected } public E get(int index) {//返回此

2016-11-01 17:31:36 287

原创 Java集合之Queue和Deque接口

public interface Queue extends Collection {//队列 JDK1.7 java.util //一些队列有大小限制,因此如果想在一个满的队列中加入一个新项,多出的项就会被拒绝。此时add会抛出异常;offer会返回false boolean add(E e);//将指定的元素插入此队列 boolean offer(E e);//将指定的元

2016-11-01 17:18:13 827

原创 Java集合之ArrayList

ArrayList的底层是数组。继承了AbstractList抽象类,实现了List、RandomAccess、Cloneable、java.io.Serializable接口。其中RandomAccess接口是标记接口,用来表明其支持快速的随机访问。属于RandomAccess的实现(如ArrayList)还是SequenceAccess的实现(如LinkedList)需要进行区分开来,因为他们

2016-11-01 15:23:18 246

原创 Java集合之AbstractList抽象类

//此类提供 List 接口的骨干实现,以最大限度地减少实现"随机访问"数据存储(如数组)支持的该接口所需的工作。//对于连续的访问数据(如链表),应优先使用 AbstractSequentialList,而不是此类 jdk1.7 java.utilpublic abstract class AbstractList extends AbstractColle

2016-11-01 00:05:56 1316

原创 Java集合之list接口与set接口

public interface List extends Collection {//有序队列 jdk:1.7 java.util int size();//返回列表中的元素数 boolean isEmpty();//是否包含元素 boolean contains(Object o);//是否包含指定的元素 Iterator iterator();/

2016-10-31 17:57:44 355

原创 Java集合之AbstractCollection

//此类提供 Collection 接口的骨干实现,以最大限度地减少了实现此接口所需的工作(Jdk:1.7 java.util)public abstract class AbstractCollection implements Collection { protected AbstractCollection() {//供子类使用,通常为protected }

2016-10-31 17:16:58 308

原创 Java集合之总体框架

Java集合位于java.util.*,平时使用得非常多,当其中与泛型(参见前面)结合起来时,起初理解起来也比较费力,所以记录一下里面的集合框架和部分源码。 Java集合框架如下(图来源于百度图片):其中虚线框内全部为接口(其中也标有接口),蓝色字体为抽象类。其中Collection接口为所有集合的父类。源码如下(jdk为1.7,加上了迭代器):public interfa

2016-10-31 14:53:11 392

原创 Java的String

String的底层是char类型的数组,所以先需要看一下char类型。1、char类型  Java中char类型采用16位的Unicode编码,后来由于字符集太多,超过了65536个,所以16位的Unicode已经不能满足需要了。于是自JDK5.0开始,采用代码点表示某个字符对应的代码值,代码点规定十六进制书写,并加上前缀U+,例如U+0041表示A的代码点。Unicode的代码点分为17

2016-10-29 13:32:12 888

原创 Java的Arrays源码

JDK:1.7   包名 java.util;去掉了部分重载的方法public class Arrays { private Arrays() {} //私有构造器 public static void sort(int[] a) { //整型排序 DualPivotQuicksort.sort(a); } public stat

2016-10-29 12:11:42 327

原创 Java数组

无论使用哪种类型的数组,数组标识符其实只是一个引用,指向在堆上创建的一个真实对象,这个数组对象用以保存指向其它对象的引用(基本类型保存的是值)。1、数组的初始化: 下例总结了数组的初始化的几种方式:public class ArrayOptions { public static void main(String[] args) { BerylliumSphere[] a;

2016-10-27 15:42:13 189

原创 Java反射

1、Class对象   Class类对象包含了一个类的各种信息,它的域、方法、接口等等。每一个类都有一个Class对象,即每当编写一个新类,就会产生一个Class对象(更恰当的说,是被保存在一个同名的.class文件中)。为了生成这个类的对象,运行这个程序的JVM将使用被称为"类加载器"的子系统。获取一个类对象有三种方式:  1.1、Class.forName("类的全限定名")

2016-10-26 14:24:06 208

原创 Java泛型中的擦除

1、擦除当深入了解泛型后,就会发现很多东西初看起来是没有意义的。例如,尽管可以申明ArrayList.class,但是不能申明为Array.class。例如:class Manipulator { private T obj; public Manipulator(T x) { obj = x; } // Error: cannot find symbol: method

2016-10-25 16:52:12 933

原创 Java初始化顺序

无论创建多少个对象,静态数据只占一份存储区域(方法区里)。static关键字不能用于局部变量,因此它只能作用于域。如果一个域是静态的基本类型域,且也没有对它进行初始化,那么它就会获得基本的数据类型的标准;如果它是一个引用,那么会获得初始值null。package com.test;public class Test { public static void main(String[] a

2016-10-24 13:31:03 228

原创 Log4J的简单使用

配置详细的日志输出,能帮助我们迅速定位有问题的代码位置,特别是当项目部署到服务器上,更需要一些日志对代码进行定位。Log4J:     Log4j中有四个主要的组件,它们分别是 Logger(记录器)、Appender(输出目的地)、Layout(布局器:输出格式)和信息输出级别。日志输出即是拿到一个日志记录器(Logger),然后输出到什么地方(Appender,比如文件、控制台等等),

2016-10-19 14:22:33 322

原创 git基础原理

1、版本控制       分布式管理与集中式管理:     比较一:  比较二:git的工作区域与文件不同的状态2、git分支:    每提交一次,都会包含一个指向前一个提交对象的指针,默认为master,并且自动向前移动。master指向新的版本:           新建一个分支(git branch name)时

2016-10-18 14:24:34 254

原创 eclipse中maven插件新建web项目

eclipse中maven插件新建web项目,前几步创建普通的maven project,只是在骨架选择时需选择不同的骨架,最终生成如下:修改JDK后结构变成如下(其中src/main/java、src/main/resources、/src/test/java分别放置源码、配置文件、测试代码):然后可以对比不用maven的web project进行替换:将ME

2016-10-18 11:23:22 233

原创 maven基础

这两天被一个web项目的bug弄得头疼,今天快下班才明白是maven的原因,于是又重新去看maven的视频和文章,就决定记录一下,免得又忘记了。这篇文章里,仅仅是maven各种常见的操作,及eclipse中maven插件的使用,至于它的便利性及实用性意义,还需要以后在项目中慢慢体会。  1、maven的常用配置及命令:modelVersion:POM版本模型,固定为4.0.0group

2016-10-17 21:44:20 314

原创 eclipse中使用maven插件创建project

1、eclipse中maven插件的使用:  现在的eclipse都自带了maven插件,可以在window-->Preference-->maven-->User settings中的User settings中进行配置, 修改本地仓库的位置。并且window-->Preference-->maven中配置进行可以下载源码和JavaDoc,看源码就会非常方便了!然后建立maven管理的项

2016-10-14 19:56:40 378

原创 Java之对象的创建、访问

1、对象的创建创建一个对象通常是需要new关键字,当虚拟机遇到一条new指令时,首先检查这个指令的参数是否在常量池(参考上文中的方法区)中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有那么必须执行相应的类加载过程(后面会补充)。类加载检查通过后,虚拟机将为新生对象分配内存。为对象分配空间的任务等同于把一块确定大小的内存从Java堆中划

2016-10-12 11:19:05 308

空空如也

空空如也

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

TA关注的人

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