java数据类型及运算符

1.数据类型:
Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间
1.1数据类型的分类:
基本数据类型
引用数据类型:后面会介绍
下面介绍基本数据类型:四类八种
整数型
byte 占一个字节 -128----127
short 占两个字 -2^15----2^15-1
int 占四个字节 -2^31----2^31-1
long 占八个字节 -2^63----2^63-1
浮点型
float 占四个字节 -3.403E38----3.403E38
double 占八个字节-1.798E308----1.798E308
字符型
char 占两个字节 0----65535
布尔型
boolean
注意:赋值时候注意float类型,long类型
整数给long赋值时,数据后面加L
小数给float赋值时,数据后面加f
如下:
long x = 8888888888L;
float f = 12.3F;
整数默认的数据类型就是int类型
小数默认的数据类型是double

1.2变量的作用域:
就是该变量的有效使用范围
这样将变量分为:
局部变量
全局变量:就是定义在类中方法外的变量
局部变量:就是定义在方法中或方法上的变量

1.3数据类型转换:
分为:
隐式转换
强制转换:强制将范围大的数据类型转为范围小的数据
隐式转换:取值范围小的数据类型与取值范围大的数据类型进行运算,会先将小的数据类型提升为大的,再运算,运算结果是后者

隐式转换:
代码如下看有没问题:
int x = 3;
byte b = 4;
x = x + b;
System.out.println(x);
代码解释如下:
定义一个变量是int类型,赋值3
定义一个变量是byte类型,赋值4
计算两者相加的结果,然后将值赋给int类型x
因为隐式转换,变量b会先提升为int类型,这样运算结果是7(int类型),赋值给int类型的x,没问题
再看看下面代码有没问题:
int x = 3;
byte b = 4;
b = x + b;
System.out.println(b);
运算结果是7(int类型),赋值给byte类型的x,是赋值不了的,有问题,只有范围小的数据类型可以赋值给范围大的数据类型
楼上的代码编译会报错

强制转换:
格式:(数据类型)数据
int x = 3;
byte b = 4;
b = (byte)x + b;
System.out.println(b);
注意:
数据如果超出了被赋值的数据类型的取值范围,得到的结果会出错

下面面试题:
byte b1 = 3;
byte b2 = 4;
byte b3 = b1 + b2;
byte b4 = 3 + 4;
定义b3与b4有没有问题?

在变量的运算过程中,只要是比int类型范围小的数据类型(包括int)之间的运算,运算的时候都会提升为int(因为整数默认的数据类型是int),所以第一个计算结果int类型无法赋值给byte,是错

误的

第二个是常量的运算,java编译器有常量优化机制,就是在编译的时候就把3+4的结果计算出来了,显然7是在byte类型的范围内,所以是没问题的

1.4数据范围比较:
进行混合运算的时候,byte,short,char不会相互转换,都会自动类型提升为int类型,其他类型进行混合运算的是小的数据类型提升为大的
范围比较:
byte,short,char < int < long < float < double

看看下面代码写结果:
float f = 12.3f;
long x = 12345;
f = x;//隐式转换long转float
System.out.println(f);//输出结果:12345.0

float f = 12.3f;
long x = 12345;
x = (long)f;//强制转换
System.out.println(x);//输出结果:12

1.5char类型参与运算:
char类型是可以参与+-运算的,可以在ASCII码表中查到char类型对应的值,然后进行运算
看下面代码:
System.out.println("hello"+‘a‘+1);//结果:helloa1,属于字符串与其它数据类型运算,结果还是字符数
System.out.println(‘a‘+1+"hello");//结果:98hello,a对应97,按顺序运算得结果

2.运算符及常见面试题
2.1看代码写结果:
System.out.println(10 / 3);
//整数相除结果只能是整数
System.out.println(10 / 3.0);
//如果想得到小数,把其中一个数变成小数,另一个数在运算的时候会自动类型提升
System.out.println(-5 % 2);
//%运算符结果的符号只和左边有关系,与右边无关
System.out.println(13 % -5);
结果:
3
3.3333333333333335
-1
3

2.2算术运算符++和--的用法:
单独使用:
int a = 3;
a++;//a = a + 1;
System.out.println(a);
放在操作数的前面和后面效果一样

参与运算:
看下面代码:
int a = 3;
int b;
b = a++;//当++在变量后面的时候,会先将变量中的值取出做赋值操作,然后再自身加1
System.out.println("a = " + a);
System.out.println("b = " + b);
运算结果:
a = 4
b = 3

看下面代码:
int a = 3;
int b;
b = ++a;//当++在变量前面的时候,会先自身加1,然后在将结果赋值
System.out.println("a = " + a);
System.out.println("b = " + b);
运算结果:
a = 4
b = 4

