Java基本数据类型和运算符详解

本文实例讲述了Java基本数据类型和运算符。分享给大家供大家参考,具体如下:

基本数据类型

Java 是一种强类型的语言,声明变量时必须指明数据类型。变量(variable)的值占据一定的内存空间。不同类型的变量占据不同的大小。
Java中共有8种基本数据类型,包括4 种整型、2 种浮点型、1 种字符型、1 种布尔型,请见下表。

Java基本数据类型

数据类型 说明 所占内存 举例 备注
byte 字节型 1 byte 3,127  
short 短整型 2 bytes 3,32767  
int 整型 4 bytes 3,21474836  
long 长整型 8 bytes 3L,92233720368L long最后要有一个L字母(大小写无所谓)
float 单精度浮点型 4 bytes 1.2F, 223.56F float最后最好有一个F字母(大小写无所谓)。
double 双精度浮点型 8 bytes 1.2,
1.2D, 223.56, 223.56D
double最后最好有一个D字母(大小写无所谓)。
char 字符型 2 bytes 'a','A' 字符型数据只能是一个字符,由单引号包围。
boolean 布尔型 1 bit true, false  

Java中的数值类型不存在无符号的,它们的取值范围是固定的,不会随着机器硬件环境或者操作系统的改变而改变。实际上, Java中还存在另外一种基本类型void,它也有对应的包装类 java.lang.Void,不过我们无法直接对它们进行操作。对于数值类型的基本类型的取值范围,我们无需强制去记忆,因为它们的值都已经以常量的形式定义在对应的包装类中了。请看下面的例子:

public class PrimitiveTypeTest {
 public static void main(String[] args) {
  // byte
  System.out.println("基本类型:byte 二进制位数:" + Byte.SIZE);
  System.out.println("包装类:java.lang.Byte");
  System.out.println("最小值:Byte.MIN_VALUE=" + Byte.MIN_VALUE);
  System.out.println("最大值:Byte.MAX_VALUE=" + Byte.MAX_VALUE);
  System.out.println(); 

  // short
  System.out.println("基本类型:short 二进制位数:" + Short.SIZE);
  System.out.println("包装类:java.lang.Short");
  System.out.println("最小值:Short.MIN_VALUE=" + Short.MIN_VALUE);
  System.out.println("最大值:Short.MAX_VALUE=" + Short.MAX_VALUE);
  System.out.println(); 

  // int
  System.out.println("基本类型:int 二进制位数:" + Integer.SIZE);
  System.out.println("包装类:java.lang.Integer");
  System.out.println("最小值:Integer.MIN_VALUE=" + Integer.MIN_VALUE);
  System.out.println("最大值:Integer.MAX_VALUE=" + Integer.MAX_VALUE);
  System.out.println(); 

  // long
  System.out.println("基本类型:long 二进制位数:" + Long.SIZE);
  System.out.println("包装类:java.lang.Long");
  System.out.println("最小值:Long.MIN_VALUE=" + Long.MIN_VALUE);
  System.out.println("最大值:Long.MAX_VALUE=" + Long.MAX_VALUE);
  System.out.println(); 

  // float
  System.out.println("基本类型:float 二进制位数:" + Float.SIZE);
  System.out.println("包装类:java.lang.Float");
  System.out.println("最小值:Float.MIN_VALUE=" + Float.MIN_VALUE);
  System.out.println("最大值:Float.MAX_VALUE=" + Float.MAX_VALUE);
  System.out.println(); 

  // double
  System.out.println("基本类型:double 二进制位数:" + Double.SIZE);
  System.out.println("包装类:java.lang.Double");
  System.out.println("最小值:Double.MIN_VALUE=" + Double.MIN_VALUE);
  System.out.println("最大值:Double.MAX_VALUE=" + Double.MAX_VALUE);
  System.out.println(); 

  // char
  System.out.println("基本类型:char 二进制位数:" + Character.SIZE);
  System.out.println("包装类:java.lang.Character");
  // 以数值形式而不是字符形式将Character.MIN_VALUE输出到控制台
  System.out.println("最小值:Character.MIN_VALUE="
    + (int) Character.MIN_VALUE);
  // 以数值形式而不是字符形式将Character.MAX_VALUE输出到控制台
  System.out.println("最大值:Character.MAX_VALUE="
    + (int) Character.MAX_VALUE);
 }
}  

