- 博客(39)
- 收藏
- 关注
原创 Java(泛型和JUnit)
/6. 静态方法中不能使用类的泛型,因为静态是和类相关的,在类加载时,对象还没有创建,所以,如果静态方法和静态属性使用了泛型,JVM 就无法完成初始化。//E 表示 s 的数据类型, 该数据类型在定义 Person 对象的时候指定,即在编译期间,就确定 E 是什么类型。//5. 使用泛型的数组,不能初始化,因为数组在 new 不能确定 T 的类型,就无法在内存开空间。//在 jdk8 中,可以在接口中,使用默认方法, 也是可以使用泛型。//2, T, R, M 泛型的标识符, 一般是单个大写字母。
2025-08-11 15:47:54
425
原创 Java(HashMap和HashTable和Properties)
else if (p instanceof TreeNode)//如果当前的 table 的已有的 Node 是红黑树,就按照红黑树的方式处。if ((e = p.next) == null) {//如果整个链表,没有和他相同,就加到该链表的最后。//取出 hash 值对应的 table 的索引位置的 Node, 如果为 null, 就直接把加入的 k-v。// 如果 table 的索引位置的 key 的 hash 相同和新的 key 的 hash 值相同,//替换,key 对应 value。
2025-08-03 19:52:45
972
原创 Java(Map)
System.out.println("----使用 EntrySet 的 for 增强(第 3 种)----");System.out.println("----使用 EntrySet 的 迭代器(第 4 种)----");System.out.println("---取出所有的 value 迭代器----");System.out.println("-----第一种方式-------");System.out.println("----第二种方式--------");clear():清除 k-v。
2025-08-03 14:28:29
499
原创 Java(LinkedList和ArrayList底层分析)
2. 这时 linkeList 的属性 first = null last = null。3. 执行 unlinkFirst, 将 f 指向的双向链表的第一个结点拿掉。remove():删除一个节点对象(默认删除第一个节点对象)4.将新的结点,加入到双向链表的最后。1. 执行 removeFirst。set():修改一个节点对象。get():得到一个节点对象。add():增加节点对象。
2025-07-22 20:45:40
412
原创 Java(ArrayList 底层结构和源码分析)
2.2 //确定是否需要扩容 条件 : minCapacity - elementData.length>0。补充:如果是 Vector vector = new Vector(8);2.3 //如果 需要的数组大小 不够用,就扩容 , 扩容的算法。//使用 for 给 list 集合添加 11-15 数据。//使用 for 给 list 集合添加 1-10 数据。2.1 //下面这个方法就添加数据到 vector 集合。//1. new Vector() 底层。Vector 的基本介绍。
2025-07-14 19:50:23
1025
原创 Java(集合)
List subList(int fromIndex, int toIndex):返回从 fromIndex 到 toIndex 位置的子集合(fromIndex <= subList < toIndex)Object set(int index, Object ele):设置指定 index 位置的元素为 ele , 相当于是替换.Object remove(int index):移除指定 index 位置的元素,并返回此元素。remove():删除指定元素。addAll():添加多个元素。
2025-07-14 19:36:38
268
原创 Java(System类,BigInteger类和BigDecimal类,日期类)
System.out.println("日:" + c.get(Calendar.DAY_OF_MONTH));System.out.println("月:" + (c.get(Calendar.MONTH) + 1));System.out.println("分钟:" + c.get(Calendar.MINUTE));System.out.println("小时:" + c.get(Calendar.HOUR));
2025-07-10 13:41:22
648
原创 Java(Math类,Arrays类)
要求该数组是有序的. 如果该数组是无序的,不能使用 binarySearch,如果数组中不存在该元素,就返回 return -(low + 1);(2) 最终到 TimSort 类的 private static <T> void binarySort(T[] a, int lo, int hi, int start,1. asList 方法,会将 (2,3,4,5,6,1)数据转成一个 List 集合。:包含于执行基本数学运算的方法,如:指数,对数,平方根,三角函数。匿名内部类的 compare ()
2025-07-08 15:16:21
816
原创 Java(StringBuffer)
代表可变序列,可以对字符串内容进行增删,很多方法与String相同,但StringBuffer是可变长度。replace(start,end,"内容"):替换索引为>=start&&<end处的字符。indexOf("内容"):查找指定字串在字符串第一次出现的位置,若找不到返回-1。delete(start,end):删除索引为>=start&&<end处的字符。insert(index,"内容"):在原来索引为index的位置插入内容。String与StringBuffer相互转换。
2025-07-02 10:00:00
113
原创 Java(String类)
String用于保存字符串,也就是一组字符序列,使用双引号括起来的字符序列。字符串是不可变的,一个字符串对象一旦被分配,其内容是不可变的。String是一个final类,代表不可变的字符序列。toUpperCase:转成大写。toLowerCase:转成小写。创建String对象的两种方式。串行化:可以在网络传输。String的常用方法。
2025-07-01 12:42:35
404
原创 Java(常用类)
针对八种基本数据类型相应的引用类型---包装类。有了类的特点,就可以调用类的方法。包装类和基本数据类型的转换。还有什么问题,欢迎大家讨论。
2025-07-01 12:16:38
303
原创 Java(自定义异常)
自定义异常:当程序中出现了某些“错误”,但该错误信息并没有在Throwable子类中描述处理,这个时候可以设计异常类,用于描述该错误信息。一般情况下,我们自定义异常是继承RuntimeException做成运行时异常好处是我们可以使用默认的处理机制。
2025-05-22 19:16:21
173
原创 Java(异常)
异常:将程序执行中发生的不正常情况称为“异常”(开发过程中语法的错误和逻辑错误不是异常)没有finally也可以,如果有就必须执行。异常处理:当异常发生时,对异常的处理方式。2. throws异常处理。
2025-05-20 15:17:10
357
原创 初步领略Java(内部类)
7.如果外部类和成员内部类重名时,默认遵循就近原则,如果想访问外部类成员,则可以使用(外部类.this.成员)去访问。成员内部类:定义在外部类的成员位置,并没有static修饰。静态内部类:定义在外部类的成员位置,并有static修饰。第一种方式:因为是静态的所以可以用类名直接访问。注意:外部其他类---访问--->静态内部类。剩余5点与成员内部类一样,6点除外。
2025-05-13 14:18:20
298
原创 初步领略Java(内部类)
内部类:一个类的内部又完整嵌套了另一个类的结构,最大的特点就是可以直接访问私有属性,并且可以体现类与类之间的包含关系。定义在成员位置:(1)成员内部类(2)静态内部类。class Inner{//内部类。如果定义在局部位置:(1)局部内部类;class Other{//外部其他类。class Outer{//外部类。局部内部类:定义在外部类的局部位置。匿名内部类:定义在外部内的局部位置。局部内部类定义在方法中/代码块中。new 类或接口(参数列表){作用域在方法体或代码块中。
2025-05-11 16:38:54
204
原创 初步领略Java(接口与抽象类,继承的区别)
抽象类中不可以使用default修饰普通方法。这是因为default关键字是Java 8为接口引入的特性,用于在接口中提供具有默认实现的方法,使接口在不破坏现有实现类的情况下能够添加新方法。而抽象类本身就可以包含普通方法和抽象方法,普通方法直接定义即可,不需要default关键字来修饰,也没有default方法存在的语义和需求。如果在抽象类中使用default关键字修饰方法,会导致编译错误。
2025-05-10 15:00:51
175
原创 初步领略Java(接口)
小结:接口是更加抽象的抽象的类,抽象类里的方法可以有方法体,接口里所有的方法都没有方法体,接口体现了程序设计的多态和高内聚低偶合的设计思想。多台数组:将实现了接口的不同类(这些类继承同一个类)存储在数组中,数组的类型为所继承的同一个类的类名。接口就是给出一些没有实现的方法,封装到一起,到某个类要使用时,再根据情况实现这些方法。jdk8.0后接口类可以有静态方法,默认方法,也就是说接口中可以有方法的具体实现。必须实现的接口的抽象方法;多态参数:接口引用可以指向实现了接口的类的对象。
2025-04-03 15:58:53
268
原创 初步领略Java(final关键字,抽象类)
语法:访问修饰符 abstract 返回类型 方法名(参数列表);抽象类的价值更多作用是在于设计,是设计者设计好后,让子类继承并实现抽象类。用abstract关键字来修饰一个方法时,这个方法就是抽象方法。用abstract关键字来修饰一个类时,这个类就叫抽象类。在某些情况下可能会使用到final。
2025-04-03 15:18:11
224
原创 初步领略Java(类变量和类方法,代码块)
类变量:也叫静态属性或者静态变量,是该类的所有对象共享的变量,任何一个该类的对象去访问它时,取到的都是相同的值,同样任何一个该类的对象去修改它时,修改的也是同一个变量。3. 普通代码块,在创建对象实例时,会被隐式的调用,被创建一次,就会调用一次,如果只是使用了类的静态成员时,普通代码块不会被执行。代码化块又称为初始化块,属于类中的成员(即是类的一部分),类似与方法,将逻辑语句封装在方法中,通过{}包围起来。语法:访问修饰符 static 数据类型 变量名。
2025-04-01 16:54:13
677
原创 初步领略Java(Object类,finalize方法)
==和equals的对比==是一个比较运算符equals:hashcode方法:返回对象的哈希码值,支持此方法是为了提高哈希表的性能 toString方法:finalize方法
2025-04-01 15:49:09
141
原创 初步领略Java(多态的应用)
数组的定义类型为父类类型,里面保存的是子类类型。方法定义的形参类型为父类类型,实参类型允许为子类类型。这里补充一下多态的内容。
2025-03-29 14:56:39
397
原创 初步领略Java(多态)
A instanceof B比较操作符,用于判断A对象的运行类型是否为B类型或是B类型的子类。语法:父类类型 父类引用名=new 子类类型();语法:子类类型 子类引用名=(子类类型)父类引用名。方法或对象具有多种形态,多态是建立在封装和继承的基础之上的。本质:父类的引用指向子类对象。
2025-03-27 17:01:23
313
原创 初步领略Java (super)
3. super的访问不限于直接父类,如果父类和本类中有同名的成员,也可使用super去访问父类的成员,如果有多个父类中都有同名的成员,使用super访问遵循就近原则,当然也得遵循访问权限的相关规则。在继承中我们说super关键字,这里跟大家仔细说说。代表父类的引用,用于访问父类的属性,方法,构造器。
2025-03-26 15:33:46
404
原创 初步领略Java(继承)
解决代码的复用,在多个类存在相同的属性和方法时,可以从这些类抽象出父类,在父类中定义这些相同的属性和方法,所有的子类不需要重新定义这些方法和属性,只需extends.子类就会自动拥有父类定义的方法和属性,父类又叫超类,基类,子类又叫派生类.class 子类 extends 父类{}2.代码扩展性和维护性提高了.son.name=大头儿子。son.hobby=旅游。1.代码复用性提高了。
2025-03-26 15:08:41
288
原创 初步领略Java (封装)
就是把抽象出来的数据(属性)和对数据的操作(方法)封装在一起,数据被保护在内部,程序其他部分只有通过被授权的操作(方法),才能对数据进行操作。Java的三大特征:封装,继承,多态。
2025-03-22 16:53:21
253
原创 初步领略java(包,访问修饰符)
1.package的作用是声明当前类所在的包,需要放在类的最上面,一个类中最多只有一句package。2.import指令位置放在package 的下面,在类定义的前面,可以有多句且没有顺序要求。命名规则:只能包含数字,字母,小圆点,但不能是关键字或保留字,不得以数字开头。Java提供四种访问修饰符,用于控制方法和属性(成员变量)的访问权限(范围)。私有级别:private ,只有类本身可以访问,不对外公开。包的本质:实际上就是创建不同的文件夹来保存类文件。默认级别:没有修饰符号,向同一个包的类公开。
2025-03-21 10:56:05
372
原创 初步领略Java(方法重载,构造器,this关键字,可变参数,对象创建流程分析)
若程序没有构造器系统会自动给类生成一个构造器也叫默认构造器,一旦定义了自己的构造器,默认的构造器覆盖了,就不能再使用(除非在定义一下)注意:只能在构造器中使用(即只能在构造器中访问另一个构造器,必须放在第一条语句)5.this不能在类定义的外部使用,只能在类定义的方法中使用.(this只能与对象关联)Java中允许将同一个类中多个同名同功能,但参数个数不同的方法,封装成一个方法。定义:Java允许同一个类中,多个同名方法的存在,但要求形参列表不一致.一个类可以定义多个不同的构造器,即构造器的重载.
2025-03-20 15:53:54
295
原创 初步领略Java(数组)
注意:搜索值被包含在数组内,则返回搜索值的索引,否则返回-1或者"-"(插入点),插入点是搜索键将要被插入数组中的那一点,即第一个大于此键的元素索引.且在进行查找前必须对数组进行排序,否则结果是不确定的.5.1.binarySearch(数组名,int formIndex,int toIndex,int key)与前面一样,也要先排序,再从指定范围内查找,fromIndex(包括)到toIndex(不包括).注意:int [] a,b[];1.填充数组fill(int []a,int value)
2025-03-16 14:58:38
367
原创 初步领略java(复合语句)
这里介绍的是if--else 这条语句跟C里面是一样的,就不做过多陈述了,但要注意⚠️⚠️⚠️条件嵌套时最多嵌套三次不要超过三次,不然可读性不好,switch---case也是一样的,要注意⚠️⚠️的是这里的常量可以是整型,字符型,字符串类型或枚举类型。最重要的就是break和continue 的知识点了,都知道break是跳出最近的一次循坏,continue是跳过本次循坏,回到条件的判断,for是先增量在进行条件的判断。当j==4时,break就直接跳出来外层循坏。continue 也是同样的道理。
2025-03-15 16:09:37
411
原创 初步领略Java
这里了解一下字符编码的问题,分为两个一个是编码:保存数据的过程,另一个是解码:读数据的过程二者遵守的规范必须是一样的,那么常用的两点编码规范GBK和UTF-8。char类型数据做运算,会自动提升为int型,如果char类型字符提升为int型会去ASCII 码表范围内查找字符对应的ASCII值,没有找到再去unicode 码表去找,自动提升为int型是jvm给强制转了。浮点型:float (单精度,4个字节)double(双精度,8个字节),字符型:char(2个字节),布尔型:boolean (2个字节)
2025-03-13 12:07:36
327
原创 初步领略Java
Java的第一步就进入到了DOS命令窗口,在电脑上Win➕R再输入cmd回车就打开了. 那常用的DOS命令有以下是几个,注意“-”表示有空格哦.⚠️⚠️⚠️。在Dos命令窗口中,可以输入文件夹名或者文件名的一部分,按Tab键自动补全.不过之后用了Idea这类集成开发环境就很少用这些Dos命令。但是⚠️⚠️⚠️删除文件夹时删除的文件夹必须是空的且不走回收站删除文件也是不走回收站的。进入到多级文件夹下 cd-文件夹名字\文件夹名字。进入到指定文件夹下 cd-文件夹名字。
2025-03-13 10:54:44
161
原创 【无标题】
hello各位IT们我是属于优快云的新客人,我是IT小白,希望在这个平台上能和各位IT大佬多多交流,当然作为一位小白,肯定得制定个目标。我想先把基础学好吧,基础牢靠才能进行下一步,之后肯定就是刷题,写代码喽,这些都应该是最基础的吧(个人见解哦)最后:我想进入的公司的话,能进大厂肯定很好喽,大厂目标的话就是阿里。当然有目标就要奋斗咯,加油吧,各位。打算用多少时间的话,觉得一天三四个小时差不多了吧,毕竟是根据自己的时间安排的,肯定越多越好喽。肯定就是毕业以后能够找到自己满意的工作。
2023-11-21 22:39:01
81
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