Java学习

Java学习:
本周学习了file文件,io流,对象序列化以及线程和网络。
File对象:
java.io.File类用于表示文件(目录)
File类只用于表示文件(目录)的信息(名称、大小等),不能用于文件的读写

	// 得到文件名
	System.out.println(file.getName());
	// 得到文件的路径
	// 得到绝对路径
	System.out.println(file.getAbsolutePath());
	// 得到创建文件时传入的路径
	System.out.println(file.getPath());

	// 判断文件类型
	System.out.println(file.isFile());
	System.out.println(file.isDirectory());

	// 得到文件大小
	System.out.println(file.length());

IO流
流是个抽象的概念,是对输入输出设备的抽象,Java程序中,对于数据的输入/输出操作都是以“流”的方式进行。设备可以是文件,网络,内存等。
•流的分类:
处理的数据单位不同,可分为:字符流,字节流
数据流方向不同,可分为:输入流,输出流
功能不同,可分为:节点流,处理流

•节点流:
节点流从一个特定的数据源读写数据。即节点流是直接操作文件,网络等的流,例如FileInputStream和FileOutputStream,他们直接从文件中读取或往文件中写入字节流。
•处理流
“连接”在已存在的流(节点流或处理流)之上通过对数据的处理为程序提供更为强大的读写功能。过滤流是使用一个已经存在的输入流或输出流连接创建的,过滤流就是对节点流进行一系列的包装。例如BufferedInputStream和BufferedOutputStream,使用已经存在的节点流来构造,提供带缓冲的读写,提高了读写的效率,以及DataInputStream和DataOutputStream,使用已经存在的节点流来构造,提供了读写Java中的基本数据类型的功能。他们都属于过滤流。

字节流:
继承自InputStream/OutputStream的流都是用于向程序中输入/输出数据,且数据的单位都是字节(1byte=8bit)

字符流:
继承自Reader/Writer的流都是用于向程序中输入/输出数据,且数据的单位都是字符(2byte=16bit)
操作文本文件

对象序列化:
•概念
将Object转换为byte序列,反之叫对象的反序列化
例如将对象保存到文件中,或者在网上传输,都需要进行对象序列化操作

序列化流(ObjectOutputStream) ---- writeObject
反序列化流(ObjectInputStream) ---- readObject
进程:
概念

进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程。比如在Windows系统中,一个运行的exe就是一个进程。

线程:
线程是指进程中的一个执行流程,一个进程中可以运行多个线程。比如java.exe进程中可以运行很多线程。线程总是属于某个进程,进程中的多个线程共享进程的内存。
“同时”执行是人的感觉,在线程之间实际上轮换执行。
线程实现
定义线程:
定义线程有两种方式:
扩展java.lang.Thread类。
实现java.lang.Runnable接口。

实例化线程:
如果是扩展java.lang.Thread类的线程,则直接new即可。
如果是实现了java.lang.Runnable接口的类,则用Thread的构造方法

启动线程:
在线程的Thread对象上调用start()方法,而不是run()或者别的方法。
在这里插入图片描述
线程同步:
概念:
线程的同步是为了防止多个线程访问一个数据对象时,对数据造成的破坏。

锁的原理:
Java中每个对象都有一个内置锁
当程序运行到非静态的synchronized同步方法上时,自动获得与正在执行代码类的当前实例(this实例)有关的锁。获得一个对象的锁也称为获取锁、锁定对象、在对象上锁定或在对象上同步。
当程序运行到synchronized同步方法或代码块时才该对象锁才起作用。

线程的互斥与死锁:
wait()和notify()
程序执行wait()时,线程进入等待状态
程序执行notify()时,唤醒处于wait状态的线程。

网络:

•什么是计算机网络?
两台电脑连在一起就组成了一个计算机网络。我们通过光纤连接到电信的网关,中国电信通过海底光缆和美国电信网关连接,你就是和全世界的在线用户连着。

•网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据

•什么是网络通信协议?
网络通信协议就像我们的中文一样,她就是我们之间的共同语言,他规定了我们之间怎么说话,我先说什么你再说什么,你怎么说,而我应该怎么听。而网络通信得先规定约定一些俗成的网络通信协议,先说好,两台计算机之间什么收发信息,信息格式是什么,信息怎么发,怎么接收,而万一出错怎么办怎么处理。

•什么是计算机网络?

两台电脑连在一起就组成了一个计算机网络。我们通过光纤连接到电信的网关,中国电信通过海底光缆和美国电信网关连接,你就是和全世界的在线用户连着。

•网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据

•什么是网络通信协议?

网络通信协议就像我们的中文一样,她就是我们之间的共同语言,他规定了我们之间怎么说话,我先说什么你再说什么,你怎么说,而我应该怎么听。而网络通信得先规定约定一些俗成的网络通信协议,先说好,两台计算机之间什么收发信息,信息格式是什么,信息怎么发,怎么接收,而万一出错怎么办怎么处理。

•什么是计算机网络?
两台电脑连在一起就组成了一个计算机网络。我们通过光纤连接到电信的网关,中国电信通过海底光缆和美国电信网关连接,你就是和全世界的在线用户连着。
•网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据
•什么是网络通信协议?
网络通信协议就像我们的中文一样,她就是我们之间的共同语言,他规定了我们之间怎么说话,我先说什么你再说什么,你怎么说,而我应该怎么听。而网络通信得先规定约定一些俗成的网络通信协议,先说好,两台计算机之间什么收发信息,信息格式是什么,信息怎么发,怎么接收,而万一出错怎么办怎么处理。
在这里插入图片描述

  • tcp协议:
    传输控制协议,提供的是面向连接、可靠的字节流服务。
    当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。
    TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。
    三次握手,四次挥手。

•UDP协议特点 :
UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。
UDP传输数据时是有大小限制的,每个被传输的数据报必须限定在64KB之内。
由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,所以传输速度很快。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值