Java---设计模块(单例的变形)(多例)

设计模式1——单例变形(多例)
★ 缓存在单例中的使用
缓存在编程中使用很频繁,有着非常重要的作用,它能够帮助程序实现以空间换取时间,通常被设计成整个应用程序所共享的一个空间,现要求实现一个用缓存存放单例对象的类。
说明:该缓存中可以存放多个该类对象,每个对象以一个key值标识,key值相同时所访问的是同一个单例对象。

给一个key值标识:

package cn.hncu.pattern.mulitition;

import java.util.HashMap;
import java.util.Map;

public class A {
    private static final Map<String, A> map = new HashMap<String, A>();
    public A() {
    }//private也是可以的,这不是关键,关键是map是私有的,这个是集合的单例
    public static A getInstance(String key){
        A a = map.get(key);
        if(a==null){
            a = new A();
            map.put(key, a);
        }
        return a;
    }
}

测试:

package cn.hncu.pattern.mulitition;

public class Test {
    public static void main(String[] args) {
        Atest();

    }

    private static void Atest() {
        A a1 = A.getInstance("hncu1");
        System.out.println(a1);

        A a2 = A.getInstance("hncu2");
        System.out.println(a2);

        A a3 = A.getInstance("hncu1");
        System.out.println(a3);

        A a4 = A.getInstance("hncu2");
        System.out.println(a4);

        A a5 = A.getInstance("hncu1");
        System.out.println(a5);

    }

}

测试输出结果;

cn.hncu.pattern.mulitition.A@11dba45
cn.hncu.pattern.mulitition.A@b03be0
cn.hncu.pattern.mulitition.A@11dba45
cn.hncu.pattern.mulitition.A@b03be0
cn.hncu.pattern.mulitition.A@11dba45

可以发现:a1,a3,a5的地址的值是相等的,a2,a4是相等的。

通过Buffer类调用Book类的单例:
Book类:

package cn.hncu.pattern.mulitition;

public class Book {
    private String name;
    private int id;
    private double price;
    private String details;
    private static int cont=0;


    public Book() {
        id=cont++;
    }

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public double getPrice() {
        return price;
    }
    public void setPrice(double price) {
        this.price = price;
    }
    public String getDetails() {
        return details;
    }
    public void setDetails(String details) {
        this.details = details;
    }
    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + id;
        return result;
    }
    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getClass() != obj.getClass())
            return false;
        Book other = (Book) obj;
        if (id != other.id)
            return false;
        return true;
    }
    @Override
    public String toString() {
        return "Book [id=" + id + "]";
    }


}

Buffer类:

package cn.hncu.pattern.mulitition;

import java.util.HashMap;
import java.util.Map;

public class Buffer {
    private static final Map<String, Book> map = new HashMap<String, Book>();
    public Buffer() {
    }//private也是可以的,这不是关键,关键是map是私有的,这个是集合的单例
    public static Book getInstance(String key){
        Book a = map.get(key);
        if(a==null){
            a = new Book();
            map.put(key, a);
        }
        return a;
    }
}   

测试类;

package cn.hncu.pattern.mulitition;

public class Test {
    public static void main(String[] args) {
        Buffertest();
    }

    private static void Buffertest() {
        Book bk1 = Buffer.getInstance("hncu1");
        System.out.println(bk1);

        Book bk2 = Buffer.getInstance("hncu2");
        System.out.println(bk2);

        Book bk3 = Buffer.getInstance("hncu3");
        System.out.println(bk3);

        Book bk4 = Buffer.getInstance("hncu2");
        System.out.println(bk4);

        Book bk5= Buffer.getInstance("hncu1");
        System.out.println(bk5);
    }
}

输出结果:

Book [id=0]
Book [id=1]
Book [id=2]
Book [id=1]
Book [id=0]

★ 单例变形——多例模式
把上面缓存的单例实现,做成一个能够控制对象个数的共享空间,供整个应用程序使用。在缓存中维护指定个数的对象,每个对象的key值由该类内部指定,有外部请求时直接返回其中一个对象出去。
说明:相当于维护一个指定数量的对象池,当请求个数超过控制的总数时,开始循环重复使用 。

package cn.hncu.pattern.mulitition.multi;

import java.util.HashMap;
import java.util.Map;

public class A {
    private static final Map<Integer, A> map= new HashMap<Integer, A>();
    private static final int MAX=3;//控制容器中所能使用对象的总个数
    private static int cont = 1;//代表池中目前将要被使用的对象的序号

    public static A getInstance(){
        A a = map.get(cont);
        if(a==null){
            a=new A();
            map.put(cont, a);
        }
        cont++;
        if(cont>MAX){
            cont=1;
        }
        return a;
    }


}

测试的类:

package cn.hncu.pattern.mulitition;

public class Test {
    public static void main(String[] args) {
        Atest2();
    }

    private static void Atest2() {
        System.out.println(cn.hncu.pattern.mulitition.multi.A.getInstance());
        System.out.println(cn.hncu.pattern.mulitition.multi.A.getInstance());
        System.out.println(cn.hncu.pattern.mulitition.multi.A.getInstance());
        System.out.println(cn.hncu.pattern.mulitition.multi.A.getInstance());
        System.out.println(cn.hncu.pattern.mulitition.multi.A.getInstance());
        System.out.println(cn.hncu.pattern.mulitition.multi.A.getInstance());
    }


}

输出结果:

cn.hncu.pattern.mulitition.multi.A@18a49e0
cn.hncu.pattern.mulitition.multi.A@1f82982
cn.hncu.pattern.mulitition.multi.A@16d2633
cn.hncu.pattern.mulitition.multi.A@18a49e0
cn.hncu.pattern.mulitition.multi.A@1f82982
cn.hncu.pattern.mulitition.multi.A@16d2633

可以看到: 123行的输出个不相同,
第4行的地址和第一行的相同,
第5行的地址和第二行的相同,
第6行的地址和第三行的相同。
依次类推,循环节点为3.

