自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 外观模式详解(Java)

Java 中外观模式通过静态类型约束和依赖注入提升灵活性,适用于多层架构、遗留系统封装等场景。设计时需平衡封装粒度,避免过度抽象,结合装饰器模式可进一步增强功能。外观模式通过封装多个子系统,为客户端提供简化的高层接口,降低使用复杂度。方法封装认证、压缩、存储流程,客户端无需关注细节。● 错误处理集中在外观层,子系统异常可通过。:定义统一方法,内部协调子系统调用。:实现具体功能,客户端不直接访问。:外观层捕获异常,返回统一错误码。:减少客户端复杂性,隔离系统变更。构造函数初始化所有依赖子系统。

2025-03-01 10:30:30 368

原创 组合模式详解(Java)

组合模式是一种结构型设计模式,它通过将对象组织成树形结构,来表示“部分-整体”的层次关系。这种模式使得客户端可以一致地对待单个对象和组合对象,从而简化了客户端代码的复杂性。组合模式的核心在于定义了一个抽象组件角色,这个角色既可以代表叶子节点,也可以代表容器节点,每个节点都可以包含子节点。在组合模式中,对象被组织成一种树形结构,这种结构允许对象以层次化的方式组合,形成一个整体。树形结构的顶端是根节点,根节点下面可以有多个子节点,这些子节点可以是叶子节点,也可以是其他容器节点。

2025-02-17 21:41:05 939

原创 适配器模式详解(Java)

适配器模式在 Java 中的应用极为广泛,尤其是在处理遗留代码或者第三方库的时候,它能够有效地将不兼容的接口转换为兼容的接口,极大地提升了代码的复用性和灵活性。类适配器通过继承的方式实现适配,对象适配器则依靠组合的方式实现适配,而接口适配器通过抽象类提供默认实现,减少了客户端需要实现的方法数量。深刻理解并灵活运用适配器模式,对于我们编写更加健壮且易于维护的代码具有极大的帮助。

2025-02-16 20:39:19 418

原创 桥接模式详解(Java)

桥接模式,作为一种重要的结构型设计模式,其核心理念在于将抽象部分与实现部分分离。通过这种分离,桥接模式允许抽象和实现两个维度可以独立地进行变化,从而在软件设计中实现高度的灵活性和可扩展性。这种分离使得系统可以在不修改抽象部分的情况下,自由地替换或扩展实现部分,反之亦然。在传统的面向对象设计中,抽象和实现往往通过继承关系紧密耦合在一起。这种强耦合关系在面对多维度变化的需求时,常常显得力不从心,容易导致类爆炸问题,即随着需求的变化,类的数量迅速增加,系统变得复杂且难以维护。

2025-02-15 08:56:26 1047

原创 适配器模式详解(Java)

适配器模式是一种结构型设计模式,主要目的是将一个类的接口转换为客户期望的另一个接口。这种模式使得原本因为接口不匹配而不能一起工作的类可以一起工作,从而提高了类的复用性。适配器模式分为类适配器和对象适配器两种类型。类适配器使用继承关系来实现,而对象适配器则使用组合关系。适配器模式的核心在于解决接口不兼容的问题。在软件系统中,随着应用环境的变化,常常需要将一些现存的对象放在新的环境中应用,但是新环境要求的接口是这些现存对象所不满足的。

2025-02-13 21:44:59 942

原创 原型模式详解(Java)

原型模式(Prototype Pattern),作为一种极具代表性的创建型设计模式,其核心思想在于通过复制,亦即克隆现有的对象,来达成创建新对象的目的,而非依赖传统的构造函数途径。这一模式巧妙地基于现有对象的克隆机制,实现在运行时动态地创建对象,同时有效地规避因频繁创建对象而引发的资源消耗问题。本文将全面且深入地探讨原型模式的内涵,并通过 Java 示例来直观地展现其具体实现过程。

2025-02-13 21:40:31 761

原创 MySQL百万级表模糊查询解决方案

