java数据类型和三大结构

在这里插入图片描述

java可以处理多种数据,比如数字1,字符串“你好”,学生对象,将不同的数据进行分类,分为:
基本数据类型:不可再分的数据,全小写的英文字母,只有8种

  整数: byte(字节)  short(短整型)  int(整型)  long(长整型)
  浮点数:float(单精度)  double(双精度)
  字符:char
  布尔值:boolean  表示真假
  引用类型: 描述实体数据
  数组:相同类型的多个数据
  类  :不同类型的多个数据
  枚举:指定的多个数据

内存

程序运行的第一步需要将数据加载到内存中,提前将内存编址,数据加载时从内存中挑出能够存放下数据的一段空间。
在内存中存储数据开辟内存空间
1)有地址给地址起别名,别名称为变量名
2)有空间大小,由变量类型决定
在此空间中存储的值有范围,通过变量名存取

byte	1字节(8位)	     -128~127  -2^7~2^7-1
short	2字节(16位)	     -32768~32767  -2^15~2^15-1
int	    4字节(32位)	     -2147483648~2147483647  -2^31~2^31-1
long	8字节(64位)	     -2^63~2^63-1
float	4字节            -3.4*10^38~3.4*10^38
double	8字节            -1.7*10^308~1.7*10^308
char	2字节          	 0-65535 0~2^16-1
boolean	1位	             true、false

定义变量:

格式:数据类型 变量名= 变量值;
byte age = 22
在内存中申请1字节的空间,并起名为age,在这段内存中存入22这个值

整型

程序运行期间不可再变,常量不可变
1、整型常量的3中表示形式:

10进制  22
2进制整数,以0b开头,例如0b011 (对应于十进制的3 ) (JDK7.0开始)。 
8进制   使用8进制数直接给变量赋值 ,给8进制数加前缀0   0722  
16进制  使用8进制数直接给变量赋值,给16进制数加前缀0x   0x12f3

8进制 每3位二进制转换为1位8进制
16进制 每4位二进制转换2为1位16进制

java中的整型常量默认为int,可以在常量数的末尾加l或L,将常量改为long类型.

浮点类型

1、常量
默认为double,若需要是float,则在数的末尾加f或F
常量的表示分为10进制和科学计数
10进制: 3.14 314.0 0.314(.314)
科学计数: 3.14e0 3.14e2 3.14e-1

字符类型

char 类型16位unicode字符
1、常量
是用单引号’’括起来的单个字符 ‘A’ ‘我’ ‘9’ ‘+’ 所有可以显示的都可以看作是字符
还包含一些不能显示的字符.
每个字符在内存中都用整数代替
‘a’->97 ‘b’->98 … 小写字母连续
‘A’->65 ‘B’->66 … 大写字母连续
‘0’->48 ‘1’->49 … 0-9字符连续
特殊符号:换行 制表 单引号 双引号 使用转义字符\ 将后面的字符转变为其他含义
‘\n’ 换行 ‘\t’制表符 ‘\r’回车 ‘\’’单引号 ‘\”’双引号 ‘\’ 斜杠

数据类型

Java的数据类型可分为两大类:
1 基本数据类型(8个):byte、short、int、long、double、float、boolean、char

	低—————————————————————————————–>高 
	byte —–> short/char ——-> int ——> long —–> float ——-> double 
	 
	赋值时小的数据类型值可以赋给大的数据类型的变量。
	
	右边给左边赋值,右边可以是常量、变量、表达式,左边只能是变量。
	
	将整型常量int赋值给byte short char时,
	只要不超过byte/short/char的表示范围都可以赋值。
	
	char表示16位的unicode字符,可以使用unicode编码表示字符,
	使用16进制表示 ‘\uxxxx’  比如’\u0061’ 表示‘a’

2 引用数据类型:类、接口、数组、枚举、注解

数据的运算

