- 博客(18)
- 收藏
- 关注
原创 Java多线程
前言程序进程线程相关说明一、多线程的优点二、线程的创建和启动2.1 Thread类2.1.1 Thread类的使用2.1.2 Thread类的实现例子输出结果:2.1.3 Thread类的相关的方法介绍start():启动当前线程,执行当前线程的run()方法。run():通常需要重写Thread类中的此方法,将创建的线程需要执行的操作声明在此方法中。currentThread():静态方法,返回当前代码执行的线程。getName():获取当前线程的名字。
2023-03-08 17:22:20
165
原创 Java异常处理
在Java语言中,将程序执行中发生的不正常情况称为“异常”。在开发中的语法错误和逻辑错误不是异常。Error:Java虚拟机无法解决的严重问题如:Java虚拟机运行错误、Java虚拟机内存不足错误、资源耗尽等。Exception:其他编程原因或偶然的外在因素导致的一般性问题,可以使用针对性的代码进行处理。throws + 异常类型”写在方法的声明处,指明此方法执行时,可能会抛出的异常类型。当方法体执行时,出现异常,仍会在异常代码处生成一个异常类的对象,此对象满足throws后的异常类型时,就会被抛出。
2023-03-06 22:30:18
241
原创 接口&&内部类【Java】
① 在Java中接口使用interface来定义。② 接口和类是并列的两个结构。③ 接口中不能定义构造器(这也意味着接口不能实例化)。④ 在Java开发中,接口通过让类去实现implements的方法来使用。如果:实现类覆盖了接口中所有的抽象方法,则此实现类就可以实例化;实现类没有覆盖接口中所有的抽象方法,则实现类仍然是一个抽象类。⑤ Java可以实现多个接口(这也弥补了Java单继承的局限性)格式:class A extends B implement C,D,E;
2022-12-19 14:30:42
334
原创 abstract关键字(抽象类)【Java】
abstract修饰属性和方法①此类不能实例化②抽象类中一定要有构造器,这样会便于子类实例化时的调用。①抽象方法:只有方法的声明,没有方法体②包含抽象方法的类,一定是一个抽象类,但在一个抽象类中,可以没有抽象方法③若子类重写了父类中所有的抽象方法后,此子类就无需使用abstract修饰,反之要使用abstract修饰注意点:①abstract不能修饰变量、代码块、构造器②abstract不能修饰私有方法、静态方法、final的方法、final的类
2022-12-17 14:10:30
3537
原创 代码块与final关键字【Java】
静态代码块① 内部可以有输出语句② 随着类的加载而执行,并且只执行一次③ 作用:初始化类的信息④ 当一个类中有多个静态代码块,则这些代码块会按照声明的先后顺序执行⑤ 静态代码块的执行,优先于非静态代码块的执行⑥ 静态代码块内只能调用静态的属性、静态的方法,无法调用非静态的结构final关键字① final修饰一个类:该类不能被其他类所继承。如:String类、System类 ② final修饰一个方法:final标记的方法不能被子类重写。如:Ob
2022-12-17 13:58:30
259
原创 Java单例模式【懒汉式&&饿汉式】
所谓类的单例设计模式,就是采用一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例。并且该类只提供一个取得其对象实例的方法。(简单来说,在整个的软件系统中,对某个类只能存在一个对象实例)由于单例模式只生成一个实例,减少系统性能开销,当一个对象的产生需要比较多的资源时,则可以通过在应用启动时直接产生一个单例对象,然后永久驻留内存的方式来解决。
2022-12-17 13:38:00
429
原创 Static关键字【Java】
Static:静态的。可以用来修饰:属性、方法、代码块、内部类。属性从是否使用static来修饰,又可以分为静态变量(使用static修饰)和非静态变量(不使用static修饰,也可以称为实列变量)实例变量:当创建了类的多个对象时,每个对象都各自拥有一套类中的非静态变量,当修改其中一个非静态属性时,不会导致其他对象中的相同的属性的改变。静态变量:当创建了类的多个对象时,多个对象共享同一个静态变量。当修改一个对象后,会使其他对象中的此静态变量发生改变。
2022-12-17 13:16:40
147
原创 JAVA学习笔记(一)【==、equals、包装类】
① Object 类中定义的equals() 和 == 的作用是相同的,比较两个的地址值是否相同(即两个变量是否指向同一个对象实体)② 在String、Date、File、包装类等中都重写了Object类中的equals()方法。重写后的方法比较的是两个对象的“实体内容”是否相同。在String、Date、File、包装类等都重写了Object类中的toString()方法。重写后的方法,返回“实体内容”信息。
2022-12-17 12:57:11
548
原创 Java多态性(包含instanceof关键字)
Java的重载是可以包括父类和子类的,即子类可以重载父类的同名不同参数的方法。为避免在向下转型时发生异常,在向下转型时可以配合instanceof使用,一旦放回true,则执行向下转型,放回false,则不执行向下转型。有了对象多态性后,在编译期间,只调用父类声明的方法,但在执行期实际执行的是子类重写父类的方法。(简称:编译时,看左边,运行时看右边)在Java中指的是对象的多态性:父类的引用指向子类的对象(或子类的对象赋值给父类的引用)。②“看右边”:看到是子类的对象(实际运行的是子类重写父类的方法)
2022-11-21 16:09:46
720
原创 Java继承性(包含方法重写和super关键字)
继承是面向对象最显著的一个特性。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。减少了代码的冗余,提高了代码的复用性,提高了代码的运行。继承性的使用利于后期程序的其他功能的扩展。为Java的多态性提供了前提。子类继承父类以后,对父类中同名同参数的方法,进行的覆盖操作叫做重写。super可以理解为:父类的。super可以用来调用:属性、方法、构造器。在子类中重写了父类中的方法后,要想在子类的方法中调用父类中被重写的方法时,就要使用super.方法的方式
2022-11-17 21:31:58
1267
原创 Java封装性(包含this关键字,构造器等)
封装性的作为java面向对象思想的三大特征之一。从字面上看,就是将一部分的东西整合成一个整体。用专业的术语来讲,可以理解为:隐藏对象内部的复杂性,只对外公开简单的接口。(通俗来讲封装性的设计思想:把该隐藏的隐藏起来,该暴露的暴露出来)this 用来修饰、调用:属性、方法、构造器。this 理解为:当前对象 , 或当前正在创建的对象。如果没有显示的定义类的构造器的话,则系统默认提供一个空参的构造器。一个类中,至少有一个构造器。
2022-11-16 14:14:22
2271
原创 归并排序----附图解(C语言)
归并排序Merge SortO(n log n)稳定的排序算法归并排序是采的的分治法为核心的一个非常典型的排序算法。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。
2022-10-03 19:09:02
1261
原创 希尔排序----附图解(C语言)
希尔排序缩小增量排序O(1)不稳定的排序算法希尔排序是把整个数组元素按下标的一定增量分组,对每组分别使用直接插入排序算法排序;随着增量逐渐减少,每组包含的元素越来越多,当增量减至 1 时,整个数组恰被分成一组,算法便终止,排序完成。希尔排序的优缺点不需要大量的辅助空间,当刚开始元素无序的时候,步长最大,所以插入排序的元素个数很少,速度很快;当元素基本有序了,步长很小,插入排序对于有序的序列效率很高。代码简单,容易实现。对规模非常大的数据希尔排序不是最优选择。
2022-09-25 12:10:08
3223
1
原创 插入排序 --- 附图解(C语言)
中文名:插入排序英文名:Insertion sort时间复杂度:O(N^(1-2))稳定性:稳定的排序算法原理:在待排序的数组里,从数组的第二个数字开始,通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序的优点:如果是进行相对有序的数组,效率会非常高。不占额外空间,是一种稳定的算法,编写过程也相对简单,时间复杂度高。插入排序的缺点:遇到数据过多的情况下不是很适用。最后到这里,文章就结束了,如果在内容上有问题,恳请各位大佬指出。
2022-09-19 20:05:26
23088
9
原创 快速排序(C语言)
中文名:快速排序英文名:quick sort时间复杂度:O(nlog2n)稳定性:不稳定性的排序算法(多个相同的值的相对位置在也许会在算法结束后位置发生改变)原理:将数组的第一个(最后一个)数组元素a,作为关键数据,将比a小的数字b放到a的左边(右边),所有比a小的数字b放到a的右边(左边),快速排序是对冒泡排序的的优化。
2022-09-14 21:27:25
19238
6
原创 选择排序(c语言)
中文名:选择排序英文名:Selection Sort、时间复杂度:O(n^2)稳定性:不稳定的排序算法原理:第一次从待排序的元素中选出最小(或最大)的一个元素a,记录其位置的下标,然后将剩下的元素依次与元素a相比较,直到找到剩下的元素中最小的元素b(且元素b比元素a小),二者交换位置(第一次循环结束),以此类推,直到全部待排序的数据元素的个数为零。
2022-09-12 22:08:46
28320
13
原创 冒泡排序(C语言)
中文名:冒泡排序英文名:Bubble Sort时间复杂度:O(n²)稳定性:稳定排顺序算法原理:比较相邻的元素,当第一个比第二个大(小)时,进行交换在每一对相邻的元素都完成该操作后,最大(小)的元素会被排到最后,再将除最后一个元素外的所以元素重复进行以上操作,直至完成升序(降序)排序。
2022-09-06 11:13:22
565
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人