JAVA易错点详解(数据类型转换、字符串与运算符)

简介: JAVA易错点详解(数据类型转换、字符串与运算符)

JAVA易错点详解(数据类型转换、字符串与运算符)

前言

文章讲解一些易错题,小伙伴们有任何看不懂的可以评论或私信我,若文章错误,也希望大家能够指出。

一.数据类型转换

1.小类型转换为大类型

2.整数转换为小数,会有误差。

3.字符型会提升为整型在参与计算。

例如byte和short在计算时,会转换为int在参与计算,那么为什么吗?

原来计算机通常把低于四个字节的类型提升为int,再参与计算。

byte a = 10;
byte b = 20;
byte c = (byte)(a+b);//byte型的a与b参与计算后变为8个字节
      //byte型的c只能有一个字节,所以发生了强制类型转换
System.out.println(c);//30

易错:从int转换到byte可能有损失

二、字符串

再java中的类库中提供了一个预定义类,String。

使用方法如下:

String str = "abcd";
或者
String str;
str = "abcd";

易错题

1.字符串的拼接

int a = 10;
int b = 20;
System.out.println("a = "+a +"b = "+b);//a = 10b = 20
System.out.println(a+b);

2.字符串拼接其他为字符串

System.out.println("a + b = "+a+b);//a + b = 1020
System.out.println(a+b+"a + b ");//30a + b 

三、运算符

1、算术运算符中的 /与%

System.out.println(10%0);//编译错误
        System.out.println(11.5%5);//1.5
        System.out.println(10/-2);//-5
        System.out.println(-10/2);//-5
        System.out.println(-10/-2);//5

2.自增运算符

int a  =10;
        a =a++;
        System.out.println(a);//输出结果为10

3.赋值运算符

int a  = 4;
      double d = 5.0;
      a += d;
        //+=操作符来说,会自动转换
      System.out.println(a);

4.关系运算符

在JAVA中的 逻辑非!后面只能跟true或false

int a = 10;
System.out.println(!a);//错误
System.out.println(!false);
System.out.println(!true);
目录
打赏
0
4
4
0
23
分享
相关文章
# 【Java全栈学习笔记-U1-day02】变量+数据类型+运算符
本篇笔记主要围绕Java全栈学习的第二天内容展开,涵盖了变量、数据类型、运算符以及Scanner类的应用。首先介绍了变量的概念与命名规范,以及如何定义和使用变量;接着详细讲解了Java中的基本数据类型,包括整型、浮点型、字符型、布尔型等,并通过实例演示了数据类型的运用。随后,深入探讨了各类运算符(赋值、算术、关系、逻辑)及其优先级,帮助理解表达式的构成。最后,介绍了如何利用Scanner类实现用户输入功能,并通过多个综合示例(如计算圆面积、购物打折、变量交换及银行利息计算)巩固所学知识。完成相关作业将进一步加深对这些基础概念的理解与实践能力。
62 12
Java 字符串详解
本文介绍了 Java 中的三种字符串类型:String、StringBuffer 和 StringBuilder,详细讲解了它们的区别与使用场景。String 是不可变的字符串常量,线程安全但操作效率较低;StringBuffer 是可变的字符串缓冲区,线程安全但性能稍逊;StringBuilder 同样是可变的字符串缓冲区,但非线程安全,性能更高。文章还列举了三者的常用方法,并总结了它们在不同环境下的适用情况及执行速度对比。
134 17
Java字符串缓冲区
字符串缓冲区是用于处理可变字符串的容器,Java中提供了`StringBuffer`和`StringBuilder`两种实现。由于`String`类不可变,当需要频繁修改字符串时,使用缓冲区更高效。`StringBuffer`是一个线程安全的容器,支持动态扩展、任意类型数据转为字符串存储,并提供多种操作方法(如`append`、`insert`、`delete`等)。通过这些方法,可以方便地对字符串进行添加、插入、删除等操作,最终将结果转换为字符串。示例代码展示了如何创建缓冲区对象并调用相关方法完成字符串操作。
92 13
|
3月前
|
理解Java引用数据类型:它们都是对象引用
本文深入探讨了Java中引用数据类型的本质及其相关特性。引用变量存储的是对象的内存地址而非对象本身,类似房子的地址而非房子本身。文章通过实例解析了引用赋值、比较(`==`与`equals()`的区别)以及包装类缓存机制等核心概念。此外,还介绍了Java引用类型的家族,包括类、接口、数组和枚举。理解这些内容有助于开发者避免常见错误,提升对Java内存模型的掌握,为高效编程奠定基础。
152 0
|
4月前
|
课时15:Java运算符(基础数学运算符)
课时15介绍了Java中的基础数学运算符,涵盖加、减、乘、除及自增自减运算。强调了运算符的优先级和使用括号的重要性,并通过范例展示了四则运算与自增自减的具体应用。提醒编写代码时应保持简洁,避免复杂的表达式,确保代码易读性和可维护性。
|
4月前
|
《从头开始学java,一天一个知识点》之:运算符与表达式:算术、比较和逻辑运算
**你是否也经历过这些崩溃瞬间?** - 看了三天教程,连`i++`和`++i`的区别都说不清 - 面试时被追问"`a==b`和`equals()`的区别",大脑突然空白 - 写出的代码总是莫名报NPE,却不知道问题出在哪个运算符 这个系列为你打造Java「速效救心丸」,每天1分钟,地铁通勤、午休间隙即可完成学习。直击高频考点和实际开发中的「坑位」,拒绝冗长概念,每篇都有可运行的代码示例。明日预告:《控制流程:if-else条件语句实战》。
75 6
|
4月前
|
课时17:Java运算符(关系运算符)
范例:进行关系判断。如果要进行关系运算的操作可使用:>、<、>=、<=、!=(不等于)、==。所有的关系运算符判断完成的数据返回结果都是布尔类型(boolean)。只要使用关系运算符进行逻辑判断,最终的结果就是布尔型,只有true和false两种结果,而且能和if语句结合使用。
|
4月前
|
课时16:Java运算符(三目运算符)
范例:将两个变量值在大的内容赋值给新变量。三目是一种赋值运算,它指的是根据条件来进行判断。(根据判断的结果来决定赋值内容)对于三目运算的基本使用语法如下: 数据类型 变量 = 布尔表达式 ?条件满足时赋值内容:条件不满足时:赋值内容
课时19:Java运算符(位运算符)
课时19介绍Java中的位运算符,涵盖进制转换、位与、位或及移位操作。重点讲解了二进制与其他进制的转换方法,通过具体范例演示了位与和位或运算的过程,并展示了八进制和十六进制的处理方式。此外,还解释了逻辑运算符(&&、||)与位运算符(&、|)的区别及其应用场景,特别是位运算在加密中的应用。
|
4月前
|
课时18:Java运算符(逻辑运算符)
课时18介绍了Java中的逻辑运算符(与、或、非)。通过范例详细讲解了非操作的使用,展示了如何正确应用逻辑非(!)。接着分别探讨了与操作(& 和 &&)及或操作(| 和 ||),强调了短路运算符(&& 和 ||)在性能和安全性上的优势。课程通过具体代码示例演示了不同逻辑运算符的效果及其应用场景。
137 5

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等