[双体系练习]Java基础易错点
toCharArray()和split()的区别。
toCharArray() 这个方法将一个字符串转换成一个字符数组。每个字符都会成为数组中的一个元素。
返回值:一个包含字符串中所有字符的char数组
注意,得到的是字符数组
而split()得到一系列子字符串,得到的是字符串数组
& 和 &&
使用“&”操作时,如果第一个条件是false,后续的条件依旧会判断
使用“&&”操作时,如果第一个条件是false,则后续的条件都不再判断
重载和重写
在Java中,方法重载(Overloading)允许在一个类中定义多个同名的方法,但这些方法的参数列表必须不同。以下是方法重载的具体规则:
方法重载(Overloading)的规则:
- 方法名必须相同:重载的方法必须具有相同的名称。
- 参数列表必须不同:重载的方法必须有不同的参数列表。参数列表的不同可以包括参数的数量、类型或顺序的不同。
- 返回值类型可以不同:重载的方法可以有不同的返回值类型,但这不是区分方法重载的主要依据。
- 访问修饰符可以不同:重载的方法可以有不同的访问修饰符(如 public、protected、private),但这也不是区分方法重载的主要依据。
- 异常声明可以不同:重载的方法可以有不同的异常声明,但这也不是区分方法重载的主要依据。
在Java中,方法重写(Overriding)是指子类提供父类中已定义方法的新实现。为了确保方法重写能够正确工作,有一些具体的规则需要遵循。以下是方法重写的规则:
方法重写(Overriding)的规则
- 方法名必须相同:子类中的方法必须与父类中的方法具有相同的名称。
- 参数列表必须相同:子类中的方法必须与父类中的方法具有相同的参数列表。
- 返回类型必须相同或兼容:子类中的方法返回类型必须与父类中的方法返回类型相同,或者是可以协变返回类型(即子类的返回类型可以是父类返回类型的子类型)。
- 访问修饰符不能更严格:子类中的方法访问修饰符不能比父类中的方法更严格。例如,如果父类中的方法是 public,子类中的方法不能是 private 或 protected。
- 异常声明不能更多:子类中的方法抛出的异常类型不能比父类中的方法更多,但可以抛出更少或相同的异常类型。
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 = 6,a = 3 - 执行
c = (++a) * 3后,c = 12,a = 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基础易错点的更多相关文章
- java基础易错点总结(一)
子类继承父类表示子类比他的父类包含更多的信息和方法 子类调用重载的构造方法时会调用父类的构造方法,super();一般如果不写的话会隐式的调用,而且每次调用都在所有语句之前. 在函数中,使用父类的地方 ...
- Java字符串易错方法总结
Java字符串易错方法总结 public String[] split(String regex) 和 public String[] split(String regex,int limit) li ...
- java考试易错题大全
常见的Java问题 1.什么是Java虚拟机?为什么Java被称作是"平台无关的编程语言"? Java虚拟机是一个可以执行Java字节码的虚拟机进程.Java源文件被编译成能被Ja ...
- java数据类型易错点简单总结,欢迎大神前辈补充!谢谢
数据类型那这边看似简单,花了我很长时间也就是才练到几成"功力"吧.还希望路过的大神在下面补充,菜鸟的我深受感谢! 首先看两个思考题 思考题1:请问下面这个有没有问题 double ...
- java基础易混点
1.进制转换由低到高:byte<short(char)<int<long<float<double 2.java八种基本数据类型(存在栈里): 整数类型 byte,s ...
- java中易错点(二)
java,exe是java虚拟机 javadoc.exe用来制作java文档 jdb.exe是java的调试器 javaprof,exe是剖析工具 解析一: sleep是线程类(Thread)的方法, ...
- java中易错点(一)
由于replaceAll方法的第一个参数是一个正则表达式,而"."在正则表达式中表示任何字符,所以会把前面字符串的所有字符都替换成"/".如果想替换的只是&qu ...
- java基础 易忘易混点复习1
原码 反码 补码 原码 正数的原码最高位是0 负数的原码最高位是1 例如:+7 0 0000111 -7 1 0000111 反码 正数的反码与原码相同 负数的反码相比原码 符号位不变,数值位取反 例 ...
- java初级易错问题总结
1.什么是变量?变量的定义格式?要使用变量需要注意什么?就是可变的量数据类型 变量名 = 数值;同一范围内不能重复定义不赋值不能使用 2.Java中的数据类型分几类?基本数据类型有哪些?两大类 ...
- java中易错点
1.A instanceof B{这是没有好好利用java多态的表现} java中的二元操作符,测试A对象是否是B类的实例: 返回值:boolean类型 2.“==”与 “equals”的区别: = ...
随机推荐
- excel江湖异闻录--Klaus
最开始接触数组公式,是偶然在公众号看到"看见星光"大佬的一个提取混合文本中电话号码的公式,记得当时大佬是用vlookup解的这题,当时完全不能理解,mid中第二参数为什么是个row ...
- 墨天轮国产数据库沙龙 | 张玮绚:TDengine,高性能、分布式、支持SQL的时序数据库
分享嘉宾:张玮绚(Wade Zhang)北京涛思数据科技有限公司(TDengine)研发VP 整理:墨天轮 导读 TDengine 是一款高性能.分布式.支持 SQL 的时序数据库,让大量设备.数据采 ...
- 九问 GBase | 如何看待“科技制裁”?如何助力中国数据库国产化落地?
导读: Oracle.SAP.Apple.Google.Github等国际科技巨头纷纷宣布停止在俄罗斯业务,英特尔.AMD.戴尔等科技企业也被曝已中断向俄供货.当全面科技制裁来临,俄罗斯将如何应对此次 ...
- iOS 数据持久化方案-Realm的使用小结
一.Realm介绍 1.1.Realm是一个跨平台移动数据库引擎,支持iOS.OS X(Objective-C和Swift)以及Android,核心数据引擎C++打造,并不是建立在SQLite之上的O ...
- vue-template-admin 模板
1. 替换登录页的样式 2. settings.js 3. layout 文件夹 4. store 文件夹 4.1 app.js
- 什么是 Ajax,Ajax 的原理,Ajax 都有哪些优点和缺点
ajax是异步的js和xml,是一种创建交互式网页的开发技术,是和服务器进行异步通讯的技术 : 核心就是使用XMLHttpRequest向服务器发送请求获取数据 : 优点: 页面不需要刷新,用户体验良 ...
- 带你玩转nginx负载均衡
nginx跨多个应用程序实例的负载平衡是一种用于优化资源利用率,最大化吞吐量,减少延迟和确保容错配置的常用技术. 环境介绍 配置nginx负载均衡器因会用到多台服务器来进行,所以下面我会用到docke ...
- AI五子棋_02_03 Get传输数据 公共密钥
AI五子棋 第二步 恭喜你到达第二步! 警告:如果你是直接使用浏览器获得本页地址的话,请你返回第一步. 在前一步里,你得到的这样的返回结果 {"is_success": true, ...
- Ubuntu安装Edge浏览器,好用的浏览器!!
秉持着简介的原则,我这里把重要的步骤记录下来,减少废话的使用量,大大缩短你们看的时间,好吧.. 步骤 首先,使用以下命令更新您的系统: sudo apt update 然后,使用以下命令安装Micro ...
- 【笔记】 STL容器
[笔记] STL容器 vector vector<int> v; v.push_back(x); v.emplace(x); v.size(); v.erase(v.begin(),v.b ...