首页 > 编程语言 >[双体系练习]Java基础易错点

[双体系练习]Java基础易错点

时间:2024-10-14 19:13:50浏览次数:1  
标签:易错 Java ++ 子类 练习 元音 字符串 重载 方法

toCharArray()和split()的区别。

toCharArray() 这个方法将一个字符串转换成一个字符数组。每个字符都会成为数组中的一个元素。

返回值:一个包含字符串中所有字符的char数组

注意,得到的是字符数组

而split()得到一系列子字符串,得到的是字符串数组

& 和 &&

使用“&”操作时,如果第一个条件是false,后续的条件依旧会判断
使用“&&”操作时,如果第一个条件是false,则后续的条件都不再判断

重载和重写

在Java中,方法重载(Overloading)允许在一个类中定义多个同名的方法,但这些方法的参数列表必须不同。以下是方法重载的具体规则:

方法重载(Overloading)的规则:

  1. 方法名必须相同:重载的方法必须具有相同的名称。
  2. 参数列表必须不同:重载的方法必须有不同的参数列表。参数列表的不同可以包括参数的数量、类型或顺序的不同。
  3. 返回值类型可以不同:重载的方法可以有不同的返回值类型,但这不是区分方法重载的主要依据。
  4. 访问修饰符可以不同:重载的方法可以有不同的访问修饰符(如 public、protected、private),但这也不是区分方法重载的主要依据。
  5. 异常声明可以不同:重载的方法可以有不同的异常声明,但这也不是区分方法重载的主要依据。

在Java中,方法重写(Overriding)是指子类提供父类中已定义方法的新实现。为了确保方法重写能够正确工作,有一些具体的规则需要遵循。以下是方法重写的规则:

方法重写(Overriding)的规则

  1. 方法名必须相同:子类中的方法必须与父类中的方法具有相同的名称。
  2. 参数列表必须相同:子类中的方法必须与父类中的方法具有相同的参数列表。
  3. 返回类型必须相同或兼容:子类中的方法返回类型必须与父类中的方法返回类型相同,或者是可以协变返回类型(即子类的返回类型可以是父类返回类型的子类型)。
  4. 访问修饰符不能更严格:子类中的方法访问修饰符不能比父类中的方法更严格。例如,如果父类中的方法是 public,子类中的方法不能是 private 或 protected。
  5. 异常声明不能更多:子类中的方法抛出的异常类型不能比父类中的方法更多,但可以抛出更少或相同的异常类型。

replaceAll()

在Java中,如果你想通过点号(.)来拆分一个IP地址字符串,直接使用 replaceAll(".") 是不正确的。原因如下:

replaceAll 方法

  • 功能:replaceAll 方法用于替换字符串中所有匹配正则表达式的子字符串。
  • 参数:第一个参数是一个正则表达式,第二个参数是用于替换的字符串。

点号(.)在正则表达式中是一个特殊字符,表示匹配任意单个字符。因此,如果你直接使用 replaceAll(".", something),它会匹配并替换字符串中的每一个字符,而不是只替换点号。

如果你的目标是拆分IP地址字符串,应该使用 split 方法而不是 replaceAll 方法。split 方法可以正确地处理正则表达式中的点号。

如果你尝试使用 replaceAll 方法来替换点号,你需要正确地转义点号:replaceAll("\.", 目标值);

a++ 和 ++a

int a = 2
int b = (a++) * 3
int c = (++a) * 3

明白了,这段代码是在 Java 中编写的。让我们详细分析每一步:

int a = 2;
int b = (a++) * 3;
int c = (++a) * 3;

初始状态

  • a 的初始值为 2

第二行:int b = (a++) * 3;

  • 这里使用了后缀自增运算符 a++
  • 后缀自增运算符会在表达式计算完成后才增加变量的值。
  • 因此,在计算 (a++) * 3 时,a 的值仍然是 2
  • 计算结果为 2 * 3 = 6,所以 b 的值为 6
  • 表达式计算完成后,a 的值增加 1,变为 3

第三行:int c = (++a) * 3;

  • 这里使用了前缀自增运算符 ++a
  • 前缀自增运算符会在表达式计算之前增加变量的值。
  • 因此,在计算 (++a) * 3 时,a 的值先增加 1,变为 4
  • 计算结果为 4 * 3 = 12,所以 c 的值为 12

最终状态

  • a 的最终值为 4
  • b 的值为 6
  • c 的值为 12

总结:

  • 初始时 a = 2
  • 执行 b = (a++) * 3 后,b = 6a = 3
  • 执行 c = (++a) * 3 后,c = 12a = 4