谙忆 CSDN认证博客专家 Java
公众号:程序编程之旅。曾经写过C、C++,使用过Cocos2dx开发过游戏、安卓端、IOS端、PC端页面均开发过。目前专注Java开发,SaaS内核、元数据的研究。偶尔玩玩爬虫
已标记关键词 清除标记
相关推荐
第1篇 Java编程基础   第1章 Java开发环境的搭建(教学视频:9分钟) 2   1.1 理解Java 2   1.2 搭建Java所需环境 3   1.2.1 下载JDK 3   1.2.2 安装JDK 4   1.2.3 配置环境 5   1.2.4 测试JDK配置是否成功 7   实1 开发第一个Java程序 7   第2章 Java基础类型与运算符(教学视频:39分钟) 9   2.1 基础类型 9   实2 自动提升 9   实3 自动转换 10   实4 常用基础类型之强制转换 11   2.2 运算符 12   实5 算术运算符 12   实6 关系运算符 13   实7 逻辑运算符 14   实8 位运算符 15   实9 移位运算符 16   实10 转型运算符 17   2.3 其他形式 18   实11 常量与变量 18   实12 各种进制的转换 19   实13 Java中的进制与移位运算符 22   第3章 条件控制语句(教学视频:75分钟) 26   3.1 if控制语句 26   实14 判断输入的年份是否为闰年 26   实15 抽奖活动 27   3.2 for语句 28   实16 小九九乘法表 28   实17 如何列出素数 29   实18 Java中的递归 31   实19 男生女生各多少人 32   实20 求水仙花数 34   实21 求任意一个正数的阶乘 35   实22 求n的n次方 35   实23 利用for循环输出几何图形 36   实24 杨辉三角 38   3.3 while语句 39   实25 求1到100之间的和 39   实26 存上100元需要多少天 40   实27 输出100之间的所有偶数 41   实28 如何判断回文数字 42   3.4 do…while语句 43   实29 输出100之间的所有奇数 44   实30 求最大的随机数 44   3.5 switch语句 45   实31 判断字母分类 46   实32 优良及差 47   实33 打印任意一年日历 48   实34 一年四季的划分 51   第2篇 Java数据处理   第4章 异常处理(教学视频:62分钟) 54   4.1 编译时异常 54   实35 除0发生的算术异常(ArithmeticException) 54   实36 数组下标越界异常(ArrayIndexOutOfBoundsException) 55   实37 数组元素类型不匹配异常(ArrayStoreException) 56   实38 强制类型转换异常(ClassCastException) 56   实39 索引越界异常(IndexOutOfBoundsException) 57   实40 空指针异常(NullPointerException) 58   实41 数字格式转换异常(NumberFornatException) 59   实42 字符串索引越界异常(StringIndexOutBounds) 60   实43 操作错误(UnsupportedOperationException) 60   4.2 运行时异常 61   实44 找不到指定类时发生的异常(ClassNotFoundException) 62   实45 请求的方法不存在(NoSuchMethodException) 63   4.3 try…catch捕获异常 65   实46 try…catch捕获异常的实 66   实47 try…catch…finally捕获异常的实 67   实48 try…catch嵌套捕获异常的实 68   4.4 throws声明异常 69   实49 throws声明异常实一 69   实50 throws声明异常实二 70   4.5 throw抛出异常 72   实51 throw抛出异常实一 72   实52 throw抛出异常实二 73   4.6 自定义异常 74   实53 自定义异常实一 74   实54 自定义异常实二 75   第5章 数组(教学视频:98分钟) 78   5.1 一维数组 78   实55 一维数组的创建与使用 78   实56 按相反的顺序输出 79   实57 奇偶分组 80   实58 找宝 81   实59 寻找最小数 82  
第1篇 Java编程基础 第1章 Java开发环境的搭建(教学视频:9分钟) 2 1.1 理解Java 2 1.2 搭建Java所需环境 3 1.2.1 下载JDK 3 1.2.2 安装JDK 4 1.2.3 配置环境 5 1.2.4 测试JDK配置是否成功 7 实1 开发第一个Java程序 7 第2章 Java基础类型与运算符(教学视频:39分钟) 9 2.1 基础类型 9 实2 自动提升 9 实3 自动转换 10 实4 常用基础类型之强制转换 11 2.2 运算符 12 实5 算术运算符 12 实6 关系运算符 13 实7 逻辑运算符 14 实8 位运算符 15 实9 移位运算符 16 实10 转型运算符 17 2.3 其他形式 18 实11 常量与变量 18 实12 各种进制的转换 19 实13 Java中的进制与移位运算符 22 第3章 条件控制语句(教学视频:75分钟) 26 3.1 if控制语句 26 实14 判断输入的年份是否为闰年 26 实15 抽奖活动 27 3.2 for语句 28 实16 小九九乘法表 28 实17 如何列出素数 29 实18 Java中的递归 31 实19 男生女生各多少人 32 实20 求水仙花数 34 实21 求任意一个正数的阶乘 35 实22 求n的n次方 35 实23 利用for循环输出几何图形 36 实24 杨辉三角 38 3.3 while语句 39 实25 求1到100之间的和 39 实26 存上100元需要多少天 40 实27 输出100之间的所有偶数 41 实28 如何判断回文数字 42 3.4 do…while语句 43 实29 输出100之间的所有奇数 44 实30 求最大的随机数 44 3.5 switch语句 45 实31 判断字母分类 46 实32 优良及差 47 实33 打印任意一年日历 48 实34 一年四季的划分 51 第2篇 Java数据处理 第4章 异常处理(教学视频:62分钟) 54 4.1 编译时异常 54 实35 除0发生的算术异常(ArithmeticException) 54 实36 数组下标越界异常(ArrayIndexOutOfBoundsException) 55 实37 数组元素类型不匹配异常(ArrayStoreException) 56 实38 强制类型转换异常(ClassCastException) 56 实39 索引越界异常(IndexOutOfBoundsException) 57 实40 空指针异常(NullPointerException) 58 实41 数字格式转换异常(NumberFornatException) 59 实42 字符串索引越界异常(StringIndexOutBounds) 60 实43 操作错误(UnsupportedOperationException) 60 4.2 运行时异常 61 实44 找不到指定类时发生的异常(ClassNotFoundException) 62 实45 请求的方法不存在(NoSuchMethodException) 63 4.3 try…catch捕获异常 65 实46 try…catch捕获异常的实 66 实47 try…catch…finally捕获异常的实 67 实48 try…catch嵌套捕获异常的实 68 4.4 throws声明异常 69 实49 throws声明异常实一 69 实50 throws声明异常实二 70 4.5 throw抛出异常 72 实51 throw抛出异常实一 72 实52 throw抛出异常实二 73 4.6 自定义异常 74 实53 自定义异常实一 74 实54 自定义异常实二 75 第5章 数组(教学视频:98分钟) 78 5.1 一维数组 78 实55 一维数组的创建与使用 78 实56 按相反的顺序输出 79 实57 奇偶分组 80 实58 找宝 81 实59 寻找最小数 82 实60 我的位置在哪里 83 实61 复制数组 85 实62 插入新元素 86 实63 数组的合并 87 实64 去除重复元素 88 实65 数组求和计算 90 实66 求最大值、最小值和平均值 91 5.2 二维数组 92 实67 二维数组的创建与使用 92 实68 矩阵转置 93 实69 奇数阶幻方 94 实70 求方阵对角线之和 96 实71 矩阵的加法 97 实72 矩阵的减法 98 实73 快递报价 99 5.3 数组的排序 101 实74 冒泡排序法 102 实75 数组递增排序 103 实76 部分数组递增排序 103 实77 选择排序法 104 实78 快速排序法 106 第6章 字符串(教学视频:138分钟) 108 6.1 字符串类String 108 实79 创建字符串类 108 实80 如何使用charAt()方法计算重复字符 109 实81 按字母顺序比较大小 110 实82 首尾相连 111 实83 字符串间的比较 112 实84 字符集的解码方法 113 实85 寻找指定字符第一次出现的位置 114 实86 寻找指定字符最后出现的位置 115 实87 我究竟有多长 116 实88 替换指定的字符 117 实89 分割字符串 117 实90 如何使用substring()方法截取子串 118 实91 分解字符串 119 实92 字母大小写转换 120 实93 去除多余的空白 120 实94 原始数组类型的String形式 121 实95 Java合法标识符 122 实96 显示一周各星期的名称 123 实97 构造空心方框 124 实98 这一天是星期几 125 实99 大小写互换 127 实100 输出指定范围的素数 128 实101 我出现了几次 129 实102 算术表达式求值器 129 实103 字符串对齐调整器 137 实104 字符串的加密 139 实105 使用正则表达式验证电话号码的格式 141 6.2 字符串缓存类StringBuffer 143 实106 创建字符串缓存类 143 实107 提取个字符 144 实108 给指定字符赋值 145 实109 插入新的字符 146 实110 插入新的字符串 146 实111 获取字符串的子串 147 实112 删除指定的字符 148 实113 倒置字符串 149 实114 去除重复字符 149 实115 检查是否是回文 151 第7章 输入/输出流(教学视频:116分钟) 152 7.1 文件和目录 152 实116 显示文件的基本信息 152 实117 显示目录的基本信息 153 实118 在指定的目录下创建个文件 156 实119 在指定的目录下创建多个临时文件 158 实120 删除指定目录下的文件 160 实121 移动指定目录下的文件 163 实122 文件搜索引挚 167 7.2 字节流 169 实123 复制指定目录下的文件 170 实124 显示文件中的内容 173 实125 将数据保存到指定的文件中 175 实126 将由键盘中录入的信息保存到文件中 176 实127 一个文件变成多个小文件 178 实128 多个小文件合成一个文件 181 实129 统计指定文件中的字符个数 183 实130 对象的序列化与反序列化 185 实131 同时显示多个文件 187 实132 生成zip压缩文件 189 实133 解压缩zip文件 192 实134 生成Excel文件 194 实135 读取Excel文件中的内容 198 实136 生成PDF文件 199 实137 读取PDF文件中的内容 203 实138 用iText生成Word文件 205 实139 利用POI读取Word文件中的内容 208 7.3 字符流 209 实140 按顺序创建文件 210 实141 按顺序读取文件 211 实142 追加文件内容 211 实143 只显示文件中指定的字符 214 实144 读取jar包文件 215 实145 文件的加密/解密操作 217 实146 复制图片 219 实147 随机读写Java类文件 221 第3篇 Java面向对象编程 第8章 面向对象(教学视频:72分钟) 226 8.1 类 226 实148 简的通讯录类 226 实149 简的长度位转换类 227 实150 卡车和卡车司机之间的关系 229 实151 双色球 231 8.2 成员变量和方法 236 实152 使用类作为成员变量 236 实153 构造方法 237 实154 使用静态成员变量计算内存中实化的对象数目 239 实155 实现加减乘除的方法 240 8.3 面向对象的设计模式 241 实156 Singleton模式 242 实157 招聘(简工厂模式) 243 实158 同学聚会(工厂方法模式) 244 实159 图书展(抽象工厂模式) 246 实160 汽车适配器(Adapter适配器模式) 248 8.4 垃圾回收 250 实161 垃圾回收的机制 250 第9章 面向对象的四大特征(教学视频:65分钟) 252 9.1 抽象 252 实162 求自定义几何图形的面积和周长 252 实163 使用抽象方法实现的支票夹 254 9.2 封装 257 实164 世界小姐参赛资格 257 实165 自定义复数类 261 9.3 继承 264 实166 轿车与本田的关系 264 实167 继承关系的加载顺序 266 实168 如何访问同名的方法或变量 268 实169 super()方法的使用 271 实170 this方法的使用 274 实171 一张考试成绩 275 实172 银行自动存取一体机 278 9.4 多态 284 实173 饮食文化 284 实174 使用构造方法的重载计算课程的GPA值 287 第10章 内部类与接口(教学视频:41分钟) 290 10.1 成员内部类 290 实175 成员内部类的使用规范 290 实176 猜谜 292 10.2 方法内部类 294 实177 局部内部类的使用规范 294 实178 奖学金的评分标准 295 10.3 匿名内部类 297 实179 匿名内部类的使用规范 297 实180 电话与移动电话 299 10.4 静态内部类 300 实181 静态内部类的使用规范 300 实182 苹果的来历 302 10.5 接口 303 实183 求n的幂数与倍数 304 实184 商品订 306 实185 多功能排序 310 第11章 Java常用类(教学视频:66分钟) 315 11.1 数学Math类 315 实186 求圆周率∏值 315 实187 求对数值 316 实188 使用取整函数 317 11.2 Random类的使用 318 实189 随机数 319 实190 验证码 322 11.3 Date类和Calendar类 324 实191 使用Date类获取系统的当前时间 324 实192 使用DateFormat类获取系统的当前时间 325 实193 使用GregorianCalendar类获取系统的当前时间 326 实194 使用SimpleDateFormat类获取系统的当前时间 329 实195 显示某年某月某一周的信息 330 实196 显示某年某月的信息 332 实197 时间的设置与获取 334 实198 万年历(农历和阳历的互换) 337 11.4 Formatter类的使用 347 实199 时间格式转换符的使用 347 实200 数据格式转换符的使用 349 11.5 System类的使用 351 实201 记录程序执行的时间 351 实202 程序的退出 352 实203 获取程序运行环境的信息 353 第4篇 Java高级开发技术 第12章 集合(教学视频:45分钟) 358 12.1 Set 358 实204 利用HashSet删除学生 358 实205 不重复的随机数序列 360 实206 运用映射的相关类(Map) 363 实207 运用集的相关类(Set) 365 12.2 List 368 实208 增加所需的元素 368 实209 Iterator迭代器的使用 370 实210 谁是幸运儿 371 实211 自定义Queue队列 373 实212 List、Set与Array之间的相互转换 375 实213 二分查找法的实现方法 377 实214 模拟操作系统的进程调度 379 实215 利用栈将字符串逆序输出 381 实216 动态的数组链表 382 实217 你能猜出鱼是谁的宠物吗? 387 实218 使用Collections类对List的排序操作 393 实219 LinkedList的添加删除操作 395 实220 运用Vector 397 实221 改变Properties文件中的键值 399 第13章 多线程编程(教学视频:121分钟) 405 13.1 多线程的五种基本状态 405 实222 启动线程 405 实223 参赛者的比赛生活(线程休眠唤醒) 407 实224 资源搜索并下载(线程等待和通报) 410 实225 模拟淘宝购物买卖双方交易问题 412 实226 携子之手 与子偕老(join) 415 实227 线程让步(Yield) 417 实228 会走动的钟(多线程) 419 实229 变形金刚中的守护神(守护线程) 424 实230 查看JVM中所有的线程的活动状况 426 实231 模仿网络快车下载工具下载文件 428 13.2 多线程的同步与互斥 436 实232 多线程同步方法的实 436 实233 ATM存取一体机(线程同步互斥) 437 实234 我的钱哪里去了 440 实235 门锁打不开了(死锁) 444 实236 门锁终于被打开了(解决死锁) 446 实237 一个死锁的子 448 13.3 线程的优先级 451 实238 排座位(线程优先级) 451 实239 赛车 454 13.4 定时器 458 实240 定时器(Timer) 458 实241 数字定时器 459 13.5 线程连接池 462 实242 手术任务(线程池) 462 实243 模拟人工服务台(线程连接池) 466 13.6 线程应用实 471 实244 下雪的村庄 472 实245 小飞侠 474 实246 飞流直下 477 实247 多线程断点续传 479 实248 滚动的珠子 485 实249 余额查询 489 实250 滚动的文字 492 实251 漂浮效果 495 实252 监视内存的使用情况 499 实253 璀璨的星空 501 实254 银行和超市业务的模拟 505 第14章 泛型(教学视频:43分钟) 511 14.1 泛型基础 511 实255 一个关于泛型的简子 511 实256 带两个类型参数的泛型 513 实257 有界类型程序示 514 实258 通配符使用示 515 实259 泛型方法使用示 516 实260 泛型接口示 518 实261 泛型实现坐标打印 519 14.2 泛型类的继承 521 实262 继承泛型类示 521 实263 继承非泛型类示 522 实264 泛型类的类型识别示 523 实265 强制类型转换示 525 14.3 擦拭 526 实266 无限界的擦拭 526 实267 有限界的擦拭 527 14.4 集合泛型类 528 实268 Hashtable的泛型化 528 实269 多功能画笔 529 第15章 网络编程(教学视频:52分钟) 534 15.1 IP地址 534 实270 获取计算机名与IP地址 534 实271 获取网址的IP地址 535 实272 判断两个网址的主机名是否一样 536 实273 测试IP的类型 537 实274 查找主机 538 实275 主机所支持的协议 539 15.2 URL类的使用 540 实276 使用URL访问网页 540 实277 URL的组成部分 541 实278 通过指定的URL可以获取网页的源代码 542 实279 一对多通信模式 544 实280 自制浏览器 549 实281 扫描TCP端口 551 实282 TCP协议服务器 552 实283 TCP协议客户机 553 实284 Socket连接信息 555 实285 Echo服务的客户端是如何实现的? 556 实286 检测本机的服务端口 558 实287 下载的页面不丢失链接 559 实288 如何对网页进行重新定向 560 实289 在Internet上搜索对象 560 实290 LAN使用代理服务器 562 实291 BBS论坛服务器端 567 实292 UDP报文的发送与接收 579 第16章 数据库技术(教学视频:38分钟) 583 实293 加载JDBC驱动程序 583 实294 通过JDBC对数据库进行查询 584 实295 数据库更新 585 实296 获取数据库的基本信息 586 实297 获取数据库对SQL支持的信息 589 实298 处理访问数据库出现的常见异常情况 591 实299 在Servlet中连接数据库 593 实300 数据分页显示 595 实301 批处理 601 实302 事物处理 604 实303 调用存储过程 608 实304 连接ODBC数据库 611 实305 数据库中图片文件的存取 614 第17章 界面设计--Swing(教学视频:88分钟) 618 17.1 Swing组件介绍及应用 618 实306 JFrame框架的应用 618 实307 Border的使用 619 实308 使用Icon组件显示一张图片 620 实309 Icon接口的应用 621 实310 JLabel组件 622 实311 Icon应用到JLabel中 623 实312 JButton的使用 624 实313 在JButton上设置快捷键 625 实314 设置默认按钮 626 实315 使用JCheckBox组件 627 实316 JCheckBox事件处理 629 实317 JRadioButton的使用 630 实318 JComboBox的使用 632 实319 利用ComboModel构造JComboBox 633 实320 DefaultComboBoxModel的使用 635 实321 建立有图像的JComboBox 636 实322 建立可自行输入的JComboBox 637 实323 JComboBox的事件处理 638 实324 JTextField组件的使用 640 实325 使用JTextArea组件 641 17.2 页面布局及事件监听 642 实326 BorderLayout版面布局 643 实327 FlowLayout布局管理 644 实328 应用GridLayout设计版面 645 实329 如何使用BoxLayout布局管理器 647 实330 使用ActionEvent监听组件 648 实331 使用WindowAdapter实现鼠标事件 649 实332 使用MouseMotionListener监听鼠标 650 实333 使用KeyListener监听键盘 652 17.3 组件的综合应用 654 实334 计算器 654 实335 创建树菜 657 实336 在节点中显示详细信息 658 第18章 Applet小应用程序(教学视频:39分钟) 662 实337 不断变大的文字 662 实338 灯光扫描的效果 664 实339 字体逐渐展开的效果 666 实340 飞舞的气球 668 实341 逐渐浮现的图片 671 实342 火焰边框的特效 674 实343 局部放大效果 677 实344 水波荡漾的效果 679 实345 漫天飞花 682 实346 动感影集 685 实347 彩虹字 688 实348 多功能按键 690 第19章 多媒体与图像处理(教学视频:51分钟) 694 19.1 多媒体 694 实349 测试音频播放器 694 实350 测试视频播放器 696 实351 视频反色效果 698 实352 实现一个录音机 703 实353 建立一个调色板 707 19.2 图像处理 710 实354 在计算机内存中创建一个图像 710 实355 会移动的图像 712 实356 将图片进行180度旋转 714 实357 处理图像的明暗度 716 实358 如何将彩色图转化为灰度图 721 实359 锐化和模糊图像 724 实360 显示一个图像的轮廓 727 实361 如何放大及拉伸图像 730 第20章 JSP开发技术(教学视频:62分钟) 735 20.1 JSP基础 735 实362 网页版的9×9乘法口诀 735 实363 Java Servlet小程序 737 实364 Servlet对表的处理过程 738 实365 获取/修改JavaBeans中的内容 741 20.2 JSP程序设计 743 实366 喜连大三元 743 实367 运气对对碰 748 实368 文字样式统计器 752 实369 图形统计器 754 20.3 垃圾信息投诉站 756 实370 创建投诉表 756 实371 保存投诉的内容 760 实372 实现投诉站的后台操作 762 实373 取消投诉内容 764 实374 站内信 767 20.4 网站在线评估系统 769 实375 创建评估问卷 769 实376 实现评估的后台操作 771 实377 查看评估结果 773 第5篇 Java综合案 第21章 模拟服务器与客户端之间的通信(教学视频:13分钟) 778 21.1 实介绍 778 21.2 框架设计 779 21.2.1 项目的总体结构 779 21.2.2 搭建开发环境 779 21.2.3 确定项目工程目录 779 21.3 公用模块设计 780 21.4 客户端程序 780 21.4.1 客户端的工作流程 780 21.4.2 编写客户端的源程序 781 21.4.3 客户端源的程序解读 783 21.5 服务器端程序 785 21.5.1 服务器端的工作流程 785 21.5.2 编写服务器端的源程序 785 21.5.3 服务器端的源程序解读 788 21.6 小结 790 第22章 书店管理系统(教学视频:56分钟) 791 22.1 实分析 791 22.2 系统设计 792 22.2.1 结构分析 792 22.2.2 搭建环境 792 22.2.3 创建目录 793 22.3 数据库设计 793 22.4 公用模块设计 795 22.4.1 data包中的类 795 22.4.2 util包中的类 798 22.5 用户登录模块 800 22.6 系统主界面 802 22.7 基础维护模块 804 22.7.1 图书维护 804 22.7.2 用户维护 811 22.8 借还管理模块 818 22.8.1 借书 818 22.8.2 还书 821 22.9 查询管理模块 824 22.9.1 图书查询 824 22.9.2 用户查询 826 22.10 系统管理模块 829 22.11 小结 831
第1篇 Java编程基础 第1章 Java开发环境的搭建(教学视频:9分钟) 2 1.1 理解Java 2 1.2 搭建Java所需环境 3 1.2.1 下载JDK 3 1.2.2 安装JDK 4 1.2.3 配置环境 5 1.2.4 测试JDK配置是否成功 7 实1 开发第一个Java程序 7 第2章 Java基础类型与运算符(教学视频:39分钟) 9 2.1 基础类型 9 实2 自动提升 9 实3 自动转换 10 实4 常用基础类型之强制转换 11 2.2 运算符 12 实5 算术运算符 12 实6 关系运算符 13 实7 逻辑运算符 14 实8 位运算符 15 实9 移位运算符 16 实10 转型运算符 17 2.3 其他形式 18 实11 常量与变量 18 实12 各种进制的转换 19 实13 Java中的进制与移位运算符 22 第3章 条件控制语句(教学视频:75分钟) 26 3.1 if控制语句 26 实14 判断输入的年份是否为闰年 26 实15 抽奖活动 27 3.2 for语句 28 实16 小九九乘法表 28 实17 如何列出素数 29 实18 Java中的递归 31 实19 男生女生各多少人 32 实20 求水仙花数 34 实21 求任意一个正数的阶乘 35 实22 求n的n次方 35 实23 利用for循环输出几何图形 36 实24 杨辉三角 38 3.3 while语句 39 实25 求1到100之间的和 39 实26 存上100元需要多少天 40 实27 输出100之间的所有偶数 41 实28 如何判断回文数字 42 3.4 do…while语句 43 实29 输出100之间的所有奇数 44 实30 求最大的随机数 44 3.5 switch语句 45 实31 判断字母分类 46 实32 优良及差 47 实33 打印任意一年日历 48 实34 一年四季的划分 51 第2篇 Java数据处理 第4章 异常处理(教学视频:62分钟) 54 4.1 编译时异常 54 实35 除0发生的算术异常(ArithmeticException) 54 实36 数组下标越界异常(ArrayIndexOutOfBoundsException) 55 实37 数组元素类型不匹配异常(ArrayStoreException) 56 实38 强制类型转换异常(ClassCastException) 56 实39 索引越界异常(IndexOutOfBoundsException) 57 实40 空指针异常(NullPointerException) 58 实41 数字格式转换异常(NumberFornatException) 59 实42 字符串索引越界异常(StringIndexOutBounds) 60 实43 操作错误(UnsupportedOperationException) 60 4.2 运行时异常 61 实44 找不到指定类时发生的异常(ClassNotFoundException) 62 实45 请求的方法不存在(NoSuchMethodException) 63 4.3 try…catch捕获异常 65 实46 try…catch捕获异常的实 66 实47 try…catch…finally捕获异常的实 67 实48 try…catch嵌套捕获异常的实 68 4.4 throws声明异常 69 实49 throws声明异常实一 69 实50 throws声明异常实二 70 4.5 throw抛出异常 72 实51 throw抛出异常实一 72 实52 throw抛出异常实二 73 4.6 自定义异常 74 实53 自定义异常实一 74 实54 自定义异常实二 75 第5章 数组(教学视频:98分钟) 78 5.1 一维数组 78 实55 一维数组的创建与使用 78 实56 按相反的顺序输出 79 实57 奇偶分组 80 实58 找宝 81 实59 寻找最小数 82 实60 我的位置在哪里 83 实61 复制数组 85 实62 插入新元素 86 实63 数组的合并 87 实64 去除重复元素 88 实65 数组求和计算 90 实66 求最大值、最小值和平均值 91 5.2 二维数组 92 实67 二维数组的创建与使用 92 实68 矩阵转置 93 实69 奇数阶幻方 94 实70 求方阵对角线之和 96 实71 矩阵的加法 97 实72 矩阵的减法 98 实73 快递报价 99 5.3 数组的排序 101 实74 冒泡排序法 102 实75 数组递增排序 103 实76 部分数组递增排序 103 实77 选择排序法 104 实78 快速排序法 106 第6章 字符串(教学视频:138分钟) 108 6.1 字符串类String 108 实79 创建字符串类 108 实80 如何使用charAt()方法计算重复字符 109 实81 按字母顺序比较大小 110 实82 首尾相连 111 实83 字符串间的比较 112 实84 字符集的解码方法 113 实85 寻找指定字符第一次出现的位置 114 实86 寻找指定字符最后出现的位置 115 实87 我究竟有多长 116 实88 替换指定的字符 117 实89 分割字符串 117 实90 如何使用substring()方法截取子串 118 实91 分解字符串 119 实92 字母大小写转换 120 实93 去除多余的空白 120 实94 原始数组类型的String形式 121 实95 Java合法标识符 122 实96 显示一周各星期的名称 123 实97 构造空心方框 124 实98 这一天是星期几 125 实99 大小写互换 127 实100 输出指定范围的素数 128 实101 我出现了几次 129 实102 算术表达式求值器 129 实103 字符串对齐调整器 137 实104 字符串的加密 139 实105 使用正则表达式验证电话号码的格式 141 6.2 字符串缓存类StringBuffer 143 实106 创建字符串缓存类 143 实107 提取个字符 144 实108 给指定字符赋值 145 实109 插入新的字符 146 实110 插入新的字符串 146 实111 获取字符串的子串 147 实112 删除指定的字符 148 实113 倒置字符串 149 实114 去除重复字符 149 实115 检查是否是回文 151 第7章 输入/输出流(教学视频:116分钟) 152 7.1 文件和目录 152 实116 显示文件的基本信息 152 实117 显示目录的基本信息 153 实118 在指定的目录下创建个文件 156 实119 在指定的目录下创建多个临时文件 158 实120 删除指定目录下的文件 160 实121 移动指定目录下的文件 163 实122 文件搜索引挚 167 7.2 字节流 169 实123 复制指定目录下的文件 170 实124 显示文件中的内容 173 实125 将数据保存到指定的文件中 175 实126 将由键盘中录入的信息保存到文件中 176 实127 一个文件变成多个小文件 178 实128 多个小文件合成一个文件 181 实129 统计指定文件中的字符个数 183 实130 对象的序列化与反序列化 185 实131 同时显示多个文件 187 实132 生成zip压缩文件 189 实133 解压缩zip文件 192 实134 生成Excel文件 194 实135 读取Excel文件中的内容 198 实136 生成PDF文件 199 实137 读取PDF文件中的内容 203 实138 用iText生成Word文件 205 实139 利用POI读取Word文件中的内容 208 7.3 字符流 209 实140 按顺序创建文件 210 实141 按顺序读取文件 211 实142 追加文件内容 211 实143 只显示文件中指定的字符 214 实144 读取jar包文件 215 实145 文件的加密/解密操作 217 实146 复制图片 219 实147 随机读写Java类文件 221 第3篇 Java面向对象编程 第8章 面向对象(教学视频:72分钟) 226 8.1 类 226 实148 简的通讯录类 226 实149 简的长度位转换类 227 实150 卡车和卡车司机之间的关系 229 实151 双色球 231 8.2 成员变量和方法 236 实152 使用类作为成员变量 236 实153 构造方法 237 实154 使用静态成员变量计算内存中实化的对象数目 239 实155 实现加减乘除的方法 240 8.3 面向对象的设计模式 241 实156 Singleton模式 242 实157 招聘(简工厂模式) 243 实158 同学聚会(工厂方法模式) 244 实159 图书展(抽象工厂模式) 246 实160 汽车适配器(Adapter适配器模式) 248 8.4 垃圾回收 250 实161 垃圾回收的机制 250 第9章 面向对象的四大特征(教学视频:65分钟) 252 9.1 抽象 252 实162 求自定义几何图形的面积和周长 252 实163 使用抽象方法实现的支票夹 254 9.2 封装 257 实164 世界小姐参赛资格 257 实165 自定义复数类 261 9.3 继承 264 实166 轿车与本田的关系 264 实167 继承关系的加载顺序 266 实168 如何访问同名的方法或变量 268 实169 super()方法的使用 271 实170 this方法的使用 274 实171 一张考试成绩 275 实172 银行自动存取一体机 278 9.4 多态 284 实173 饮食文化 284 实174 使用构造方法的重载计算课程的GPA值 287 第10章 内部类与接口(教学视频:41分钟) 290 10.1 成员内部类 290 实175 成员内部类的使用规范 290 实176 猜谜 292 10.2 方法内部类 294 实177 局部内部类的使用规范 294 实178 奖学金的评分标准 295 10.3 匿名内部类 297 实179 匿名内部类的使用规范 297 实180 电话与移动电话 299 10.4 静态内部类 300 实181 静态内部类的使用规范 300 实182 苹果的来历 302 10.5 接口 303 实183 求n的幂数与倍数 304 实184 商品订 306 实185 多功能排序 310 第11章 Java常用类(教学视频:66分钟) 315 11.1 数学Math类 315 实186 求圆周率∏值 315 实187 求对数值 316 实188 使用取整函数 317 11.2 Random类的使用 318 实189 随机数 319 实190 验证码 322 11.3 Date类和Calendar类 324 实191 使用Date类获取系统的当前时间 324 实192 使用DateFormat类获取系统的当前时间 325 实193 使用GregorianCalendar类获取系统的当前时间 326 实194 使用SimpleDateFormat类获取系统的当前时间 329 实195 显示某年某月某一周的信息 330 实196 显示某年某月的信息 332 实197 时间的设置与获取 334 实198 万年历(农历和阳历的互换) 337 11.4 Formatter类的使用 347 实199 时间格式转换符的使用 347 实200 数据格式转换符的使用 349 11.5 System类的使用 351 实201 记录程序执行的时间 351 实202 程序的退出 352 实203 获取程序运行环境的信息 353 第4篇 Java高级开发技术 第12章 集合(教学视频:45分钟) 358 12.1 Set 358 实204 利用HashSet删除学生 358 实205 不重复的随机数序列 360 实206 运用映射的相关类(Map) 363 实207 运用集的相关类(Set) 365 12.2 List 368 实208 增加所需的元素 368 实209 Iterator迭代器的使用 370 实210 谁是幸运儿 371 实211 自定义Queue队列 373 实212 List、Set与Array之间的相互转换 375 实213 二分查找法的实现方法 377 实214 模拟操作系统的进程调度 379 实215 利用栈将字符串逆序输出 381 实216 动态的数组链表 382 实217 你能猜出鱼是谁的宠物吗? 387 实218 使用Collections类对List的排序操作 393 实219 LinkedList的添加删除操作 395 实220 运用Vector 397 实221 改变Properties文件中的键值 399 第13章 多线程编程(教学视频:121分钟) 405 13.1 多线程的五种基本状态 405 实222 启动线程 405 实223 参赛者的比赛生活(线程休眠唤醒) 407 实224 资源搜索并下载(线程等待和通报) 410 实225 模拟淘宝购物买卖双方交易问题 412 实226 携子之手 与子偕老(join) 415 实227 线程让步(Yield) 417 实228 会走动的钟(多线程) 419 实229 变形金刚中的守护神(守护线程) 424 实230 查看JVM中所有的线程的活动状况 426 实231 模仿网络快车下载工具下载文件 428 13.2 多线程的同步与互斥 436 实232 多线程同步方法的实 436 实233 ATM存取一体机(线程同步互斥) 437 实234 我的钱哪里去了 440 实235 门锁打不开了(死锁) 444 实236 门锁终于被打开了(解决死锁) 446 实237 一个死锁的子 448 13.3 线程的优先级 451 实238 排座位(线程优先级) 451 实239 赛车 454 13.4 定时器 458 实240 定时器(Timer) 458 实241 数字定时器 459 13.5 线程连接池 462 实242 手术任务(线程池) 462 实243 模拟人工服务台(线程连接池) 466 13.6 线程应用实 471 实244 下雪的村庄 472 实245 小飞侠 474 实246 飞流直下 477 实247 多线程断点续传 479 实248 滚动的珠子 485 实249 余额查询 489 实250 滚动的文字 492 实251 漂浮效果 495 实252 监视内存的使用情况 499 实253 璀璨的星空 501 实254 银行和超市业务的模拟 505 第14章 泛型(教学视频:43分钟) 511 14.1 泛型基础 511 实255 一个关于泛型的简子 511 实256 带两个类型参数的泛型 513 实257 有界类型程序示 514 实258 通配符使用示 515 实259 泛型方法使用示 516 实260 泛型接口示 518 实261 泛型实现坐标打印 519 14.2 泛型类的继承 521 实262 继承泛型类示 521 实263 继承非泛型类示 522 实264 泛型类的类型识别示 523 实265 强制类型转换示 525 14.3 擦拭 526 实266 无限界的擦拭 526 实267 有限界的擦拭 527 14.4 集合泛型类 528 实268 Hashtable的泛型化 528 实269 多功能画笔 529 第15章 网络编程(教学视频:52分钟) 534 15.1 IP地址 534 实270 获取计算机名与IP地址 534 实271 获取网址的IP地址 535 实272 判断两个网址的主机名是否一样 536 实273 测试IP的类型 537 实274 查找主机 538 实275 主机所支持的协议 539 15.2 URL类的使用 540 实276 使用URL访问网页 540 实277 URL的组成部分 541 实278 通过指定的URL可以获取网页的源代码 542 实279 一对多通信模式 544 实280 自制浏览器 549 实281 扫描TCP端口 551 实282 TCP协议服务器 552 实283 TCP协议客户机 553 实284 Socket连接信息 555 实285 Echo服务的客户端是如何实现的? 556 实286 检测本机的服务端口 558 实287 下载的页面不丢失链接 559 实288 如何对网页进行重新定向 560 实289 在Internet上搜索对象 560 实290 LAN使用代理服务器 562 实291 BBS论坛服务器端 567 实292 UDP报文的发送与接收 579 第16章 数据库技术(教学视频:38分钟) 583 实293 加载JDBC驱动程序 583 实294 通过JDBC对数据库进行查询 584 实295 数据库更新 585 实296 获取数据库的基本信息 586 实297 获取数据库对SQL支持的信息 589 实298 处理访问数据库出现的常见异常情况 591 实299 在Servlet中连接数据库 593 实300 数据分页显示 595 实301 批处理 601 实302 事物处理 604 实303 调用存储过程 608 实304 连接ODBC数据库 611 实305 数据库中图片文件的存取 614 第17章 界面设计--Swing(教学视频:88分钟) 618 17.1 Swing组件介绍及应用 618 实306 JFrame框架的应用 618 实307 Border的使用 619 实308 使用Icon组件显示一张图片 620 实309 Icon接口的应用 621 实310 JLabel组件 622 实311 Icon应用到JLabel中 623 实312 JButton的使用 624 实313 在JButton上设置快捷键 625 实314 设置默认按钮 626 实315 使用JCheckBox组件 627 实316 JCheckBox事件处理 629 实317 JRadioButton的使用 630 实318 JComboBox的使用 632 实319 利用ComboModel构造JComboBox 633 实320 DefaultComboBoxModel的使用 635 实321 建立有图像的JComboBox 636 实322 建立可自行输入的JComboBox 637 实323 JComboBox的事件处理 638 实324 JTextField组件的使用 640 实325 使用JTextArea组件 641 17.2 页面布局及事件监听 642 实326 BorderLayout版面布局 643 实327 FlowLayout布局管理 644 实328 应用GridLayout设计版面 645 实329 如何使用BoxLayout布局管理器 647 实330 使用ActionEvent监听组件 648 实331 使用WindowAdapter实现鼠标事件 649 实332 使用MouseMotionListener监听鼠标 650 实333 使用KeyListener监听键盘 652 17.3 组件的综合应用 654 实334 计算器 654 实335 创建树菜 657 实336 在节点中显示详细信息 658 第18章 Applet小应用程序(教学视频:39分钟) 662 实337 不断变大的文字 662 实338 灯光扫描的效果 664 实339 字体逐渐展开的效果 666 实340 飞舞的气球 668 实341 逐渐浮现的图片 671 实342 火焰边框的特效 674 实343 局部放大效果 677 实344 水波荡漾的效果 679 实345 漫天飞花 682 实346 动感影集 685 实347 彩虹字 688 实348 多功能按键 690 第19章 多媒体与图像处理(教学视频:51分钟) 694 19.1 多媒体 694 实349 测试音频播放器 694 实350 测试视频播放器 696 实351 视频反色效果 698 实352 实现一个录音机 703 实353 建立一个调色板 707 19.2 图像处理 710 实354 在计算机内存中创建一个图像 710 实355 会移动的图像 712 实356 将图片进行180度旋转 714 实357 处理图像的明暗度 716 实358 如何将彩色图转化为灰度图 721 实359 锐化和模糊图像 724 实360 显示一个图像的轮廓 727 实361 如何放大及拉伸图像 730 第20章 JSP开发技术(教学视频:62分钟) 735 20.1 JSP基础 735 实362 网页版的9×9乘法口诀 735 实363 Java Servlet小程序 737 实364 Servlet对表的处理过程 738 实365 获取/修改JavaBeans中的内容 741 20.2 JSP程序设计 743 实366 喜连大三元 743 实367 运气对对碰 748 实368 文字样式统计器 752 实369 图形统计器 754 20.3 垃圾信息投诉站 756 实370 创建投诉表 756 实371 保存投诉的内容 760 实372 实现投诉站的后台操作 762 实373 取消投诉内容 764 实374 站内信 767 20.4 网站在线评估系统 769 实375 创建评估问卷 769 实376 实现评估的后台操作 771 实377 查看评估结果 773 第5篇 Java综合案 第21章 模拟服务器与客户端之间的通信(教学视频:13分钟) 778 21.1 实介绍 778 21.2 框架设计 779 21.2.1 项目的总体结构 779 21.2.2 搭建开发环境 779 21.2.3 确定项目工程目录 779 21.3 公用模块设计 780 21.4 客户端程序 780 21.4.1 客户端的工作流程 780 21.4.2 编写客户端的源程序 781 21.4.3 客户端源的程序解读 783 21.5 服务器端程序 785 21.5.1 服务器端的工作流程 785 21.5.2 编写服务器端的源程序 785 21.5.3 服务器端的源程序解读 788 21.6 小结 790 第22章 书店管理系统(教学视频:56分钟) 791 22.1 实分析 791 22.2 系统设计 792 22.2.1 结构分析 792 22.2.2 搭建环境 792 22.2.3 创建目录 793 22.3 数据库设计 793 22.4 公用模块设计 795 22.4.1 data包中的类 795 22.4.2 util包中的类 798 22.5 用户登录模块 800 22.6 系统主界面 802 22.7 基础维护模块 804 22.7.1 图书维护 804 22.7.2 用户维护 811 22.8 借还管理模块 818 22.8.1 借书 818 22.8.2 还书 821 22.9 查询管理模块 824 22.9.1 图书查询 824 22.9.2 用户查询 826 22.10 系统管理模块 829 22.11 小结 831
<p> <strong><span style="background-color:#FFFFFF;color:#E53333;font-size:24px;">本页面购买不发书!!!仅为视频课购买!!!</span></strong> </p> <p> <strong><span style="color:#E53333;font-size:18px;">请务必到</span></strong><a href="https://edu.csdn.net/bundled/detail/49?utm_source=banner"><strong><span style="color:#E53333;font-size:18px;">https://edu.csdn.net/bundled/detail/49</span></strong></a><strong><span style="color:#E53333;font-size:18px;">下购买课+书。</span></strong> </p> <p> <span style="font-size:14px;">本页面,仅为观看视频页面,如需一并购买图书,请</span><span style="font-size:14px;">务必到</span><a href="https://edu.csdn.net/bundled/detail/49?utm_source=banner"><span style="font-size:14px;">https://edu.csdn.net/bundled/detail/49</span></a><span style="font-size:14px;">下购买课程+图书!!!</span> </p> <p> <br /> </p> <p> <span style="font-size:14px;">疯狂Python精讲课程覆盖《疯狂Python讲义》全书的主体内容。</span> </p> <span style="font-size:14px;">内容包括Python基本数据类型、Python列表、元组和字典、流程控制、函数式编程、面向对象编程、文件读写、异常控制、数据库编程、并发编程与网络编程、数据可视化分析、Python爬虫等。</span><br /> <span style="font-size:14px;"> 全套课程从Python基础开始介绍,逐步步入当前就业热点。将会带着大家从Python基础语法开始学习,为每个知识点都提供对应的代码实操、代码练习,逐步过渡到文件IO、数据库编程、并发编程、网络编程、数据分 析和网络爬虫等内容,本课程会从小案起,至爬虫、数据分析案终、以Python知识体系作为内在逻辑,以Python案作为学习方式,最终达到“知行合一”。</span><br />
©️2020 CSDN 皮肤主题: 代码科技 设计师:Amelia_0503 返回首页
实付 9.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值