- 博客(15)
- 问答 (1)
- 收藏
- 关注
原创 java----IO流
IO流:存储和读取数据的解决方案I:input O:ourput 流:像水流一样传输数据IO流作用?用于读写数据(本地文件,网络)IO流按照流向可以分类为哪两种流?输出流:程序->文件输入流:文件->程序IO流按照操作文件的类型可以分类哪两种流?字节流:可以操作所有类型的文件字符流:只能操作纯文本文件(用winods系统自带的记事本打开并且能读懂的文件)
2024-10-18 15:57:12 783
原创 java----LinkedHashMap
原理:底层数据结构依然是哈希表,只是每个键值对元素又额外多了一个双链表的机制记录存储的顺序。.这里的有序指的是保证存储和去除的元素顺序一致。.由键决定:有序、不重复、无索引。
2024-09-21 19:13:11 241
原创 java-----异常
目的:让控制台的错误更加的见名知意throw new NameFormatException("长度应该是3-10");//这里时自定义抛出的异常,满足自定义的需求//自定义的异常类。
2024-09-21 17:51:57 1686
原创 java-----方法引用
第一个参数:表示被引用方法的调用者,决定了可以引用那些类中的方法,在Stream流中,第一个参数一般都表示流里面的每一个数据,第二个参数到最后一个参数,跟被引用方法的形参保持一致,如果没有第二个参数,说明被引用的方法需要是无参的构造方法。被引用方法的形参,需要跟抽象方法的第二个形参到最后一个形参保持一致,返回值需要保持一致。假设流里面的数据是字符串,那么使用这种方法引用,只能引用String这个类中的方法。②本类:this::方法名③父类:super::方法名。①其他类:其他类对象::方法名。
2024-09-19 19:25:53 617
原创 java-----Stream流
张无忌 周芷若 赵敏 张强 张三丰 张翠三 张良 王二麻子 谢广坤 张无忌 张无忌 张无忌 张无忌 张无忌 张无忌 张无忌 王二麻子 谢广坤。集合里面的数据:[张无忌, 周芷若, 赵敏, 张强, 张三丰, 张翠三, 张良, 王二麻子, 谢广坤]收集到list集合中:[张无忌-13-男, 张强-16-男, 张三丰-15-男, 张三丰-15-男][张无忌, 周芷若, 赵敏, 张强, 张三丰, 张翠三, 张良, 王二麻子, 谢广坤]收集到set集合中:[张强-16-男, 张三丰-15-男, 张无忌-13-男]
2024-09-18 19:54:13 987
原创 java-----可变参数
可以看到设置getSum的形参为可变参数,可以接收多个参数进行求和,也可以看到求和+的时data[i],本质是是一个数组。比如我们要进行求和操作,但是我们不知道要需要求和的数据个数有多少时,可以使用可变参数。可变形参能够接任意个数据,如果设置多个或者把别的形参设置在可变形参的后面,都会无法起作用。2.可变参数必须放在形参列表的最后面。1.形参列表中可变参数只能有一个。:在形参中接收多个参数,本质是上就是一个数组。:数据类型...参数名称。举例:int...a。
2024-09-14 09:49:19 384
原创 java----TreeMap
比如添加元素,最坏情况下,添加多个元素,形成链表的话,此时TreeMap的效率更高,但是这种这种情况的几率非常少。3.如果一个节点没有子节点或者父节点,则该节点的指针属性为Nil,这些NIl视为叶节点,每个叶节点(Nil)是黑色的;//可以看到,之前讲解第三个参数,代表键重复是否会进行覆盖操作,这里是有开关的,所以支持覆盖的put方法。5.对每一个节点,从该节点到其所有后代叶节点的简单路径上,均包含相同数目的黑色节点。:定义对象的排序顺序,允许你为一个类定义多个不同的排序顺序,或者为那些没有实现。
2024-09-13 21:43:10 621
原创 java---HashMap
2.当计算出来的数组位置已经有值时,【JDK8开始时】把新添加的元素直接挂在老元素下面形成新的链表。利用put方法就可以创建数据,put方法底层会创建一个Entry<V,V>对象,然后利用键去计算一个哈希值(当创建一个Hash对象时,默认会创建一个长度为16,默认加载因子为0.75的数组。1.当计算出来的数组位置为null是,会直接添加到对应的位置中。2.没有额外需要学习的特有方法,直接使用Map里面的方法。加入再put进来一个值,它计算的结果也是5:处理方式会有两种。这里使用键计算,跟值没有任何关系!
2024-09-13 14:33:39 1344
原创 java 面向对象-----static关键字
可以看到,三个对象是存储在非静态区,静态属性是存储在静态存储区的,当对象需要调用静态属性时,可以到静态存储区去找。静态存储区时创建的时候就加载进去了,静态存储区的内容是被该类所有对象所共享的,而对象的属性是它们所独有的。2.非静态方法可以访问静态变量或者静态方法,也可以访问非静态的成员变量和非静态的成员方法.静态方法不能访问非静态的成员,可以看到这里的this也是非静态,也解释为什么静态方法中没有this关键字。也就解释了静态的属于类,成员的属于对象。②非静态方法可以访问静态和非静态的成员属性和方法。
2024-09-11 11:21:17 664
原创 java----双列集合(Map)
对象,然后通过getKey()和getValue的方式获得键和值。lambda是遍历的一种新的语法形式,原理也是获得Map.Entry对象,对其进行遍历。:(可以通过map集合里面的keySet方法获的键的集合,然后通过map.get(键)去找值)Map集合:Map集合是双列集合的顶层接口,它的功能是全部双列集合都可以继承使用。2.当存储的键不存在时,返回的值时null.1.当存储的键已经存在时,返回的值就是修改之前的值的值;2.使用Map接口自带的内部接口。的,每个键只能找到自己对应的值。
2024-09-10 19:58:13 616
原创 java--(StringBuilder)
假若我要做以上代码所表达的操作,就是对字符串进行拼接,从上一节我们知道,字符串本身是不可变的,所以每一次拼接都要创建一个新的对象并返回,这里只是拼接三个,如果我要拼接上万个呢?我们从图中可以看到,每次拼接都需要创建一个StringBuilder对象,然后StringBuilder在调用toString方法返回字符串,这种方法每次拼接都要再堆中创建两个对象。可以看到,所有拼接的内容都会往StringBuilder中放,不会创建很多无用的空间,节约内存,提高了效率。那么它是怎么提高字符串的操作效率的呢?
2024-09-09 19:44:35 1159
原创 Java----字符串(String)
直接赋值时,系统都会检查该字符串在串池是否存在,不存在的话则创建新的,存在的话,可以看到字符串常量值"abc"的地址值返回。当s2创建对象的时候,也会去检查常量池中是否有该字符串,若有的话,直接在堆中创建一个新的String对象,这个对象也会指向常量池中的"abc",然后把这个新的String的地址返回,这时就是。首先,从前面的知识我们知道,当对一个字符串进行直接赋值时,它会到常量池先去查找这个字符串,如果没有,则会创建一个新的字符串对象,并将其返回,而不是在原来的基础上进行修改。
2024-09-09 15:54:39 879
原创 java 多态
面向对象三大特性:封装、继承、多态,今天我们来讲解多态定义:同类型的对象表现出不同的形态这听起来有点抽象,我们举个具体的例子:但是,这样会出现一个问题,不同居民可能会带不同的种类的猫还有的宠物过来寄养,可是你的寄养服务只提供给波斯猫,这样你就失去了很多顾客,而你的规则就是就是你编写的代码,传递类型不对就代表编译失败。于是你就改变了规则,但凡是宠物都可以放到这里寄养。虽然问题得到了解决,但是实在是太麻烦了,需要定义太多的规则,太过冗余。
2024-09-05 21:50:23 1295
您独创内容是否可以放入论文
2024-07-30
请问这个怎么做啊?求步骤最好代码
2021-11-17
TA创建的收藏夹 TA关注的收藏夹
TA关注的人