全文索引是MySQL中另一种支持模糊查询的重要功能,它专门用于在大量文本中查找关键词。相比LIKE语句,全文索引在处理大规模文本数据时更为高效。例如,在一个包含大量文章或帖子的内容管理系统中,使用全文索引可以显著提升搜索速度。创建全文索引后,MySQL会对指定的列进行索引,使得搜索操作可以快速定位到包含关键词的记录。全文索引支持复杂的查询操作,如布尔搜索、短语搜索等,使得搜索功能更加灵活和强大。然而,全文索引也有其局限性,例如,它不适用于所有数据类型,且对于短文本的查询效果并不理想。

2025-02-12 21:21:48 518

原创 建造者模式详解(Java)

建造者模式通过将复杂对象的构建过程与表示分离,使得相同的构建过程可以创建不同的表示。这种模式提供了灵活的方式来构建复杂对象,从而提高代码的可读性和可维护性。虽然建造者模式会增加系统的复杂度和额外的开发工作,但在需要构建复杂对象且希望将构建过程与最终表示分离的情况下,建造者模式是非常有用的。在实际开发中,合理分析场景,在合适的场景下使用建造者模式,一定会使得你的代码更加清晰、灵活和易于维护。

2025-02-12 21:17:42 1094

原创 抽象工厂模式详解(Java)

抽象工厂模式是一种创建型设计模式,它提供了一种方式来创建一组相关或相互依赖的对象,而无需指定具体的实现类。抽象工厂模式通过引入抽象工厂和抽象产品接口,将对象的创建和使用分离,使得系统更加灵活和易于扩展。抽象工厂模式具有封装性好、可扩展性强、松耦合等优点,但也存在增加额外类和系统复杂性的缺点。在实际项目中,抽象工厂模式有着广泛的应用,如UI组件库、数据库访问层和游戏开发等。

2025-02-11 21:46:17 1038

原创 工厂方法模式详解(Java)

工厂方法模式(Factory Method Pattern)是一种创建型设计模式,它提供了一种创建对象的接口,但允许子类决定实例化哪一个类。这种模式的核心在于定义一个创建产品对象的工厂接口,将实际创建产品的过程延迟到子类中实现。这样做的主要目的是为了实现系统的解耦,增加代码的灵活性和可扩展性。在工厂方法模式中,主要涉及以下几个角色:●产品接口(Product Interface):定义产品的公共接口。具体产品类实现这个接口。●具体产品(Concrete Product):实现产品接口的具体类。

2025-02-10 22:22:22 656

原创 单例模式详解(Java)

单例模式是一种常用的软件设计模式,它确保一个类在整个应用程序中只有一个实例,并提供一个全局访问点来访问这个唯一实例。这种模式在资源管理、配置设置和日志记录等方面非常有用,因为它们通常只需要一个实例来服务整个系统。例如,数据库连接池、线程池和系统配置等场景,通常采用单例模式来确保资源的合理分配和使用。单例模式的基本概念在于通过私有化构造函数,避免外部直接实例化对象,并提供一个公共的静态方法来获取该实例。这确保了无论在何处调用这个方法,都将返回相同的实例对象。

2025-02-10 22:14:25 901

原创 servlet验证码生成

BufferedImage img=new BufferedImage(60, 30, BufferedImage.TYPE_INT_RGB); //通过图片获取画布 Graphics graphics = img.getGraphics(); //设置画布的字体 graphics.setFont(new Font("Times New Roman", Font.ITALIC, 1

2017-09-12 11:51:14 302

原创 TreeSet 集合在Add时报错cannot be cast to java.lang.Comparable

//TreeSet 集合在Add时报错cannot be cast to java.lang.Comparablepublic class Test { public static void main(String[] args) { // TODO Auto-generated method stub Set set = new TreeSet(new AgeComparat

2017-08-14 20:22:54 1738

原创 从网页中提取图片到本地

