自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java接口comparable使用方法详解

实现了Comparable接口的类可以自定义比较逻辑。@Override这个compareTo方法使用name属性的字符串比较进行排序,而不是使用age属性的数值比较。

2023-10-11 22:06:46 906

原创 Java —StringBuffer与StringBuilder详解

在Java中,String和都是表示字符串的类。它们的用法有所不同,各自适用于不同的场景。

2023-10-09 16:55:21 113

原创 Java中异常处理使用方法详解

非检查异常(Unchecked Exception):这类异常是在运行时出现的异常,即编写程序时不需要处理,但在程序运行过程中可能会发生。- 检查异常(Checked Exception):这类异常是在编译时进行检查的异常,也就是在编写程序时需要用try/catch语句处理或用throws关键字抛出的异常。- try/catch/finally语句:try块包含可能发生异常的代码,catch块用于捕获并处理异常,finally块用于释放资源,无论是否发生异常都会被执行。

2023-10-07 22:09:08 103

原创 Java中基本数据类型包装类

Java中的基本数据类型包装类是为了方便处理基本数据类型而引入的。下面将详细介绍这些包装类的使用方法。在上面的代码中,a和b的值相同且都在缓存范围内,所以它们指向的是同一个对象,因此a == b的结果为true。而c和d的值超出了缓存范围,所以它们指向的是不同的对象,因此c == d的结果为false。总的来说,Java中的基本数据类型包装类可以方便地处理基本数据类型,并且具有丰富的方法和缓存机制。自动装箱指的是将基本数据类型自动转换为对应的包装类对象,拆箱则是将包装类对象自动转换为基本数据类型。

2023-10-06 20:18:32 63

原创 Java数据结构之链表案例详解

链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。每个节点相互连接形成链表,链表的头节点指向链表的第一个节点,尾节点指向链表的最后一个节点。在上面的链表类中,StudentNode是链表的节点类,包含一个学生对象和一个指向下一个节点的指针。如果要删除的节点是头节点,则将头节点改为下一个节点。否则遍历链表找到要删除的节点的前一个节点,将它的指针指向要删除的节点的下一个节点。在add方法中,先判断链表是否为空,如果是,则将第一个节点设置为添加的节点;

2023-09-27 18:58:20 109

原创 Java内部类案例分析

Java内部类,也称为嵌套类,是指在一个类内部定义的类。内部类可以访问外部类的所有成员,包括私有成员。同时,外部类也可以访问内部类的所有成员。内部类主要有以下几种类型:静态内部类、实例内部类、局部内部类和匿名内部类。

2023-09-26 15:49:46 198

原创 Java—适配器设计模式

最后,在AdapterPatternExample类中,创建AdapteeClass实例和AdapterClass实例,然后调用AdapterClass的targetMethod方法,这将调用AdapteeClass的adapteeMethod方法,从而实现了适配器模式。1、当需要使用一个已有的类,但是它的接口不符合你的需求时,可以使用适配器模式来适应该类的接口。2、当需要使用某个类的多个实例,但是这些实例的接口不同,可以使用适配器模式来创建一个通用接口,以便以相同的方式使用所有实例。

2023-09-25 20:17:15 142

原创 继上篇—Java常用设计模式(详解!!)

在Java中,静态代理需要创建一个代理类,代理类实现与原始类相同的接口,通过调用代理类的方法,代理类再调用原始类的方法。这种方式的缺点是需要手动编写代理类,如果原始类的接口发生变化,代理类也需要相应的变化。适配器设计模式是一种结构型设计模式,用于将一个类的接口转换成另一个接口,以便给不兼容的类使用。在Java中,适配器设计模式通常用于将一个类的接口适配另一个接口,或者将一个或多个类的接口适配成另一个类需要的接口。在代理类的方法中,先记录日志,然后调用原始类的对应方法。接口,并包含一个原始类的引用。

2023-09-21 20:23:16 86

原创 Java中两种常用的设计模式详解!

在这个例子中,我们创建一个抽象类`AbstractClass`,包含一个名为`templateMethod`的抽象方法,以及两个普通方法`abstractMethod1`和`abstractMethod2`。在这个例子中,我们创建一个`PersonController`类,包含一个名为`sort`的方法,接受一个`Comparator`对象作为参数,对`Person`对象进行排序。在这个例子中,我们创建一个接口`Comparator`,包含一个名为`compare`的方法。这是子类实现的方法1。

