package com.sdjt.study.jibenleixing;
/**
* @author:lyy
* @version 创建时间:2009-8-4 下午06:13:11 类说明
*/
public class Test {
public static void main(String[] args) {
short s1 = 1;
// 这一行代码会报编译错误
// s1 = s1 + 1;
// 这一行代码没有报错
s1 = 1 + 1;
// 这一行代码也没有报错
s1 += 1;
}
}
在s1=s1+1;中,s1+1运算的结果是int型,把它赋值给一个short型变量s1,所以会报错;而在s1+=1;中,由于是s1是short类型的,所以1首先被强制转换为short型,然后再参与运算,并且结果也是short类型的,因此不会报错。那么,s1=1+1;为什么不报错呢?这是因为1+1是个编译时可以确定的常量,“+”运算在编译时就被执行了,而不是在程序执行的时候,这个语句的效果等同于s1=2,所以不会报错。前面讲过了,对基本类型执行强制类型转换可能得出错误的结果,因此在使用+=、-=、*=、/=、%=等运算符时,要多加注意。
运算符对基本类型的影响
当使用+、-、*、/、%运算符对基本类型进行运算时,遵循如下规则:
1. 只要两个操作数中有一个是double类型的,另一个将会被转换成double类型,并且结果也是double类型;
2. 否则,只要两个操作数中有一个是float类型的,另一个将会被转换成float类型,并且结果也是float类型;
3. 否则,只要两个操作数中有一个是long类型的,另一个将会被转换成long类型,并且结果也是long类型;
4. 否则,两个操作数(包括byte、short、int、char)都将会被转换成int类型,并且结果也是int类型。
当使用+=、-=、*=、/=、%=、运算符对基本类型进行运算时,遵循如下规则:
• 运算符右边的数值将首先被强制转换成与运算符左边数值相同的类型,然后再执行运算,且运算结果与运算符左边数值类型相同。
当使用“==”运算符在基本类型和其包装类对象之间比较时,遵循如下规则:
1. 只要两个操作数中有一个是基本类型,就是比较它们的数值是否相等。
2. 否则,就是判断这两个对象的内存地址是否相等,即是否是同一个对象。
package com.sdjt.study.jibenleixing;
/**
* @author:lyy
* @version 创建时间:2009-8-4 下午06:18:52 类说明
*/
public class EqualsTest {
public static void main(String[] args) {
// int类型用int类型初始化
int int_int = 0;
// int类型用Integer类型初始化
int int_Integer = new Integer(0);
// Integer类型用Integer类型初始化
Integer Integer_Integer = new Integer(0);
// Integer类型用int类型初始化
Integer Integer_int = 0;
System.out.println("int_int == int_Integer结果是:"
+ (int_int == int_Integer));
System.out.println("Integer_Integer == Integer_int结果是:"
+ (Integer_Integer == Integer_int));
System.out.println();
System.out.println("int_int == Integer_Integer结果是:"
+ (int_int == Integer_Integer));
System.out.println("Integer_Integer == int_int结果是:"
+ (Integer_Integer == int_int));
System.out.println();
// boolean类型用boolean类型初始化
boolean boolean_boolean = true;
// boolean类型用Boolean类型初始化
boolean boolean_Boolean = new Boolean(true);
// Boolean类型用Boolean类型初始化
Boolean Boolean_Boolean = new Boolean(true);
// Boolean类型用boolean类型初始化
Boolean Boolean_boolean = true;
System.out.println("boolean_boolean == boolean_Boolean结果是:"
+ (boolean_boolean == boolean_Boolean));
System.out.println("Boolean_Boolean == Boolean_boolean结果是:"
+ (Boolean_Boolean == Boolean_boolean));
System.out.println();
System.out.println("boolean_boolean == Boolean_Boolean结果是:"
+ (boolean_boolean == Boolean_Boolean));
System.out.println("Boolean_Boolean == boolean_boolean结果是:"
+ (Boolean_Boolean == boolean_boolean));
}
}
结果为:
int_int == int_Integer结果是:true
Integer_Integer == Integer_int结果是:false
int_int == Integer_Integer结果是:true
Integer_Integer == int_int结果是:true
boolean_boolean == boolean_Boolean结果是:true
Boolean_Boolean == Boolean_boolean结果是:false
boolean_boolean == Boolean_Boolean结果是:true
Boolean_Boolean == boolean_boolean结果是:true
分享到:
相关推荐
C语言程序设计各章节习题练习:C语言基本数据类型及运算.doc
**示例题目:** 下列关于基本数据类型的取值范围描述中,正确的是: - A、byte类型范围是-128~128;(错误,byte类型范围是-128~127) - B、boolean类型范围是真或者假;(正确) - C、char类型范围是0~65536;...
C语言基本数据类型及运算题库 本题库涵盖了C语言的基本数据类型和运算符,包括整型、浮点型、字符型等数据类型,以及各种运算符的使用。题目涵盖了赋值语句、数据类型转换、整型运算符、浮点型运算符、逻辑运算符等...
【Java实验二-基本数据类型和数组】 Java是一种面向对象的编程语言,它包含了一些基本的数据类型,如整型(int、byte、short、long)、浮点型(float、double)、字符型(char)和布尔型(boolean)。此外,数组是...
Java是一种广泛使用的面向对象...以上就是从题目中提取的Java基本数据类型和变量相关的知识点,涵盖了标识符规则、保留字、数据类型、变量、溢出、作用域、类型转换等方面的内容。这些知识是理解和编写Java程序的基础。
#### 基本数据结构类型 - **线性结构**:如数组、链表、栈、队列等。 - **非线性结构**:如树(二叉树、多叉树、查找树等)、图等。 #### 数据结构的实现与操作 - **链式存储**:通过指针连接数据元素。 - **顺序...
通过做实验二提供的数据类型题目,初学者将能更好地掌握如何声明、初始化和操作各种数据类型,理解它们在表达式中的行为,以及如何在实际编程情境中应用。 在这个练习中,你可能会遇到诸如计算不同类型数值的大小、...
本文档总结了 Java 数据类型的一些基本概念和实践练习题,涵盖了基本类型、变量定义、常量、运算符、控制流、数组、随机数等多方面的知识点。 一、基本类型 Java 中有八种基本类型:byte、short、int、long、float...
本文档为中南大学数据结构考研题目,涵盖数据结构与算法分析的基础知识,包括抽象数据类型、数据结构、算法分析、线性表、栈、队列、二叉树、树、排序技术、检索技术、索引技术、图等基本概念和操作。本文档还包括...
一、 题目:图的抽象数据类型实现 利用VC++的工作环境实现教材里图的基本抽象数据类型。按照课本的要求运用c语言以及数据结构课程所学的知识,设计合理的数据存储结果,实现图的基本操作。 二、 抽象数据类型定义...
逻辑设计的结果应写出每个抽象数据类型的定义(包括数据结构的描述和每个基本操作的功能说明),各个主要模块的算法,并画出模块之间的调用关系图。 三、详细设计 在详细设计阶段,学生需要定义相应的存储结构并写...
本文将对C语言基本数据类型和运算进行总结和解释,并通过实践题目加深对相关知识点的理解。 一、基本数据类型 在C语言中,基本数据类型包括整型(int)、字符型(char)、浮点型(float)和双精度浮点型(double)...
综上所述,本章主要介绍了C语言中的基本数据类型,如字符型、整型、浮点型,以及相关的运算规则、常数的表示方式、运算符的优先级和结合性,还有逻辑运算和条件表达式的使用。这些基础知识对于理解程序的运行和编写...
在上述的题目中,我们看到了关于Java基本数据类型、运算符、字面量、逻辑运算符、注释、标识符规则以及一些编程实践的问题。下面将详细解释这些知识点: 1. **基本数据类型**:Java有8种基本数据类型,包括4种整型...
这些题目通常涉及基础的数据类型、控制结构(如循环和条件语句)、基本算法(如排序和搜索)等,帮助参赛者建立编程基础。 2. **历届试题**:历年来的蓝桥杯试题是一个宝贵的资源库,可以反映出比赛的难度趋势和...
这个题目考察了学生对C语言中基本数据结构和算法的掌握情况,要求学生能够设计和实现一个基本的数据管理系统。 题目2:学生选课管理系统 这是一个学生选课管理系统的设计与实现题目,要求学生设计和实现一个学生...
* 1001 Exponentiation:这是一个简单的指数运算题目,要求学习者编写一个程序来计算一个数字的幂。 * 1003 Hangover:这是一个简单的字符串处理题目,要求学习者编写一个程序来处理字符串。 搜索题 搜索题是POJ...
此外,还有自定义复杂数据类型类题目,如大数类、多项式类、矩阵类、分数类、复数类和抽象数类。这些题目要求设计新的数据类型,重载运算符,实现特定的数学运算。例如: - **大数类**:使用字符串表示大数,实现与...
1. **基本数据类型**:C语言中的基本数据类型包括整型(int)、字符型(char)、浮点型(float)和双精度浮点型(double)。例如,`'a'`是一个字符常量,`"ABC"`是一个字符串常量,它们在内存中存储的方式不同。 2. **字符...