整数型

整数型包括byte、short、int和long。

public class Demo1 {
	public static void main(String[] args) {
		//字面值 默认是int类型
		byte n1 = 12;
		short n2 = 45;
		int n3 = 456;
		long n4 = 67L;// L 或 l
  }
} 

二进制太长可以使用下划线来进行区分

public class Demo1 {
	public static void main(String[] args) {
        int n5 = 0B1010_1111_0011_1100;//二进制用0B或0b表示		        int n6 = 017;//八进制用0表示
		        int n7 = 0xffff;//十六进制用0x或0X表示
		        long n8 = 12345678987654321L;

  }
} 

浮点型

浮点型包括double和float。

注意:1.不要在数量级相差很大的浮点类型之间进行运算。2.避免进行等量的判断

import java.math.*;
public class Demo1 {
	public static void main(String[] args) {
		float f1 = 34.5f;//f 或 F 默认为 double类型
		double d1 = 456.78d;//后缀 d 或 D
		double d2 = 2.4e20;// e或 E 以 10为底
		//浮点型可以表示十六进制,但是必须以科学
		//计数法表示,而且 以 p为底
		double d3 = 0x3.4p20;// p或 P以2
		double d4 = 2.4e20;
		double d5 = d4 + 1;
		double num1 = 0.1;
		double num2 = 0.2;
		double num3 = num1 + num2;//0.3
		//java.lang
		System.out.println(num3 == 0.3);//不一样 输出结果false
		System.out.println(num3);//输出结果 0.30000000000000004
		//处理 java.math包
		BigDecimal number1 = new BigDecimal("0.1");
		BigDecimal number2 = new BigDecimal("0.2");
		System.out.println(number1.add(number2));//输出结果 0.3
	}
}

字符型

char类型

  • char类型是一个单一的 16 位 Unicode 字符;
  • 最小值是 \u0000(即为0);
  • 最大值是 \uffff(即为65,535);
  • char 数据类型可以储存任何字符;
  • 例子:char letter = 'A';。

只能存储一个字符,只能使用单引号

布尔型

布尔(boolean)型包括true和false

引用数据类型

String

public class Demo2 {
	public static void main(String[] args) {
		String name = "郭靖";
		String address = "北京";
		//+ 连接字符串
		System.out.println(name+address);
		int n1 = 1;
		int n2 = 1;
		System.out.println(n1 + n2);//输出结果:2
		// 2 +"郭靖"-》 “2郭靖”
		System.out.println(n1+n2+name);//输出结果:2郭靖
		//"郭靖1"+n2 ->"郭靖11“
		System.out.println(name+n1+n2);//输出结果:郭靖11

	}
} 

基本数据类型转换

自动类型转换

小-》 大
低-》 高

强制类型转换

大-》小
高-》低

语法格式为:(强制转换的数据类型)操作数

int num = (int)45.67;

类型提升原则

前提:运算
结果:采取高类型(范围大的数据类型作为结果)

运算符

分类:根据操作数的个数

一元

二元

三元

算数运算符

