![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
java
莱尼布鲁斯
Blank in mind
展开
-
混型
混型即混合多个类,以产生表示混合了所有类型的类。C++多重继承的目的是为了使用混型,但多重继承使得代码量越来越多,更灵活的方式是使用参数化类型组合特性——继承泛型参数,这样在添加泛型的同时达到继承泛型的特性的目的。C++的混型下面的实例可以为Basic添加时间戳TimeStamp和Id属性。#include<iostream>#include<time.h>#include<string>using namespace std;template<cl原创 2020-10-18 00:01:36 · 178 阅读 · 0 评论 -
enum实例——状态机
状态机主要实现不同状态的转换。灯颜色的改变enum LightColor{ GREEN,YELLOW,RED}class Light { LightColor color; public Light(LightColor color) { this.color = color; } public void change(){ switch (color){ case RED:原创 2020-10-18 00:02:16 · 411 阅读 · 4 评论 -
泛型特性——擦除详解
C++的模板非常简单,只是将具体类型替换到模板参数。在运行时丢失类型信息通过程序示例的两个测试可以看到,泛型参数在运行时不会有任何体现,LinkedList()和LinkedList()的容器是原生容器,而泛型参数是原生参数,这实际就是他们在运行时的类型。class EraseTest{ public static void test1(){ Class c1=new LinkedList<String>().getClass(); Class c2原创 2020-10-18 00:01:08 · 3037 阅读 · 0 评论 -
Comparator与Comparable实例
数组中的排序排序需要首先进行元素比较,有两种方式可以实现而且必须实现。一种是实现java.lang.Comparable接口,另一种是创建实现了Comparator接口的类。两者的比较,个人认为第二种更好些,这是适配器模式的体现,而且不需要修改已存在的类,可以很好的扩展。对于内置类型或基本类型,Java已经覆写了compareTo方法,而且进行了优化,针对基本类型设计了Quicksort,针对对象的稳定归并排序。⊙ω⊙⊙ω⊙⊙ω⊙⊙ω⊙第一种注意 Arrays.sort(a1, Collectio原创 2020-10-18 00:03:28 · 132 阅读 · 0 评论 -
Collection与Iterator的关系
在C++中没有容器的公共基类,所有容器共性通过迭代器达成。Java中新增了Collection,用来描述所有序列容器共性接口的根接口。而其实Collection与迭代器绑定,实现Collection就得提供iterator()方法(也就是继承Iterable接口)。示例程序展现了三种表示以及操作容器的方式,可以看出Collection与Iterator是序列容器的共性。class SimpleListIterator{ //方法一 public static void display(原创 2020-10-18 00:05:02 · 1304 阅读 · 0 评论 -
迭代器详解与适配迭代器
迭代器是一个对象,用于遍历并选择序列中的对象,直接使用迭代器,迭代器不需要考虑容器内部的类型信息,也不需要关心不同容器的底层原理和性质。迭代器被称为轻量级对象,功能简单有限:1、只能使用iterator()返回容器的迭代器,2、next(),3、hasNext(),4、remove()删除迭代器新近的返回元素。程序示例展示了利用Iterator不需要确定容器中的类型信息,也不需要关心Collection的类型。class SimpleIterator{ public static void d原创 2020-10-18 00:02:42 · 173 阅读 · 0 评论 -
反射
Class与java.lang.refect类库一起对反射提供了支持,该类库包含Field、Method、Constructor类(都实现了Member接口)。这些类型的对象由JVM在运行时创建,表示未知类中的成员。可以用Constructor创建新对象,get()和set()读取修改字段,invoke方法调用方法。构造器信息public Constructor<?>[] getDeclaredConstructors()getDeclaredConstructors()是返回一个原创 2020-10-18 00:05:49 · 121 阅读 · 0 评论 -
Class对象
Class对象每个类都有一个Class对象,被保存在同名.class文件中,用来创建对象。有三种方法可取的对Class对象的引用forName(): 是Class类的static方法,为产生目标类Class对象的引用.class: int.classgetClass(): 属于根类Object,取得当前对象的类型初始化延迟:加载,CLASSPATH查找字节码,并从字节码中创建Class对象链接,验证类的字节码,为静态域分配存储空间。初始化,初始化静态块。初始化通常被延迟到静态方法或原创 2020-10-18 00:06:07 · 472 阅读 · 0 评论 -
常用结构性设计模式
代理模式代理者和被代理者可执行相同的业务,实际上是代理者帮助被代理者执行业务,重点是代理者可以执行一些附加操作,这使得被代理者专注于自己的操作,不需要关注公共操作,而代理者主要为被代理者执行额外的公共操作。但缺点是代理角色与被代理角色一一对应,当被代理角色增多时,代码增多。这里有一个为用户服务的增删改查,希望添加一个日志,可用户记录操作。public class client { public static void main(String[] args) { UrserSe原创 2020-10-18 00:07:58 · 194 阅读 · 0 评论 -
常用创建型设计模式
建造者模式当问题注重对象的创建过程,并且要求创建同类对象的不同产品时用建造者模式。例如房子的构建,地基->钢筋工程->堆砌砖瓦->粉刷,这注重创建过程,而对于平房和楼房来说,过程是一样的但是相应步骤的实现是不一样的。建造者模式的基本构成Product定义了产品的部件Abstract Builder规定Worker行为real Worker定义了各产品部件的构建方法,并且创建出实际的产品,并且可有多个Worker,可以有多个不同产品实现(平房与楼房)Director则主要控制产品原创 2020-10-17 23:50:53 · 117 阅读 · 0 评论