Spark-Java Day 15

1 设计模式
23种
1.1 单例模式
一个类对外只提供一个对象。
a 构造器私有化,不让外界new对象
b 在本类内实例化一个对象,让外界可以获取到
a 饿汉式(不管要不要,类加载时已经准备好)
方式一:

private static final Single SINGLE = new Single();
private Single(){}
public static Single getSingle(){
	return SINGLE;
}

方式二:

public static final Single SINGLE = new Single();
private Single(){}

方式三:

public static final Single SINGLE;
{
	SINGLE = new Single();
}

b 懒汉式(只有要的时候才给)
方式四:

private static Single SINGLE;
		private Single(){}
		public Single getSingle(){
			if(SINGLE == null)
				SINGLE = new Single()
			return SINGLE;
		}

2 枚举
一个类对外提供固定个数的对象!
2.1 JDK1.5之前
a 必须将构造器私有化
b 需要设置若干个公有的静态常量
类中的对象向,一定要设置为常量,不能被修改
类中如有属性,属性不能提供set方法
2.2 JDK1.5之后
a 引入了关键字enum,通过该关键字创建的类就是枚举类
b 直接写对象名即可,对象与对象之间隔开,用分号结束
c 默认采用无参构造器
d 对象默认就是公有的静态常量
e 对象必须在首行
f 如果显示创造了有参构造器,需要在声明对象时进行传值
枚举类存在默认的父类Enum
方法:
name() 获得对象名称
toString() 返回对象名称,自定义枚举类型可以再次重写
original() 返回当前对象位置
values() 返回该枚举类所有的常量对象
valueof(String name) 根据字符串名称,返回对象
实现接口:
语法:implements 实现接口
特点:枚举类提供的对象个数是确定的,类加载时对象就已经产生,抽象方法的实现,可以将范围缩小到某个对象。
语法:常量对象{对父级做扩展}
类似于匿名内部类,当枚举类所有的常量方法都对抽象方法进行了实现,则可以删除公有的实现方法。
3 注解
注释:不参与编译和运行,是对代码的描述
注解:参与编译和运行,具有功能
3.1 注解的形式
@注解名【(参数)】
3.2 之前遇到的注解
文档注释内注解(了解):
@author 作者
@version 版本
@param 参数
@return 返回值
注释外(掌握):
@Override 添加在方法上方
功能:检测当前方法是否满足重写
源码:
@Target(ElementType.METHOD)
记录注解可以用在什么地方
@Deprecated 过时
@Overload 重载
@SuppressWarnings 抑制警告 警告黄线(无所谓) 错误红线(不允许出现)
4 单元测试 junit
main方法也是可以测试,弊端是一个类中只能有一个main
单元测试:一个类中可以创建多个程序入口

前提:
	a 必须使用在公有的类及方法上
	b 需要导包(将第三方产品源码导入到本项目内)
		在注解后万能提示,选择junit4,导入
	@Test	要求项目中没有自定义的Test类
	@Before 每个Test运行之前
	@After	每个Test运行之后
	@BeforeClass 在所有Test之前运行一次,方法必须是静态的
	@AfterClass  在所有Test之后运行一次,方法必须是静态的
缺点:
	a 默认不能手动输入
	b 学IO流的时候,关于相对路径有自己的特点
	c 不能启动线程

5 包装类
主要是对基本数据类型的包装
基本数据类型效率高!但是后期知识有一部分是针对面向对象的
比如:
泛型不能指定基本数据类型
集合中不允许存储基本数据类型(只能存储对象)
个数八个:
byte, Byte
short, Short
int, Integer
long, Long
float, Float
double, Double
上述六个和数值有关的父类是Number
char, Character
boolean Boolean
这两个类父类是Object
5.2 使用
装箱:
基本数据类型 —> 包装数据类型
手动装箱:
byte a = 12;
Byte b = new Byte(a);
自动装箱:
Byte c = 12;
手动拆箱:
Byte d = new Byte(“13”);
byte e = d.byteValue();
自动拆箱
byte f = d;
5.3 包装类常用方法
如何将字符串转为基本数据类型
String s= “45” 转为int
int i = Integer.parseInt(s);
其余类型类似
包装类型.parseXXX();
最值(范围)
Integer.MAX_VALUE, Integer.MIN_VALUE
5.4 自动装箱原理
包装类对比相等:
如果在默认值范围内,则自动装箱,则相等
一旦有自己new的就不相等
如果不在范围内也是不相等的
如果有基本数据类型对比,则自动拆箱为基本数据类型,就相等
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值