Java基础
文章平均质量分 60
每天坚持学习
。。
展开
-
Java接口comparable使用方法详解
实现了Comparable接口的类可以自定义比较逻辑。@Override这个compareTo方法使用name属性的字符串比较进行排序,而不是使用age属性的数值比较。原创 2023-10-11 22:06:46 · 995 阅读 · 0 评论 -
Java —StringBuffer与StringBuilder详解
在Java中,String和都是表示字符串的类。它们的用法有所不同,各自适用于不同的场景。原创 2023-10-09 16:55:21 · 145 阅读 · 0 评论 -
Java中异常处理使用方法详解
非检查异常(Unchecked Exception):这类异常是在运行时出现的异常,即编写程序时不需要处理,但在程序运行过程中可能会发生。- 检查异常(Checked Exception):这类异常是在编译时进行检查的异常,也就是在编写程序时需要用try/catch语句处理或用throws关键字抛出的异常。- try/catch/finally语句:try块包含可能发生异常的代码,catch块用于捕获并处理异常,finally块用于释放资源,无论是否发生异常都会被执行。原创 2023-10-07 22:09:08 · 128 阅读 · 0 评论 -
Java中基本数据类型包装类
Java中的基本数据类型包装类是为了方便处理基本数据类型而引入的。下面将详细介绍这些包装类的使用方法。在上面的代码中,a和b的值相同且都在缓存范围内,所以它们指向的是同一个对象,因此a == b的结果为true。而c和d的值超出了缓存范围,所以它们指向的是不同的对象,因此c == d的结果为false。总的来说,Java中的基本数据类型包装类可以方便地处理基本数据类型,并且具有丰富的方法和缓存机制。自动装箱指的是将基本数据类型自动转换为对应的包装类对象,拆箱则是将包装类对象自动转换为基本数据类型。原创 2023-10-06 20:18:32 · 87 阅读 · 0 评论 -
Java内部类案例分析
Java内部类,也称为嵌套类,是指在一个类内部定义的类。内部类可以访问外部类的所有成员,包括私有成员。同时,外部类也可以访问内部类的所有成员。内部类主要有以下几种类型:静态内部类、实例内部类、局部内部类和匿名内部类。原创 2023-09-26 15:49:46 · 241 阅读 · 0 评论 -
Java—适配器设计模式
最后,在AdapterPatternExample类中,创建AdapteeClass实例和AdapterClass实例,然后调用AdapterClass的targetMethod方法,这将调用AdapteeClass的adapteeMethod方法,从而实现了适配器模式。1、当需要使用一个已有的类,但是它的接口不符合你的需求时,可以使用适配器模式来适应该类的接口。2、当需要使用某个类的多个实例,但是这些实例的接口不同,可以使用适配器模式来创建一个通用接口,以便以相同的方式使用所有实例。原创 2023-09-25 20:17:15 · 160 阅读 · 0 评论 -
继上篇—Java常用设计模式(详解!!)
在Java中,静态代理需要创建一个代理类,代理类实现与原始类相同的接口,通过调用代理类的方法,代理类再调用原始类的方法。这种方式的缺点是需要手动编写代理类,如果原始类的接口发生变化,代理类也需要相应的变化。适配器设计模式是一种结构型设计模式,用于将一个类的接口转换成另一个接口,以便给不兼容的类使用。在Java中,适配器设计模式通常用于将一个类的接口适配另一个接口,或者将一个或多个类的接口适配成另一个类需要的接口。在代理类的方法中,先记录日志,然后调用原始类的对应方法。接口,并包含一个原始类的引用。原创 2023-09-21 20:23:16 · 148 阅读 · 0 评论 -
Java中两种常用的设计模式详解!
在这个例子中,我们创建一个抽象类`AbstractClass`,包含一个名为`templateMethod`的抽象方法,以及两个普通方法`abstractMethod1`和`abstractMethod2`。在这个例子中,我们创建一个`PersonController`类,包含一个名为`sort`的方法,接受一个`Comparator`对象作为参数,对`Person`对象进行排序。在这个例子中,我们创建一个接口`Comparator`,包含一个名为`compare`的方法。这是子类实现的方法1。原创 2023-09-19 19:37:35 · 141 阅读 · 0 评论 -
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 · 611 阅读 · 0 评论 -
Java多态性向上转型与向下转型案例详解
在这个例子中,我们利用多态性轻松地添加了新的动物类型(如Lion、Tiger和Bear),同时确保了Zoo类的`feedAnimal()`方法的灵活性。如果将来需要添加新的动物,我们只需创建一个新的子类,继承Animal类并实现`eat()`方法。比如在这个案例中,每个动物需要人喊一声吃饭才能喂,这是子类特有的方法,父类中没有,这时就需要向下转型。多态性是面向对象编程中的一个重要概念,它为程序带来了很多优点,包括灵活性、可扩展性和可维护性。通过向上转型,我们可以实现多态性,即在运行时调用子类重写的方法。原创 2023-09-17 17:40:57 · 327 阅读 · 0 评论 -
Java案例分析—对象数组
在这个例子中,我们创建了一个Student对象数组,并用new运算符为每个数组元素创建一个Student对象。然后我们遍历数组,并输出每个学生的姓名和年龄。这个例子演示了如何使用对象数组来管理多个对象。对象数组是指数组中每个元素都是对象。在Java中,对象数组可以通过声明一个数组变量,然后使用new运算符为每个数组元素创建一个对象来创建。原创 2023-09-15 20:31:35 · 107 阅读 · 0 评论 -
Java对象为数组案例分析以及代码块
场景:我们有一个Student类,表示一个学生,包含属性:姓名(name)、年龄(age)和成绩(score)。1. 局部代码块:局部代码块位于方法之内,用于限定变量的生命周期。局部代码块中定义的变量只能在代码块内部访问,退出代码块后,变量将被销毁。3. 静态代码块:静态代码块用`static`关键字修饰,位于类的成员变量和构造代码块之前。2. 构造代码块:构造代码块位于类的成员变量声明之后,构造方法之前。这些代码块的用途和特点各不相同,可以根据实际需求选择在代码中使用合适的代码块。// 这里无法访问a。原创 2023-09-13 21:53:21 · 181 阅读 · 1 评论 -
Java中对象的一对一关系以及static关键字
假设我们有两个类:`Person`(人)和`Passport`(身份证号),每个人都有一个身份证号,而每个身份证号也只属于一个人。关键字用于修饰成员变量和方法,表示属于类级别的成员,而不是属于类实例的成员。内部类时,可以使用类名直接访问,也可以使用实例访问。变量时,可以使用类名直接访问,也可以使用实例访问。方法时,可以使用类名直接调用,也可以使用实例调用。变量属于类,而不是类的实例。修饰的成员属于类本身,而不是属于该类的单个实例。内部类属于类,而不是类的实例。方法属于类,而不是类的实例。原创 2023-09-12 20:02:32 · 174 阅读 · 0 评论 -
Java基础知识—值传递与引用传递
值传递:方法接收实参的值,修改形参不影响实际参数。适用于基本数据类型和字符串。- 引用传递:方法接收实参的引用,修改形参会影响实际参数。适用于对象类型(数组、类和接口的实例)。原创 2023-09-11 19:49:13 · 148 阅读 · 0 评论 -
Java面向对象—枚举
在这个例子中,`name` 成员变量和构造函数都被 private 修饰符修饰,这样可以防止枚举的成员变量和方法被外部类直接访问和修改。同时,提供了一个 public 的 `getName()` 方法,以便在其他类中获取枚举元素的名称。Java 枚举是一个特殊的类,一般表示一组常量,比如一年的 4 个季节,一年的 12 个月份,一个星期的 7 天,方向有东南西北等。在这个例子中,`Season` 枚举类型被 public 修饰符修饰,因此可以在其他类中使用这个枚举类型。例如定义一个颜色的枚举类。原创 2023-09-09 16:05:49 · 277 阅读 · 1 评论 -
Java面向对象— 接口
Java接口是一种规范或者契约,用于定义一组行为(方法)的集合,但并不提供它们的具体实现。它们被用于实现类和客户端之间的解耦,以便在不修改类实现的情况下可以更改系统的功能。原创 2023-09-08 15:19:10 · 199 阅读 · 1 评论 -
Java 面向对象—多态性
在子类实例中调用这个方法时,将执行子类中的实现,而不是父类中的实现。1. 方法重载(Method Overloading):在一个类中,方法名相同,但参数类型或数量不同的方法称为重载方法。3. 接口实现(Interface Implementation):一个接口可以定义多个实现类,每个实现类都可以根据需要实现接口中的方法。具体来说,多态性意味着同一个方法或接口可以在不同类型的对象上执行,并获得不同类型的结果。4. 抽象类和抽象方法:抽象类可以包含抽象方法,抽象方法没有方法体,只需声明方法签名。原创 2023-09-06 19:32:55 · 194 阅读 · 1 评论 -
Java 面向对象—重写(Override)与重载(Overload)
重写和重载都用于实现多态性,但它们的实现方式和应用场景有所不同。重写主要用于子类对父类方法的特定实现,适用于子类和父类之间的继承关系。重载主要用于在同一个类中定义多个功能相似的方法,适用于处理不同类型或个数的参数。下篇将介绍多态性!!新人求关注,若有不足请大神指出😊😊。原创 2023-09-05 20:11:23 · 145 阅读 · 0 评论 -
Java 面向对象—继承中常用关键字this、super…(继上篇)
当子类继承父类时,如果子类中有与父类相同的方法或变量,可以使用 super 关键字调用父类中的方法或变量。使用 implements 关键字可以变相的使java具有多继承的特性,使用范围为类继承接口的情况,可以同时继承多个接口(接口跟接口之间采用逗号分隔)。在 Java 中,类的继承是单一继承,也就是说,一个子类只能拥有一个父类,所以 extends 只能继承一个类。在上面的代码中,Child 类继承了 Parent 类,并通过 super 关键字调用了父类的构造函数。是用于实现一个接口的关键字。原创 2023-09-04 20:38:18 · 304 阅读 · 1 评论 -
Java面向对象—继承
Java 中的继承还有一些特殊的关键字和概念,比如 super 关键字表示父类的引用,使用 super 可以调用父类的构造方法和方法;继承是指一个类可以从另一个类继承属性和方法,被继承的类称为父类或超类,继承的类称为子类或派生类。现在,`Manager`类不仅具有`Employee`类的所有属性和方法,还具有自己的`salary`属性和相应的getter和setter方法。这个示例展示了如何使用继承创建`Employee`和`Manager`类,并在`Main`类中实例化一个`Manager`对象。原创 2023-09-03 20:09:31 · 132 阅读 · 0 评论 -
Java基础知识—Arrays工具类
Arrays.binarySearch方法可以在一个已排序的数组中查找指定的值,Arrays类提供了binarySearch()方法来对数组进行二分搜索,该方法需要一个已排序的数组以及要搜索的元素作为参数,返回值为要搜索的元素在数组中的索引,如果没有找到该元素,则返回一个负数。Arrays.copyOf方法可以将一个数组复制到一个新的数组中,Arrays类提供了copyOf()方法来复制数组,该方法可以复制一个指定长度的新数组,如果原数组的长度小于指定长度,则空缺的元素会被填充为默认值。原创 2023-09-02 15:59:32 · 270 阅读 · 0 评论 -
Java基础知识—数组
type 可以为基本数据类型和复合数据类型,typeLength1 和 typeLength2 必须为正整数,typeLength1 为行数,typeLength2 为列数。下面的语句首先声明了一个数组变量 myList,接着创建了一个包含 10 个 double 类型元素的数组,并且把它的引用赋值给 myList 变量。数组的元素是通过索引访问的。数组的元素类型和数组的大小都是确定的,所以当处理数组元素时候,我们通常使用基本循环或者 For-Each 循环。首先必须声明数组变量,才能在程序中使用数组。原创 2023-09-01 17:00:08 · 119 阅读 · 1 评论 -
Java 条件语句 - if...else;分支语句 - switch
switch 语句可以包含一个 default 分支,该分支一般是 switch 语句的最后一个分支(可以在任何位置,但建议在最后一个)。程序跳转到 switch 语句后面的语句执行。如果没有 break 语句出现,程序会继续执行下一条 case 语句,直到出现 break 语句。当变量的值与 case 语句的值相等时,那么 case 语句之后的语句开始执行,直到 break 语句出现才会跳出 switch 语句。每个 case 后面跟一个值和冒号。case 语句中的值的数据类型必须与变量的数据类型相同。原创 2023-08-13 16:48:16 · 47 阅读 · 1 评论 -
Java 基础知识-各类运算符
算术运算符用在数学表达式中,它们的作用和在数学中的作用一样。(在此不做过多解释。先进行自增或者自减运算,再进行表达式运算。先进行表达式运算,再进行自增或者自减运算。此处涉及二进制运算,弱不懂二进制运算,建议先学习二进制。原创 2023-08-11 17:14:35 · 33 阅读 · 1 评论 -
Java-常量知识及基本数据类型转换
必须满足转换前的数据类型的位数要低于转换后的数据类型,例: short数据类型的位数为16位,就可以自动转换位数为32的int类型。由于byte 类型是 8 位,最大值为127,所以当 int 强制转换为 byte 类型时,值 128 就会导致溢出。运算中,不同类型的数据先转化为同一类型,然后进行运算。在 Java 中使用 final 关键字来修饰常量,声明方式:(例)3. 在把容量大的类型转换为容量小的类型时必须使用强制类型转换。常量名也可以用小写,但为了便于识别,通常使用大写字母表示常量。原创 2023-08-07 17:24:23 · 73 阅读 · 1 评论 -
Java-HelloWorld案列分析及print、printf、println的区别
print和println都是输出,区别就是前者不换行,后者自带换行功能。但是在print中可以加入\n实现换行功能。void:,返回值类型。(后续会补充具体使用方法)。1、print和println。static:表示静态。文档注释 /** */public:公共的。多行注释 /* */原创 2023-08-03 18:14:59 · 55 阅读 · 0 评论