- 博客(48)
- 收藏
- 关注
原创 Java之内部类
1、创建内部类 可以将一个类的定义放在另一个类的定义内部,这就是内部类。public class OuterClass { static InnerClass iClass1 = new OuterClass().new InnerClass();//静态变量 OuterClass.InnerClass iClass3 = new InnerClass();//非静态变量声明方法
2016-11-19 12:30:17
365
原创 记录一下使用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
1572
转载 Java之synchronized
作者:GangWang 出处:http://www.cnblogs.com/GnagWang/ 记下来,很重要。Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。 一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行
2016-11-13 23:38:05
326
原创 Java之多线程
1、进程与线程 我们常用的QQ就是一个进程,但是只有在启动之后,才开启了一个进程,开启时需要一定的内存和资源来运行;而线程是在QQ启动之后运行的一些任务,比如QQ聊天、视频,都需要新的线程来执行该任务,即先有进程,然后再有线程。2、Java程序中多线程的实现 继承Thread类和实现Runable接口,新线程执行,即是执行run()方法里的内容:public class
2016-11-13 14:34:26
357
原创 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
461
原创 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
552
原创 Java之转换流
转换流也是处理流的一种,分为OutputStreamWriter、InputStreamReader两种,是将字节流转化为字符流进行读取或者写入。public class TestTransForm1 { public static void main(String[] args) { try { //将OutputStream转换成Writer Outpu
2016-11-12 16:17:20
291
原创 Java设计模式之适配器模式
适配器模式(Adapter Pattern)将一个类的接口转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。public class DuckTestDrive { public static void main(String[] args) { MallardDuck duck = new MallardDuck();//创建一只鸭子 WildTurk
2016-11-05 17:26:31
226
原创 Java设计模式之单例模式
单例模式(Singleton Pattern)用来创建独一无二的,只能有一个实例的对象的入场券。 经典的单例模式,不考虑多线程:public class Singleton { private static Singleton uniqueInstance;//使用静态变量来记录Singleton类的唯一实例 // other useful instance variables her
2016-11-05 13:21:44
275
原创 Java之处理流
Java的处理流是包装在流上面的流,对被包装的流进行增强扩展,就相当于在原来的管道上封装一个更为强大的管道。如下图所示:根据节点流需要包装的流的不同,及处理的数据单位不同,分为以下几类:
2016-11-03 20:32:59
387
原创 Java之节点流
Java中的流按照功能可以分为节点流和处理流。其中节点流是直接用来访问数据源,而数据源又分为文件、内存、管道(线程间通信使用),所以就需要不同的类来进行处理。每次从数据源中读取的数据单位又可以分为字节和字符。按照这三种来划分,节点流分为如下: 拿FileInputStream来说,当我们从硬盘上按照字节来读取数据时,需要先调用下面的语句
2016-11-03 18:09:28
688
原创 Java之IO概述
java.io包里的类太多了,第一次看到这些API时会感觉非常零乱,实际上是因为里面用了装饰者模式(设计模式中写),会一层层包装扩展,因此类会很多,显得很琐碎。里面的绝大部分类图如下,图片来自:http://davidisok.iteye.com/blog/2106489 1、流 java中读取文件内容或者写入文件内容
2016-11-03 15:45:21
446
原创 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
282
原创 Java集合之AbstractSet
//此类提供 Set 接口的骨干实现,从而最大限度地减少了实现此接口所需的工作 JDK1.7 java.utilpublic abstract class AbstractSet extends AbstractCollection implements Set { //构造方法 protected AbstractSet() { } //比较指
2016-11-03 10:47:10
733
原创 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
492
原创 Java集合之HashMap
HashMap基于哈希表的Map接口的实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。并且该类是非线程安全的。 HashMap的底层是一个数组加链表的集合。它的数据结构如下: HashMap底层是一个table数组,数组的长度(table.length)始终要求是2的N次幂。每次在该Has
2016-11-02 21:38:06
335
原创 Java集合之AbstractMap
//此类提供 Map接口的骨干实现,以最大限度地减少实现此接口所需的工作public abstract class AbstractMap implements Map { protected AbstractMap() {//构造方法 } public int size() {//返回此映射中的键-值映射关系数 return entrySet().siz
2016-11-02 14:43:07
269
原创 Java集合之Map
Map,即键值对。将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。此接口取代Dictionary 类,后者完全是一个抽象类,而不是一个接口。Map 接口提供三种collection 视图,允许以键集、值集或键-值映射关系集的形式查看某个映射的内容。public interface Map {//JDK1.7 java.util int size();//
2016-11-02 13:17:08
229
原创 Java集合之Vector、Stack
Vector类中大部分方法都在前面详细写过,方法内部的实现就不再重复。//Vector类可以实现可增长的对象数组,实现了RandomAccess接口,随机访问速度快。线程安全。 JDK1.7 java.utilpublic class Vector extends AbstractList implements List, R
2016-11-02 12:55:53
574
原创 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
2330
原创 Java集合之LinkedList
前面写过ArrayList,此类继承了RandomAccess这个标记接口,标记其随机访问速度快(例如使用get方法,set方法等通过索引直接定位的方法),因为其底层是数组,所以直接通过索引定位速度较快。而LinkedList底层是链表,随机访问速度相对较慢,因此其要一步步移动指针来定位;但是执行插入或删除时,LinkedList较快,因此其直接指针修改即可,而ArrayList要重新移动数据来填
2016-11-01 17:44:04
253
原创 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
320
原创 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
881
原创 Java集合之ArrayList
ArrayList的底层是数组。继承了AbstractList抽象类,实现了List、RandomAccess、Cloneable、java.io.Serializable接口。其中RandomAccess接口是标记接口,用来表明其支持快速的随机访问。属于RandomAccess的实现(如ArrayList)还是SequenceAccess的实现(如LinkedList)需要进行区分开来,因为他们
2016-11-01 15:23:18
273
原创 Java集合之AbstractList抽象类
//此类提供 List 接口的骨干实现,以最大限度地减少实现"随机访问"数据存储(如数组)支持的该接口所需的工作。//对于连续的访问数据(如链表),应优先使用 AbstractSequentialList,而不是此类 jdk1.7 java.utilpublic abstract class AbstractList extends AbstractColle
2016-11-01 00:05:56
1389
原创 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
394
原创 Java集合之AbstractCollection
//此类提供 Collection 接口的骨干实现,以最大限度地减少了实现此接口所需的工作(Jdk:1.7 java.util)public abstract class AbstractCollection implements Collection { protected AbstractCollection() {//供子类使用,通常为protected }
2016-10-31 17:16:58
351
原创 Java集合之总体框架
Java集合位于java.util.*,平时使用得非常多,当其中与泛型(参见前面)结合起来时,起初理解起来也比较费力,所以记录一下里面的集合框架和部分源码。 Java集合框架如下(图来源于百度图片):其中虚线框内全部为接口(其中也标有接口),蓝色字体为抽象类。其中Collection接口为所有集合的父类。源码如下(jdk为1.7,加上了迭代器):public interfa
2016-10-31 14:53:11
426
原创 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
947
原创 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
374
原创 Java数组
无论使用哪种类型的数组,数组标识符其实只是一个引用,指向在堆上创建的一个真实对象,这个数组对象用以保存指向其它对象的引用(基本类型保存的是值)。1、数组的初始化: 下例总结了数组的初始化的几种方式:public class ArrayOptions { public static void main(String[] args) { BerylliumSphere[] a;
2016-10-27 15:42:13
219
原创 Java反射
1、Class对象 Class类对象包含了一个类的各种信息,它的域、方法、接口等等。每一个类都有一个Class对象,即每当编写一个新类,就会产生一个Class对象(更恰当的说,是被保存在一个同名的.class文件中)。为了生成这个类的对象,运行这个程序的JVM将使用被称为"类加载器"的子系统。获取一个类对象有三种方式: 1.1、Class.forName("类的全限定名")
2016-10-26 14:24:06
230
原创 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
1213
原创 Java初始化顺序
无论创建多少个对象,静态数据只占一份存储区域(方法区里)。static关键字不能用于局部变量,因此它只能作用于域。如果一个域是静态的基本类型域,且也没有对它进行初始化,那么它就会获得基本的数据类型的标准;如果它是一个引用,那么会获得初始值null。package com.test;public class Test { public static void main(String[] a
2016-10-24 13:31:03
260
原创 Log4J的简单使用
配置详细的日志输出,能帮助我们迅速定位有问题的代码位置,特别是当项目部署到服务器上,更需要一些日志对代码进行定位。Log4J: Log4j中有四个主要的组件,它们分别是 Logger(记录器)、Appender(输出目的地)、Layout(布局器:输出格式)和信息输出级别。日志输出即是拿到一个日志记录器(Logger),然后输出到什么地方(Appender,比如文件、控制台等等),
2016-10-19 14:22:33
365
原创 git基础原理
1、版本控制 分布式管理与集中式管理: 比较一: 比较二:git的工作区域与文件不同的状态2、git分支: 每提交一次,都会包含一个指向前一个提交对象的指针,默认为master,并且自动向前移动。master指向新的版本: 新建一个分支(git branch name)时
2016-10-18 14:24:34
278
原创 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
270
原创 maven基础
这两天被一个web项目的bug弄得头疼,今天快下班才明白是maven的原因,于是又重新去看maven的视频和文章,就决定记录一下,免得又忘记了。这篇文章里,仅仅是maven各种常见的操作,及eclipse中maven插件的使用,至于它的便利性及实用性意义,还需要以后在项目中慢慢体会。 1、maven的常用配置及命令:modelVersion:POM版本模型,固定为4.0.0group
2016-10-17 21:44:20
360
原创 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
430
原创 Java之对象的创建、访问
1、对象的创建创建一个对象通常是需要new关键字,当虚拟机遇到一条new指令时,首先检查这个指令的参数是否在常量池(参考上文中的方法区)中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有那么必须执行相应的类加载过程(后面会补充)。类加载检查通过后,虚拟机将为新生对象分配内存。为对象分配空间的任务等同于把一块确定大小的内存从Java堆中划
2016-10-12 11:19:05
347
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人