public class Demo5 {
	public static void main(String[] args) {

		System.out.println(5 + 2);//输出结果:7
		System.out.println(5 - 2);//输出结果:3
		System.out.println(5 * 2);//输出结果:10
		//------------除法--------------------------
		//除数和被除数都是整数结果会取整数部分
		System.out.println(5 / 2);////输出结果:2

		System.out.println(5.0 / 2);//输出结果:2.5
		System.out.println(5 / 2.0);//输出结果:2.5
		System.out.println(5.0 / 2.0);//输出结果:2.5
		//除数为0 抛出异常
		//System.out.println(5 / 0);
		System.out.println(5.0 / 0);//正无穷大 输出结果:Infinity
		System.out.println(-5.0 / 0);//负无穷大 输出结果:-Infinity
		//非数字NaN
		System.out.println(0.0 / 0);//输出结果:NaN
		//-----------------取余数,取模----------------------------
		System.out.println( 5 % 2);//输出结果:1
		System.out.println(5.0 % 2);//输出结果:1.0
		System.out.println(5 % -2);//输出结果: 1
		System.out.println(-5 % 2);//输出结果:-1,符号看被除数
	 //---------------习题讲解--------------------------------
		/*根据天数(46)计算周数和剩余的天数*/
		int days = 46;
		int week = days / 7;//周
		int day = days % 7;//余数天
		System.out.println(week+"周,余数"+day+"天");

		//----------------------------------------------
		/*
		对于随意输入的一个3位数,
		反转;例如:234反转后
		(将每一个数字反转输出即可):432
		*/
		int num = 234;
		int n1,n2,n3;
		n1 = num % 10;//个位
		n2 = num / 10 % 10;//十位
		n3 = num / 100;//百位
		System.out.println(n1+""+n2+""+n3);//"432"
		System.out.println(n1*100+n2*10+n3);//432

	}
}

关系运算符

逻辑运算符

&& || 短路与和短路或

位运算符

& | 非短路与和非短路或

5 二进制 00000000-00000000-00000000-00000101  

2 二进制 00000000-00000000-00000000-00000010

//&如果相对应位都是1,则结果为1,否则为0
5&2 二进制 00000000-00000000-00000000-00000000

//|如果相对应位都是0,则结果为0,否则为1
5|2 二进制 00000000-00000000-00000000-00000111

//^如果相对应位值相同,则结果为0,否则为1
5^2 二进制 00000000-00000000-00000000-00000000

//~按位补运算符翻转操作数的每一位,即0变成1,1变成0。
~5 二进制 11111111-11111111-11111111-11111010
  减一 11111111-11111111-11111111-11111001
	 取反 00000000-00000000-00000000-00000110

//<<向左移动几位,右边低端位用0补全
5<<2 二进制 00000000-00000000-00000000-00010100

//>>向右移动几位,左边高位是什么用什么补位,是1用1,是0用0
5>>2 二进制 00000000-00000000-00000000-00000001

//>>>无符号右移,左边高位全部用0进行补位
5>>>2二进制 00000000-00000000-00000000-00000001

-6>>>2二进制 00111111-11111111-11111111-11111110

扩展赋值运算符

条件运算符

语法:

比较运算||Boolean?表达式1:表达式2

如果?前的结果是true返回表达式1,如果?前返回false返回表达式2

运算符的优先级

更多java相关内容感兴趣的读者可查看本站专题:《Java面向对象程序设计入门与进阶教程》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。

(0)

