自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

raylee2007的专栏

java技术博客,每天深入一点点

  • 博客(71)
  • 资源 (20)
  • 问答 (4)
  • 收藏
  • 关注

原创 从头认识java-15.7 Map(3)-介绍HashMap的工作原理-get方法

接着上一章节,我们来讨论一下get方法。1.还是利用上一章节的图下图引用自:http://www.admin10000.com/document/3322.html2.get方法的源码:public V get(Object key) { if (key == null) return getForNullKey(); int hash =

2015-12-31 15:10:22 3100 1

原创 从头认识java-15.7 Map(2)-介绍HashMap的工作原理-put方法

这一章节我们来介绍HashMap的工作原理。1.HashMap的工作原理图下图引用自:http://www.admin10000.com/document/3322.html(1)HashMap初始化的时候我们可以这样理解:一个数组,每一个位置存储的是一个链表,链表里面的每一个元素才是我们记录的元素下面我们来看put的源码:public V put(K key, V value) {

2015-12-31 14:52:27 5888

原创 从头认识java-15.7 Map(1)-使用数组来简单模拟Map的创建

这一章节我们来使用数组模拟一下Map,了解一下Map的创建。1.Map是什么?Map,映射表,也叫关联数组,维护“键-值”的关联。2.使用数组模拟Mappackage com.ray.ch15;import java.util.HashSet;import java.util.Set;public class Test { public static void main(String[

2015-12-30 14:15:20 2566

原创 从头认识java-15.6 队列(Queue)

这一章节我们来讨论一下队列(Queue)。1.什么是队列?队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。 2.特性(1)元素是有序的(2)元素是先进先出 3.java里面的实现类:Linkedlist和PriorityQueue,两者之间性能不存在差别,差别的地方是排序的行为。pack

2015-12-29 22:15:54 2417 2

原创 从头认识java-15.5 使用LinkedHashSet需要注意的地方

再接着上一个章节,我们来聊一下使用LinkedHashSet需要注意的地方。LinkedHashSet特点:(1)元素是有顺序的(2)元素是不重复的(3)底层数据结构是按照链表的结构存储的(4)需要重新hashcode和equals方法例子:(我们再次修改上一章节的代码)package com.ray.ch15;import java.lang.reflect.InvocationTarget

2015-12-29 15:35:16 2635

原创 从头认识java-15.4 使用TreeSet需要注意的地方

接着上一章节,我们继续来讨论使用TreeSet需要注意的地方。2.TreeSet特点:(1)元素是有序的(2)元素是重复的,需要去重(3)必须实现Comparable接口我们修改一下上一章节的代码:package com.ray.ch15;import java.lang.reflect.InvocationTargetException;import java.util.Set;impo

2015-12-29 15:02:32 1689

原创 从头认识java-15.3 使用HashSet需要注意的地方

这一章节我们来讨论一下使用Set的各种实现需要注意的地方。Set接口的常用实现类有:HashSet,TreeSet,LinkedHashSet1.HashSet大家对于HashSet的印象都是它可以去除重复的元素,每一个元素都是唯一的,但是这里面有一个前提,就是必须重写equals和hashcode方法。大家的印象大都是下面这个:package com.ray.ch15;import java

2015-12-29 12:36:11 2055

原创 从头认识java-15.2 Collection的常用方法(2)-注意点

上一章节我们讲述了Collection的常用方法,还有之前的章节我们介绍了Collection的addAll方法,这一章节我们介绍一下它的注意点。注意点就是,在常用方法里面,基本都是可选操作。什么是可选操作?可惜操作的方法不是为所有的实现而设定的,而只是为某一类的实现而设定的。例如:package com.ray.ch15;import java.util.Arrays;import jav

2015-12-28 14:02:49 1716 1

原创 从头认识java-15.2 Collection的常用方法(1)

这一章节我们来介绍一下Collection的常用方法。我们下面以ArrayList为例。package com.ray.ch14;import java.util.ArrayList;import java.util.Iterator;public class Test { public static void main(String[] args) { ArrayL

2015-12-27 22:24:42 2065 2

原创 从头认识java-15.1 填充容器(3)-填充Map

这一章节我们来讨论一下填充容器的另一个方面Map,之前的两个章节我们都是用list来作为容器,这一章节我们使用Map。还有在这里解释一下为什么一直都使用生成器这个东西,其实他就是建造者设计模式,它主要的作用就是生产复杂的对象,而且满足各种需求的变化(灵活性)。还有为什么花这么多章节来讨论填充容器,主要因为填充容器包括比较多的知识点,知识点列举:(1)泛型(2)建造者设计模式(3)容器的填充方法(l

2015-12-27 16:32:27 2663 6

原创 从头认识java-15.1 填充容器(2)-利用Collection的addAll方式

接着上一章节,我们继续介绍填充容器。这一章节我们结束另一种填充容器的方式:addAll例子:package com.ray.ch15;import java.util.ArrayList;import java.util.Arrays;import java.util.LinkedHashSet;public class Test { public static void main(

2015-12-25 14:32:39 3014 3

原创 从头认识java-15.1 填充容器(1)-利用Collection构造器的方式

这一章节我们来介绍一下填充容器。就像数组一样,Arrays.fill是填充方法,在容器里面也有。1.Collections.nCopies这个方法是生成某种类型多少个对象,然后我们可以把他放到容器的构造函数里面,填充这个容器。例子:package com.ray.ch15;import java.util.ArrayList;import java.util.Collections;imp

2015-12-25 10:06:53 2633 3

原创 从头认识java-14.4 Java提供的数组的实用功能(2)

接着上一章节,我们继续介绍Java提供的数组的实用功能。3.元素的对比Comparatorpackage com.ray.ch14;import java.util.Arrays;import java.util.Comparator;public class Test { public static void main(String[] args) { MyClass[] myC

2015-12-24 22:35:04 1797

原创 从头认识java-14.4 Java提供的数组的实用功能(1)

这一章节我们来讨论一下Java提供的数组的实用功能。1.复制我们下面来比较一下System.arraycopy和forpackage com.ray.ch14;import java.util.Arrays;public class Test { public static void main(String[] args) { int[] a = new int[10000000];

2015-12-24 16:53:37 1835

原创 从头认识java-14.3 多维数组

这一章节我们来讨论一下多维数组。1.例子:package com.ray.ch14;import java.util.Arrays;public class Test { public static void main(String[] args) { int[][] a = new int[2][2]; System.out.println(Arrays.deepToStrin

2015-12-24 11:48:31 2576

原创 从头认识java-14.2 进一步了解数组

这一章节我们来全面了解一下数组。1.数组在初始化之前,我们不能使用他的引用来做任何事情。package com.ray.ch14;public class Test { public static void main(String[] args) { int[] a; // System.out.println(a);//error,The local variable a

2015-12-23 22:39:28 1948 2

原创 从头认识java-14.1 再次对比数组与容器

这一章节我们再次深入的对比数组与容器。数组与容器主要集中在三个方面:效率、类型、基础类型。我们可以从三方面做出对比。1.效率这里的下来是指add和get 的速度下面以add为例:package com.ray.ch13;import java.util.ArrayList;public class Test { public static void main(String[] args)

2015-12-23 15:01:34 1599

原创 从头认识java-13.15 使用泛型时出现的问题(2)-实现参数化接口与重载

接着上一章节,我们这一章节讨论一下两个比较偏门的知识点:实现参数化接口与重载。主要笔者觉得这两个知识点比较有意思而已。1.实现参数化接口下面是不能编译的代码:package com.ray.ch13;interface Generator {}class MyGenerator implements Generator {}class MyGenerator2 ex

2015-12-22 22:33:07 1972 2

原创 从头认识java-13.15 使用泛型时出现的问题(1)-泛型不能使用基础类型

这一章节我们来讨论一下使用泛型时出现的问题。今天我们引入第一个问题:就是泛型不能使用基础类型。1.例子package com.ray.ch13;import java.util.ArrayList;public class Test { public static void main(String[] args) { // ArrayList list;//error

2015-12-22 22:19:13 3579 1

原创 从头认识java-13.14 捕捉通配符替代的类型参数

这一章节我们继续关于通配符的话题,主要讨论怎样捕捉通配符替代的类型参数?例子:package com.ray.ch13;public class Test { public static void test(Holder holder) { T t = holder.get(); System.out.println(t.getClass().getSimpleName(

2015-12-21 21:57:48 2230

原创 从头认识java-13.13 无界通配符

这一章节我们来讨论一下无界通配符。1.怎样使用无界通配符?无界通配符是直接使用例子:package com.ray.ch13;import java.util.ArrayList;import java.util.List;public class Test { @SuppressWarnings("unused") private static List list

2015-12-21 21:37:50 3048 2

原创 从头认识java-13.12 超类通配符

这一章节我们来讨论一下超类通配符。1.什么是超类通配符在前一章节我们提到一种通配符,是使用来实现的,导致了后面的一系列问题,现在我们引入另一种通配符--超类通配符,它是使用来实现的。例子:package com.ray.ch13;import java.util.ArrayList;public class Test { public static void main(String[]

2015-12-21 11:49:30 2498

原创 从头认识java-13.11 对比数组与泛型容器,观察类型擦除给泛型容器带来什么问题?

这一章节我们继续类型擦除的话题,我们将通过对比数组与泛型容器,观察类型擦除给泛型容器带来什么问题?1.数组package com.ray.ch13;public class Test { public static void main(String[] args) { Fruit[] fruits = new Apple[5]; fruits[0] = new Apple();

2015-12-21 09:25:21 1524 1

原创 从头认识java-13.10 边界的作用

这一章节我们来讲述一下边界。之前的章节已经提到,在jvm层面,泛型的类型信息会被擦除,但是,为了可以在编译器能够更好的进行类型检测,我们引入了边界。例子package com.ray.ch11;public class Test { @SuppressWarnings({ "unchecked", "rawtypes" }) public static void main(String[

2015-12-20 23:26:14 2064

原创 从头认识java-13.9 隐式和显示的创建类型实例

对于上一章节擦除引起的问题与解决办法有读者提出过于简单,这里解释一下:因为笔者本身也遇不到相应的问题,只是凭空想像一些有可能的问题,基于水平有限,因此上一章节写的比较简单,欢迎广大读者踊跃提意见,我会尽量改进。回归到这一章节,这里我们将讨论隐式和显示的创建类型实例。1.隐式建类型实例我们上一章节提到下面有问题的代码:package com.ray.ch11;public class T

2015-12-17 20:29:43 2230

原创 从头认识java-13.8 类型擦除的问题与解决

这一章节我们来讨论一下类型擦除的问题与解决。1.类型擦除的问题就是对于泛型类型的new、转型、instanceof操作带来错误或者警告代码:package com.ray.ch11;public class Test { public void test(Object object){// System.out.println(object instanceof T);//e

2015-12-15 06:41:21 1941 1

原创 从头认识java-13.7 什么时候使用泛型?

这一章节我们来讨论一下什么时候使用泛型?答案:当你希望代码能够跨多个类型(不同的类型,不包含继承关系)工作的时候。1.当没有确切类型的时候下面是错误的代码:package com.ray.ch13;public class Test { private T obj; public Test(T t) { obj = t; } public void test() { //

2015-12-14 16:59:40 3551 3

原创 从头认识java-13.6 类型擦除(type erasure)

这一章节我们讨论一下类型擦除。1.什么是类型擦除?在java里面泛型其实是伪泛型,因为他都只是在编译器里面实现的,在jvm里面是没有泛型的概念。我们看下面的代码:package com.ray.ch11;import java.util.ArrayList;public class Test { public static void main(String[] args) {

2015-12-13 22:52:37 2793

从头认识java-13.6 类型擦除(type erasure)(1)-概念

这一章节我们讨论一下类型擦除。1.什么是类型擦除?在java里面泛型其实是伪泛型,因为他都只是在编译器里面实现的,在jvm里面是没有泛型的概念。我们看下面的代码:package com.ray.ch11;import java.util.ArrayList;public class Test { public static void main(String[] args...

2015-12-13 22:52:00 223

原创 从头认识java-13.5 利用泛型构建复杂模型

这一章节我们来展示一下怎样利用泛型构建复杂模型?1.元组列表我们之前已经说过元组是一个复杂的模型,可以返回多对象。package com.ray.ch11;import java.util.ArrayList;public class Test { public ArrayList> test() { ArrayList> list = new ArrayList>(); for

2015-12-13 20:56:49 2478 1

从头认识java-13.5 利用泛型构建复杂模型

这一章节我们来展示一下怎样利用泛型构建复杂模型?1.元组列表我们之前已经说过元组是一个复杂的模型,可以返回多对象。package com.ray.ch11;import java.util.ArrayList;public class Test { public ArrayList<Tuple<A, B, C>> test() { ArrayList&...

2015-12-13 20:56:00 165

原创 从头认识java-13.4 泛型方法的使用

这一章节我们来讨论一下泛型方法的使用。泛型除了可以作用在类、接口上面,还可以作用在方法上面。1.例子package com.ray.ch13;public class Test { public void test(T x) { System.out.println(x.getClass().getName()); } public static void main(String

2015-12-11 16:34:31 2136

从头认识java-13.4 泛型方法的使用

这一章节我们来讨论一下泛型方法的使用。泛型除了可以作用在类、接口上面,还可以作用在方法上面。1.例子package com.ray.ch13;public class Test { public <T> void test(T x) { System.out.println(x.getClass().getName()); } public static voi...

2015-12-11 16:34:00 194

原创 从头认识java-13.3 泛型接口的使用

这一章节我们来讨论一下泛型接口的使用。我们以生成器为例子(generator),生成器是工厂方法的一种运用,主要用来创建对象,一般使用工厂方法都是需要输入参数以便取得不同的对象,但是生成器是生成一系列的对象。代码:package com.ray.ch13;import java.util.Iterator;import java.util.Random;public class Test

2015-12-11 11:41:45 1606

从头认识java-13.3 泛型接口的使用

这一章节我们来讨论一下泛型接口的使用。我们以生成器为例子(generator),生成器是工厂方法的一种运用,主要用来创建对象,一般使用工厂方法都是需要输入参数以便取得不同的对象,但是生成器是生成一系列的对象。代码:package com.ray.ch13;import java.util.Iterator;import java.util.Random;public class ...

2015-12-11 11:41:00 127

原创 从头认识java-13.2 利用元组的方式返回多类型对象

这一章节我们来讨论一下利用元组的方式返回多类型对象。1.定义元组@SuppressWarnings("hiding")class Tuple { public final A a; public final B b; public Tuple(A a, B b) { this.a = a; this.b = b; }}这里可能有人会问到安全的问题,我们做出一些解释:大家注意

2015-12-10 11:21:59 2596

从头认识java-13.2 利用元组的方式返回多类型对象

这一章节我们来讨论一下利用元组的方式返回多类型对象。1.定义元组@SuppressWarnings("hiding")class Tuple<A, B> { public final A a; public final B b; public Tuple(A a, B b) { this.a = a; this.b = b; }}这里可能有人会问到安全的...

2015-12-10 11:21:00 406

原创 从头认识java-13.1 泛型与容器(容器的演变)

这一章节我们来讨论一下泛型与容器,准确来说是由于容器的需求而产生泛型的需求。我们平常在编程的时候,大部分都是用了容器来装载对象,我们来看一下容器的演变。1.普通容器package com.ray.ch11;public class Test { public static void main(String[] args) { Holder holder = new Holder(new

2015-12-10 09:31:41 1841

从头认识java-13.1 泛型与容器(容器的演变)

这一章节我们来讨论一下泛型与容器,准确来说是由于容器的需求而产生泛型的需求。我们平常在编程的时候,大部分都是用了容器来装载对象,我们来看一下容器的演变。1.普通容器package com.ray.ch11;public class Test { public static void main(String[] args) { Holder holder = new Holder(...

2015-12-10 09:31:00 137

原创 从头认识java-12.6 接口与类型信息(怎么绕过接口直接调用类的所有方法)

这一章节我们来讨论一下接口与类型信息。在之前的章节里面我们提到接口,父类引用子类对象,然后把方法给缩窄了,但是我们这一章节学习到反射,这个约束就变得没有那么严格。我们来看看下面的例子:package com.ray.ch11;public class Test { public static void main(String[] args) { Person man = new Man(

2015-12-10 08:49:55 2432

Mastering Python Design Patterns 精通python设计模式

Mastering Python Design Patterns 精通python设计模式

2015-09-09

零基础学python-1.7 第二个程序

零基础学python 1.7 第二个程序

2015-08-10

C语言从入门到精通

C语言从入门到精通 from ray 2015

2015-05-29

Android应用开发实战

Android应用开发实战 from ray

2015-05-29

重构_改善既有代码的设计

重构_改善既有代码的设计 from ray

2015-05-29

PhoneGap实战

PhoneGap 实战 from ray

2015-05-25

Maven实战中文版

Maven 实战 中文版 from ray

2015-05-25

cocos2d-x手机游戏开发

cocos2d-x 手机游戏开发 123

2015-05-25

Android.4游戏高级编程(第2版)

Android.4游戏高级编程(第2版)

2015-05-25

spring in action 第一课

配合我课程的源代码,我的博客现在主要用来研究spring,第一课:spring,他的目的就是简化java 的编写工作

2014-10-23

Flash实例教程

Flash实例教程 flash

2007-04-14

网页美工教材

关于网页美工的教材!

2007-04-14

java2 参考大全

java参考大全,java基础(继承等),java类,java软件开发技术,应用java

2007-04-14

FlashAndXMLADevelopersGuide

关于flash与xml的连接应用!原文英语的!

2007-04-14

Flash Mx 2004ASBible(2004)

Flash Mx 2004ASBible(2004)

2007-04-05

java新手上路flash教程

java新手上路flash教程 一些关于java怎样设定环境变量等的swf视频

2007-04-05

FlashMX2004动作脚本字典

FlashMX2004动作脚本字典,有详细的解释!

2007-04-05

ActionScriptforFlashMX

as 权威指南第二版

2007-04-05

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

TA关注的人

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