目录
定时器是一个应用十分广泛的线程工具
可用于调度多个定时任务以后台线程的方式执行
在java中,可以通过Timer和TimerTask类来实现定义调度的功能
Timer() 创建一个新的计时器。
void schedule(TimerTask task,long delay) 在指定的延迟之后安排指定的任务执行。
void schedule(TimerTask task,long delay,long period)在指定的延迟之后开始,重新执行固定延迟执行的指定任务。
void cancel() 终止此计时器,丢弃任何当前计划的任务
TimerTask
void schedule(TimerTask task,long delay,long period) 在指定的延迟之后开始,重新执行固定延迟执行的指定任务。
====================================================
网络编程的概述
计算机网络:
是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。
网络编程:
就算用来实现网络互连的不同计算机上运行的程序间可以进行数据交换
网络参考模型图
网络通信三要素:
1、IP地址:InetAddress 网络中设备的标识,不易记忆,可用主机名
2、端口号:用于标识进程的逻辑地址,不同进程的标识
3、传输协议:通讯的规则,常见协议:TCP,UDP
IP地址:
网络中计算机的唯一标识(计算机只能识别二进制数据,所以我们想到的IP地址在计算机中存储的形式也是二进制数据)
IP:192.168.2.157
换算成二进制:11000000.10101000.00000010.10011101
实际上存储的是:11000000101010000000001010011101,但是呢,这样的形式,我们在学习
过程中,难免遇到配置地址,记忆等等涉及到IP地址操作的时候,表示起来会很麻烦。
所以,为了方便IP地址的表示,我们就把IP地址上的每一个字节上的数据换算成十进制,然后字节
与字节之间用.分割表示。
这样的表示法:叫做点分十进制表示法。
I P地址的组成:网络号段+主机号段
IP地址的分类:
A类:第一个号段为网络号段 + 后面三个号段都为主机号段,可以有:256*256*255这么多主机相连。
1.0.0.1---127.255.255.254
1)10.x.x.x是私有地址(私有地址就是在互联网上不使用,而被用在局域网中的地址)
2)127.x.x.x是保留地址,用做循环测试用的。
B类:前两个号段为网络号段 + 后两个是主机号段
可以有:256*255这么多主机相连
128.0.0.1---191.255.255.254
172.16.0.0---172.31.255.255是私有地址。
C类:前三个都为网络号段 + 后一个号段为主机号段
可以连255个主机
192.0.0.1---233.255.255.254
192.168.x.x是私有地址
D类:224.0.0.1---239.255.255.254
E类:240.0.0.1---247.255.255.254
特殊的IP地址:
1、loclhost = 本机 = 127.0.0.1
127.0.0.1回环地址,可以用于测试本机的网络是否有问题.ping 127.0.0.1
2、广播地址:
x.x.x.255
3、网络地址:
x.x.x.0
三个DOS命令
ipconfig:Windows查看IP地址
Linux:centOS6/7 6:ifconfig 7:ip addr
ping: 测试网络是否联通
ping + IP地址/host名
InetAddress类
static InetAddress getByName(String host) 确定主机名称的IP地址。
public String getHostName()获取此IP地址的主机名
public String getHostAddress() 返回文本显示中的IP地址字符串
public byte[] getAddress()返回此InetAddress对象的原始IP地址,结果是网络字节顺序:地址的最高位字节在getAddress()[0]
===============================================
三个编程模式
工厂方法模式
优点:
客户端不需要在负责对象的创建,从而明确了各个类的职责,如果有新的对象增加,只需要增加一个具体的类和具体的工厂类即可,不影响已有的代码,后期维护容易,增强了系统的扩展性
缺点:
需要额外编写的代码,增加了工作量
简单工厂模式(静态工厂方法模式)
优点:
客户端不需要再负责对象的创建,从而明确了各个类的职责
缺点:
这个静态工厂类负责所有对象的创建,如果明确了各个类的职责或者某些对象的创建方式不同,就需要不断修改工厂类,不利于后期的维护。
单列模式:保证在类中只存在一个对象
如何保证类在内存中只有一个对象?
1、构造方法私有
2、在类的成员变量的位置上创建一个对象
3、提供一个公共的方法给外界获取到该对象
通过观察发现,我们随着类一加载,对象就创建号了,这样的方法是,单列模式中的饿汉式。
饿汉式:类一加载,就创建对象
懒汉式:用的时候,再去创建对象。
1、懒加载(延迟加载)
2、容易产生线程安全问题