相关推荐

  • Java的基本数据类型和运算方法(必看篇)

    编码 ASCII--0~127 65-A 97-a 西欧码表---ISO-8859-1---0-255---1个字节 gb2312----0-65535---gbk---2个字节 Unicode编码体系---utf-8---3个字节 中 f bit位 Byte字节 1Byte = 8bit 1KB=1024B MB GB TB PB---计算机中存储单位 常量 整数常量---所有的整数 3,99,107 小数常量---所有的小数 3.5 100.9 字符常量---用单引号将一个字母.数字.符号标

  • Java中使用异或运算符实现加密字符串

    通过异或运算符号与一个指定的值进行异或运算,从而改变字符串每个字符的值,这样就可以得到加密后的字符串. import java.util.Scanner; public class Encypt { public static void main(String args[]){ Scanner scan = new Scanner(System.in); System.out.println("请输入一个英文字符串或解密字符串:"); String password = scan.ne

  • Java运算符>、>>、>>>三者的区别

    >表示大于,如:if(a>b)...结果是boolean类型 >>表示带符号右移,如:int i=15; i>>2的结果是3,移出的部分将被抛弃. 转为二进制的形式可能更好理解,0000 1111(15)右移2位的结果是0000 0011(3),0001 1010(18)右移3位的结果是0000 0011(3). >>>无符号右移: 按二进制形式把所有的数字向右移动对应巍峨位数,低位移出(舍弃),高位的空位补零.对于正数来说和带符号右移相同,对于负数来

  • Java中的位运算符、移位运算详细介绍

    一.位运算 Java中有4个位运算,它们的运算规则如下: (1)按位与 (&) :两位全为1,结果为1,否则为0: (2)按位或 (|) :两位有一个为1,结果为1,否则为0: (3)按位取反(~):0 变 1, 1变0: (4)按位异或(^):两位,如果相同,结果为0:如果不同,结果为1: 注意: (1)位运算中的 符号位(最高位)也跟着变; (2)位运算符与逻辑运算符(逻辑与&&.逻辑或||.逻辑非! )有点相似.但是,逻辑运算符只能操作boolean变量 (也就是左右两边的值

  • Java的数据类型和参数传递(详解)

    Java提供的数据类型主要分为两大类:基本数据类型和引用数据类型. Java中的基本数据类型 名称 大小 取值范围 byte型 (字节) 8bit -128-127 (-2^7到2^7-1) short型 (短整型) 16bit -2^15到2^15-1 int型 (整形) 32bit -2^31到2^31-1 long型 (长整型) 64bit -2^63到2^63-1 float型 (单精度浮点型) 32bit double型 (双精度浮点型) 64bit char型 (字符型) 16bit

  • Java中的String对象数据类型全面解析

    1. 首先String不属于8种基本数据类型,String是一个对象. 因为对象的默认值是null,所以String的默认值也是null;但它又是一种特殊的对象,有其它对象没有的一些特性. 2. new String()和new String("")都是申明一个新的空字符串,是空串不是null; 3. String str="kvill"; String str=new String ("kvill");的区别: 在这里,我们不谈堆,也不谈栈,只

  • Java 逻辑运算符中&&与&,||与|的区别

    在Java的逻辑运算符中,有这么四类:&&(短路与),&,|,||(短路或). &&和&都是表示与,区别是&&只要第一个条件不满足,后面条件就不再判断.而&要对所有的条件都进行判断. 看下面的程序: public static void main(String[] args) { // TODO Auto-generated method stub if((23!=23)&&(100/0==0)){ System.ou

  • Java数据类型转换详解

    一.基本数据类型阐述 Java语言提供了八种基本类型.六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型. [注]JAVA没有unsigned类型 (1). 整数:int,short,byte,long (2). 浮点型:float,double (3). 字符:char (4). 布尔:boolean 基本型别     大小         最小值            最大值 void boolean     -----         -----             

  • Java instanceof 运算符的使用方法

    用法: (类型变量 instanceof 类|接口) 作用: instanceof 操作符用于判断前面的对象是否是后面的类,或者其子类.实现类的实例.如果是则返回true 否则就返回false. 注意: · instanceof前面的操作数的编译时类型要么与后面的类相同,要么与后面的类具有父子继承关系否则会引发编译错误. 一个简单的例子: 复制代码 代码如下: /** * instanceof 运算符 * @author Administrator * */ public class TestI

  • Java中八种基本数据类型的默认值

    通过一段代码来测试一下 8种基本数据类型的默认值 package dierge; public class Ceshi { int a; double b; boolean c; char d; float f; byte e; long h; short j; public static void main(String args[]){ Ceshi a=new Ceshi(); System.out.println("整型的默认值是:"+a.a); System.out.print

  • 浅析Java中对象的创建与对象的数据类型转换

    Java:对象创建和初始化过程 1.Java中的数据类型     Java中有3个数据类型:基本数据类型(在Java中,boolean.byte.short.int.long.char.float.double这八种是基本数据类型).引用类型和null类型.其中,引用类型包括类类型(含数组).接口类型.     下列语句声明了一些变量: int k ; A a; //a是A数据类型的对象变量名. B b1,b2,-,b10000;// 假定B是抽象类或接口. String s; 注意:从数据类型

随机推荐