自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 String为什么是不可变的?

String内的所有涉及对字符数组进行修改的方法,都会重新创建一个字符串对象,将修改后的值放在新String对象中,原字符串不会改变。String内部是一个由final关键字修饰的字符数组,所以不可改变。

2024-03-01 08:33:53 668

原创 数组常见算法代码总结

然后,当开始下标low小于等于结束下标high时,计算中间元素的下标mid,如果中间元素=目标元素,则查找成功,退出;:从第一个元素开始,依次比较相邻的两个元素,如果顺序不对则进行交换,继续比较相邻元素,直到最后一个元素,这样一轮下来,最大的元素就会被交换到最后的位置。如果找到目标元素,返回该元素的下标值,如果遍历完数组都没有找到该元素,则返回-1。:从数组的最后一个元素开始,向前循环,然后产生一个数组长度范围内的随机下标,再将这个随机下标与循环时的最后一位元素进行交换,从而实现数组的乱序。

2024-03-01 08:33:06 459

原创 String字符串的常见方法总结

查找字符或字串在字符串中第一次出现的位置。2.使用.concat()方法进行拼接。2.比较两个字符串忽略大小写是否相等。1.比较两个字符串是否相等。示例:用指定字符进行分割。1.将小写字母转换成大写。2.将大写字母转换成小写。1.从指定位置开始截取。2.从指定范围开始截取。去除字符串前后的空格。

2024-02-29 17:35:49 346

原创 Arrays工具类的常见方法总结

当新数组的长度小于原数组的长度,便只会复制新数组长度的元素,当新数组的长度大于原数组的长度,超出的元素便会默认为0或null或false。首先,创建一个新数组,传入参数:数组从0开始复制,复制到新数组从0开始,复制长度为原数组的长度和新长度中较小的一个。然后,创建一个和原数组类型相同的新数组,使用Arrays.copy()方法将原数组中指定范围的元素复制到新数组中。首先,计算新数组的长度;由源码可以看出:是将原数组进行遍历,将指定值赋给原数组的每一个元素,就可以实现替换原数组中所有元素。

2024-02-29 10:58:20 1158

原创 数值类型的运算方式总结

BigInteger支持大量的整数运算,包括加减乘除等等,它会将两个BigInteger对象的数组逐位进行运算,并将结果保存在新的BigInteger对象中,这种运算机制保证了BigInteger的运算精度和准确性。十进制的小数再进行二进制转换时,整数部分会除二取余,小数部分会乘二取整,在乘二取整的过程中,会产生无限循环的情况,所以就出现了精度丢失。基本数据类型都有自己的范围大小,在进行运算时,有时会超出整数类型表示的范围,导致溢出错误。1.&(按位与):两个都为1,结果为1。结果为:ret1=128。

2024-02-27 11:14:25 373

原创 Java集合-Map接口(key-value)

特点:①Key唯一,不允许重复②Value允许重复③key 和 value不允许为空,如果为null,则抛出NullPointerExceptino④线程安全,使用synchronized加锁,性能较差。特点:①Key唯一,不允许重复②Value允许重复③有序④LinkedHashMap是HashMap的子类。特点:①Key唯一,不允许重复②Value允许重复③按照Key自动排序④AbstractMap的子类。:根据key,获取value,如果key存在,获取该元素的键值对的value值;

2024-01-26 20:19:06 1465

原创 Java集合-Set接口

特点:有序(原因:LinkedHashMap在原有基础上,多维护了一条链表,用于保存,所以元素有序)、值唯一。Set接口的三个实现类:①HashSet类②LinkedHashSet类③TreeSet类。遍历方式:基于“迭代器”方式遍历Set 或者 使用迭代器方式的语法简化:语法糖。存储结构:使用LinkedHashMap进行存储。排序:Comparable接口(默认比较规则)Set接口的特点:无序,不允许重复(值唯一)存储结构:使用HashMap进行存储。存储结构:使用TreeMap进行存储。

2024-01-26 19:27:27 473

原创 Java集合-LinkedList

