- 博客(36)
- 收藏
- 关注
原创 java网络编程
通信协议,即在数据传输时,数据的发送端和接收端不建立逻辑连接,简单来说,当一台计算机想另外一台计算机发送数据时,发送端不会确认接收端是否存在,就会发出数据,同样接收端收到数据时,也不会像发送端反馈是否接收到数据。完成三次握手之后,建立连接,客户端和服务器就可以开始进行数据传输,由于这种 面向连接 的特性,TCP 协议可以保证传输数据的安全,所以应用十分广泛,例如文件的上传、下载、网页的浏览等。三次握手:TCP 协议中,在发送数据的准备阶段,客户端以服务器端的三次交互,以保证连接的可靠。
2024-02-16 02:15:41
852
原创 Stream流
中间流:一个流后面可以跟随任意个中间操作,其目的是打开流,在过程中做 过滤/映射,然后返回一个新的流交给下一个操作使用,结束流:一个流只能有一个终结操作,当这个操作执行后,流就被使用。Stream 才是真正的把函数式编程带给了 Java。定义一个名字为MyStringBuilder类。生成流:通过数据源(数组或者集合)生成流,demo:对象的连贯操作,进行字符串拼接。demo: 集合和数组生成流的方式。测试类:demo02。
2024-01-29 00:16:26
539
原创 函数式接口
是一个生产者接口,用来生产数据,通常返回的是一个数据(可以使用Lambda表达式):接口通常用于对参数进行处理,转换(处理逻辑有 啦么大 实现),然后返回一个新的值。案例:通过Runnable创建线程,把Runnable接口当做参数进行传递。是一个消费者接口,针对于数据做一些提取的操作,不需要返回值。接口带有==@FunctionalInterface==只有一个抽象方法的接口,转为lambda而生的接口。筛选数据 - 找出年龄超过40的,名字是三个字的。接收一个参数,并产生一个结果。
2024-01-25 02:29:59
372
原创 Lambda支持的方法引用
个人理解:lambda就是针对接口,接口中只能有一个抽象方法,使用lambda时,就相当于直接重写了接口中的抽象方法,传递一个实际参数,直接写出你要做的事情。定义一个接口,创建一个返回Student类型的抽象方法。demo:通过接口获取学生类对象的几种方式。定义一个名字为intercept的接口。定义一个名字为printupp的接口。创建一个接口名字为convers。定义一个名字为printup的类。demo:小写的字符串转成大写。test测试类,测试上面接口。demo01:测试上面接口。
2024-01-21 01:43:17
377
原创 lambda
函数式编程思想面向对象思想在乎的是,一切的动作通过对象的形式去完成而函数式编程思想,更在乎做什么,而不是通过什么形式去做demo: 简单的应用 - 使用lambda实现线程定义一个MyThread类 - 继承Thread类/***/// 重写run方法@OverrideSystem.out.println("通过继承Thread类实现线程");定义一个MyRunable的接口作为Runnable接口的实现类/***/@Override//重新run方法。
2024-01-20 22:03:55
887
原创 多线程实现方式二
同步语句块,多个线程操作同一个资源时,当某个线程执行同步语句块里面的代码时,别的线程是无法执行的,只有当执行同步语句块线程执行完里面同步语句块的内容时,其他线程才能进行访问。适合多个程序的代码同时处理一个资源的情况,把线程和程序的代码、数据有效的分离,较好的体现了面向对象程序设计的思想。创建三个 Thread 类的对象,把 SellTickets 对象作为构造方法的参数,并给出对应的窗口名称。创建 Thread 类的对象,把 MyRunnable 对象作为构造方法的参数。卖掉一张之后要对应减一。
2024-01-14 23:49:33
921
原创 java中多线程
运行:有执行资格,有执行权(可能被其他线程抢走 CPU 的执行权,则回到就绪状态,若遇到阻塞式方法,则失去运行权和执行这个,等待,当阻塞方法调用结束之后,回到就绪状态)main也是一个线程,设置main线程名字,没有办法通过this.getName和this.setName进行设置,只能通过上面的Thread类中方法进行设置获取。抢占调度模型:优先让优先级高的线程使用 CPU,如果线程的欧优先级相同,那么随机选择一个,优先级高的线程获取的 CPU 占用时间会相对多一些。
2024-01-13 21:55:13
1669
原创 java -生产者和消费者模型
一个星期有7天 工人每天往客户家里放入1瓶牛奶,工人需要判断奶箱子的里面是否存在牛奶,里面存在牛奶不能放入第2瓶子,顾客需要每天取出牛奶,以便工人能放进去。
2024-01-07 23:36:33
338
原创 java反射
四个方法作用获取公有的无参的构造方法,也可进行传递参数获取指定公有构造方法获取到类中所有公有构造方法,形成一个数组可以根据参数获取一个指定的构造方法,公有和私有,等类型不限制,没有参数,默认为是无参构造方法获取类中所有的构造方法,形成一个数组,
2024-01-04 20:32:28
865
原创 泛型的使用
泛型类的定义格式修饰符 class 类名<类型>{}此处 T 可以是任意标识符,常见的有 T、E、K、V 等形式的参数,常用于表示泛型demo:创建一个泛型类/*** @Description : TODO 泛型类*/return t;this.t = t;定义一个学生类/*** @Description : TODO 学生类*///学生类的两个基本属性//姓名// 年龄@Override'}';测试泛型类/**
2023-12-28 15:15:01
1123
原创 set集合
概述:Set 是一个接口,与 List 类似,都需要通过实现类来对其进行操作Set 集合的特点不包含重复的元素没有带索引的方法,所以不能使用普通 for 循环遍历demo:Set集合的使用。
2023-12-27 10:58:10
732
原创 list集合
有序集合(也称之为序列),用户可以精确的控制列表中的每个元素的插入位置。用户可以通过整数索引访问元素,并搜索列表中的元素与 Set 集合不同,列表通常允许重复的元素List 集合的特点有序:存储和读取的元素顺序一致可重复:存储的元素可以重复。
2023-12-24 15:19:33
651
原创 Collection
Collection 是单列集合的顶层接口,他表示一组对象,这些对象也称为 Collection 的元素JDK 不提供子接口的任何实现,但提供更具体的子接口(如 Set 和 List 等)实现接口demo:使用Conlltion的方式。
2023-12-22 11:02:13
364
原创 java中的集合
编程的时候如果需要存储多个数据,使用长度固定的数组格式不一定能够满足我们的需求,适应不了变化的需求,那么此时我们可以选择使用集合集合的特点:提供依存存储空间可变的存储类型,存储数据容量可以发生该表是单列集合,对应的双列集合是集合单列集合可重复:不可重复:双列集合实现类:斜体标记。
2023-12-17 15:23:08
348
1
原创 java对象序列化
对象序列化是指将对象保存到磁盘当中,或者是在网络当中传输对象这种机制就是使用一个字节序列表示一个对象,该字节序列包括:对象的类型、对象的数据和对象中存储的属性等信息,字节序列写到文件之后,相当于文件中持久化保存了一个对象的信息反之,该字节序列还可以从文件中读取回来,重构对象,对其进行反序列化操作。
2023-12-15 16:06:18
332
原创 IO流--字符流
字符流 = 字节流 + 编码表用字节流赋值文本文件时, 文本文件也会出现中文, 但是没有问题, 原因是最终底层操作会自动进行字节拼接中文, 根据汉字的编码第一个字节都是负数值作为识别条件.字符编码ASCIIGB2312( 两个字节 )GB18030Unicode( 三个字节 )UTF-16UTF-32一个汉字的存储, 如果是 GBK 编码, 占用两个字节, 如果是 UTF-8 字节, 占用三个字节。
2023-12-14 15:25:30
372
1
原创 javaSE - file-文件操作
File封装的对象仅仅是一个路径名,这个路径可以是存在的,也可以是不存在的。三个构造方法:File(String pathname) - 通过将给定的路径名字符串转换为由抽象路径名来创建新的 File 实例File(String parent, String chlid) - 从父类路径名字符串和自路径名字符串创建新的 File 实例File(File parent, String child) - 从父类抽象路径和自路径名字符串创建行的 File 实例。
2023-12-10 19:55:39
336
原创 Date类的常用方法
获取当前的时间对象,通过new Date实例化对象,输出就是就是当前的系统时间。时间类型对象转成字符串,指定格式的字符串转成Date类对象。setTime:传递的时间戳,设置时间对象。运行结果: 就是一个当前的时间。getTime:获取一个时间戳。
2023-12-10 00:04:19
374
原创 常用类-Arrays
值得注意的是:Comparator中的类型是Integer,排序的数组也只能是Integer类型,不能够是int类型/*** @Description : TODO sort方法自定义排序//生成随机数 Random random = new Random();//通过循环给随机数赋值 // int j = 10;i ++) {//放入100以内的随机数 } //字符串形式输出arr String s1 = Arrays . toString(arr);
2023-12-08 22:20:46
315
原创 常用类01-包装类
例子:Byte / Integer / Short / Long / Character / Boolean / Float / Double。
2023-12-08 11:01:37
349
原创 java----三大特性之多态
现实理解就是:一个事物的多种形态,例如:水,有固态,液态,气态,三种形式程序中:开辟一个子类空间,通过父类对象存储,然后调用里面的成员变量和成员方法,会有不同的表现形式。
2023-12-04 21:21:29
330
1
原创 java SE面向对象 --抽象和接口
public interface 类名{//成员如果接口的实现类没有重写接口里面的抽象方法,那么这个类就是一个抽象类例子:定义了一个接口类Animal/*** @Description : TODO 一个名字为动物的接口*///定义一个常量public static final String name = "动物";//定义几个抽象方法,接口中默认是抽象方法,可以省略public abstractvoid eat();定义一个抽象接口类Person实现接口/**
2023-12-03 14:45:41
1255
1
原创 java 特性之--继承
简单理解继承:继承分为和,子类继承父类,子类可以使用父类中(公有的) 的成员属性和成员方法,但是子类中也可以有属于自己的成员变量和成员方法,但是父类不可以调用子类中的属性和方法具体场景:鸟类 (父类)一个抽象的概念,鸟可以有自己的(属性)姓名,基本功能(方法)是吃饭,睡觉鹰类(子类),鹰类继承鸟类,鹰类可以调用鸟类里面的(属性)姓名,也可以继承里面的(方法)基本功能,吃饭,睡觉,但是鹰类有个自己的专属功能就是飞行(举个例子,大部分鸟都会飞)
2023-11-29 22:34:36
874
1
原创 面向对象--封装
与类同名无返回值如果不手动创建构造方法,则系统默认生成一个无参构造方法构造方法不需要手动调用,在类创建对象时被自动调用如果手动创建了构造方法,系统则不再生成无参的构造方法构造方法支持重载玩家类定义需要定义两个属性,一个是玩家姓名,一个是出拳方式,以及一些需要用到构造方法/*** @Description : TODO 玩家类*///定义两个成员属性//姓名// 出拳结果//定义构造方法//设置出拳结果,res 取值1-3。
2023-11-28 22:48:45
774
原创 面向对像的概念和语法
语法:如何使用上面的类例子:运行结果:例子:定义了一个名字Person的类例如:Person类在那个包里面导包方式:import com.xs.demo01包的位置,Person是包里具体要用到那个类的类名局部变量作用域是方法内有效,方法外面无法进行访问运行结果:例如:例如:代码:调用上面的类运行结果:例子: 有个人名字叫张三,工资3000,年龄22,但是有一天他入赘后改了个名字李四,李四和张三都是一个人,别人问李四,你工资多少,今年多大,李四回答:工资300
2023-11-26 16:10:18
916
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人