1)算术运算
1、+ - * 对两个数的运算,得到的结果跟小学的计算方式相同
2、/ 除法 整数的除法截取整数部分,小数除法保证两个操作数至少一个是浮点,结果才为浮点
3、% 取余数 一般对整数取余,对浮点数的取余使用浮点的整数部分取余再加上浮点的小数部分(不要这样写)。
4、++ – 自加,自减 对单个变量进行加1或减1的操作
前加,后加,前减,后减
做为单独的一条语句没有区别 i++; 和++i; 没有区别,结果都是i增加了1
若i++或++i做表达式,参与其他的运算,对其他的运算有影响

	int i = 5;
	int j = 2;
	j=i++;//后加,先取i值参与运算,在对i加1
	System.out.printLn("i = "+i+",j = "+j)
	输出: i = 6 , j = 5 

	int i = 5;
	int j = 2;
	j=++i;//前加,先对i加1,在取i值参与运算
	System.out.printLn("i = "+i+",j = "+j)
	输出: i = 6 , j = 6

运算结果要有类型,参与运算的有多个数,结果类型向大的靠齐,
byte、short、char在运算时先转为int再运算。
int/long/float/double 跟自己相同的类型运算,结果还是int/long/float/double
类型不同的运算,结果向大的靠齐。

运算符的优先级:
1、算术运算(++ – ,*/% , + -)
2、关系运算
3、逻辑运算 (! , && ||)
4、条件运算
5、赋值运算

优先级相同时是自左向右执行,(赋值运算是自右向左执行)

流程控制

代码执行的过程,顺序结构、选择结构、循环结构
顺序结构:按照代码编写的顺序逐行执行,这些行代码都会被执行,且执行一次。
选择结构:按照条件,某些代码可能会被执行一次,某些代码可能一次都不执行。
循环结构:按照条件,某些代码可能会被重复执行多次。
放在方法中编写

选择结构

一、if-else语句
			if(条件布尔类型的表达式){
			      若条件成立需要执行的语句
			}else{
				条件不成立需要执行的语句
			}
			
			1、单个if()
			if(条件){
				语句
			}
			当条件成立则执行语句,否则不执行
			
			2、嵌套的if-else
			if(条件布尔类型的表达式){
			     	if(条件布尔类型的表达式){
			      		若条件成立需要执行的语句
					}else{
						条件不成立需要执行的语句
					}
			}else{
					if(条件布尔类型的表达式){
			      		若条件成立需要执行的语句
					}else{
						条件不成立需要执行的语句
					}
			}

			3、if-else-if
				if(条件布尔类型的表达式){
			      若条件成立需要执行的语句
				}else if(条件布尔类型的表达式{
					条件不成立需要执行的语句
				}else if(条件布尔类型的表达式{
					条件不成立需要执行的语句
				}else{
				}

二、switch-case语句
switch(a){ //a可以是byte,short,char,int     java1.8之后也支持String
	case const1:
		程序片段1
	break;
	case const2 :
		程序片段2
	break;
	default :
		程序片段3
}
执行过程:
先计算表达式的值,选择跟该值相等的一个case(仅比较一次)开始执行,
若没有相等的值结束switch语句,若有default先执行default再结束
一般用于比较计算出的某个值能取若干值中的某一种时,会选择switch-case

使用switch-case语句要注意:
1、switch() 中的类型 byte short char int  java1.8之后也支持String
2、const1/const2… 只能是常量
3、break语句用于结束switch-case
4、case 可以有多个,不限位置,default可选不限位置
5、case后的常量值不能重复

循环结构

反复执行一部分代码
循环分类:
for while do-while三大循环结构
循环中的break和continue
continue:继续,跳过某个循环语句块的一次执行,继续下一次循环
break:跳出当前循环循环

	for: 
	表达式1:循环开始的表达式
	表达式2:循环是否需要继续的表达式, 表达式2结果为true则继续循环,为false则结束循环
	表达式3:使表达式2趋向结束的表达式
	循环体 :反复执行的代码
	for(int i=0;i<10;  i++){
		....	
	}
	
	while:
	int i = 0;
	while(int i <2){
		....
		i++;
	}
	
	do-while:
		int i = 0;
	do{
			i++;
		迭代
	}while(i<2);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值