方法3:get(int index) 作用:获取元素,根据元素的下标位置,在链表中通过遍历,查找获取元素。方法1:add(E e)/list.addLast(E e) 作用:将新元素添加至链表的尾部。方法6:remove(int index) 作用:根据下标,在链表中删除元素。方法7:remove(Object o) 作用:根据值,在链表中删除元素。方法8:removeFirst() 作用:删除链表的头元素。方法9:removeLast() 作用:删除链表的尾元素。

2024-01-25 20:47:41 729 2

原创 Java集合-ArrayList

集合就是一个保存数据的容器。在计算机中引入集合,是为了便于处理一组类似的数据。Java标准库自带的java.util包提供了集合相关的接口和实现类:Collection接口,它是除了Map接口外所有其他集合类的根接口。Java的Java.uitl包主要提供以下三种类型的集合:ListSetMapJava集合的设计有几个特点:首先实现了接口和实现类相分离,比如:有序表的接口是List,具体的实现类有ArrayList、LinkedLis、Vectort;其次支持泛型,我们可以。

2024-01-25 20:35:05 685 1

原创 简易音乐播放器

2.创建播放器对象,传入音频文件。1.读取到MP3音频文件。

2024-01-24 21:27:13 331

原创 StringBuilder与StringBuffer的区别

该方法的作用是追加内容到当前对象的末尾,类似于字符串的连接。调用该方法以后,对象的内容也发生改变。常用方法:append();

2024-01-24 21:21:06 473

原创 压缩字符串

实现思路:遍历当前字符串,从第一个元素开始,遍历至倒数第二个元素,分别获取当前字符以及下一个字符然后对当前字符与下一个字符进行判断,如果相邻字符相等,表示连续相同,对其进行累加计数。否则相邻字符不相等,表示连续中断,将之前计数完成的字符与字符个数添加到字符串末尾,并重新设置要比较的字符,且重新计数。要求:压缩字符串"AAAABBBCCDDDDEEEEEEFFF"使得其输出结果为A4B3C2D4E6F3。

2024-01-23 21:37:29 449 1

原创 Java的异常

捕获异常使用try...catch 语句,把可能发生异常的代码放到try {...} 中,然后使用catch 捕获对应的Exception及好类。从继承关系可知:Throwable 是异常体系的根,它继承自Object。Exception则是运行时的错误,它可以被捕获并处理。当输入a时,产生InputMismatchException,输出:哎呦,输入错误了!当n2输入0时,则产生ArithmeticException,输出:哎呦,计算错误了!还有一些异常是程序逻辑编写不对造成的, 应该修复程序本身。

2024-01-23 18:31:25 918

原创 逆序遍历字符串(不改变内存地址)

用StringBuilder创建对象,因为String字符串有不可变性,而StringBuilder内部方法并没有被final修饰,所以将s1的字符串内容传给StringBuilder创建的对象ret1和ret2,内容就可以被改变,而s1的内存地址不会改变。

2024-01-22 22:16:49 348

原创 编程练习:获取一段uuid随机编码,替换字符串中所有的数字,在原有的基础上+1,如果和为10,则当前位返回0

用StringBuilder创建对象,因为String字符串不可变,而StringBuilder内部方法并没有被final修饰,所以将uuid的字符串内容传给StringBuilder创建的对象sb,内容就可以被改变,而uuid的内存地址不会改变。题目:先获取一段uuid随机编码值,再替换字符串中所有的数字,并且再原有的基础上+1,如果和为10,则当前位返回0。

2024-01-22 22:09:18 338

原创 字符串的常见操作

【代码】字符串的查找方式。

2024-01-22 18:50:15 425

原创 static 关键字的用法

1.static关键字修饰的(静态方法)使用static关键字修饰的方法的调用方式:调用方式1:如果是在当前类的static方法中,则直接调用调用方式2:如果是在其他类的static方法中,则需要通过类名.方法()调用备注1:普通方法(没有使用staitc关键字修饰的方法)允许调用static修饰的方法备注2: static修饰的方法(静态方法)不允许调用普通方法。

2024-01-21 23:32:58 436

原创 用方法输出一个水仙花数

