java基础巩固12

xml简介

(1)XML是可扩展标记语言的缩写,他是一种数据表示格式,可以描述非常复杂的数据结构,常用于传输和存储数据。
(2)XML有一个特点,一是纯文本,默认使用UTF-8编码,二是可嵌套,适合表示结构化数据。如果把XML内容存为文件,那么它就是一个XML文件,例如book.xml。此外,XML内容经常通过网络作为消息传输。
(3)XML有固定的结构,首行必定是<?xml version=“1.0”>,可以加上可选的编码。紧接着,如果以类似<!DOCTYPE note SYSTEM “book.dtd”>声明的是文档定义类型。接下来是XML文档内容,一个XML文档有且仅有一个根元素,根元素可以包含任意个子元素,元素可以包含属性。
(4)格式正确地XML是指XML的格式是正确地,可以被解析器正常读取。而合法的XML是指,不但XML格式正确,而且它的数据结构可以被DTD或者XSD验证。
(5)DTD文档可以指定一系列规则,例如:
根元素必须是book
book元素必须包含name,author等指定元素
isbn元素必须包含属性lang
(6)如何验证XML文件的正确性呢,最简单的方式是通过浏览器验证。可以直接把XML文件拖拽到浏览器窗口,如果格式错误,浏览器会报错。和结构类似的HTML不同,浏览器对HTML有一定的容错性,缺少关闭标签也可以被解析,但XML要求严格的格式,任何没有正确嵌套的标点都会导致错误。

JSON

(1)JSON作为数据传输的格式,有几个显著优点:
JSON只允许使用UTF-8编码,不存在编码问题
JSON只允许使用双引号作为key,特殊字符使用\转义,格式简单
浏览器内置JSON支持,如果把数据JSON发送给浏览器,可以用JavaScript直接处理。

JDBC编程

(1)JDBC是java DataBase Connectivity的缩写,它是java访问数据库的标准接口。使用Java程序访问数据库时,Java代码并不是直接通过TCP连接去访问数据库,而是通过JDBC接口来访问,而JDBC接口则通过JDBC驱动来实现真正对数据库的访问。
(2)例如,我们在java代码中如果要访问MySql,那么必须编写代码才做JDBC接口,注意到JDBC接口是java标准库自带的,所以可以直接编译,而具体的JDBC驱动是由数据库厂商提供的,例如,MySql的JDBC驱动由Oracle提供。因此,访问某个具体的数据库,我们只需要映入该厂商替工儿JDBC驱动,就可以通过JDBC接口来访问,这样就保证了Java程序编写的是一套数据库访问代码,却可以访问各种不同的数据库,因为他们都提供了JDBV驱动。
(3)实际上,一个MySQL的JDBC的驱动就是一个jar包,它本身也是纯Java编写的。我们自己编写的代码只需要引用Java标准库提供的java.sql包下面的相关接口,由此再间接地通过MySQL驱动额jar包通过网络访问MySql服务器,所有复杂的网络通讯都被封装到JDBC驱动中,因此,Java程序只需要映入一个MySQL驱动的jar包就可以正常访问MySQL服务器。

创建型模式

创建型模式关注点是如何创建对象,其核心思想是把对象的创建和使用相分离,这样是的两者能相对独立地变换。
创建型模式包括:
(1)工厂方法:Factory Method
(2)抽象工厂:Abstract Factory
(3)建造者:Builder
(4)原型:Prototype
(5)单例:Singleton

工厂方法

(1)定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使一个趔的实例化延迟到其子类。工厂方法的目的是使得创建对象和使用对象是分离的,并且客户端总是引用抽象工厂和抽象产品。
(2)实际更常用的是更简单的静态工厂方法,它允许工厂内部对创建产品进行优化。
(3)调用方尽量持有接口或抽象类,避免持有具体类型的子类,一遍工厂方法能随时切换不同的子类返回,却不影响调用方代码。

抽象工厂

(1)提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。抽象工厂模式和工厂方法不太一样,它要解决的问题比较复杂,不但工厂是抽象的,产品是抽象的,而且有多个产品需要创建,因此,这个抽象工厂会对应到多个实际工厂,每个实际工厂创建多个实际产品。这种模式有点类似于多个供应商负责提供一系列类型的茶品。

生成器

Builder模式是为了创建一个复杂的对象,需要多个步骤完成创建,或者需要多个零件组装的场景,且创建过程中可以灵活调用不同的步骤或组件。

原型

(1)原型模式,即Prototype,是指创建新对象的时候,根据现有的一个原型来创建。
(2)原型模式应用不是很广泛,因为很多实例会持有类似文件、Socket这样的资源,而这些资源是无法复制给另一个对象共享的,只有存储简单类型的“值”对象可以复制。

单例

(1)保证每个类仅有一个实例,并提供一个访问它的全局访问点。单例模式的目的是为了保证在一个进程中,某个类有且仅有一个实例。因为这个类只有一个实例,因此不能使用new xyz()来创建实例了,所以,单例的构造方法必须是private,这样就防止了调用方调用自己创建实例,但在类的内部,是可以用一个静态字段来引用唯一创建的实例的。
(2)所以,单例模式的实现方式很简单:
只有private构造方法,确保外部无法实例化
通过private satatic变量持有唯一实例,保证全局唯一性
通过public static方法返回此唯一实例,使外部调用方法能够获取到实例
(3)另一种实现Singleton的方式是利用Java的enum,因为Java保证枚举类的每个枚举都是单例,所以我们只需要编写一个只有一个枚举的类即可。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值