自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

原创 引用静态方法

格式: 类名::静态方法。

2024-04-21 20:16:26 225

原创 java-异常

以下,是对异常的一些概念做的介绍,以及小结。异常就是代表程序出现的问题。编译时异常和运行时异常。

2024-03-18 22:06:44 224

原创 java-Stream流

首先我们要知道,Stream流思想它就好比一条流水线,在流水线上对,传入的数据进行操作了解下图的中间方法和终结方法,待会我们会对他们进行具体的分析。

2024-03-14 22:03:32 162

原创 java-集合工具类Collections

我们就简单看看第一第二个方法,代码如下,其余的知道用就行。我们在使用它的时候记得导包。

2024-03-13 22:16:24 202

原创 java-可变参数

(int...a,int...b)这样是不行的,因为我第一个形参就可以接收无穷个,那么第二个形参到底接收多少个,我们不知道,所以就会报错。(int b,int...a)这样是可以的,这个是第一个被b接收,剩下的都是被a接收。(int...a,int b)这样也不行,还是那样,我们不知道形参b接收的是什么。当我们要传入大量的形参时,我们就可以用到可变参数了。可变参数就是指传入的参数个数是可变的,不是固定的。数据类型...变量名;例如int ...a;

2024-03-13 22:12:45 132

原创 java-双列集合

什么是双列集合?集合中每次存的数据是成对存入的以及它的特点是什么?特别注意:键不可重复,值可以Map是双列集合的顶层接口。

2024-03-13 22:04:36 475

原创 java-单列集合-set系列

set集合继承collection,所以API都差不多,我就不多加介绍直接见图看他们的特点我们主要讲述的是set系列里的HashSet、LinkedHashSet、TreeSetHashSet它的底层是哈希表哈希表由数组+集合+红黑树组成特点:增删改查都性能良好哈希表具体是什么,我也不太讲的清,具体见java上册197集我们主要是了解它的去重他是如何去重的呢?通过的是HashCode方法和equals方法当我们储存的是自定义对象时,我们就必须要重写它们如上图,s1和s2名字和姓名重复了,我们认为是同一个人,

2024-03-12 22:27:28 325

原创 java-数据结构—树

规则:任意节点左右子树高度差不超过1如下图,你不能只看根节点,你还得看其他的所有节点,看看所有节点的左右子树高度差是否超过一;注意:没有左(右)节点时,我们认为该节点的左(右)节点的高度为0举例:左侧二叉树的10节点,他没有左节点,所以左节点高度为0,右节点高度为3,高度差为3,所以不是平衡二叉树(有点复杂,不好讲述,自行看图片介绍)是一个二叉查找树,高度不平衡,满足红黑规则红黑规则添加节点的规则。

2024-03-11 22:42:15 680

原创 java-泛型

泛型的格式:<数据类型>注意:数据类型只能是引用数据类型,所以如果想要用int的话,要用对他进行包装作用:限定形参范围细节:传入数据可以传入该泛型类型或者其子类类型,如下图所示当一个类,某个变量数据类型不确定的时候,我们就可以定义带有泛型的类具体代码如下图我们来如何理解这个呢?其实很好理解,我们就是把这个E当作为一种可以为任意数据类型的一种数据类型那如何创建对象呢?因为这个是泛型类,所以我们在创建对象的时候我们必须指定数据类型,如下图代码当我们创建这个MyArraylist对象是指定了泛型为String所以

2024-03-07 21:52:57 206

原创 java-对数据结构的简单认识

数据结构有:栈,队列,数组,链表这里我们只是简单认识了解一下。

2024-03-06 22:13:37 263

原创 java-List常见方法与五种遍历方式

它的写法和迭代器的方法是基本相似的,但是它在遍历过程中可以添加元素,这个元素添加在指定元素的后一个位置,因为迭代器获取元素后,指针后移。首先,我们知道list是collection的子类,所以自然父类的方法,它都继承下来了,所以我们主要看的是它的特有方法,如下图。同时它也和迭代器一样,不能用集合方法来进行添加,否则出现下面这种情况。因为这个继承了collection的方法,所以之前3个方法它都能用。同时list系列有索引,所以普通for循环遍历也可以用。通过看上图我们就知道如何使用这些方法了。

2024-03-06 22:02:44 220

原创 java-集合进阶-Collection的三种遍历方法