2023-09-19 19:37:35 105

原创 Java—instanceof关键词详解

接着,使用instanceof关键字判断cat和dog对象是否为Animal类的实例,以及animal对象是否为Cat类的实例。最后,还演示了使用instanceof关键字判断对象是否为Object类的实例,因为Object是所有类的基类,所以所有对象都是Object类的实例。在示例代码中,首先定义了Animal、Cat和Dog三个类,其中Cat和Dog都是Animal类的子类。否则,返回false。Java中的instanceof关键词用于判断一个对象是否为一个类的实例或其子类的实例。

2023-09-18 20:02:41 568

原创 Java多态性向上转型与向下转型案例详解

在这个例子中,我们利用多态性轻松地添加了新的动物类型(如Lion、Tiger和Bear),同时确保了Zoo类的`feedAnimal()`方法的灵活性。如果将来需要添加新的动物,我们只需创建一个新的子类,继承Animal类并实现`eat()`方法。比如在这个案例中,每个动物需要人喊一声吃饭才能喂,这是子类特有的方法,父类中没有,这时就需要向下转型。多态性是面向对象编程中的一个重要概念,它为程序带来了很多优点,包括灵活性、可扩展性和可维护性。通过向上转型,我们可以实现多态性,即在运行时调用子类重写的方法。

2023-09-17 17:40:57 284

原创 Java—final关键字详解

final关键字主要用于保护关键部分,防止它们被意外地修改。使用final关键字可以提高代码的可读性和健壮性。

2023-09-16 15:53:29 188

原创 Java案例分析—对象数组

在这个例子中,我们创建了一个Student对象数组,并用new运算符为每个数组元素创建一个Student对象。然后我们遍历数组,并输出每个学生的姓名和年龄。这个例子演示了如何使用对象数组来管理多个对象。对象数组是指数组中每个元素都是对象。在Java中,对象数组可以通过声明一个数组变量,然后使用new运算符为每个数组元素创建一个对象来创建。

2023-09-15 20:31:35 86

原创 Java对象为数组案例分析以及代码块

场景:我们有一个Student类,表示一个学生,包含属性:姓名(name)、年龄(age)和成绩(score)。1. 局部代码块:局部代码块位于方法之内,用于限定变量的生命周期。局部代码块中定义的变量只能在代码块内部访问,退出代码块后,变量将被销毁。3. 静态代码块:静态代码块用`static`关键字修饰,位于类的成员变量和构造代码块之前。2. 构造代码块:构造代码块位于类的成员变量声明之后,构造方法之前。这些代码块的用途和特点各不相同,可以根据实际需求选择在代码中使用合适的代码块。// 这里无法访问a。

2023-09-13 21:53:21 112 1

原创 Java中对象的一对一关系以及static关键字

假设我们有两个类:`Person`(人)和`Passport`(身份证号),每个人都有一个身份证号,而每个身份证号也只属于一个人。关键字用于修饰成员变量和方法,表示属于类级别的成员,而不是属于类实例的成员。内部类时,可以使用类名直接访问,也可以使用实例访问。变量时,可以使用类名直接访问,也可以使用实例访问。方法时,可以使用类名直接调用,也可以使用实例调用。变量属于类,而不是类的实例。修饰的成员属于类本身,而不是属于该类的单个实例。内部类属于类,而不是类的实例。方法属于类,而不是类的实例。

2023-09-12 20:02:32 137

原创 Java基础知识—值传递与引用传递

值传递:方法接收实参的值,修改形参不影响实际参数。适用于基本数据类型和字符串。- 引用传递:方法接收实参的引用,修改形参会影响实际参数。适用于对象类型(数组、类和接口的实例)。

2023-09-11 19:49:13 127

原创 Java面向对象— 包(package)

Java包(package)是Java语言中的一个重要概念,用于组织和管理Java类和接口。Java包使得开发者可以更有效地组织和管理代码,并使代码更易于维护和共享。

2023-09-10 20:49:08 213 1

原创 Java面向对象—枚举

在这个例子中,`name` 成员变量和构造函数都被 private 修饰符修饰,这样可以防止枚举的成员变量和方法被外部类直接访问和修改。同时,提供了一个 public 的 `getName()` 方法,以便在其他类中获取枚举元素的名称。Java 枚举是一个特殊的类,一般表示一组常量,比如一年的 4 个季节,一年的 12 个月份,一个星期的 7 天,方向有东南西北等。在这个例子中,`Season` 枚举类型被 public 修饰符修饰,因此可以在其他类中使用这个枚举类型。例如定义一个颜色的枚举类。