2.3面试题:
byte b = 10;
b++;
b = b + 1;
问哪句会报错,为什么?
b++;实际上等价于b = (byte)(b + 1),没问题
实际上类似于b+=1;这种简写的运算符在内部都会作强制类型转换处理,所以是没问题的
b = b + 1;会报错,上面已经分析过了

原文地址:https://www.cnblogs.com/jaro/p/8998974.html

时间: 2024-11-05 19:45:50

java数据类型及运算符的相关文章

java数据类型及其运算符概述

一丶java概述 1丶java的跨平台性 通过Java语言编写的应用程序在不同的系统平台上都可以运行,只要在需要运行java应用程序的操作系统上,安装一个Java虚拟机(JVM Java Virtual Machine)即可. 2丶JRE与JDK JRE:包括Java虚拟机和Java程序所需的核心类库等,如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可. JDK:JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE. 使用JDK开发完成的java程

Java数据类型与运算符

Java 基本数据类型 Java 的两大数据类型: 内置数据类型 引用数据类型 内置数据类型 Java语言提供了八种基本类型.六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型. byte: byte 数据类型是8位.有符号的,以二进制补码表示的整数: 最小值是 -128(-2^7): 最大值是 127(2^7-1): 默认值是 0: byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一: 例子:byte a = 100

java基础--JDK安装、环境变量配置、工具开发第一个程序、数据类型、运算符

**-----Java基础大纲-----**   **-----本章节-----** 1.Java语言的历史.特点及工作原理 2.JRE和JDK的介绍 3.Java运行环境和开发工具 4.Java基础语法 **-----下一章节-----** 5.条件语句 6.循环 7.数组 ============================================== 一:历史及开发准备 1.Java发展历程及来源 (1)发展历程 1996年1月,Sun公司发布了Java的第一个开发工具包(JD

java基础之数据类型/基本运算符

概述 java语言从1995年sun公司推出发展至今已经有22个年头,现在已经是使用最多的语言之一了.java又是一个比较容易入门的语言,我第一门接触的语言就是java.java发展.java的核心就是面向对象编程,其中多态.继承.封装来体现java的面向对象编程思想,还有java中的集合.流.反射等等.今天我会从最基础的数据类型和基本运算符开始说起:虽然说java的底层是由c去实现的,不过java和c还是有很多的不同也可以相互调用也就是JNI,我们会在以后去说去. 数据类型 在java中的数据

【Java面向对象基础(一)】数据类型与运算符

[喵"的Android之路][基础篇(一)][Java面向对象基础]数据类型与运算符 1.数据类型介绍 在Java中,数据类型分为两种:基本数据类型和引用类型. 基本数据类型共8种,见下表: 基本数据类型 字节数 二进制位数 最小值 最大值 默认值 byte 1 8-bit -2^7 +2^7 - 1 0 short 2 16-bit -2^15 +2^15 - 1 0 int 4 32-bit -2^31 +2^31 - 1 0 long 8 64-bit -2^63 +2^63 - 1 0

Java数据类型(二)、Java运算符、流程控制

一.程序写作(创建对象的初始化过程) 1.目的/结果:输出一段话"..." 2.步骤: (1)创建一个基础类,main: (2)创建一块内存空间,用来存储这段话 ①先定义属性,name,sex,age等: ②再定义方法,需要重新创建新的class类,但不需要新的ma方法: (3)调用系统方法/库方法println,实现输出结果 ①在原有的类中创建新对象,将新的class类中的方法调用过来: ②运行,输出所有的内容. //---------------------------------

JAVA数据类型,变量,转换,常量,运算符

java数据类型: Java基本类型共有八种,基本类型可以分为三类: 1.字符类型char,用单引号赋值 2.布尔类型boolean 3.数值类型byte.short.int.long.float.double.数值类型又可以分为整数类型byte.short.int.long和浮点数类型float(直接赋值时必须在数字后加上f或F).double(赋值时可以加d或D也可以不加). java变量: 数据类型 变量名[=值][,变量名[=值]];int a;int b = 1;int c,d;int

JAVA学习(三):Java基础语法(变量、常量、数据类型、运算符与数据类型转换)

Java基础语法(变量.常量.数据类型.运算符与数据类型转换) 1.变量 Java中,用户可以通过指定数据类型和标识符来声明变量,其基本语法为: DataType identifier; 或 DataType identifier = value; 其中,DataType是变量类型,如int/string/char/double/boolean等:identifier是变量名称,即标识符:value就是声明变量的值. 注: a.标识符由数字0-9.大小写字母.下划线.美元符号.人民币符号以及所有

java中的输入流(Scanner),数据类型,运算符,switch,数组的用法

//java中创建包用package相当于C#的命名空间namespace,java中导入包用import相当于C#中引入命名空间usingimport java.util.*;//导入包,*代表导入java.util包下面的所有类public class Test { /***********Scanner的使用************/// public static void main(String[] args) {//  Scanner input = new Scanner(Syst