day1Java基础加强.docx
- 文档编号:12031649
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:15
- 大小:389.13KB
day1Java基础加强.docx
《day1Java基础加强.docx》由会员分享,可在线阅读,更多相关《day1Java基础加强.docx(15页珍藏版)》请在冰豆网上搜索。
day1Java基础加强
Java基础加强
1课程介绍
Ø1.资源文件(掌握)
Ø2.单例模式(掌握)
Ø3.简单工厂模式(了解)
Ø4.模板方法模式(了解)
Ø5.适配器模式(了解)
Ø6.工具类-classpath-jar包(掌握)
2资源文件
2.1什么是资源文件
资源文件也可以看成是配置文件,一般的形式有两种:
①XML其中的内容必须满足XML的规范
②Properties一般是以properties为后缀名;里面必须是String字符串类型的键值对
例如:
注意:
一对就写一行
2.2admin不需要使用双引号上面的4个值本身就都是字符串类型的
资源文件的作用
简单的说,使用资源文件可以解除硬编码问题。
那么问题来了,什么是硬编码呢?
请看下面的示例,下面简单.模拟的是JDBC技术中程序中访问数据库
2.3读取资源文件的方式
2.3.1使用Properties类来读取资源文件
①结构体系
Mapinterface
|--Hashtableclass
|--Propertiesclass
②简要介绍:
Map存储键值对的集合接口,key-value都可以是Object
Hashtable
Properties建议:
key-value都应该是字符串String类型
设置值应该使用:
ObjectsetProperty(Stringkey,Stringvalue)
取值应该使用:
StringgetProperty(Stringkey)
StringgetProperty(Stringkey,StringdefaultValue)
读取和写入的方法;
listloadstore
2.3.2读取资源文件的具体步骤
①创建一个资源文件,例如jdbc.properties
②在Java代码中新建一个Properties对象
Propertiesp=newProperties();
③使用IO流关联资源文件
InputStreamistream=newFileInputStream(“jdbc.properties”);
④调用Properties对象p中的load方法来从istream中读取数据
p.load(istream);
⑤拿到资源文件中的值
2.3.3得到流的方式
①上面流程中的方式,使用文件流从相对路径或者绝对路径查找文件;
缺点:
②通过类加载器加载资源方式1
③通过类加载器加载资源方式2
注意:
上面这种方式必须是LoadProperties文件和资源文件在同一个路径下面,如果没有再同一个路径可以现在下面的方式:
④通过类加载器加载资源方式3:
通过当前线程来获得类加载器
3单例模式
通俗的讲:
设计一个类,在整个应用中只存在一个对象(需要做到让本类的外部不能够随意创建对象)
①构造方法私有化(暂时不考虑反射)
②在内部创建好一个对象并保存起来
③向外提供一个公共的静态的方法,返回内部对象的地址
3.1饿汉模式
缺点:
对象的创建是类加载的时候,可能会导致类加载很慢
3.2懒汉模式
缺点:
存在线程安全问题
3.3使用静态代码块完成(强烈推荐的)
3.4枚举实现单例模式(推荐)
publicenumSingleton{
INSTANCE;
}
通过反射也是不能够创建枚举对象的(上面是验证示例)
手机的标准
interfacePhone{
//打电话
//发短信
}
4简单工厂模式
//锤子手机
classSmartisanimplementsPhone{
覆写(实现)接口中的方法
//打电话
//发短信
}
//三星手机
classSamsungimplementsPhone{
覆写(实现)接口中的方法
//打电话
//发短信
}
//苹果手机
classIPhoneimplementsPhone{
覆写(实现)接口中的方法
//打电话
//发短信
}
创建具体的手机对象:
①例如苹果公司自己生产手机(直接根据IPhone类来new对象);
②找工厂来生产富士康(Foxconn)
//富士康工厂
classFoxconnFactory{
}
5模板方法模式
6适配器模式
7工具类-classpath-jar包
7.1工具类
我们经常会有一些重复的代码,那么我们需要把这些代码抽取出来,单独做成一些工具类,方便以后直接调用。
工具类取名(XxxUtil/XxxUtils,XxxHelper,XxxTools)
写工具类的两种方式:
①使用静态方式例如ArryasCollections
构造器私有化,然后提供一些公共的静态的方法即可
②使用单例:
工具方法是实例方法(非静态static)--->需要一个对象来调用
1有的时候工具方法可能是非静态的---》需要方法所在的工具类的对象来调用
2把这个工具类设置为单例模式的,保证工具类对象只有一个
3使用的时候,先获得工具类的实例,然后调用非静态的工具方法
enumXxxUitls{
INSTANCE;
publicXxgetXxx(){
}
}
7.2jar包
7.2.1什么是jar包
简单的说jar包就是一个class文件的压缩包和ziprar性质是一样的
我们开发的时候,有很多功能是重复的功能。
这些功能早就有人为我们写好了。
我们只需要直接调用就可以了。
思考:
它是直接把代码给我们用吗?
当然不是!
我们运行代码的时候只需class文件就可以了。
用自己的话说:
就是别人写好的一些代码,将这些代码压缩成一个文件(jar文件)。
我们可以把这个文件放到我们的项目中来,就可以调用别人的代码。
7.2.2使用jar包
①找到相应的jar包
②在工程下面新建一个lib文件夹
③讲jar包拷贝到lib文件夹下面
④讲jar配置到环境变量(classpath)中
如果看到下面的结构就OK了
7.3eclipse中的.classpath分析
①结构图分析
②
kind="src":
代表key,当它是src的时候(资源文件夹)
path="src":
代表值,这个src代表一个路径(文件夹)
现在src所代表的文件夹就是一个资源文件夹
注意:
资源文件夹里面的内容才会帮我们编译成classes文件
③
我们编译之后的class文件放在哪个地方
④发现!
(感叹号),先考虑一下,是不是自己把相应路径的jar给移除了
8今日需要掌握的重点
1.使用Properties加载资源文件,至少熟悉两种以及以上的方式;
2.单例模式的设计流程;
私有化构造方法
内部提供一个对象并保存起来
提供一个公共的静态方法
3.写出单例模式的4中写法以及它们的优缺点(需要代码和自己的总结);
饿汗模式:
类加载的时候创建对象导致类加载很慢
懒汉模式:
存在线程上的安全问题---》解决方式同步syn
静态代码块:
枚举:
4.理解简单工厂模式的思想,以及找出我们目前学过的使用到工厂模式的地方
5.完成如下图的效果:
每点击一下按钮给按钮添加一个不同颜色的边框
6.理解适配器模式,并使用适配器类WindowAdapter来实现关闭窗口的效果(可以和5一起完成)
建议:
上面提到过的几种设计模式都XX一下,看看么描述的,加深印象,有什么冲突的地方或者不理解的欢迎和老虎交流;
今日必须看懂的一些错误提示:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- day1Java 基础 加强
![提示](https://static.bdocx.com/images/bang_tan.gif)