这个s就相当于一个第三方的变量,每循环一次,集合的元素数据就会存储在里面,然后下一次循环时,它又会被下一个集合元素替代,所以它和集合并没有联系,他只是一个暂时存储元素的第三方变量。答案是显然不会的,就如上面所说,它只是第三方变量,就如下面代码所示,qqq并没有改变集合元素数据。以及在这个迭代器遍历的方法体中,不能利用集合的方法进行删除和增加,只能使用迭代器的方法。那么我们就会有这样的疑问,如果在循环中我们改变s的值,集合会不会改变。首先是集合的方法进行删除(注意这个是错误的,代码会报错)

2024-03-06 21:42:53 260

原创 java-集合进阶—单列集合顶层接口Collection

3.contains判断是否包含该元素的细节:他依赖的是equals的方法进行判断是否存在,所以我们自定义类的对象,例如Student这种,如果也要用contains方法来判断,那我们必须对他进行重写。2.remove删除方法的细节:由于有些集合没有索引,但是这个Collection是共性的接口,所以不能通过传递索引去删除,只能传递具体的数据去删除。因为我们集合判断的是是否存在这个数据,当我们用自定义对象的时候,尽管数据是一样的,但是由于每个对象的地址不一样,还是会返回false。那么他的功能有哪些呢?

2024-03-05 21:43:21 155

原创 java-lambda表达式

注意:这个匿名内部类必须是函数式接口,也就是只有一个抽象方法的接口。简单来说就是简化匿名内部类的书写格式。lambda的标准格式为()->{}看下面图片就可知道要省略什么了。同时lambda还有省略的写法。如何理解这个的作用呢。

2024-03-05 21:18:56 173

原创 java-常见的算法API-Arrays

而这个规则是一个接口,但是我们只需要调用一次它就可以了,所以我们没必要为它单独创建一个类,这时候我们就要用到匿名内部类了。首先是倒数第二个没带规则的sort方法,这个就和我们写的快排算法是一样的,默认就是按照升序排列进行排列的。而最后一个带上规则的sort方法,我们可以改变它的规则,从而实现我们想要的排列方式,例如实现降序排序。这个匿名类里面的打印语句可以删掉,return o1-o2是升序,而改为o2-o1就是降序了。我们知道如果默认规则不能满足我们要求时,我们就可以对方法进行重写。

2024-03-05 21:10:32 153

原创 java-排序算法

注意递归函数一定要有出口,避免内存溢出,出口就是止提前终止程序的代码,和之前避免死循环的代码是类似的。给出一段数据为:3,44,38,5,47,15,36,26,27,2,46,4,19,50,48。首先引入递归这个概念这个之前学学过,反正就是函数反复调用本身不多加解释。,至于为什么,自己可以试试先start再end,会出现什么错误。给出一组数据为:6,1,2,7,9,3,4,5,10,8。如何来理解这个方法,我们举个例子来说明一下。这个不多做解释,比较简单,直接看图。利用快排进行排序的代码如下。

2024-03-05 20:53:37 241 1

原创 java-查找算法

如图中一串数据分成了4大块,可以看到这4大块,每一块里面的顺序是无序的,但是块2的最小值一定大于块1的最大值,所以块外是有序的。一段数据为16,5,9,12,21,18,32,23,37,26,45,34,50,48,61,52,73,66。举例:一组数据为7,23,79,81,103,127,131,147,现在我们要查找数据127。只需在块类里面加上一个min的成员变量就行,这是为了确定好数据在哪个块,剩下的就和上面的一样了。这个无需怎么介绍,简而言之就是,对数据进行遍历,然后找到对应的要查找数据。

2024-03-04 22:10:55 298 1

原创 Java-常用API-Runtime

补充:可能不理解5和6,我是这样理解的,就是虚拟机申请了254MB的内存,剩余251MB,意思是这段程序只用了3MB。运行结果最后是true,原因是,这个方法获取的是虚拟机对象,一般规定就是只有一个,所以r1和r2是同一对象。注意:字节缩写就是常见的B,上面除以两次1024是为了化单位为MB。第3、4、5、6个方法都是获取与虚拟机有关的内容,知道就可以。和之前System的停止也是一样的,看图就行,知道就可以。第7个方法,可能在某些时候很实用,而且还可以恶搞朋友。常见的方法有,如下图。

2024-03-02 19:41:09 174

原创 Java-常见API-System