2023-09-09 16:05:49 222 1

原创 Java面向对象— 接口

Java接口是一种规范或者契约,用于定义一组行为(方法)的集合,但并不提供它们的具体实现。它们被用于实现类和客户端之间的解耦,以便在不修改类实现的情况下可以更改系统的功能。

2023-09-08 15:19:10 147 1

原创 Java 面向对象—抽象类与封装

Dog`和`Cat`类都继承自`Animal`,并实现`makeSound`方法,分别返回"Woof!在`main`方法中,我们创建了`Dog`和`Cat`的对象,并调用了`makeSound`方法,输出了相应的声音。接下来,我们定义了两个具体类`Dog`和`Cat`,它们分别继承自`Animal`并实现`makeSound`方法。访问控制修饰符:Java 提供访问控制修饰符如`public`、`protected`、`default`和`private`来控制成员变量和方法的访问权限。

2023-09-07 08:37:36 314 1

原创 Java 面向对象—多态性

在子类实例中调用这个方法时,将执行子类中的实现,而不是父类中的实现。1. 方法重载(Method Overloading):在一个类中,方法名相同,但参数类型或数量不同的方法称为重载方法。3. 接口实现(Interface Implementation):一个接口可以定义多个实现类,每个实现类都可以根据需要实现接口中的方法。具体来说,多态性意味着同一个方法或接口可以在不同类型的对象上执行,并获得不同类型的结果。4. 抽象类和抽象方法:抽象类可以包含抽象方法,抽象方法没有方法体,只需声明方法签名。

2023-09-06 19:32:55 176 1

原创 Java 面向对象—重写(Override)与重载(Overload)

重写和重载都用于实现多态性,但它们的实现方式和应用场景有所不同。重写主要用于子类对父类方法的特定实现,适用于子类和父类之间的继承关系。重载主要用于在同一个类中定义多个功能相似的方法,适用于处理不同类型或个数的参数。下篇将介绍多态性!!新人求关注,若有不足请大神指出😊😊。

2023-09-05 20:11:23 122

原创 Java 面向对象—继承中常用关键字this、super…(继上篇)

当子类继承父类时,如果子类中有与父类相同的方法或变量,可以使用 super 关键字调用父类中的方法或变量。使用 implements 关键字可以变相的使java具有多继承的特性,使用范围为类继承接口的情况,可以同时继承多个接口(接口跟接口之间采用逗号分隔)。在 Java 中,类的继承是单一继承,也就是说,一个子类只能拥有一个父类,所以 extends 只能继承一个类。在上面的代码中,Child 类继承了 Parent 类,并通过 super 关键字调用了父类的构造函数。是用于实现一个接口的关键字。

2023-09-04 20:38:18 270 1

原创 Java面向对象—继承

Java 中的继承还有一些特殊的关键字和概念,比如 super 关键字表示父类的引用,使用 super 可以调用父类的构造方法和方法;继承是指一个类可以从另一个类继承属性和方法,被继承的类称为父类或超类,继承的类称为子类或派生类。现在,`Manager`类不仅具有`Employee`类的所有属性和方法,还具有自己的`salary`属性和相应的getter和setter方法。这个示例展示了如何使用继承创建`Employee`和`Manager`类,并在`Main`类中实例化一个`Manager`对象。

2023-09-03 20:09:31 117

原创 Java基础知识—Arrays工具类

Arrays.binarySearch方法可以在一个已排序的数组中查找指定的值,Arrays类提供了binarySearch()方法来对数组进行二分搜索,该方法需要一个已排序的数组以及要搜索的元素作为参数,返回值为要搜索的元素在数组中的索引,如果没有找到该元素,则返回一个负数。Arrays.copyOf方法可以将一个数组复制到一个新的数组中,Arrays类提供了copyOf()方法来复制数组,该方法可以复制一个指定长度的新数组,如果原数组的长度小于指定长度,则空缺的元素会被填充为默认值。

2023-09-02 15:59:32 246

原创 Java基础知识—数组

type 可以为基本数据类型和复合数据类型,typeLength1 和 typeLength2 必须为正整数,typeLength1 为行数,typeLength2 为列数。下面的语句首先声明了一个数组变量 myList,接着创建了一个包含 10 个 double 类型元素的数组,并且把它的引用赋值给 myList 变量。数组的元素是通过索引访问的。数组的元素类型和数组的大小都是确定的,所以当处理数组元素时候,我们通常使用基本循环或者 For-Each 循环。首先必须声明数组变量,才能在程序中使用数组。

2023-09-01 17:00:08 106 1

原创 Java 循环结构知识 - for, while 及 do...while

如果为false,循环终止,开始执行循环体后面的语句。声明新的局部变量,该变量的类型必须和数组元素的类型匹配。对于 while 语句而言,如果不满足条件,则不能进入循环。while 循环和 while 循环相似,不同的是,do…可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句。只要布尔表达式为 true,循环就会一直执行,直到布尔表达式为假。for循环执行的次数是在执行前就确定的。表达式是要访问的数组名,或者是返回值为数组的方法。循环执行上面的过程。3、执行一次循环后,更新循环控制变量。

2023-08-17 21:31:24 58 1

原创 Java 条件语句 - if...else;分支语句 - switch

switch 语句可以包含一个 default 分支,该分支一般是 switch 语句的最后一个分支(可以在任何位置,但建议在最后一个)。程序跳转到 switch 语句后面的语句执行。如果没有 break 语句出现,程序会继续执行下一条 case 语句,直到出现 break 语句。当变量的值与 case 语句的值相等时,那么 case 语句之后的语句开始执行,直到 break 语句出现才会跳出 switch 语句。每个 case 后面跟一个值和冒号。case 语句中的值的数据类型必须与变量的数据类型相同。

2023-08-13 16:48:16 30 1

原创 Java 基础知识-各类运算符

算术运算符用在数学表达式中,它们的作用和在数学中的作用一样。(在此不做过多解释。先进行自增或者自减运算,再进行表达式运算。先进行表达式运算,再进行自增或者自减运算。此处涉及二进制运算,弱不懂二进制运算,建议先学习二进制。

2023-08-11 17:14:35 19 1

原创 Java-常量知识及基本数据类型转换

必须满足转换前的数据类型的位数要低于转换后的数据类型,例: short数据类型的位数为16位,就可以自动转换位数为32的int类型。由于byte 类型是 8 位,最大值为127,所以当 int 强制转换为 byte 类型时,值 128 就会导致溢出。运算中,不同类型的数据先转化为同一类型,然后进行运算。在 Java 中使用 final 关键字来修饰常量,声明方式:(例)3. 在把容量大的类型转换为容量小的类型时必须使用强制类型转换。常量名也可以用小写,但为了便于识别,通常使用大写字母表示常量。

2023-08-07 17:24:23 55 1

原创 Java-基础知识(语法、变量等)

2、类名:对于所有的类来说,类名的首字母应该大写。如果类名由若干单词组成,那么每个单词的首字母应该大写,例如 MyFirstClass。4、所有的 Java 程序由 public static void main(String[] args) 方法开始执行。3、方法名:所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写。1、大小写:Java 是区分大小写的,Hello 与 hello 是不同的。3、成员变量(非静态变量)5、常量:所有字母大写。2、类变量(静态变量)

2023-08-04 17:19:03 17 1

原创 Java-HelloWorld案列分析及print、printf、println的区别

print和println都是输出,区别就是前者不换行,后者自带换行功能。但是在print中可以加入\n实现换行功能。void:,返回值类型。(后续会补充具体使用方法)。1、print和println。static:表示静态。文档注释 /** */public:公共的。多行注释 /* */

2023-08-03 18:14:59 39

信息论计算信道容量等相关

输出所有信道的信道容量,并观察输出的信道容量与信源转移概率是否与理论值相同或近似; 针对某信道 (1)设定不同的迭代精度值与输出精度值,观察不同的精度下的迭代次数; (2)将代码进行修改,针对每次迭代,输出每个信源符号的半平均互信息和C2,信源概率分布

2024-02-02

计算某英语语句各字母概率、信息量、信源熵、联合概率、损失熵等

找一篇单词数足够的英语作文; 编写打开作文txt语句; 定义相关自变量; 编写语句计算各字母概率、信息量、信源熵、联合概率、损失熵; 输出相应结果。

2024-02-02

空空如也

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

TA关注的人

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