java基础总结(1)

299 篇文章 5 订阅

1.面向对象的三大特性

继承、封装、多态

(1)继承

①继承是面向对象程序设计能够提高软件开发效率的重要原因之一。
②继承是具有传递性的,就像现实中孙子不仅长得像爸爸而且还像他爷爷。
③继承来的属性和方法是隐式的,也就是在本类里面是看不见的。
④一个类只能有一个父类,也就是类只能是单继承
⑤一个接口可以有多个父类,也就是接口可以是多继承
实际项目开发中,一个类继承于另一个类,那么前者就是后者的子类,反则反之。

(2)封装

对象数据操作该对象的指令都是对象自身的一部分,能够实现尽可能对外部隐藏数据
实际项目开发中,使用封装最多的就是实体类,常常和JavaBean(类必须是具体的和公共的,并且具有无参数的构造器)一起使用。

实体类有:私有的成员变量、无参数的构造器、有参数的构造器、setter和getters方法、重写tostring方法、重写hashCode和equals方法。

(3)多态

①多态就是对象拥有多种形态:引用多态方法多态
②引用多态:父类的引用可以指向本类对象、父类的引用可以指向子类的对象。
③方法多态:创建本类对象时,调用的方法为本类的方法;创建子类对象时,调用的方法为子类重写的方法或者继承的方法。
④存在多态的必要条件:继承、重写。
多态的作用是消除类型之间的耦合关系
在实际项目开发中,A类继承B类,如果在A类中不重写B类的方法的时候,输出的仍旧是B类方法里面的信息(B b=new A());如果在A类中重写B类的方法的时候,输出的是A类方法里面的信息(B b=new A())。

2.Java集合框架树


(1) Collection接口:它是Java集合框架的一个根接口,也是List、Set和Queue接口的父接口。同时它定义了可用于操作List、Set和Queue的方法—增删改查。
(2)Map接口:它提供了一种映射关系,其中的元素是以键值对(key-value)的形式存储的。Map接口有一个重要的实现类HashMap
①在Map接口中的键值对是以Entry类型的对象实例形式存在
②在Map接口中键值(Key值)是不可以重复的,value值却可以重复,也就是存在多对一的关系。
③在Map接口中提供了分别返回Key值的集合、value值的集合以及Entry集合的方法。
Map支持泛型,同时Key值和value值都是可以为null的。
⑤在HashMap中的Entry对象是无序排序的,这点特性和List接口是相反的。
⑥在HashMap中有且只能有一个Key值为null的映射。(注:key值是不能重复的
(3)List接口:List接口有一个重要的实现类ArrayList(数组序列)。
①List是元素有序并且可以重复的集合。
②List可以精确的控制每个元素的插入位置,或删除某个元素的位置。
(4)Comparator接口:临时的比较规则。如果某一个类要实现这个接口,那必然要实现它的Compare()方法。
(5)Comparable接口:默认的比较规则。当实现了这个接口,则表示这个类的实例可以比较大小,可以进行自然排序。如果某一个类要实现这个接口,那必然要实现它的CompareTo()方法。

3.Java中的IO流

字节流:

1
2
3
4
5
6
//一个字节一个字节的读写
FileInputStream in= new FileInputStream( "源文件" );
FileOutputStream out= new FileOutputStream( "目标文件" );
......
in.close();
out.close();

首先要记住,一旦使用了IO流最后一定要记得关闭,这是常识。

1
2
3
4
5
6
//利用缓冲区,高效的读取字节
BufferedInputStream in= new BufferedInputStream( new FileInputStream( "源文件" );
BufferedOutputStream out= new BufferedOutputStream( new FileOutputStream( "目标文件" );
......
in.close();
out.close();

字符流:

1
2
3
4
5
InputStreamReader isr= new InputStreamReader( new FileInputStream( "源文件路径" ), "设置编码" );
OutputStreamWriter osw= new OutputStreamWriter( new FileOutputStream( "目标文件路径" ), "设置编码" );
......
osw.close();
isr.close();

也可以这样写:

1
2
3
4
5
FileReader fr= new FileReader( "源文件路径" );
FileWriter fw= new FileWriter( "目标文件路径" );
......
fr.close();
fw.close();
1
2
3
4
5
6
//利用缓冲区,高效的读取字符
BufferedReader br= new BufferedReader( new FileReade( "源文件路径" );
PrintWriter pw= new PrintWriter( "目标文件路径" );
......
br.close();
pw.close();

序列化和反序列化:

1
2
//对象的序列化
ObjectOutputStream oos= new ObjectOutputStream( new FileOutputStream(file));

这里的file指的是String file="文件在项目中的路径";

1
2
//对象的反序列化
ObjectInputStream ois= new ObjectInputStream( new FileInputStream(file));

4.Java的Socket通信(多线程)


思路:
①首先创建服务器端Socket,指定并侦听某一个端口,然后循环监听开始等待客户端的连接….
②创建客户端socket,指定服务器地址和端口,然后获取输出流,向服务器端发送请求,并关闭socket输出流。
③服务端接收到客户端的请求后,创建新线程并启动。
④创建线程处理类,执行线程操作,获取输入流,服务端读取客户端用户详情,关闭资源。
⑤执行线程操作,获取输出流,响应客户端请求,客户端接受到服务端的响应,关闭资源。

简单点讲,就相当于我跟你说话(客户端→服务端),你收到我说的话(服务端→线程处理类),大脑进行思考后(线程处理类),做出回答我的话(线程处理类→客户端)。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lm_y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值