- 博客(30)
- 收藏
- 关注
原创 Java,集合框架体系
(11)boolean retainAll(Collection coll):从当前集合中删除两个集合中不同的元素,使得当前集合仅保留与coll集合中的元素相同的元素,即当前集合中仅保留两个集合的交集,即this = this ∩ coll;即coll集合是否是当前集合的“子集”(2)addAll(Collection other):添加other集合中的所有元素对象到当前集合中,即this = this ∪ other。(12)Object[] toArray():返回包含当前集合中所有元素的数组。
2025-12-13 17:41:53
880
原创 Java,其他类
BigInteger 提供所有 Java 的基本整数操作符的对应物,并提供 java.lang.Math 的所有相关方法。该方法的作用是返回当前的计算机时间,时间的表达格式为当前计算机时间和GMT时间(格林威治时间)1970年1月1号0时0分0秒所差的毫秒数。此方法返回的值可能随时间的推移而变化,这取决于主机环境。该方法的作用是获得系统中属性名为key的属性对应的值。由于该类的构造器是private的,所以无法创建该类的对象。System类代表系统,系统级的很多属性和控制方法都放置在该类的内部。
2025-12-04 21:26:00
952
原创 Java,日期时间API
实例化:由于Calendar是一个抽象类,所以需要创建其子类的实例,可通过Calendar的静态方法getInstance()即可获得。构造器:SimpleDateFormat sdf = new SimpleDateFormat(String pattern);Instant:类似于Date类,时间线上的一个瞬时点,用来记录应用程序中时间的时间戳。类似于SimpleDateFormat。实例化:(自定义格式)
2025-12-02 18:00:13
794
原创 Java,String类
(17)String substring(int beginIndex, int endIndex) :返回一个新字符串,它是此字符串从beginIndex开始截取到endIndex(不包含)的一个子字符串。(16)String substring(int beginIndex) :返回一个新的字符串,它是此字符串的从beginIndex开始截取到最后的一个子字符串。(12)int indexOf(xx):从前往后找当前字符串中xx,即如果有返回第一次出现的下标,要是没有返回-1。
2025-12-01 21:59:28
1102
原创 Java,多线程
程序(program):为完成特定任务,用某种语言编写的’一组指令的集合’。进程(process):程序的一次执行,或是正在内存运行的应用程序。程序是静态的,进程是动态的,线程(thread):进程可进一步细分为线程,是程序内部的一条执行路径。jdk5.0及之后:Thread类新增了一个内部类State。方式3:实现Callable接口(jdk5.0新增)方式4:创建线程池(jdk5.0新增)单例设计模式懒汉式的线程安全的写法。在同步机制下,考虑线程间的通信。同步机制会带来的问题:死锁。
2025-11-28 11:09:37
447
原创 Java,异常处理
Java中把不同的异常用不同的类表示,一旦发生某种异常,就创建该异常类型的对象,并且抛出(throw),然后程序员就可以捕获(catch)到这个异常对象,并处理;②针对try中抛出的异常类的对象,使用之后的catch语句进行匹配。②throws的方式仅是将异常抛给了此方法的调用者,调用者仍然需要考虑如何处理相关异常,从这个角度看,throws的方式并不是真正意义上处理了异常。③子类重写的方法抛出的异常类型可以与父类被重写抛出的异常类型相同,或是父类被重写方法抛出的异常类型的子类。①继承于现有的异常体现。
2025-11-22 08:58:27
1217
原创 Java,面向对象(高阶总结)
String-->基本数据类型、包装类:包装类的parseXxx(String str)>基本数据类型、包装类-->String:String的valueOf()-static修饰的类变量(属性)、类方法与不使用static都区别。>内部可以声明属性、方法、构造器、代码块、内部类等结构。>方法:抽象方法:没有方法体,必须由子类实现此方法。>基本数据类型<->包装类:自动装箱、自动拆箱。-static用来修饰:属性、方法、代码块、内部类。-用来修饰:类、方法、变量(成员变量、局部变量)
2025-11-17 21:05:36
915
原创 Java,包装类
基本数据类型、包装类——>String类型:①调用String的重载静态方法valueOf() ②基本数据类型+""让基本数据类型变成具有引用数据类型的相关特征,就可以调用方法,就称为包装类(封装类),可以更好的面向对象进行开发。基本数据类型——>包装类:①使用包装类的构造器 ②调用包装类的valueOf() ③自动装箱。String类型——>基本数据类型、包装类:调用包装类的静态方法:parseXxx()包装类——>基本数据类型:①调用包装类的xxxValue() ②自动拆箱。
2025-11-16 19:10:43
183
原创 Java,注解
注解也可以看作是一种注释,通过Annotation,程序员可以在不改变原有逻辑的情况下,在源文件中嵌入一些补充信息。-注解(Annotation)可以像修饰符一样被使用,可用于修饰包、类、构造器、方法、成员变量、参数、局部变量的声明。-@Test标记的方法本身必须是public,非抽象的,非静态的,void无返回值,()无参数的。-所在类必须是public的,非抽象的,包含唯一的无参构造器。-@Retention:用于描述注解的生命周期。注解可以在类编译、运行的时候进行加载,体现不同的功能。
2025-11-16 19:07:33
225
原创 Java,枚举类
static 枚举类型 valueOf(String name):可以把一个字符串转为对应的枚举对象,要求字符串必须是枚举类对象的名字,否则会出现异常。>static 枚举类型[] values():返回枚举类型对象数组,该方法可以很方便地历遍所有的枚举值。-使用enum关键字定义的枚举类,默认其父类是java.lang.Enum类,不要再显示的定义其父类,否则报错。当通过不同的枚举类对象调用此方法时,执行的是同一个方法。当通过不同枚举类对象调用此方法时,执行的是不同的实现方法。
2025-11-15 19:50:33
240
原创 Java,接口
(其中接口中的方法是默认方法)。默认情况下,子类(或实现类)在没有重写此方法的情况下,调用的是父类的方法(类优先原则)③类实现了两个接口,而两个接口中定义了同名同参的默认方法,则实现类在没有重写的情况下会报错(接口冲突),所以此时实现类必须要重写接口中定义的同名同参的方法。②接口中声明的默认方法可以被实现类继承,实现类在没有重写此方法的情况下,默认调用接口中声明的默认方法,如果实现类重写了此方法,则调用重写的方法。② 类与类之间是继承关系,类与接口之间是实现关系,接口与接口之间是多继承关系。
2025-11-15 19:39:44
255
原创 Java,单例设计模式
所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法。-设计模式是在大量“实践中总结”和“理论化”之后优选的代码结构、编程风格、以及解决问题的思考方式。>优点:写法简单,由于内存中较早加载,使用更方便、更快;-饿汉式:“立即加载”,随着类的加载,当前的唯一实例就创建了。-懒汉式:“延迟加载”,在需要使用的时候,进行创建。>优点:在需要的时候进行创建,节省空间。>缺点:内存中占用的时间较长。>缺点:线程不安全。
2025-11-03 21:20:55
272
原创 Java,面向对象_进阶(总结)
过程上:子类调用构造器创建对象,一定会直接或间接的调用其父类的构造器,以及父类的父类的构造器,直到调用到Object()的构造器。>当子类重写了父类的方法,如果需要调用父类被重写的方法时,需要使用super.的方式,表明调用的是父类的方法。-多态的好处:极大的减少了代码的冗余,不需要定义多个重载的方法;>如果子父类中出现了同名的属性,此时使用super.的方式,表明调用的是父类的属性。>局限性:类的单继承性(后续通过类实现接口的方式,解决单继承性的局限性)>重写:继承以后,子类覆盖父类同名同参数的方法。
2025-11-02 20:41:21
703
原创 Java,Object类及常用方法
一、适用性: 任何引用数据类型都可以使用。二、java.lang.Object类中equals()的定义: public boolean equals(Object obj) { return (this == obj); }三、子类使用说明: -自定义的类在没有重写Object中equals()方法的情况下,调用的就是Object类中声明的equals(),比较两个对象的引用地址是否相同。(或比较两个对象是否指向了堆空间中的同一个对象实体)
2025-11-02 19:53:30
545
原创 Java,多态性
但是,把这个对象赋值给不同的类型变量时,这些变量的编译时的类型却不同。-通俗解释:软件系统中各种组件,如模块(Modules)、类(Classes)以及功能(Functions)等,应该在不修改现有代码的基础上,引入新的功能。但是,使用父类变量接收了子类对象之后,我们就不能调用子类独有的方法,所以想要调用子类特有的方法,就必须类型转换。因为多态,就一定会有把子类对象赋值给父类变量的时候,这个时候,在编译期间,就会出现类型转换的现象。-编译时,认为方法是左边声明的父类的方法(即被重写的方法)
2025-11-02 19:48:35
515
原创 Java,方法的重写(继承补充)
父类被重写的方法的返回值类型是引用数据类型(比如类),子类重写的方法的返回值类型必须与被重写的方法的返回值类型可以相同,也可以是被重写的方法的返回值类型的子类。④、异常类型:(超纲)子类重写的方法抛出的异常类型可以与父类被重写的方法抛出的异常类型相同,或是父类被重写的方法抛出的异常类型的子类。>父类被重写的方法的返回值类型是基本数据类型,则子类重写的方法的返回值类型必须与被重写的方法的返回值类型相同。>父类被重写的方法的返回值类型是void,则子类重写的方法的返回值类型必须是void。
2025-10-30 17:12:41
394
原创 Java,继承性
自下而上:定义了类B,C,D等,发现B,C,D有类似的属性和方法,则可以考虑将相同的属性和方法进行提取,封装到类A中,让类B,C,D继承于类A,同时,B、C、D中相似的功能就可以删除了。-自上而下:定义了一个类A,在定义另一个类时,发现B的功能与类A相似,考虑B继承于A。-继承描述事物之间的所属关系(is-a),可见父类更通用、更一般,子类更具体。-子类在继承父类之后,还可以拓展自己特有的功能(体现:增加特有的属性、方法)-继承的出现让类与类之间产生了“is-a”的关系,为多态的使用提供了前提。
2025-10-30 16:09:36
572
原创 Java,面向对象_基础(总结)
场景一:私有化(private)类的属性,提供公共(public)的get和set方法,对此属性进行获取或修改。-象:实际存在的该类事物的'每个个体',是'具体的',因而也被称为'实例(instance)'。>堆空间:new出来的结构(数组,对象),数组的元素,对象的成员变量(属性)都在堆中。-封装性的体现:使用权限修饰符来修饰类及类的内部成员,当这些成员被调用时,体现可见性的大小。-方法重载的要求:“两同一不同”(权限修饰符、方法名相同;-类:具有相同特征的事物的抽象描述,是'抽象的'、概念上的定义。
2025-10-28 19:03:34
959
原创 Java,类与对象
按变量在类中声明的位置分类:成员变量(或属性)、局部变量(方法内、方法形参、构造器内、构造器形参、代码块内等)对象:实际存在的该类事物的'每个个体',是'具体的',因而也被称为'实例(instance)'。说明:创建类的多个对象时,每个对象在堆空间中都有一个对象实体,每个对象实体中保存着一份类的属性。>堆(heap):new之后的结构(比如:数组的实体,对象的实体),包括对象中的属性。>方法区(method area):存放类的模板。类:具有相同特征的事物的抽象描述,是'抽象的'、概念上的定义。
2025-10-23 16:54:24
1114
原创 Java,变量与运算符
其中:除instanceof外均适用于基本数据类型(> 、 < 、>= 、<=不适用于boolean类型)运算结果为boolean类型。包括:+ 、 - 、* 、/ 、% 、(前)++ 、++(后) 、(前)-- 、--(后)= 、> 、 < 、>= 、<= 、instanceof(后面再学)如:类名、变量名、方法名、接口名、包名、常量名等。包括:= 、+= 、-= 、*= 、/= 、%=&与&&、|与||的区别为:&与|都会将两个判断条件都执行一次;
2025-10-15 17:43:51
1119
原创 Java,HelloWorld的总结
可以在class前面声明public,一个源文件可以声明多个类,但是最多只能有一个类使用public进行声明,并且要求声明为public的类的类名必须与源文件相同。2、main()方法的格式是固定的:public static void main(String[] args)表示程序的入口。针对编译后生成的字节码文件(.class),进行解释运行。1、运行是针对字节码文件对应的Java类进行解释运行的。(1)、查看编译的文件名、文件路径是否正确。(1)、查看运行的文件名、文件路径是否正确。
2025-10-13 11:07:24
293
原创 C语言,数组的合并去重与排序
先定义一个唯一元素的索引(也是去重后数组的长度)unique,然后用两层循环,外层循环历遍原数组的元素,内层循环检测这个元素之前是否出现过,如过没有出现过以unique为下标的临时数组覆盖原数组(因为unique与i一起自增所以数组没有变化),但是如果出现重复元素会直接中断本次内层循环使得unique无法自增而i正常自增,直到出现下个不重复元素unique继续自增(这就使下个不重复元素覆盖重复元素),然后返回unique的值得到新数组的长度。有两种方法一种是暴力去重法,另一种是先排序再去重。
2025-10-12 13:14:01
440
原创 C语言,结构体
通过结构体和动态一维数组来存储学生名字和考试成绩,然后再使用冒泡算法进行升序排列,来实现对学生成绩从高到低的依次输出。把一些基本数据类型组合在一起形成的一个新的复合数据类型,就叫做结构体。定义的同时可以赋初始值,但如果定义之后,则只能单个的赋初始值。为了表示一些复杂事物,而普通的基本数据类型无法满足实际要求。3.通过函数对结构体变量的输入与输出。五、综合运用--学生成绩排序系统。2.结构体成员的赋值和输出。(1)结构体变量名.成员名。(2)指针变量名->成员名。
2025-10-10 23:16:30
496
原创 C语言,指针_3 指针与数组
如果一个函数要处理一个一维数组,则需要接收该数组的第一个元素的地址(也就是数组名)和该数组的长度。数组名是个指针常量,存放了数组第一个元素的地址,也就是第一个元素的内存单元。如果p是个指针变量,则p[i]等价于*(p+i)。运行输出结果为:0X65FE30。2.下标与指针的关系。3.确定一个一维数组。
2025-10-09 17:02:59
177
原创 C语言,指针_2 指针与函数
形参的修改不会对实参进行修改,这是因为在调用函数时只是将实参数据发送给形参,所以不管函数内部对形参如何修改都不会改变实参的值。如果想要使函数返回多个值,可通过发送地址,改变地址所在的内存单元空间的值。(2)可通过指针使用被调函数改变主函数一个及以上的值。总结:(1)实参与形参永远是不同的。运行输出结果为:i=2,j=3。运行输出结果为:i=3,j=2。2.运用指针使函数返回多个值。
2025-10-09 16:21:52
140
原创 数据的类型
3.sencondStr为指针变量,在printf中使用secondStr而不是*secondStr,是因为字符串为地址传递。1.comma为单引号而不是双引号是因为如果用双引号时为“,”和“\0”属于字符串而不是字符。2.引用数据类型:数组,字符串,类,接口,枚举。(数据传输类型为地址传递)1.基本数据类型:整型,字符,浮点数。(数据传输类型为值传递)2.firstStr[]为数组,数组名是数组第一个元素的地址。一个小的知识点的总结。
2025-10-02 23:02:18
202
原创 C语言,指针_1
本文总结了C语言指针的核心知识点。指针作为C语言的灵魂,在数据结构表示、数据高效传递、多值返回、硬件访问、字符串处理等方面具有重要作用。指针本质是内存地址,指针变量则是存储地址的变量。通过示例代码演示了指针变量的定义和使用:int *p声明指针变量,p=&i使p指向变量i,p解引用等同于i。重点指出指针与指针变量的区别,以及指针运算中操作符的解引用功能。输出结果验证了通过指针间接访问变量的等价性。
2025-10-01 22:58:36
232
原创 C语言,经典指针程序_互换两个数字
本文通过C语言指针编程示例,分析了三种交换函数的不同效果。程序演示了如何利用指针实现函数返回多个值:函数huhuan_3通过接收变量地址直接修改内存单元的值,成功交换主函数中的变量;而huhuan_1因形参无法影响实参、huhuan_2因只交换地址而未修改值,均未能实现交换功能。文章总结了指针操作的关键点:要改变实参值必须直接操作其内存地址。该示例清晰地展示了指针在函数参数传递中的重要作用和实践方法。
2025-09-30 11:33:27
142
原创 C语言,寻找250
该程序演示了如何动态确定数组大小并存储数据,然后检测数组中值为250的元素位置。主要步骤包括:1)用户输入数据个数n;2)动态创建大小为n的数组;3)存储用户输入的n个整数;4)遍历数组查找值为250的元素并输出其位置。程序还包含检验数组存储情况的注释代码,并提醒注意比较运算符"=="和赋值运算符"="的区别。作者建议可以考虑固定数组大小来简化代码。
2025-09-29 23:37:10
163
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