- 博客(50)
- 收藏
- 关注
原创 Java网络编程---TCP通信
TCP通信协议是一种可靠的网络协议,它在通信的两端各建立一个Socket对象,从而在通信两端形成网络虚拟链路,一旦建立了虚拟的网络链路,两端的程序就可以通过虚拟链路进行通信Java对基于TCP协议的网络提供了良好的封装,使用Socket对象来代表两端的通信端口,并通过Socket产生IO流来进行网络通信Java为客户端提供了Socket类,为服务器端提供了ServerSocket类TCP发送数据发送数据的步骤: 创建客户端的Socket对象(Socket) 获取输出流,写..
2022-02-19 13:07:10
420
原创 Java网络编程---UDP
UDP通信原理UDP协议是一种不可靠的网络协议,它在通信的两端各建立一个Socket对象,但是这两个Socket只是发送,接收数据的对象。因此对于基于UDP协议的通信双方而言,没有所谓的客户端和服务器的概念Java提供了DatagramSocket类作为基于UDP协议的SocketUDP发送数据发送数据的步骤 创建发送端的Socket对象(DatagramSocket) 创建数据,并把数据打包 调用DatagramSocket对象的方法发送数据 关闭发送端
2022-02-18 19:29:20
117
原创 Java多线程---实现多线程
进程:是正在运行的程序 是系统进行资源分配和调用的独立单位 每一个进程都有它的内存空间和系统资源 线程:是进程中的单个顺序控制流,是一条执行路径 单线程:一个进程如果只有一条执行路径,则称为单线程程序 多线程:一个进程如果有多条执行路径,则称为多线程程序 多线程的实现方式一方式1:继承Thread类 定义一个类MyThread继承Thread类 在MyThread类中重写run()方法 创建MyThread类的对象 启动线程
2022-02-18 13:25:03
136
原创 java IO流---特殊操作流
标准输入输出流System类中有两个静态的成员变量: public static funal InputStream in:标准输入流,通常该流对应于键盘输入或由主机环境或用户指定的另一个输入源 public static final PrintStream out:标准输出流,通常该流对应于显示输出或由主机环境或用户指定的另一个输出目标 自己实现键盘录入数据: BufferedReader br = new BufferedReader(new InputStreamRead
2022-02-17 14:01:06
239
原创 java IO流---字符流
为什么需要字符流? 由于字节流操作中文不是特别的方便,所以Java就提供字符流 字符流 = 字节流+编码表 用字节流复制文本文件时,文本文件也会有中文,但是没有问题,因为最终底层操作会自动进行字节拼接成中文,如何识别为中文呢 汉字在存储的时候,无论选择哪种编码存储,每个字节转为int时都为负数 字符流中的编码解码问题字符流抽象基类 Reader:字符输入流的抽象类 Writer:字符输出流的抽象类 字符流中和编码解码相关的两个类: Input
2022-02-16 13:46:49
156
原创 Java IO流---字节缓冲流
字节缓冲流: BufferOutputStream:该类实现缓冲输出流,通过设置这样的输出流,应用程序可以向底层输出流写入字节,而不必为写入的每个字节导致底层系统的调用 BufferInputStream:创建BufferInputStream将创建一个内部缓冲区数组,当从流中国读取或者跳过字节时,内部缓冲区将根据需要从所包含的输入流中重新填充,一次很多字节 构造方法: 字节缓冲输出流:BufferOutputStream(OutputStream out) 字节缓冲..
2022-02-15 18:08:08
372
原创 Java IO流---字节流
IO流概述: IO:输入输出(input/output) 流:是一种抽象概念,是对数据传输的总称,也就是说数据在设备间的传输称为流,流的本质是数据传输 IO流就是用来处理设备间数据传输问题的 常见应用:文件复制,文件上传/下载 IO流的分类: 按照数据的流向: 输入流:读数据 输出流:写数据 按照数据类型: 字节流 字节输入流,字节输出流 字符流 字符输入流,字符输出流 一般来说,我们说IO流的分类是按照数据类型来分的 如果
2022-02-15 16:24:30
158
原创 Java IO流---File类
File类概述File:它是文件和目录路径名的抽象表示 文件和目录是可以通过File封装成对象的 对于File而言,其封装的并不是一个真正存在的文件,仅仅是一个路径名而已。它可以是存在的,也可以是不存在的。将来是要通过具体的操作把这个路径的内容转换为具体存在的 构造方法: File f1 = new File("F:\\io\\java.txt"); File f2 = new File("F:\\io","java.txt"); ...
2022-02-14 20:31:43
155
原创 Java集合---Map
Map集合概述 Interface Map<K,V> K:键的类型;V:值的类型 将键映射到值的对象;不能包含重复的键;每个键可以映射到最多一个值 创建Map集合的对象 多态的方式 具体的实现类HashMap Map集合基本功能Map集合的获取功能Map集合的遍历方式一:获取键的集合,通过遍历集合的键,获取对应的值public class MapDemo01 { public static void main(...
2022-02-14 16:25:00
138
原创 Java集合---泛型
泛型概述泛型:是JDK5中引入的特性,它提供了编译时类型安全检测机制,该机制允许在编译时检测到非法的类型,它的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。类似于C++的模板参数化类型:就是讲类型原来的具体的类型参数化,然后在使用/调用时传入具体类型,这种参数类型可以用在类,方法和接口中,分别被称为泛型类,泛型方法,泛型接口泛型定义格式: <类型>:指定一种类型的格式,这里的类型可以看成是形参 <类型1,类型2...>:指定多种类型的格式,多
2022-02-14 14:43:44
198
原创 Java集合---Set集合常用子类
Set集合特点: 不包含重复元素的集合 没有带索引的方法,所以不能使用普通for循环遍历 哈希值哈希值:是JDK根据对象的地址或者字符串或者数字算出来的int类型的数值Object类中有一个方法可以获取对象的哈希值 public int hashCode(): 返回对象的哈希码值 对象的哈希值特点 同一个对象多次调用hashCode()方法返回的哈希值是相同的 默认情况下,不同对象的哈希值是不相同的,通过重写hashCode()方法,可以实现不同对象的哈
2022-02-13 19:22:30
491
原创 HashSet集合保证元素唯一性源码分析
HashSet集合添加一个元素的过程:HashSet<String> hs = new HashSet<>();hs.add("world");hs.add("java");//不包含重复元素hs.add("hello");---------------------------------------public boolean add(E e) { return map.put(e, PRESENT)==null;}publi...
2022-02-13 17:20:38
130
原创 Java集合---List集合常用子类
List集合常用子类:ArrayList,LinkedList ArrayList:底层数据结构是数组,查询快,增删慢 LinkedList:底层数据结构是链表,查询慢,增删快 分别使用ArrayList和LinkedList完成存储字符串并遍历public class ArrayListDemo { public static void main(String[] args) { ArrayList<String> array = new Ar...
2022-02-13 16:21:03
115
原创 Java集合---List
List集合概述和特点List集合概述: 有序集合(也可以成为序列),用户可以精确控制列表中每个元素的插入位置,用户可以通过整数索引访问该元素,并搜索列表中的元素 与Set集合不通,列表通常允许重复的元素 List集合特点: 有序:存储和去除的元素顺序一致 可重复:存储的元素可以重复 List集合的特有方法列表迭代器ListIterator:列表迭代器 通过List集合的listIterator()方法得到,所以说它是List集合特有的迭代.
2022-02-13 15:53:01
161
原创 Java集合---Collection
集合知识回顾集合类的特点:提供一种存储空间可变的存储模型,存储的数据容量可以随时发生改变Collection集合概述和使用Collection集合概述: 是单列集合的顶层接口,它表示一组对象,这些对象也成为Collection的元素 JDK不提供此接口的任何直接实现,它提供更具体的子接口(如Set和List)实现 创建Collection集合的对象: 多态的方式 具体的实现类,如:ArrayList public class Collectio.
2022-02-13 14:54:57
190
原创 编译时异常和运行时异常的区别
Java中的异常被分为两大类:编译时异常和运行时异常,也成为受检异常和非受检异常。所有的RuntimeException类及其子类被称为运行时异常,其他的异常都是编译时异常 编译时异常:必须显示处理,否则程序就会发生错误,无法通过编译 运行时异常:无须显示处理,也可以和编译时异常一样处理 ...
2022-02-12 17:36:59
577
原创 Java常用类---基本类型包装类
将基本数据类型封装成对象的好处在于可以再对象中定义更多的功能方法操作该数据常用操作之一:用于基本数据类型与字符串之间的转换Integer类的概述和使用包装一个对象中的原始类型int 的值自动装箱和拆箱 装箱:把基本数据类型转换为对应的包装类类型 拆箱:把包装类类型转换为对应的基本数据类型 //装箱:把基本数据类型转换为对应的包装类类型Integer i = Integer.valueOf(100);//自动装箱Integer ii = 100;..
2022-02-12 14:40:17
206
原创 案例---int和String相互转化
基本类型包装类的最常见操作就是:用于基本类型和字符串之间的相互转换 int 转换为String public static String valueOf(int i):返回int参数的字符串表示形式,该方法是String类中的方法 String转换为int public static int parseInt(String s):将字符串解析为int类型,该方法是Integer类中的方法 public class IntegerDemo { public static ..
2022-02-12 14:08:47
836
原创 案例---字符串中数据排序
public class demo { public static void main(String[] args) { //定义一个字符串s String s = "212 215 64 31 654 516"; //定义一个字符串数组,接收字符串s以空格为划分的字符串 String[] arr = s.split(" "); int[] arrInt = new int[arr.length]; /.
2022-02-12 14:07:22
252
原创 Java常用类---Object类
Java常用类---Object类Object类概述Object是类层次结构的根,每个类都可以将Object作为超类,所有类都直接或者间接的继承自该类。构造方法:public Object()面向对象中,为什么说子类的构造方法默认访问的是父类的无参构造方法?因为它们的顶级父类只有无参构造方法常用方法:toString方法public String toString()返回对象的字符串表示形式,一般来说,toString方法返回一个代表这个对象的字符串,建议所有子.
2022-02-12 12:56:27
97
原创 Java面向对象--内部类
内部类概述内部类:就是在一个类中定义的一 个类内部类定义格式:public class 类名{ 修饰符 class 类名{ }}内部类的访问特点: 内部类可以直接访问外部类的成员,包括私有成员 外部类要访问内部类的成员,必须创建对象 public class Outer { private int num =10; public class Inner{ public void show(){ ...
2022-02-11 20:33:04
145
原创 Java面向对象---接口
接口概述接口就是一种公共的规范标准,只要符合规范标准,大家都可以通用Java中的接口更多的体现在对行为的抽象接口特点 接口用关键字interface修饰 public interface 接口名{} 类实现接口用implements表示 Public class 类名 implements 接口名{} 接口不能实例化 参照多态的方式,通过实现类对象实例化,叫接口多态 多态的形式:具体类多态、抽象类多态、接口多态 多态的前提:由继承或者实现关系;由方法
2022-02-11 19:53:01
170
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人