java 基础

本文介绍了Java面向对象编程的基本概念,包括类、对象、封装、继承、多态等核心特性,探讨了Java常用数据类型及集合框架的使用。同时,文章还详细讲解了Socket编程的实现方式,包括服务器端和客户端的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 1、什么是对象?什么是类?

       所谓对象实际上就是真实的实体,例如一个人; 类是某些有共同特征的实体的集合,是一种抽象的概念。

       类是对象的集合,对象是类的实体。


2、面向对象的特点  以及特点

     特点:

            1》封装:将数据以及对数据的相应操作组织在一起,只向外界提供已定义的接口。封装也是类和对象的特点,它注重的是内部实现。

            2》继承:发生在子类与父类之间,是子类从父类获取属性和方法的过程,提高了代码的复用性  和扩展性

            3》多态:允许不同类型的对象 对同一消息 做出不同的响应。

            4》抽象:将不同的对象的共同特征剥离出来构造成一个新的类。抽象是软件开发的基础


    优点:使开发模块化,程序的修改与维护更方便

               提高了的代码的复用性和可扩展性,可读性


3、java 常用的八种数据类型

      byte 、short、long、double、float、boolean、int、char


4、重写(override) 与  重载(overload)

       重写:它实现的是对象运行的多态性,一般发生在子类与父类之间,要求子类重写的方法要与父类方法的返回 类型一致

       重载:它实现了对象编译时的多态性,同一类中,方法名相同,参数列表不同视为重载     


5、抽象类    与  接口有什么异同

      同:抽象类与接口都不能实例化

      异:接口的成员变量都是public,抽象类可以是public,也可以是private、protected

             有抽象方法的类一定是抽象类,抽象类不一定包含抽象方法

             接口中所以得方法都是抽象的


6、访问修饰符

      public          整个程序中都可以访问(公有)

      private         当前类可以访问

      protected     当前包可以访问



7、集合

  1》List、set、MAP

     List和Set是Collection接口的两个主要的子接口(map不是collection的子接口)

     List:特征是其元素以线性方式存储,集合中可以存放重复对象。

    set元素是无放入顺序,元素不可重复

    map:是一种把键对象和值对象映射的集合,它的每一个元素都包含一对键对象和值对象。改变操作允许您从映射中添加和除去键-值对。

               键和值都可以为 null。但是,您不能把Map 作为一个键或值添加给自身。

     就个人而言.list 用的比较多. 其次map  最后set 至于什么情况下使用什么集合.看情况了

    2》ArrayLIst  与   LinkedList

    二者都是List接口的实现类

    ArraList是实现了基于动态数组的数据结构,可以改变数组的大小,允许为null.能快速的访问元素,插入与移除元素的速度慢

    LinkedList使用双向链表实现存储,对于新增和删除操作add和remove,LinedList比较占优势


8、套接字(Sockt)

     服务器端(非多线程)  :   

  1. 用指定的端口实例化一个SeverSocket对象。服务器就可以用这个端口监听从客户端发来的连接请求。
  2. 调用ServerSocket的accept()方法,以在等待连接期间造成阻塞,监听连接从端口上发来的连接请求。
  3. 利用accept方法返回的客户端的Socket对象,进行读写IO的操作
  4. 关闭打开的流和Socket对象
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/**
 * 基于TCP协议的Socket通信,实现用户登录,服务端
*/
//1、创建一个服务器端Socket,即ServerSocket,指定绑定的端口,并监听此端口
ServerSocket serverSocket =newServerSocket(10086);//1024-65535的某个端口
//2、调用accept()方法开始监听,等待客户端的连接
Socket socket = serverSocket.accept();
//3、获取输入流,并读取客户端信息
InputStream is = socket.getInputStream();
InputStreamReader isr =newInputStreamReader(is);
BufferedReader br =newBufferedReader(isr);
String info =null;
while((info=br.readLine())!=null){
System.out.println("Hello,我是服务器,客户端说:"+info);
}
socket.shutdownInput();//关闭输入流
//4、获取输出流,响应客户端的请求
OutputStream os = socket.getOutputStream();
PrintWriter pw = new PrintWriter(os);
pw.write("Hello World!");
pw.flush();
  
 
//5、关闭资源
pw.close();
os.close();
br.close();
isr.close();
is.close();
socket.close();
serverSocket.close();

      客户端:

  1. 用服务器的IP地址和端口号实例化Socket对象。
  2. 调用connect方法,连接到服务器上。
  3. 获得Socket上的流,把流封装进BufferedReader/PrintWriter的实例,以进行读写
  4. 利用Socket提供的getInputStream和getOutputStream方法,通过IO流对象,向服务器发送数据流
  5. 关闭打开的流和Socket。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//客户端
//1、创建客户端Socket,指定服务器地址和端口
Socket socket =newSocket("127.0.0.1",10086);
//2、获取输出流,向服务器端发送信息
OutputStream os = socket.getOutputStream();//字节输出流
PrintWriter pw =newPrintWriter(os);//将输出流包装成打印流
pw.write("用户名:admin;密码:admin");
pw.flush();
socket.shutdownOutput();
//3、获取输入流,并读取服务器端的响应信息
InputStream is = socket.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String info = null;
while((info=br.readLine())!null){
 System.out.println("Hello,我是客户端,服务器说:"+info);
}
  
//4、关闭资源
br.close();
is.close();
pw.close();
os.close();
socket.close();

    


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值