switch中的break

进入分支后,如果没有break,将会继续执行下一个分支的内容

8. 仔细阅读如下代码,选择正确的输出结果。(	C)
    public static void main(String[] args) {
        // 定义一个字符变量
        char ch = 'i';
        // 判断是否为元音字母
        switch(ch) {
            case 'a':
                System.out.print("a是元音字母");
                break;
            case 'e':
                System.out.print("e是元音字母");
                break;
            case 'i':
                System.out.print("i是元音字母");
            case 'o':
                System.out.print("o是元音字母");
                break;
            case 'u':
                System.out.print("u是元音字母");
                break;
            default:
                System.out.print(ch + "不是元音字母");
                break;
        }
    }
A. i是元音字母						B. o是元音字母
C. i是元音字母o是元音字母			D. i不是元音字母

Java中的length和length()的区别

.length没有括号,是属性
.length()有括号,是方法

如果是数组,获取长度,长度是数组的属性,因此使用数组.length
如果是字符串,获取长度,要调用获取长度的方法,因此使用字符串.length()

标签:易错,Java,++,子类,练习,元音,字符串,重载,方法
From: https://www.cnblogs.com/mllt/p/18464566/java-base-err-20241014

相关文章

  • Java高级面试题合集!
    1.Java中的内存管理和垃圾收集机制1.分析问题背景1.1Java的内存管理Java的内存管理主要涉及两个方面:堆内存和栈内存。堆内存用于存储对象实例,而栈内存则用于存储基本数据类型和对象的引用。Java的内存管理自动进行,程序员无需手动分配和释放内存,这大大减少了内存泄漏和内存......
  • 2024最详细的Java八股文合集!
    1、HashMap底层,插入,扩容  前置知识:  二叉树:每个节点至多只有两个子节点的树  搜索二叉树:满足当前节点的左子树上的节点不能大于当前节点,右子树上的节点不能小于当前节点的二叉树  红黑树:一种自平衡的搜索二叉树,能保证遍历,插入,删除的时间复杂度永远是O(logn)  红......
  • java 文件的操作(Path、Paths、Files)
    Path、Paths和Files是JavaNIO(NewI/O)文件处理系统中的核心组件,它们提供了比传统java.io.File更加灵活和高效的文件操作方式。1.概述随着Java7引入NIO.2(即JavaNewI/O2),文件处理得到了显著改进。Path、Paths和Files是NIO.2中用于文件和目录操作的三个关键组件......
  • Java中注解的学习
    元注解目录元注解什么是元注解5种元注解@Retention@Documented@Target@Inherited@Repeatable什么是元注解元注解是用于定义注解的注解(或者说元注解是一种基本注解,它能够应用到其它的注解上面);元注解也是一张标签,但是它是一张特殊的标签,它的作用和目的就是给其他普通的标签进行......
  • 基于HTML+CSS+JavaScript 家具/家居商城类网站
    一、......
  • 基于Java使用SpringBoot+Vue框架实现的前后端分离的美食分享平台
    ✌全网粉丝20W+,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌......
  • Java面试题(持续更新中...)
    事务的四大特性原子性,隔离性,持久性,一致性事务的隔离级别和现象读未提交:可能产生脏读,读取到未提交的数据读已提交:可能产生不可重复读取问题,A事务中读取到B事务已提交的数据,导致两次读取数据不一致可重复读:可能产生幻读问题,A事务中查询到B事务插入的数据,导致两次查询条数不一......
  • 了解 java web并写一个简单的登录功能
    首先我们要知道什么是servlet,它允许开发者创建动态Web内容。Servlet是Java编写的服务器端程序,它扩展了Java的功能,使得它可以在客户端请求时产生动态内容,并且可以与数据库交互。在Java中实现servlet有三种方式:继承HttpServlet抽象类,实现Servlet接口,继承GenericServlet抽......
  • HDLBits 练习题:8位移位寄存器
    HDLBits练习题:8位移位寄存器原题Thisexerciseisanextensionofmodule_shift.Insteadofmoduleportsbeingonlysinglepins,wenowhavemoduleswithvectorsasports,towhichyouwillattachwirevectorsinsteadofplainwires.LikeeverywhereelseinV......
  • javaweb实现下载功能报错sockettimeout
    javaweb压缩zip包下载,并响应头里面指定文件大小在JavaWeb应用程序中,如果你想要创建一个ZIP文件并通过HTTP响应提供下载,并且希望在响应头中指定文件大小,你可以先将文件写入到一个临时的ByteArrayOutputStream中,这样你就可以计算出压缩后的文件大小。然后,你可以将这个字节......