该方法是测试当前所在代码运行的时间与时间原点的差值,所以我们可以一头一尾,相减就可以测试出当前这段代码所运行的时间。但是在遍历的时候记得强转,因为person比student大,所以将person的值赋给student时要进行强转。这个方法没什么好详细分析的,就是要注意它传入参数的意思,图片上已经有了详细的介绍了。arr1是子类student,arr2是父类person,也可以进行拷贝。注意:0是正常停止,非0是异常停止,如下图代码所示。它的作用很简单就是终止程序运行。第三个的作用就是拷贝数组。

2024-03-02 19:21:58 148

原创 Java-常用API-Math

以下就是基本上最主要的方法以及图片解析了,这个只需要知道就行。这个明白有这个就行,不用死记硬背。首先最常见的就是math类。

2024-03-02 18:58:17 75

原创 Java-匿名内部类

个人理解就是:首先我们写一个没有名字的类,也就是那个接口的实现类,也可能写的是一个继承其他类的类,这个类也就是大括号括起来的部分,然后我们要创建的是swim实现类的对象,所以肯定是new 类名 ();根据我的理解,那个类名就填父类的类名,也就是swim,但是在()后面就要写实现类,或者继承类的内容。根据这个三个图,看看看见的时候能不能想起,毕竟这个不好如何表达,如果真的不知道还是看一下网课。但是类名我们不知道啊,他是匿名的,但是它是有名字的,内部操作系统里有,但是我们不知道。下面是继承关系的内部类。

2024-02-21 21:53:25 178

原创 Java-静态内部类和局部内部类

第二点的理解:第一点的理解特别重要,你把这个内部类看作一个方法中的局部变量,就知道它是不能被外界调用的,只能在方法内部使用。这个内部类就相当于方法show中局部变量a一样的等级,它只在这个方法中起作用,并不能被外界测试类调用。第三点的理解:还是就是把这个局部内部类当作为一个方法中的局部变量,自然就能理解了。结合静态的知识与成员内部类的知识去理解下图绿字部分,应该很好理解。但是加上了静态的特性,所以静态内部类与普通成员内部类有所不同。静态内部类可以算是成员内部类的一种特殊的内部类。

2024-02-21 21:31:09 127

原创 java-成员内部类

解释:首先先看outer类属于一个外部类,然后创建了一个成员内部类叫做inner,在outer外部类里写了一个getInstance()的方法,它的作用是用来返回一个内部类的对象,所以返回值的类型应该为inter类所以public inner getInstance(){}它是写在外部类里面的,可以把他看作和外部类的一个成员,不过这个成员是一个整体,是一个内部类,因为它是相当于外部类的一个成员,所以内部类里面可以调用外部类的私有变量。这个间接创建内部类对象的方法一般使用在private修饰的内部类。

2024-02-21 21:14:20 218

原创 java-内部类基础

解决方法就是创建一个发动机的对象,然后用对象调用它,如下图。因为车和发动机属于包含关系,所以适合将发动机作为内部类。重点注意一下外部类不能直接调用内部类,如下图标红代码。为什么要学习内部类呢,内部类应用举例,如下。那内部类和外部类之间有什么关系呢?什么是内部类,外部类,外部其他类。

2024-02-21 20:29:22 187

原创 Java-接口拓展

我们可以新创建一个类来接收这个接口,并对该接口所有的方法进行空重写,然后原来的那个类直接继承这个后来创建的类,再根据自己的需求,想重写哪个就重写哪个就可以。但是我只需要用到这个接口中其中一个方法,但是还是要对所有10个方法进行重写,这样既影响了美观也影响了可读性,所有为了解决这个问题。为了不让别人修改log()这个方法,或者是修改这个方法没有用,该方法设置为私有就是为了只服务该接口,对其他类没有用。这个不是重写,只能说是这个类定义了另一个与接口中的方法相同的静态方法,是两个不同的方法。

2024-02-19 22:01:04 202 1

原创 Java-接口进阶

public static final是默认的,不需要自己写,他表示的是常量,不能改变,见图所示。但是注意,如果一个类中引入接口三的话,由于接口三继承了接口一,二,所以要重写接口一二三所有的方法。第一点是之前学过的知识,第二点是前面接口基础笔记中的一个类可以继承多个接口。举个例子就是现在有三个接口,分别为接口一,接口二,接口三。多继承就是接口三继承接口一和接口二;这次主要学习的是第三点知识。

2024-02-19 21:25:25 196 1

原创 java-接口基础

