- 博客(72)
- 收藏
- 关注
原创 Override注解
使用 Arnotation 时要在其前面增加 @ 符号,并把该 Annotation 当成一个修饰符使用,用于修饰它支持的程序元素。1)@Override:限定某个方法,是重写父类方法,该注解只能用于方法;2):用于表示某个程序元素(类,方法等)已过时;3):抑制编译器警告。
2024-04-19 00:06:27
342
原创 枚举 enumertation
1、不需要提供setXxx方法,因为枚举对象值通常为只读;2、对枚举对象/属性使用共同修饰,实现底层优化;3、枚举对象名通常使用全部大写,常量的命名规范;4、枚举对象根据需要,也可以有多个属性。// 自定义枚举的实现// final和static 往往搭配使用,效率更高,不会导致类加载,底层编译器做了优化处理;1)构造器私有化;2)本类内部创建一组对象;3)对外暴露对象(通过为对象添加public final static修饰符);
2024-04-18 23:44:04
1069
原创 四种内部类
一个类的内部又完整的嵌套了另一个类结构。被嵌套的类称为内部类(inner class),嵌套其他类的类称为外部类(outer class)。是我们类的第五大成员【其他四类为:属性、方法、构造器、代码块】,内部类最大的特点就是可以直接访问私有属性,并且可以体现类与类之间的包含关系。// 基本语法class Outer{ // 外部类class Inner{ // 内部类class Other{ // 外部其他类。
2024-04-17 00:41:22
977
原创 接口interface
接口就是给出一些没有实现的方法,封装到一起,到某个类要使用的时候,再根据具体情况把这些方法写出来。interface 接口名 {// 属性 // 方法(1.抽象方法 2.默认实现方法 3.静态方法) }// 写属性// 写方法// 在接口中,抽象方法可以省略abstract关键字// 在jdk8后,可以有默认实现方法,需要使用default关键字修饰// 在jdk8后,可以有静态方法class 类名 implements 接口{// 自己属性// 自己方法。
2024-03-23 20:38:35
270
原创 抽象类abstract
1) 用abstract关键字来修饰一个类时,这个类就叫抽象类;访问修饰符 abstract 类名{}2) 用abstract关键字来修饰一个方法时,这个方法就是抽象方法访问修饰符 abstract 返回类型 方法名(参数列表);// 没有方法体3) 抽象类的价值更多作用是在于设计,是设计者设计好后,让子类继承并实现抽象类();4) 抽象类,在框架和设计模式使用较多。
2024-03-19 23:03:22
219
原创 final关键字
final 中文意思:最后的,最终的。final 可以修饰类、属性、方法和局部变量。1) 当不希望类被继承时,可以用 final 修饰;// 如果我们要求 A类 不能被其他类继承// 可以使用 final 修饰 A类class B extends A{} // 会报错2) 当不希望父类的某个方法被子类覆盖/重写(override)时,可以用final关键字修饰;class C{// 如果我们要求 hi 不能被子类重写// 可以使用 final 修饰 hi 方法@Override。
2024-03-18 18:33:16
375
原创 单例设计模式
3) 饿汉式存在浪费资源的可能。因为如果程序员一个对象实例都没有使用,那么饿汉式创建的对象就浪费了,懒汉式是使用时才创建,就不存在这个问题。1) 二者最主要的区别在于创建对象的时机不同:饿汉式是在类加载就创建了对象实例,而懒汉式是在使用时才创建;4) 在我们javaSE标准类中,java.lang.Runtime就是经典的单例模式。2) 饿汉式不存在线程安全问题,懒汉式存在线程安全问题;没有使用这个实例但是已经创建了对象。3) 向外暴露一个静态的公共方法;不去使用就不会创建对象。2) 类的内部创建对象;
2024-03-18 17:09:22
356
原创 java代码块
代码化块又称为初始化块,属于类中的成员(即是类的一部分),类似于方法,将逻辑语句封装在方法体中,通过{ }包围起来。但和方法不同,没有方法名,没有返回,没有参数,只有方法体,而且不用通过对象或类显式调用,而是加载类时,或创建对象时隐式调用。
2024-03-18 16:02:56
999
原创 main方法语法
2) 但是,不能直接访问该类中的非静态成员,必须创建该类的一个实例对象后,才能通过这个对象去访问类中的非静态成员;4) 该方法接收 String 类型的数组参数,该数组这保存执行java命令时传递给所运行的类的参数;2) java虚拟机需要调用类的 main() 方法,所以该方法的访问权限必须是 public;3) java虚拟机在执行 main() 方法时不必创建对象,所以该方法必须是 static;1) 在 main() 方法中,我们可以直接调用 main 方法所在类的静态方法或静态属性;
2024-03-17 17:27:06
316
原创 类变量和类方法【静态变量 static】
类变量,也叫静态属性/静态变量,是该类的所有对象共享的变量;1)任何一个该类的对象去访问它时,取到的都是相同的值;2)任何一个该类的对象去修改它时,修改的也是同一个变量。访问修饰符 static 数据类型 变量名;(推荐)static 访问修饰符 数据类型 变量名;
2024-03-05 14:22:56
690
原创 递归(recursion)
递归,就是在运行的过程中调用自己构成递归所具备的条件:1)子问题需要与原问题为同样的事,或者更为简单;2)不能无限制的调用自身,必须有出口。
2024-03-03 20:08:53
429
原创 java中this关键字的使用
方法时,构造器中的属性被作为变量传入了方法,所以导致 year、month、day 全部为。1)this()必须放在第一行;( 所以不可以和 super() 共用 )2)一个构造方法只能调用一个构造方法,即只能存在一个 this()。型作为一个整型变量,默认初始化值为。表明,属性默认没有赋值且类型为。用来在成员方法中调用另一个成员方法。在构造方法中调用本类其他的构造方法。(调用本类中其他构造方法)方法中成员属性没有使用。
2024-03-03 14:35:18
461
原创 方法重写/覆盖(override)
2)子类方法的返回类型和父类返回类型一样,或者是父类返回类型的子类;方法覆盖(重写):子类的一个方法和父类的某个方法的。一样,我们就说子类的这个方法覆盖了父类的方法。3)子类方法不能缩小父类方法的访问权限;,子类 方法返回类型是。
2024-02-25 17:25:16
349
原创 Math.random、Random随机数的生成
Math.random() 方法获取的数据区间为 [0.0 , 1.0) double 型随机数,即 0.0
2024-02-24 03:19:00
3186
原创 继承(extends)
1)子类继承了所有属性和方法,非私有的属性和方法可以在子类直接访问;但是私有属性和方法不能在子类直接访问,要通过父类提供公共的方法去访问;3)当创建子类对象时,不管使用子类的哪个构造器,默认情况下总会去调用父类的无参构造器;10)不能滥用继承,子类和父类之间必须满足 is-a 的逻辑关系。去指定使用父类的哪个构造器完成对父类的初始化工作,否则,编译不会通过;9)子类最多只能继承一个父类(指直接继承),即 java 中是。8)父类构造器的调用不限于直接父类!2)子类必须调用父类的构造器,完成父类的初始化;
2024-02-24 01:47:16
434
原创 封装(encapsulation)
封装就是把抽象的数据[属性]和对数据的操作[方法]封装在一起,数据被保护在内部,程序的其它部分只有通过被授权的操作[方法],才能对数据进行操作。
2024-02-23 01:01:21
352
原创 continue、break、return的区别
作用:终止一个函数或方法的执行并返回值。作用:跳过本次循环,继续接下来的循环。作用:结束整个循环(就近原则)
2024-02-13 17:33:39
238
原创 原码、反码、补码&位运算符
负数的反码 = 它的原码符号位不变,其他位按位取反(0 —>1,1 —>0)。java没有无符号数,换言之,java中的数都是有符号的。二进制的最高位是符号位:0表示正数,1表示负数。正数的原码、反码、补码都一样(三码合一)。负数的反码 = 负数的补码 - 1。负数的补码 = 它的反码 + 1。当我们看运算结果的时候,0的反码,补码都是0。在计算机运算时,都是以。
2024-02-01 13:31:16
168
原创 面向对象(Object Oriented)
封装、继承、多态。封装:告诉我们,如何正确设计对象的属性和方法。封装的原则:对象代表什么,就要封装对应的数据,并提供数据对应的行为。人画圆,画圆方法是属于圆的。而不属于人的。
2023-04-01 19:58:09
841
原创 方法Method
方法的修饰符:暂时都是用public static 修饰。方法申明了具体的返回值类型,内部必须使用return返回对应类型的数据。形参列表可以有多个,甚至可以没有;如果有多个形参,多个形参必须用 ","隔开,且不能给初始化值。
2023-03-30 07:59:20
498
原创 逻辑运算符
可以把多个条件的布尔结果放在一起运算,最终返回一个布尔结果。//需求:长度大于等于10cm,宽度大于等于6cm //注意:必须前后都是ture结果才是ture //需求:要么长度大于等于10cm,要么宽度大于等于6cm //注意:结果只要有一个是true结果就一定是true System . out . println(length >= 10 | width >= 6);true);false);
2023-02-20 16:17:09
168
原创 计算机组成原理——数据的表示和运算②
补码1000 0000唯一的表示-128,在补码中用(-128)代替了(-0),所以补码的表示范围为:共256个;注意:(-128)也有相对应的原码和反码, 它的反码是(11111111)原码仍然是。
2022-08-27 18:19:20
585
原创 计算机组成原理——数据的表示和运算①
2421码:定义权值;5之前的数字第一位数字为0,5以及之后的第一位数字为1。两个数相加可能落在的区间为1010~10010时,需要加。8421码对应的权值分别为: 8 、4、 2、 1。
2022-08-22 16:33:19
879
原创 数据结构——排序 2
数据结构——排序 选择排序简单选择排序堆排序归并排序基数排序选择排序 简单选择排序基本思想: 在待排序的数据中选出最大(小)的元素放在其最终位置。基本操作:首先通过n-1次关键字比较,从n个记录中找出关键字最小的记录,将它与第一个记录交换再通过n-2次比较,从剩余的n-1个记录中找出关键字次小的记录,将它与第二个记录交换重复上述操作,共进行n-1趟排序后,排序结束简单选择排序算法:void SelectSort(SqList &K){ for(i = 1; i< L.
2022-03-02 00:45:04
414
1
原创 数据结构——排序 1
数据结构——排序排序的基本概念排序方法的分类顺序表存储结构插入排序直接插入排序折半插入排序希尔排序交换排序冒泡排序法快速排序排序的基本概念 排序: 将一组杂乱无章的数据按一定规律顺次排列起来,即将无序序列排成一个有序序列(由小到大或由大到小)的运算。如果参加排序的数据结点包含多个数据域,那么排序往往是针对某个域而言。 排序方法的分类按存储介质可分为: 内部排序:数据量不大、数据在内存,无需内外存交换数据 外部排序:数据量较大、数据在外存(文件排序) 外部排序时,要将数据分
2022-03-01 17:08:43
992
原创 数据结构——查找(散列表)
数据结构——查找(散列表)散列表的基本概念散列表的若干术语散列函数的构造方法处理冲突的方法开放定址法线性探测法二次探测法伪随机探测法链地址法散列表的查找散列表的基本概念基本思想:记录的存储位置与关键字之间存在对应关系对应关系——hash函数:Loc(i) = H(keyi) → hash函数例如:根据散列函数 H(key) = k查找 key = 9,则访问H(9) = 9号地址,若内容为9则成功;若查不到,则返回一个特殊值,如空指针或空记录优点:查找效率高缺点:空间效率低散列表的若干
2022-02-27 19:36:28
1521
原创 数据结构——树表的查找(平衡二叉树)
数据结构——树表的查找(平衡二叉树)平衡二叉树平衡二叉树平衡二叉树(balanced binary tree)又称AVL树(Adelson-Velskii and Landis)一棵平衡二叉树或是空树,或者是具有下列性质的二叉排序树: ①左子树和右子树的高度只差的绝对值小于等于1; ②左子树和右子树也是平衡二叉排序树。...
2022-02-26 19:43:36
367
原创 数据结构——树表的查找(二叉排序树)
数据结构——树表的查找树表的查找二叉排序树(Binary Sort Tree)二叉排序树的操作——查找二叉排序树的存储结构二叉排序树的查找分析二叉排序树的插入二叉排序树的生成二叉排序树的删除树表的查找 当表插入、删除操作频繁时,为维护表的有序性,需要移动表中很多记录。 改用动态查找表——几种特殊的树 二叉排序树(Binary Sort Tree)二叉排序树(Binary Sort Tree)又称为二叉搜索树、二叉查找树,定义:二叉排序树或是空树,或是满足如下性质的二叉树:
2022-02-22 23:11:54
1193
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人