package ttest;import java.io.BufferedOutputStream;import java.io.FileOutputStream;import java.io.InputStream;import java.net.URL;import java.net.URLConnection;public class jietu { private sta

2017-08-07 20:26:00 2800

原创 Oracle查看用户信息

Oracle查看用户信息

2017-08-01 19:06:58 864

原创 游标的循环示例

游标的检索循环DECLARE v_empno emp.empno%TYPE; v_sal emp.sal%TYPE; CURSOR c_cursor IS SELECT empno, sal FROM emp; BEGIN OPEN c_cursor; LOOP FETCH c_cursor INTO v_empno, v_sal;

2017-07-26 18:51:47 260

原创 oracle数据库对象的详解

表基本的数据存储集合,由行和列组成。CREATE  TABLE  dept (deptno        NUMBER(2),  dname        VARCHAR2(14),  loc      VARCHAR2(13));ALTER  TABLE  table  MODIFY  (column datatype [DEFAULTexpr][, column

2017-07-25 19:32:11 313

原创 DCL,DDL,DML的定义与使用讲解'

DMLData Manipulation Language,数据操作语言用于修改数据。如果说SELECT语句对数据进行的是读操作,那么DML语句对数据进行的是写操作。INSERT INSERT INTO 表(列1,列2 …) VALUES (表达式1 ,表达式2 .. ) ;DELETE DELETE FR

2017-07-25 19:30:53 530

原创 table的建立与赋值

columnNames=new Vector(); //设置列名 columnNames.add("编号"); columnNames.add("菜名"); columnNames.add("价格"); columnNames.add("种类"); rowData = new

2017-07-24 19:41:17 1247

原创 Can not issue data manipulation statements with executeQuery()

Can not issue data manipulation statements with executeQuery() 原因是这句:st.executeQuery("insert  into  student  values('"+name+"','"+age+"','"+introduce+"')") ;我是看了书上一个例子,然后开始模仿,发现问题后,发现书上其他程序语句都是用

2017-07-24 19:39:00 531

原创 数据库的简单封装

package com.chinasoft.diancan.a;import java.io.FileInputStream;import java.io.IOException;import java.sql.Connection;import java.sql.DriverManager;import java.util.Properties;public class jdbc

2017-07-20 19:58:40 261

原创 Oracle中的几种控制语句if..else,for,loop,while

--if ...else DECLAREcou NUMBER ;BEGINcou := 10 ;IF cou>10 THENDBMS_OUTPUT.put_line('cou = '||cou) ;ELSIF cou<5 THENDBMS_OUTPUT.put_line('值小于 5') ;ELSEDBMS_OUTPUT.put_line('条件不满足 ') ;END IF

2017-07-18 19:39:20 775

原创 创建oracle表格及添加内容

使用create关键字创建使用insert关键字添加信息--商品列表drop table Goods;create table Goods(Gnum number primary key,Gname varchar2(50),Bname varchar2(30),Price number,Discount number, Remark varchar2(500));inse

2017-07-17 20:18:22 564

原创 Oracle数据库基本了解

数据库(Database, DB)数据库管理系统(Database Management System, DBMS)数据库管理员( Database Administrator, DBA )数据库系统( Database System, DBS )关系型数据库(Relationship Database, RDB)关系型数据库管理系统(RDBMS)–常用

2017-07-13 18:58:23 224

原创 程序员词汇

application 应用程式 应用、应用程序  application framework 应用程式框架、应用框架 应用程序框架  architecture 架构、系统架构 体系结构  argument 引数(传给函式的值)。叁见 parameter 叁数、实质叁数、实叁、自变量  array 阵列 数组  arrow operator arrow(箭头)运算子 箭头操作符

2017-07-13 18:53:25 263

原创 ArrayList使用与遍历

ArrayList被称为数组列表,数据采用数组的方式存储,使   用连续内存存储。ArrayList是Java语言中可变长度数组的 实现。ArrayList的常用方法-add(Object  o);->集合中添加数据-remove(Object o)->删除集合中的数据-add(int  index, Object element)->给集合中某个索引位置添

2017-07-12 19:42:50 313

原创 Java中的泛型

1、泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。2、这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 3、Java语言引入泛型的好处是安全简单。泛型类:声明类名后使用(E可以是任何其他字母),即可以指定该类是一个泛型类。类型参数可以在该类中需要数据类型

2017-07-12 19:28:54 194

原创 JTable使用实例

import javax.swing.*;import java.awt.*;public class JTableDemo{ JFrame mainJFrame; Container con; JScrollPane JSPane; JTable DataTable; public JTableDemo(){ mainJFrame = new JFra

2017-07-12 19:20:07 927

原创 PLSQL Developer怎样设置为中文

菜单->Tools ->preferences->User Interface -> Appearance -> Language 选择 Chinese.lang。

2017-07-12 18:30:21 43443 7

原创 java逻辑运算符

逻辑运算符1、用于连接两个boolean类型的表达式&& (双与) 、|| (双或) 、&(与)、|(或)、^(异或)、!(非运算)2、&&与&的区别:&&与&的运算结果是相同的,对于&而言无论左边为什么值,右边都参与运算;对于&&来说,只要左边为false右边就不再运算,直接返回false/3||与|的区别:||与|的运算结果是相同的,对于|而言无论左

2017-07-12 08:52:46 273

原创 hashMap的用法

1、在eclipse中新建JFrame文件,选择WindowBuilder打开方式。

2017-07-11 20:22:42 805

原创 利用StringBuffer读写文件实例

public class stringBuffertest { public static void main(String[] args) { try { FileInputStream fis = new FileInputStream("C:/test.txt"); FileOutputStream fos = new FileOutputStream("E:/test.t

2017-07-11 20:14:59 2231

原创 java中Date的表示详解

import java.util.Date;import java.util.Locale;public class Date1 { public static void main(String[] args) { Date today = new Date(); // %t表示格式化日期时间类型,%T是时间日期的大写形式,在%t之后用特定的字母表示不同

2017-07-11 19:59:41 557

原创 java 制作计算器

使用java制作计算器    使用eclipse软件,在打开方式中选择WindowsBuilder Editor,以此为工具进行编程。代码如下:package test4;import java.awt.*;import javax.swing.*;import java.awt.event.ActionListener;import java.awt.event

2017-07-05 19:02:35 708

原创 多线程

进程与线程的区别     进程就是正在执行的程序,一个进程通常就是一个正在执行的应用程序。从Windows角度讲,进程是含有内存和资源并安置线程的地方。准确的讲,进程就是一个可执行的程序一次运行的过程,它是系统进行资源分配和调度的一个独立单位。线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针、程序计数器等),但代码区是共享的,即不同的线程可以执行同样的函数。    多线程是指

2017-07-04 19:34:28 235

原创 java中对异常的捕获(try,catch,finally)

1.异常是不正常的事件,不是错误。异常是指程序运行的过程中,发生某些意外的事情,比如10除以0, 文件不存在等。2.Throwable类有两个直接子类:Exception类、Error类。Error表示错误,可能是编译期错误或者系统错误,往往程序中并不处理。Exception表示异常,是所有异常类的父类。3.异常捕获的语法try{    可能会发生异常的代码;}ca

2017-06-27 19:28:07 342

原创 file类的遍历文件与目录

File类的对象可以表示文件,还可以表示目录,在程序中一个File类对象可以代表一个文件或目录。绝对路径:通过给定的这个路径直接能在我的电脑中找到这个文件。相对路径:文件相对于可执行应用程序的路径。

2017-06-26 20:05:11 351

原创 java中关于继承的总结

继承的概念继承机制是面向对象程序设计不可缺少的关键概念,是实现软件可重用的根基,是提高软件系统的可扩展性与可维护性的主要途径。所谓继承是指一个类的定义可以基于另外一个已经存在的类,即子类基于父类,从而实现父类代码的重用,子类能吸收已有类的数据属性和行为,并能扩展新的能力。

2017-06-20 18:55:12 353

原创 java中关于方法的解释

一、什么是方法     方法就是定义在类中具有特定功能的一段独立的小程序,方法也称为函数。    方法即对象的行为。二、方法的声明形式    【访问权限修饰符】【修饰符】返回值数据类型 方法名(形式参数列表){执行语句;     return  返回值;    }三、方法的各部分解析1、访问权限修饰符及修饰符   访问权限控制方法被调用的范围修饰符包括s

2017-06-19 19:58:15 325

原创 数组

数组是相同数据类型的元素按一定顺序排列的集合。1.可以通过指定数组的名称和长度来声明数组;2.一旦声明数组的大小,就不能再修改;3.数组元素通过数组名和索引来访问,索引从0开始;4.数组可以是一维,也可以是多维。

2017-06-15 20:12:40 177

空空如也

空空如也

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

TA关注的人

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