3.判断每位立方之和是否等于原数字i。1.对当前数字i,进行拆解。2.获得百位、十位、个位。

2024-01-21 23:18:32 327

原创 Comparable接口的使用

实现Comparable 接口的类,该类的对象之间可以进行“比较”,用于“排序”。Comparable接口用于进行对象之间的比较,主要用于排序算法。

2024-01-19 20:39:19 372

原创 方法的重写小案例

从上面的案例可以看出:order1和order2调用通过继承调用了父类的构造方法,同时也调用了各自重写后的toString()方法,按照我们想要的格式进行输出。首先,我们先准备一个Order的抽象类、DidiOrder子类和MeituanOrder子类。

2024-01-19 20:01:00 341

原创 抽象类的使用及其规则

我们先创建一个Pet父类、cat子类、dog、子类。

2024-01-19 19:40:16 311

原创 向上转型与向下转型的应用小案例

在进行向上转型的时候,子类可以用父类的方法,但是就不能再去调用自己的方法,所以调用完父类的方法之后,再进行向下转型,从而调用自己的方法。这样就可以优化代码,使其更加简洁。通过以上测试,我们可以发现:在进行desc()方法的重载时,重复的去调用父类的get方法进行输出,略显累赘,我们可以通过向上转型和向下转型来优化此代码。我们先准备一个Product商品类,和一个Text类。

2024-01-19 19:27:26 466

原创 构造方法、this与super

super(参数)//调用父类的构造方法,要写在子类的构造方法中。构造方法是一个与类名相同的方法,在创建对象时自动调用的方法,用于完成对象的初始化工作。语法特征5: 一个类中可以有多个同名的构造方法,但参数不同,即构造方法也可以被重载。区别: this:this.本类的成员变量(主要是为了区分成员变量和局部变量)this.构造方法和super.构造方法要放第一行。语法特征1:在类中如果没有定义构造方法,会存在一个默认的无参构造方法。相同点:this.构造方法和super.构造方法要放第一行。

2024-01-17 20:29:08 307

原创 JavaOOP编程思想-方法

