- 博客(96)
- 收藏
- 关注
原创 网络编程的学习2
TCP通信协议是一种可靠的网络协议,它在通信的两端各建立一个Socket对象,通信之前要保证连接已经建立,通过Socket产生IO流进行网络通信。组播地址:224.0.0.0-239.255.255.255,其中224.0.0.0-224.0.0.255为预留的组播地址。广播:255.255.255.255。
2024-04-02 16:02:58 353
原创 多线程的学习1
线程是操作系统能够进入运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。并发:在同一个时刻,有多个指令在单个CPU上交替执行。3.利用Callable接口和Future接口方式实现。并行:在同一时刻,有多个指令在多个CPU上同时执行。2.实现Runnable接口的方式进行实现。1.继承Thread类的方式进行实现。进程:是程序的基本执行实体。
2024-03-28 19:19:58 387
原创 io的学习4
分类:打印流一般是指:PrintStream、PrintWriter两个类。解压本质:把每一个ZipEntry按照层级拷贝到本地另一个文件夹中。是apache开源基金组织提供的一组有关io操作的开源工具包。3.右击jar包,选择Add as Library->点击ok。3.特有的写出方法,可以实现自动刷新,自动换行。1.打印流只操作文件目的地,不操作数据源。2.特有的写出方法可以实现,数据原样写出。2.将jar包复制粘贴到lib文件夹。1.在项目中创建一个文件夹:lib。作用:提高io流的开发效率。
2024-03-25 23:33:34 260
原创 io流的学习4
1.使用序列化流将对象写到文件中时,需要让Javabean类实现Serializable接口,否则会出现NotSerializableException异常。4.给成员变量加transient关键字修饰,该关键字标记的成员变量不参与序列化过程。3.序列化对象后,修改了JAVABean类,在次反序列化,会出现版本号异常。2.序列化流写到文件中的数据是不能修改的,一旦修改就无法再次读回来了。可以把序列化到本地文件中的对象,读取到程序中来。3.特有的写出方法,可以实现自动刷新,自动换行。
2024-03-24 22:39:02 569 1
原创 IO流的学习2
操作本地文件的字节输入流,可以把本地文件中的数据读取到程序中来。细节1:一次读一个字节,读出来的是数据在ASCII上对应的数字。特点:finally里面的代码一定会被执行,除非虚拟机停止。细节2:读到文件末尾了,read方法返回-1.细节1:如果文件不存在,就直接报错。细节1:每次使用完流后必须释放资源。文件拷贝(一次读取多个数据)1.创建字节输入流对象。
2024-03-21 17:54:27 265
原创 File的学习2
需求:定义一个方法找某一个文件夹中,是否有以avi结尾的电影。(暂时不需要考虑子文件夹)需求:定义一个方法找某一个文件夹中,是否有以avi结尾的电影。(需要考虑子文件夹)需求:统计一个文件夹中每种文件的个数并打印(考虑子文件夹)需求:在当前模块下的aaa文件夹中创建一个a.txt文件。需求:统计一个文件夹中每种文件的大小。需求:删除一个多级文件夹。
2024-03-20 16:15:31 354
原创 异常的学习
异常就是代表程序出现的问题父类:Exception编译时异常:没有继承RuntimeException的异常,直接继承于Exception。编译阶段就会错误提示。运行时异常:RuntimeException本身和子类。编译阶段没有错误提示,运行时出现。
2024-03-19 17:37:07 147
原创 方法引用的学习
把已经有的方法拿过来用,当做函数式接口中的抽象方法的方法体。1.引用处必须是函数式接口2.被引用的方法必须已经存在3.被引用方法的形参和返回值需要跟抽象方法保持一致4.被引用方法的功能要满足当前的需求。
2024-03-17 18:16:29 293
原创 数据过滤的练习
创建一个ArrayList集合并添加以下字符,字符串中前面是姓名,后面是年龄,“zhangsan,23”,"lisi,24","wagwu,25",保留年龄大于等于24岁的人,并将结果收集到Map集合当中,姓名为键,年龄为值。定义一个集合,并添加一些整数1,2,3,4,5,6,7,8,9,10,过滤奇数,只留下偶数,并将结果保存起来。
2024-03-16 16:48:23 453
原创 Stream流
1.先得到一条Stream流(流水线),并把数据放上去。终结方法:最后一步,调用完毕后,不能调用其他方法。结合了Lambda表达式,简化集合、数组的操作。2.利用Stream流中的API进行各种操作。中间方法:方法调用完毕后,还可以调用其他方法。2.1使用中间方法对流水线上的数据进行操作。2.2使用终结方法对流水线上的数据进行操作。
2024-03-16 16:46:49 261
原创 自动点名器
被点到的学生不会在被点到,但是如果班级中所有的学生都点完了,需要重新开启第二轮点名。要求:70%的概率随机到男生,30%的概率随机到女生。班级里有N个学生,实现随机点名器。
2024-03-12 16:45:23 2102
原创 可变参数&collections学习
细节:1.在方法中形参最多只能写一个可变参数2.在方法中,如果出现了除了可变参数以外还有其他的形参,那么可变参数要写在最后。
2024-03-12 16:44:07 274
原创 对于双列集合map的学习
6.如果键存储的是自定义对象,需要重写hashCode和equals方法,如果值存储自定义对象,不需要重写hashCode和equals方法。原理:底层数据结构依然是哈希表,只是每个键值对元素又额外多了一个双链表的机制记录存储的数据。Map是双列集合的顶层接口,它的功能是全部双列集合都可以继承使用的。注意:默认按照键的大小从小到大进行排序,也可以自己规定键的排序顺序。1.双列集合一次需要存一对数据,分别是键和值。3.特点都是由键决定的:无序、不重复、无索引。2.键和值一一对应,键不能重复,值能重复。
2024-03-11 21:46:01 277
原创 set系列集合
如果已经重写hashCode方法,不同的对象只要属性值相同,计算出来的哈希值就是 一样的。原理:底层数据结构依然是哈希表,只是每个元素又额外的多了一个双链表的机制记录存储的顺序。在小部分情况下,不同的属性值或者不同的地址值计算出来的哈希值也有可能一样。无索引:没有带索引的方法,所以不能使用普通的for循环,也不能通过索引来获取元素。如果没有重写hashCode方法,不同对象计算出来的哈希值是不同的。根据hasHcode方法计算出来的int类型的整数。根据元素的哈希值根数组的长度计算出应存入的位置。
2024-03-09 20:54:59 358
原创 红黑树的学习
3.如果一个节点没有子节点或者父节点,则该节点相应的指针属性值为Nill,这些Nil视为叶节点,每个叶节点是黑色的。4.如果某一个节点是红色,那么它的子节点必须是黑色的,不能出现两个红色节点相连的情况。5.对每一个节点,从该节点到其所有后代叶节点的简单路径上,均包含相同数目的黑色节点。每一个节点可以是红或者黑,红黑树不是高度平衡的,他的平衡是通过红黑规则进行实现的。他是一种特殊的二叉查找树,红黑树的每一个节点上都有存储表示节点的颜色。红黑树出自一种平衡的二叉查找树,是计算机科学中中用到的一种数据结构。
2024-03-08 21:41:23 291
原创 数据结构的学习
中序遍历:从最左边的子节点开始,然后按照左子节点->当前节点->右子节点的顺序遍历。后序遍历:从最左边的子节点开始然后按照左子节点->右子节点->当前节点的顺序遍历。前序遍历:按照当前节点->左子节点->右子节点的顺序遍历。插入节点规则:小的存左边,大的存右边,一样的不存。2.任意节点左子树上的值都小于当前节点。层序遍历:从根节点开始一层一层的遍历。3.任意节点右子树的值都大于当前节点。规则:任意节点左右子树高度差不超过1。1.每个节点上最多有两个子节点。
2024-03-07 15:56:03 559
原创 对于泛型的学习
泛型:是JDK5中引入的新特性,可以在编译阶段约束操作的数据类型,并进行检查。泛型的格式:<数据类型>注意:泛型只能支持引用的数据类型泛型的好处:统一数据类型把运行事情时期的问题提前到了编译期间,避免了强制类型转换可能出现的异常,因为在编译阶段类型就能确定下来。
2024-03-07 15:55:30 570
原创 List集合的学习
链表中的节点是独立的对象,在内存中是不连续的,每个结点包含数据值和下一个结点的地址。底层数据结构是双链表,查询慢,增删快,但是如果操作的是首尾元素,速度也是极快的。如果一次添加多个元素,1.5倍还放不下,则新创建数组的长度以实际为准。查询速度快:查询数据通过地址值和索引定位,查询任意数据耗时相同。删除效率低:要将原始数据删除,同时后面每个数据前移。利用空参创建的集合,在底层创建一个默认长度为0的数组。添加第一个元素时,底层会创建一个新的长度为10的数组。添加效率低:添加位置后的每个数据后移,在添加元素。
2024-03-06 17:36:25 905
原创 collection的遍历方式
他是jdk5之后出现的,其内部原理就是一个Iterator迭代器。增强for的底层就是迭代器,为了简化迭代器的代码书写的。修改增强for中的变量,不会改变集合中原本的数据。所有的单列集合和数组才能用增强for进行遍历。
2024-03-06 17:35:05 328
原创 Lambda及综合练习
有一个很有名的数学逻辑题叫做不死神兔问题,有一对兔子,从出生后第三个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问第十二月的兔子对数为多少。有一堆桃子,猴子第一天吃了其中的一半,并多吃一个,以后每天猴子都吃当前剩下的一半,然后在多吃一个,第10天的时候还没吃,发现只剩下一个桃子了,问最初总有几个桃子。3.如果lambda表达式的方法体只有一行,大括号,分号,return可以省略不写,需要同时省略。2.如果只有一个参数,参数的类型可以省略,同时()也可以省略。
2024-03-05 20:12:55 400
原创 排序算法及Arrays
将0索引的元素到N索引的元素看作是有序的,N+1索引的元素到最后一个当成是无序的。遍历无序的数据,将遍历到的元素插入有序序列中适当的位置,如遇到相同的数据,插在后面。第一轮:把0索引的数字作为基准数,确定基准数在数组中正确的位置,比基准数小的全部在左边,比基准数大的全部在右边。从0索引开始,拿着每一个索引上的元素跟后面的元素依次比较,小的放前面,大的放后面。3.如果数组中有n个数据,总共我们只执行n-1轮的代码就可以。1.相邻的数据两两比较,小的放前面,大的放后面。N的范围:0-最大索引。
2024-03-04 21:41:39 384
原创 分块查找的学习
原则1:前一块中的最大数据,雄安与后一块中的所有数据(块内无序,块间有序)。核心思路:先确定要查找的元素在那一块,然后在块内挨个查找。原则2:块数数量一般等于数字开根号。
2024-03-04 21:37:28 213
原创 常见的算法
4.如果要查找的元素在mid的右边,缩小范围时,max不变,min等于mid加一。3.如果要查找的元素在mid的左边,缩小范围时,min不变,max等于mid减一。1.min和max表示当前要查找的范围。2.mid是在min和max的中间。
2024-03-03 21:00:48 395
原创 包装类和综合练习
定义一个方法自己实现toBinaryString方法的效果,将一个十进制整数转换成字符串表示的二进制。键盘录入一些1-100之间的整数,并添加到集合中。要求:字符串中只能是数字不能有其他字符,最少一位,最多10位,0不能开头。请使用代码实现计算你活了多少天,用jdk7和jdk8两种方式完成。自己实现parseInt方法的效果,将字符串形式的数据转成整数。jdk5以后对包装类新增了:自动拆箱、自动装箱。要求:用jdk7和jdk8两种方式判断。判断任意的一个年份是闰年还是平年。提示:二月有29天是闰年。
2024-03-03 12:59:33 483
原创 JDK时间
全世界的时间,有一个统一的计算标准。世界标准时间:格林尼治时间/格林威治时间简称GMT,目前时间标准时间已经替换为:原子钟。中国标准时间:世界时间+8 时间换算单位: 一秒等于一千毫秒 一毫秒等于一千微秒 一微秒等于一千纳秒 Date类是JDK写好的一个Javabean类,用来描述时间,精确到毫秒。利用有参构造创建对象,表示的是指定的时间。2.如何修改时间对象中的毫秒值 setTime(指定毫秒值);calendar代表了系统当前时间的日历对象,可以单独修改、获取时间中的年、月日。
2024-03-02 21:59:19 730
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人