自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

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

这一章节我们来讨论一下利用元组的方式返回多类型对象。 1.定义元组 @SuppressWarnings("hiding")class Tuple<A, B> { public final A a; public final B b; public Tuple(A ...

2019-09-14 06:31:41 298

转载 从头认识java-11.5 扫描输入(1)-简介

这一章节我们来讨论一下扫描输入。 因为很多时候我们都需要从文本文件里面读取相应的文本,然后进行处理,在输入到其他地方, 这个时候就需要我们下面介绍的扫描输入。 1.通常情况 package com.ray.ch11;import java.io.BufferedReader;i...

2019-09-14 06:31:36 310

转载 从头认识java-12.2 Class对象(3)-.class

这一章节我们来讨论一下得到Class对象的另一种方式.class。 1.例子 package com.ray.ch12;public class Test { public static void main(String[] args) { System.out.prin...

2019-09-14 06:31:30 228

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

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

2019-09-14 06:31:25 209

转载 从头认识java-11.5 扫描输入(2)-scanner的边界与使用正则表达式扫描

这一章节我们来介绍一下scanner的边界与使用正则表达式扫描。 1.scanner的边界 上一章节我们提到scanner里面有hasNext方法,可以检测是否还有字符串,其实这个就是边界符,检查字符串的边界。 package com.ray.ch11;import java.i...

2019-09-14 06:31:20 279

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

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

2019-09-14 06:31:15 192

转载 从头认识java-12.5 代理以及动态代理

这一章节我们讲述一下代理以及动态代理。 1.为什么需要代理? 答案:有一些操作你不想整合到逻辑代码里面,因此需要代理来做这个事情。例如:日志、监控等 下面将演示一个简单的代理: package com.ray.ch11;public class Test { public s...

2019-09-14 06:31:10 172

转载 从头认识java-12.4 利用反射提取类的方法与构造器

这一章节我们来讨论一些利用反射提取类的方法与构造器。 1.例子 package com.ray.ch11;import java.lang.reflect.Constructor;import java.lang.reflect.Method;public class Tes...

2019-09-14 06:31:05 182

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

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

2019-09-14 06:30:59 181

转载 从头认识java-12.3 instanceof、isInstance和isAssignableFrom

这一章节主要讲述一下三个检测对象类型的方法instanceof、isInstance和isAssignableFrom。 例子: package com.ray.ch12;public class Test { public static void main(String[] a...

2019-09-14 06:30:54 193

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

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

2019-09-14 06:30:50 334

转载 从头认识java-12.2 Class对象(4)-泛化

这一章节我们来讨论一下Class对象的泛化。 1.为什么需要泛化? 代码在编译时就可以进行类型检测,不需要等到运行时才检测类型。 2.例子 package com.ray.ch12;public class Test { public static void main...

2019-09-14 06:30:45 207

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

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

2019-09-14 06:30:40 249

转载 从头认识java-11.4 正则表达式(3)-Pattern和Matcher

这一章节我们来讨论一下Pattern和Matcher。 之前我们都是简单的使用正则表达式来匹配字符串,其实java里面提供了强大的正则匹配类,我们下面将以几个例子来说明。 package com.ray.ch11;import java.util.regex.Matcher;im...

2019-09-14 06:30:34 163

转载 从头认识java-12.2 Class对象(2)-使用与注意点

这一章节我们接着上一章节,继续讲述Class对象的使用与注意点。 1.使用例子 package com.ray.ch11;public class Test { @SuppressWarnings({ "unchecked", "rawtypes" }) public stat...

2019-09-14 06:30:29 162

转载 从头认识java-11.4 正则表达式(1)-感性认知

这一章节我们来感受一下正则表达式。 正则表达式就是以某种形式来描述字符串。 注意:在java里面正则表达式的反斜杠需要"\\"来描述,如果是普通的反斜杠,需要“\\\\”来描述。 在字符串中,可以使用正则的方法有几个,分别是matches、split还有replaceAll 1.mat...

2019-09-14 06:30:23 147

转载 从头认识java-12.1 为什么需要RTTI(Run-Time Type Identification)?

这一章节我们来讨论一下为什么需要RTTI(Run-Time Type Identification)。 答案:RTTI维护类型的信息,为多态机制的实现提供基础。 1.怎么为多态的实现提供基础? 多态,主要就是通过向上转型,然后通过泛化来父类引用子类对象。 例如: package ...

2019-09-14 06:30:18 163

转载 从头认识java-11.4 正则表达式(2)-基本语法

这一章节我们会简要的介绍一下正则表达式的基本语法。 我们的目的不是写出最复杂的表达式,是写出能够完成任务的表达式。 1.字符 字符 意义 \t 制表符 \n 换行 ...

2019-09-14 06:30:13 149

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

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

2019-09-14 06:30:08 155

转载 从头认识java-12.2 Class对象(1)-简介

这一章节我们来介绍一下Class对象。 在介绍前有几点需要注意的: 1.每一个类都有一个Class对象,在jvm的类加载器子系统里面生成。 2.类加载器子系统包含类加载器链,但是只有一个原生加载器,原生加载器主要加载javaapi里面的可信的类。 3.只有当类被使用的时候才会加载,这个...

2019-09-14 06:30:03 127

转载 从头认识java-6.6 final(1)-属性域

这一章节我们将来讨论一下final。 1.特性 (1)对于常量,使用final之后就不可变 因为使用了final之后,id就没有了set方法,因此,不能对id进行操作,即便new之后直接对id进行操作也不可以 package com.ray.ch06;public class ...

2015-11-04 10:50:00 52

转载 从头认识java-6.5 向上转型

这一章节我们来讨论一下向上转型。 1.例子 package com.ray.testobject;public class Sub extends Father { public static void main(String[] args) { Sub sub = ...

2015-11-04 10:50:00 53

转载 从头认识java-6.2 继承(Generalization)(2)

接着上一章节。 (4)无参构造器初始化 这里我们来聊聊初始化的话题,特别是初始化基类,父类会怎样? 继续沿用上面的代码,我们做出一些精简。 package com.ray.testobject;public class Test { public static void m...

2015-11-04 10:50:00 58

转载 从头认识java-6.6 final(3)-方法

这一章节我们来说一下final修饰的方法。 1.final与public 其实,使用final修饰方法,只不过就是不想继承的时候被修改。 一般我们继承的时候都可以覆盖public的方法,如下: package com.ray.ch06;public class Sub exte...

2015-11-04 10:50:00 65

转载 从头认识java-6.6 final(2)-属性域

接着上一章节的内容。 昨天我回去想了一下,发觉最后的那个特性还是有点问题,我就做了以下的实验。 昨天最后一点属性的简化版: package com.ray.ch06;public class Test { private final String name = "abcd";...

2015-11-04 10:50:00 70

转载 从头认识java-4.6 成员的初始化

这一章节我们来讨论一下成员的初始化。 之前已经提到,如果是属性域,编译器会默认初始化,这一章节不再展开,这里我们需要注意的是局部变量。 局部变量必须初始化,不然直接报错。 下面是错误的代码: package com.ray.ch01;public class Test { ...

2015-11-04 10:50:00 77

转载 从头认识java-4.8 数组的初始化(2)-可变参数列表

接着上一节,我们这一章节来聊一下数组的另外一个应用:可变参数列表 1.可变参数列表带来的改变 在没有出现可变参数列表的时候,我们一般会使用数组来替代,但是有一个问题,每一次都需要先建立一个数组作为参数,不能动态的形成数组作为参数。 package com.ray.ch04;pub...

2015-11-04 10:50:00 83

转载 从头认识java-4.5 对象的清理(finalize())

这一章节我们来简单讨论一下对象的清理。 注意:在c++里面会提供析构函数,来清除对象,但是在java中,对象是被垃圾回收器回收的。回收不一定被析构,因为回收了对象,只有当回收器超过某个限度的内存是,才发生回收,因此,有可能对象只是被回收,但到了程序关闭才被析构,因为回收器一直没有超过限制。 ...

2015-11-04 10:50:00 91

转载 从头认识java-6.1 聚合(aggregation)

我们来说一下复用类最简单的方法:聚合(aggregation) 其实说白了,就是建立了一个类,然后在其他地方引用来使用。 package com.ray.ch05;public class Test { public static void main(String[] arg...

2015-11-04 10:50:00 98

转载 从头认识java-6.2 继承(Generalization)(1)

这一章节我们来聊聊继承(Generalization)。 1.概念 继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。 2.特点 子类继承父类public和protected的属性域与方法,但不继承private的属性域和方法。 当子类基础父...

2015-11-04 10:50:00 138

转载 从头认识java-4.7 构造器初始化(3)

接着上一章节。 (4)显性初始化静态域 通过静态代码块来初始化某些属性域。 package com.ray.testobject;public class Test { private static int id; private static String name...

2015-11-04 10:48:00 51

转载 从头认识java-4.9 枚举类型

这一章节我们来简单聊一下枚举类型。 1.枚举类型是一种数据类型 package com.ray.ch04;public class Test { public static void main(String[] args) { MyType myType = MyType....

2015-11-04 10:48:00 57

转载 从头认识java-6.7 初始化与类的加载

这一章节我们来讨论一下初始化与类的加载。 简单的说,类是在static成员被访问的时候加载的。 我们下面举一个比较复杂的例子,然后解释一下加载和初始化的顺序。 package com.ray.ch06;public class Sub extends Father { priv...

2015-11-04 10:48:00 57

转载 从头认识java-5.2 包(package)

这一章节我们来讨论一下包(package)。 1.包里面是一组类,主要是提供一个命名空间,使得各个类以及功能不会冲突。 建立一个项目,然后建立两个包,里面都包含Test这一个类,功能一模一样。 package com.ray.ch04;public class Test { ...

2015-11-04 10:48:00 57

转载 从头认识java-4.8 数组的初始化(1)

这一章节我们来讨论一下数组的初始化。 1.数组是一个对象。 package com.ray.ch01;public class Test { public static void main(String[] args) { int[] a = {}; System.out...

2015-11-04 10:48:00 62

转载 从头认识java-4.7 构造器初始化(2)

这一章节我们接着上一章节的内容。 (3)静态数据的初始化 a.静态数据只会执行一次 package com.ray.testobject;public class Test { private static Book book1 = new Book(1); privat...

2015-11-04 10:48:00 64

转载 从头认识java-6.3 组合使用聚合和继承

这一章节我们来讨论一些组合使用聚合和继承 之前已经讲过想过的基础知识以及注意点,现在我们直接上代码: 1.例子 package com.ray.ch05;public class PlaceSetting extends Custom { private DinnerPlate...

2015-11-04 10:48:00 73

转载 从头认识java-4.7 构造器初始化(1)

这一章节我们来聊聊构造器的初始化。 (1)域的初始化在构造器初始化之前 package com.ray.testobject;public class Test { private int id; public Test() { System.out.printl...

2015-11-04 10:48:00 76

转载 从头认识java-6.4 如何在聚合与继承之间选择

这一章节我们来聊一下在聚合与继承之间选择的问题。 在我们平常的编码里面,使用聚合或者继承都可以,或者两者可以混合使用也行,这个时候就需要做出抉择,因为代码以后还需要维护,怎么才能达到维护简单?代码可读?。。。 因此,我们必须在各种方案中做出抉择。 笔者是这样认为的: 如果新的类只是使用...

2015-11-04 10:48:00 82

转载 从头认识java-6.6 final(4)-类与忠告

这一章节我们来讨论两个话题,一个是使用final标识的类,一个是使用final的忠告。 1.使用final表示的类 主要目的就是不想其他程序员继承这个类,而且类里面的东西永远不变。 package com.ray.ch06;public class Sub extends Fat...

2015-11-04 10:48:00 88

空空如也

空空如也

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

TA关注的人

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