方法是若干个"代码语句片段"的集合,它们完成一个"具体的功能",并且设置一个"直观易懂"的名字,方便后期在程序中去"使用(调用)"。语法格式:修饰符 (static) 返回值类型 方法名(参数类型 参数名){语句1;语句2;语句3;return 返回值;修饰符:修饰符,可选部分,定义了该方法的访问范围。static关键字:该方法通过类名调用(如果是在当前类类,可以直接调用,类名省略返回值类型:调用方法后返回的数据值的类型;

2024-01-15 20:27:50 972

原创 蓝桥杯必会基础题目

例如: "This is a sample"变形后就变成了"SAMPLE A IS tHIS"题目3: 字符串变形:把这个字符串中由空格隔开的单词反序,同时反转每个字符的大小写。例如: "Hello World"变形后就变成了"WORLD hELLO"题目1:给定三条边a\b\c,请你判断一下能不能组成一一个三角形。题目2:根据身份证号码,计算年龄。

2024-01-09 22:02:03 739

原创 数据类型和变量

(8种,保存在VM Stack栈中)和。(很多种,保存在Heap堆中)。

2024-01-09 21:04:39 438

原创 Java程序运行流程

在运行 Java 程序时,首先会启动 JVM,然后由它来负责解释执行 Java 的字节码程序,并且 Java 字节码程序只能运行于 JVM 之上。这样利用 JVM 就可以把 Java 字节码程序和具体的硬件平台以及操作系统环境分隔开来,只要在不同的计算机上安装了针对特定平台的 JVM,Java 程序就可以运行,而不用考虑当前具体的硬件平台及操作系统环境,也不用考虑字节码文件是在何种平台上生成的。Java解释器:Java 解释器负责将字节码文件翻译成具体硬件环境和操作系统平台下的机器代码,以便执行。

2024-01-09 20:04:43 375

原创 for循环与if语句简单应用

【代码】for循环与if语句简单应用。

2024-01-08 20:04:53 356

原创 将字符串逆序输出的两种方法

【代码】将字符串逆序输出的两种方法。

2024-01-08 19:57:23 394

原创 位运算小练习

则n-1的计算结果,转换为二进制形式为01、011、0111、 01111实现思路:整数n如果为2的n次幂,二进制形式必为10、100、 1000如果n是4的幂,则n的二进制仅包含-一个1, 并且一定在偶数位(低位从0开始计算)分析:正整数n如果是2的幂,则n的其二进制仅包含一个1问题3:有5个整数,仅有1个整数出现过1次,其余均出现2次,请找出这个整数。定义一个整数mask,二进制的偶数位均为0,奇数位均为1。分析:如果n是4的幂,那么n一定也是2的幂。

2024-01-08 19:55:09 343

原创 BigInteger与BigDecimal的用法及应用小案例

在Java中,浮点数的运算存在精度丢失的问题,而BigDecimal则可以避免这种误差。

2024-01-08 19:11:03 317

原创 Java Exception异常

System.out.println("输入的商品单价或数量有误!e.ArithmeticException:算术逻辑异常(int)System.out.println("请输入商品的单价:");System.out.println("请输入商品的数量:");System.out.println("商品小计:"+total);产生的原因:对非数字内容的字符串,进行数字类型的转换。(一)try...catch(通过try...catch捕获运行期间的异常)//打印异常的堆栈信息)

2024-01-08 13:47:23 354

原创 字符与字符串

字符串的每个字符,按照顺序都拥有一个数字下标,从 0 开始。例如 : 字符串"猪八戒"中的字符"猪"的下标为 0 ,字符"八"的下标为 1。时,JVM 虚拟机先创建字符串"hello”,然后,把字符串变量s指向它。Java的编译器对字符串进行特殊处理,可以使用+连接任意字符串和其他数据类型,简化字符串的处理。字符串类型String是引用类型,用双引号"..."表示字符串。作用:查找在当前字符串中“指定字符串”的 下标位置。Java的字符串除了是一个引用类型外,还有个重要特点,就是。

2024-01-08 12:58:21 1089

原创 为什么重写hashCode()时,必须重写equals()?

只重写hashCode()方法时,会产生哈希冲突,所以为了进一步确保结果的正确性,需要重写equals()方法。当hashCode值相等时,二者不一定相等;当hashCode值不相等时,二者一定不相等。

2023-08-13 23:12:02 258 1

原创 为什么会产生哈希冲突?

因为哈希值就是一个int类型的值,int的数据范围为:-2147483648~+2147482647。取值容易出现重复值,所以会产生冲突,也就是哈希冲突。

2023-08-13 23:02:36 87 1

原创 Set集合如何过滤重复元素?

/过滤重复字符,结果无序。set集合的特点:无序,值唯一(不能存储重复的元素)。//过滤重复字符,结果有序。

2023-08-13 22:23:08 101 2

原创 LinkedList的适用场景

LinkedList是基于双链表实现的,而ArrayList是基于动态数组实现的。因为对链表的增删只需要改变指针,而在数组中增删时,会导致后面的元素向后移动。所以在进行增删时,LinkedList的效率要高于ArrayList。对链表的查询需要不停的移动指针,而数组却不用。所以,在进行查询操作时,ArrayList的效率要高于LinkedList。

2023-08-13 21:51:49 145 1

原创 ArrayList的扩容方式

当数组容量不够时,按照原来容量的1.5倍进行扩容增长。二、有参构造方法:ArrayList<数据类型> arrayList = new ArrayList<数据类型>(8);一、 无参构造方法:ArrayList<数据类型> arrayList = new ArrayList<数据类型>();当所需的最小容量大于当前数组的长度,进行扩容用grow()方法。当集合已经添加完8个元素之后,进行扩容,是8的1.5倍扩容。add() 方法和grow() 方法。

2023-08-13 21:25:41 365

原创 ArrayList和Vector的区别

ArrayList和Vector的区别

2023-08-13 20:33:08 29

原创 ArrayList和LinkedList的区别

ArrayList和LinkedList的区别

2023-08-13 19:18:18 74 1

空空如也

空空如也

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

TA关注的人

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