Day2 数据类型和运算符
基本数据类型
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

运算符的优先级

Day2 数据类型和运算符的更多相关文章
- IOS开发新手教程(一)-数据类型和运算符
		
OC语法入门(一) 数据类型和运算符 1.1凝视 凝视和其它语言一样,同意单行 ,多行凝视,一份规范的代码里面须要有一些正式的凝视,例如以下凝视: /* 这是多行 凝视 */ //这是多行凝视 OC语 ...
 - Java    第二章   变量、数据类型和运算符
		
第二章 变量.数据类型和运算符 什么是变量: 变量代表一块内存区域,变量类型不一样,这一块内存的大小也不一样. #在编程语言里面,你可以通过定义变量,向内存里添加数据或者修改内存已有的数据. ...
 - PostgreSQL自学笔记:5 数据类型和运算符
		
5 数据类型和运算符 5.1 PostgreSQL 数据类型介绍 5.1.1 整数类型 整型类型 字节 取值范围 smallint 2字节 -2^15 ~ 2^15 int integer 4字节 - ...
 - Java1变量数据类型和运算符
		
day02_变量数据类型和运算符 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 public class jh_01_数据类型说明 { public ...
 - Java中的变量,数据类型和运算符
		
变量,数据类型和运算符 1.变量是一个数据存储空间的表示,它是储存数据的基本单元. 如何理解这句话,下面用一个表格可以形象的表达: 变量与房间之间的对应关系 房间名称 变量名 房间类型 变量类型 入住 ...
 - 使用 JavaScript 中的变量、数据类型和运算符,计算出两个 number 类型的变量与一个 string 类型的变量的和,根据 string 类型处于运算符的不同位置得到不同的结果
		
查看本章节 查看作业目录 需求说明: 使用 JavaScript 中的变量.数据类型和运算符,计算出两个 number 类型的变量与一个 string 类型的变量的和,根据 string 类型处于运算 ...
 - 「MoreThanJava」Day2:变量、数据类型和运算符
		
「MoreThanJava」 宣扬的是 「学习,不止 CODE」,本系列 Java 基础教程是自己在结合各方面的知识之后,对 Java 基础的一个总回顾,旨在 「帮助新朋友快速高质量的学习」. 当然 ...
 - JavaScript(二)---- 变量、数据类型和运算符
		
变量 javaScript中的变量变量是弱类型的,用var来声明. javascript的变量声明格式: var 变量名 = 数据; 声明变量要注意的事项: 1. 在javascript中声明变量是 ...
 - 初识java之变量、数据类型和运算符(一)
		
博友目标: 1.掌握变量的概念 2.引子----会使用常用数据类型 众所周知,每台电脑都有一个内存这么个必不可少的元素,那么到底内存到底是用来干什么的呢?其实啊,计算机内存相当于人类的大脑,计算机在处 ...
 
随机推荐
- Spring中的Bean的配置形式
			
Spring中Bean的配置形式有两种,基于XML文件的方式和基于注解的方式. 1.基于XML文件的方式配置Bean <?xml version="1.0" encoding ...
 - 项目小结:手机邮箱正则,URL各种判断返回页面,input输入框输入符合却获取不到问题
			
1.手机邮箱正则 近两年出来很多新号码,听说199什么的都有了- -导致以前的正则不能用了....这就很难过,总是过一段时间出一种新号码.因此,我决定使用返朴归真的手机正则. 手机正则:var reg ...
 - UVAlive6800The Mountain of Gold?(负环)
			
题意 题目链接 问从\(0\)出发能否回到\(0\)且边权为负 Sol 先用某B姓算法找到负环,再判一下负环上的点能否到\(0\) #include<bits/stdc++.h> #def ...
 - js中innerHTML和innerText的用法
			
<div id="test"> <span style="color:red">test1</span> test2 < ...
 - CentOS7系列--5.1CentOS7中配置和管理KVM
			
CentOS7配置和管理KVM 安装与配置虚拟化软件KVM ( Kernel-based Virtual Machine ) + QEMU,它要求计算机的CPU支持Intel VT or AMD-V功 ...
 - Maven + Spring4
			
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
 - WPF 中的OpenFileDialog和 OpenFolderDialog
			
OpenFolderDialog: using (var dialog = new System.Windows.Forms.FolderBrowserDialog() { SelectedPath ...
 - vxworks固件分析
			
前言 vxworks 的固件分析流程 1.用binwalk查看固件基本信息并解压固件 2.获取固件相关信息, cpu架构,大小端 3.确定固件的加载地址 4.用IDA加载固件,并修复符号表 5. 分析 ...
 - ubuntu安装zeromq
			
官网地址:http://zeromq.org/ ubuntu下zmq安装 (1)下载:wget http://download.zeromq.org/zeromq-4.1.4.tar.gz (2)解压 ...
 - Sql Server中的谓词和运算符
			
谓词和运算符配合使用是我们得到理想数据的最佳途径. 一.浅谈谓词 谓词的概念:一个运算结果为True.False或Unknown的逻辑表达式.它的运用范围有:where子句.Having子句.Chec ...
 
			
		