如图中游泳这个属于青蛙和狗的特性,并不是这三个动物的特性,因此不能提取到父类。因为这里就狗类有看家的功能,可以直接写在狗类里面,单独写一个接口太麻烦了。System.out.println("青蛙在吃虫子");System.out.println("青蛙在蛙泳");这个特有名称要牢记,也就是接口的子类,实现类要满足的要求如图所示。其中还要注意一下一个类可以接收多个接口,格式如图所示。所以我们引进接口,单独把游泳写成接口,然后去使用。如果不用接口,单纯用多态,无法实现我们的目的。这是父类animal的代码。

2024-02-19 17:27:28 348 1

原创 java-抽象类和抽象方法

student类super();

2024-01-28 18:22:15 405

原创 java-权限修饰符和代码块

特点:随着类的加载而加载(也就是优先于创建对象就加载了),并且自动触发,只执行一次。报错原因就是:局部代码走完就不会存在,上图中a走完就立马被清空。具体分类以及作用范围如下图(打勾的就是可以访问)代码块分为局部代码块、构造代码块、静态代码块。主要应用:在程序运行之前就加一些默认初始值。如学生管理系统中,在未注册之前添加一个用户。可以修饰成员变量,方法,构造方法,内部类。一般都是用public和private。所以局部代码块的目的就是:节约内存。就是控制一个成员能够被访问的范围。格式:static{}

2024-01-28 17:53:32 141

原创 java-包和final

就相当于又给s赋值了一个新的空间,就是地址值变了,就会报错。实际开发中,常量- -般作为系统的配置信息,方便维护,提高可读性。final修饰的变量是基本类型:那么变量存储的数据值不能发生改变。对象内部可以改变是,s的姓名和年龄可以改变,例如改为李四和24岁。那么变量存储的地址值不能发生改变,对象内部的可以改变。final修饰方法:表明该方法是最终方法,不能被重写。●使用java.lang包中 的类时,不需要导包。final修饰类:表明该类是最终类,不能被继承。●使用同一个包中的类时,不需要导包。

2024-01-28 17:30:00 255

原创 java-多态

多态就是对象的多种形态有什么用?举例,学校的注册系统,要区分学生,老师,辅导员他们统一的父类是person,所以上面是person的三种形态父类类型对象名称=子类对象;●有继承关系●有父类引用指向子类对象●有方法重写。

2024-01-28 17:06:51 873

原创 Java-继承

如果出现同名变量或方法,遵循就近原则,离谁近就调用谁,当出现this的时候,就默认调用本类的变量或方法,而不是传来的或者父类的,当出现super时调用父类的,是该类的父类,注意不能super.super.,语法错误。●子类在初始化的时候, 有可能会使用到父类中的数据,如果父类没有完成初始化,子类将无法使用父类的数据。System.out.println("海外学生的eat,经过了方法的重写");虚方法表里的是,非private,非static,非final的,剩下的就会到虚方法表中。

2024-01-21 16:53:09 960 1

原创 static的注意事项

个人理解:意思是被static修饰后的方法,不会自带this,也不能用this,因为静态优先于对象的存在。●非静态方法可以访问静态变量或者静态方法,也可以访问非静态的成员变量和非静态的成员方法。个人理解:由于没有this就不知道本类的地址,自然就不能调用各种非静态的方法。深度理解去看哔哩哔哩阿玮老师的第123集的内存分析。●静态方法只能访问静态变量和静态方法。●静态方法中是没有this关键字。静态方法中没有this关键字。静态方法中,只能访问静态。非静态方法可以访问所有。static的注意事项。

2024-01-21 15:20:48 375

原创 java-static与工具类

/具体需求:定义一个集合,用于储存3个学生对象,学生对象的属性为name,age,sex,定义一个工具类,用于获取集合中最大学生的年龄。定义一个集合,用于储存3个学生对象,学生对象的属性为name,age,sex,定义一个工具类,用于获取集合中最大学生的年龄。//这是为了避免工具类被创建对象的语句。System.out.println("最大的年纪是"+t);工具类:就是单纯作为工具来使用的类,不能创建对象。类一般就是:JavaBean类、测试类、工具类。//具体实例,写一个简单的学生的工具类。

2024-01-21 14:36:38 343

原创 java-static与成员变量

被静态修饰后的变量,会保持不变,具体应用例如:一个班的学生的老师是共同的,所以这样可以静态初始化一个老师。3.随类的加载而加载,优先于对象存在,也就是我们可以先初始化静态变量,再创建对象。2.所以对象共享,也就是班上所有学生共享一个老师,不用分别赋值。1.不属于对象,属于类。

2024-01-21 14:25:46 342

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除