- 博客(25)
- 资源 (1)
- 收藏
- 关注
原创 【JAVA语言-第20话】多线程详细解析(二)——线程安全,非线程安全的集合转换成线程安全
指如果有多个线程在同时运行,而这些线程可能会同时运行某段代码,程序每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全。在多线程中,线程安全问题是不允许被出现的。所以我们在使用多线程时,对于共享数据,可以通过synchronized关键字和Lock锁来处理,保证线程安全。synchronized使用简单但灵活性较差;而Lock是一个更灵活的同步方式,可以实现更复杂的同步需求,但需要手动管理锁的获取和释放。在实际开发中,可以根据具体需求进行选择。
2024-05-08 20:00:31
861
1
原创 【JAVA语言-第19话】多线程详细解析(一)
指一个内存中运行的应用程序,每一个进程都有一个独立的内存空间,一个应用程序可以同时运行多个进程,进程也是程序的一次执行过程,是系统运行程序的基本单位,系统运行一个程序即是一个进程从创建、运行到消亡的过程。线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程,一个进程中是可以有多个线程的,这个应用程序也可以称之为多线程程序。启动线程后,实际是两个线程并发的运行,当前线程(main线程)和另一个线程(创建的新线程,执行其run()方法)。java虚拟机调用该线程的run()方法。
2024-04-10 19:00:00
1028
原创 我的优快云——128天创作纪念日,畅谈机缘、收获、日常与憧憬
有时候开始一件事比想象中简单,在没有开始写博客前,我仍然是优快云的忠实粉丝,其中很多优质文章也让我收益良多。但要不怎么说凡事都讲究缘分,我和优快云的缘分也是妙不可言。在目前的博客分享中,我更多的是以java为主线展开,大多都是针对具体的语法知识点引入相对应的代码案例。但其实我最喜欢的代码,还是算法类型的,它让我觉得代码不只是解决程序中的一些问题,和生活的关联也是颇大。2.但人的精力都是有限的,在平衡工作和创作的过程中,我会优先完成自己的本职工作,但也会把空余时间优先分配给创作。
2024-03-24 23:58:48
386
原创 【Java语言】遍历List元素时删除集合中的元素
分享几种从List中移除元素的常用方法,【注意事项】尤其重要,很容易踩坑。使用普通实现方式,一目了然,但是代码行数比较多;使用1.8新增功能实现,代码就会简洁,但是在团队配合开发的场景中,如果没有了解过1.8新增特性的,可能可读性不强。方式各有优劣势,根据需求择优选择。
2024-03-13 16:08:11
2421
原创 【数据结构与算法(Java版)】深度剖析二分查找算法
在生活中,我们经常会接触到查找。不同的查找方式效率也会有所不同,今天就来了解一下【二分查找算法】。假设,有一个存在n个元素的升序排序数组(如下图),需要查找某个目标值在数组中的索引值。一般会如何去实现?按照我们正常的思路,可能首先想到的是遍历该数组,依次将每一个元素和目标值比较,直到找到目标值,返回索引,否则返回-1。
2024-02-25 17:04:21
862
原创 【JAVA语言-第18话】集合框架(五)——Map、HashMap、LinkedHashMap、TreeMap集合
在Java中,HashMap是一种实现了Map接口的键值对存储结构。它是基于哈希表的实现,通过哈希函数将键映射到数组中的位置来存储和检索值。由于使用哈希表,HashMap提供了高效的插入,删除和查找操作,其时间复杂度通常接近常数时间。HashMap允许存储null键和null值,并允许多个null值存储。HashMap中的键和值可以是任意类型的对象,通过hashCode()和equals()方法来确定键的唯一性。
2024-02-18 19:00:00
851
原创 【JAVA语言-第17话】集合框架(四)——单列集合总结,Collections工具类的常用方法,可变参数,斗地主发牌案例
可变参数是一种特殊的参数类型,它允许在方法调用时传入可变数量的参数。使用可变参数可以方便地处理需要传入不确定数量参数的情况,而不需要显式地创建一个数组。在方法的参数列表中,可变参数使用三个点(...)来表示。是JDK1.5之后出现的新特性。
2024-01-31 19:46:46
1087
1
原创 【JAVA语言-第16话】集合框架(三)——Set、HashSet、LinkedHashSet、TreeSet集合的详细解析
在Java中,HashSet是一种基于哈希表的集合实现。它继承自AbstractSet类并实现了Set接口。HashSet类在内部使用哈希表来存储元素,并且不保证元素的顺序。它允许存储唯一的元素,不允许重复。HashSet提供了常量时间的查找、插入和删除操作,因此可以在大多数情况下提供高效的性能。在Java中,LinkedHashSet是一种集合类,它是HashSet的子类。它继承了HashSet的特性,同时还保持了元素的插入顺序。
2024-01-29 21:00:00
1390
原创 【JAVA语言-第15话】集合框架(二)——List、ArrayList、LinkedList、Vector集合
ArrayList是一种动态数组,它实现了List接口。ArrayList可以根据需要自动调整大小,可以存储任意类型的对象。ArrayList提供了一系列的方法,可以方便地对其中的元素进行添加、删除、查找和遍历操作。与普通的数组相比,ArrayList的大小是可变的,并且可以自动处理底层数组的扩容和缩容。使用ArrayList能够方便地操作和管理一系列对象的集合。LinkedList实现了Java的List接口,因而可以像其他List实现类一样使用。它也实现了Deque接口,因而可以作为双端队列使用。
2024-01-24 21:09:32
1520
1
原创 【JAVA语言-第14话】集合框架(一)——Collection集合,迭代器,增强for,泛型
什么是集合框架?集合和数组的区别是什么?集合如何通过迭代器或者增强for进行遍历?什么是泛型?泛型的利弊有哪些?以上问题本文皆可解答。
2024-01-23 19:00:00
1341
1
原创 【JAVA语言-第13话】异常处理 之 try-catch-finally,throws,throw关键字的详细解析
Java中关于异常的详细讲解,包含什么是异常?异常有哪些分类?异常处理关键字:try,catch,finally,throws,throw的使用格式和案例分析,以及如何自定义异常。
2024-01-17 20:42:15
1377
原创 【JAVA语言-第12话】API中的工具类 之 Date,DateFormat,SimpleDateFormat,Calendar类的详细解析
Date,DateFormat,SimpleDateFormat,Calendar类,关于构造方法和常用方法的讲解,附带各种案例,通俗易懂。
2024-01-13 21:52:51
1278
1
原创 【JAVA语言-第11话】API中的工具类 之 String,StringBuilder,StringBuffer的详细解析与异同点
字符串操作类String、StringBuffer、StringBuilder的创建和常用方法,三个类的异同点和注意事项。
2024-01-06 15:36:05
1102
4
原创 【JAVA语言-第10话】Java API的下载和使用,装箱和拆箱的详解,Math、Random、System、Object、Objects类的使用和常用方法
Java API的在线和离线使用方法;基本类型对应的引用类型;装箱和拆箱的详解;Math、Random、System、Object、Objects类的使用和常用方法整理。
2023-12-31 21:27:07
1111
原创 【JAVA语言-第9话】final关键字,static关键字,内部类
详细解析,什么是内部类。内部类的分类(成员内部类,局部内部类,匿名内部类)。其中,成员内部类包括:静态内部类和非静态内部类,二者之间存在细微差异,区分场景使用。接口作为方法的参数和返回值的案例讲解。final关键字的常见用法和注意事项。static关键字的概述和使用,静态代码块的定义格式。
2023-12-23 13:53:17
892
1
原创 【JAVA语言-第8话】抽象类和抽象方法、接口和实现类
抽象类和抽象方法的认识、使用和注意事项。接口的定义(包括接口中抽象方法、默认方法、静态方法、私有方法、常量的定义)以及注意事项。抽象父类和子类继承、接口和实现类之间代码实现的综合案例。
2023-12-17 13:59:48
2085
1
原创 【JAVA语言-第7话】面向对象的封装性、继承性、多态性,构造方法,this和super关键字(下)
面向对象的继承性,方法的重写;面向对象的多态性,多态的好处,多态的转型,继承和多态的综合案例。
2023-12-03 16:58:26
1282
3
原创 【JAVA语言-第7话】面向对象的封装性、继承性、多态性,构造方法,this和super关键字(上)
面向对象的特性,权限访问修饰符,封装的优点,this关键字以及构造方法的详解。
2023-11-29 21:43:03
1097
1
专升本C语言复习资料和练习题
2021-05-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人