Java学习

2020/3/17

JAVA定义的数据类型

一、变量按数据类型来分:

基本数据类型:
	整型:byte \ short \ int \long
	浮点型: float\double
	字符型: char
	布尔型: boolean
	
引用数据类型:
	类(class)
	接口(interface)
	数组(array)

二、变量在类中声明的位置:
成员变量 vs 局部变量

1个字节有8,共有pow(2,8)的排列组合
4个字节就有pow(2,4*8)

c

lass VariableTest1{
		public static void main(String[] args)
		{
			//1.整型:byte(1字节=8bit)\short(2字节)\int(4字节)\long(8字节)
			// 1>byte范围:-128 ~ 127
			
			byte b1 = 12;
			byte b2 = -128;
			System.out.println(b1);
			
			
			// 2>声明long型变量,必须以"l"或"L"结尾
			// 3>通常定义整型变量时,使用int型
			short s1 = 128;
			long l1 = 123143432L;
			
			
			//2.浮点型:float(4字节)\double(8字节)
			double d1 = 123.3;
			System.out.println(d1+1);
			
			//定义float类型变量时,变量要以"f"或"F"
			float f1 = 12.3F;
			
			System.out.println(f1);
			
			//通常,定义浮点型变量时,使用double型
			
			
			//3.字符型:char (1字符=2字节)
			// 定义char型变量,通常使用一对''(单引号)
			char c1 = 'a';
			System.out.println(c1);
			
			//表示方式:1.声明一个字符 2.转义字符 3.直接使用Unicode 值来表示字符型常量
			char c5 = '\n';
			System.out.println("hello"+c5);
			System.out.println("world");
			
			char c6='\u0123';//没有对于的字符,显示问号
			System.out.println(c6);
			
			//布尔型: boolean
			// 只能取两个值之一: true ,false
			// 常常在条件判断、循环结构中使用
			boolean bb1 = true;
			System.out.println(bb1);
			
		}
	}
	

/*
基本数据类型之间的运算规则:

前提:这里只讨论7种基本数据类型变量间的运算,不包含boolean类型的

1.自动类型提升:
结论:当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型
byte --> short --> int --> long -->float -->doule
byte、char、short --> int --> long -->float --double

特别的:当byte、char、short三种类型的变量做运算时,结果为int型
说明:此时的容量大小指的是,表示数的范围的大和小,比如,float容量大于long的容量

强制类型转换:自动类型提升运算的逆运算.
1.需要使用强转符:()
2.注意点:强制类型转换,可能导致精度损失

String 类型变量的使用
1.String 属于引用数据类型
2.声明String 类型变量时,使用一对""(双引号)
3.String可以和8种基本数据类型变量做运算,且运算只能是连接运算: +
4.运算的结果仍然是String类型

判断对错

String str1 = 4;  //判断对错:no
String str2 = 3.5f + "";//判断对错:yes 输出"3.5"
System.out.println(3+4+"hello!");	//输出7hello!
System.out.println("hello!"+3+4);	//输出hello!34
System.out.println('a'+1+"hello!");	//输出98hello!;
System.out.println("hello"+'a'+1);	//输出helloa1

练习2 判断能否通过编译

1> short s = 5;
	s = s-2 //no
2> byte b = 3;
	b = b+4;	//no
	b = (byte)(b+4); //yes
3> char c = 'a';
   int i =5;
   float d = .314f;
   double result = c+i+d; //yes
4>byte b =3;
  short s = 3;
  short t = s+b;	//no

计算机中不同进制的使用说明:

对于整数,有四种表示方式:
1>二进制,0b或0B;
2>八进制,以数字0开头表示
3>十进制
4>16进制,以0x或0X表示

class VariableTest2{
	public static void main(String[] args){
		byte b1 = 2;
		int i1 = 12;
		//编译不通过
		//byte b2 = b1+i1;
		int i2 = b1 + i1;
		System.out.println(i2);
		
		float f = b1+i1;
		System.out.println(f);
		
		//*************************
		char c1 = 'a'; //97
		int i3 = 10;
		int i4 = c1+i3;
		System.out.println(i4);
		
		
		short s2 = 10;
		//编译不通过
		//short s3=c1 + s2;
		
		byte b2 = 10;
		//char c3 = c1+b2;//编译不通过
		
		
	}
}


class VariableTest3
{
	public static void main(String[] args)
	{
		double d1 = 12.3;
		int i1 = (int)d1;//截断
		System.out.println(i1);
		
		//编译失败
		//float f1 = 12.3
		
		//整型常量,默认类型为int型
		//浮点型常量,默认类型为double型
		byte b = 12;
		// byte b1 = b+1;//编译失败
		
		//float f1 = b+12.3;//编译失败
		
	
	}
}


class StringTest{
	public static void main(String[] args)
	{
		String s1 = "Hello World!";
		
		System.out.println(s1);
		
		String s2 = "a";
		System.out.println(s2);
		String s3 = "";
		System.out.println(s3);
		
		//char c=''  编译不通过
		
		int number = 1001;
		String numberStr = "学号: ";
		String info = numberStr + number;//+ : 链接运算
		System.out.println(info);
		boolean b1 = true;
		String info1 = info+b1;//+ 连接运算
		System.out.println(info1);
		
		//**************
		//练习1
		char c='a';//97 A65
		int num = 10;
		String str = "hello1";
		
		System.out.println(c+num+str);//107hello1
		System.out.println(c+str+num);//ahello110
		System.out.println(c+(num+str));//a10hello1
		System.out.println((c+num)+str);//107hello1
		System.out.println(str+num+c);//hello110a
		
		
		//练习2
		//*	*
		System.out.println("*	*");//输出 *       *
		System.out.println('*'+'\t'+'*');//输出  93
		System.out.println('*'+"\t"+'*');//输出  *       *
		System.out.println('*'+'\t'+"*");//输出  51*
		System.out.println('*'+('\t'+"*"));//输出  *       *
		
		byte b = 3;
		byte b11 = (byte)(b+3);
		System.out.println(b11);




	}
	
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值