基本语法_数据类型
in Java with 0 comment

基本语法_数据类型

in Java with 0 comment

第二章基本语法_数据类型

关键字和保留字

关键字

保留字

标识符

public class IdentifierTest{
	//变量名、方法名:小驼峰,xxxYyyZzz
	static String userName = "Jon";
	
	//常量名:全大写,XXX_YYY_ZZZ
	static final int USER_ID = 5;
	public static void main(String[] args){
		System.out.println(userName);
		getData();
		System.out.println(USER_ID);
	}
	//变量名、方法名:小驼峰,xxxYyyZzz
	public static void getData(){
		System.out.println("Data");
	}
}

//类名:大驼峰,XxxYyyZzz
class UserTools{
	
}

//由26个字母大小写、0-9、_或$符构成。====编译通过
class A123456_{
	
}

//数字不能开头。====编译失败,第21行,需要标识符
//class 123a{
//	
//}

//不可以使用关键字和保留字,但是可以包含关键字和保留字。====编译失败
//class public{
//	
//}


//不可以使用关键字和保留字,但是可以包含关键字和保留字。====编译通过
class publicAstatic{
	
}


//Java中严格区分大小写,长度无限制。====编译通过
class Static{
	
}

//标识符不能包含空格====编译失败
//class a b{	
//	
//}

变量

变量的概念

变量的格式

public class VarTest{

	public static void main(String[] args){
		//变量的声明与赋值
		int myAge = 18;
		System.out.println(myAge);
		
		//编译错误:myClass还没有声明
		//System.out.println(myClass);
		
		//变量的声明
		int myClass;
		//编译错误:myClass还没有被初始化
		//System.out.println(myClass);
		
		myClass = 1;
		System.out.println(myClass);
		//编译错误:myData作用域不在main方法中。
		//System.out.println(myData);
	}
	
	public void getData(){
		int myData = 19961218;
	}

}

数据类型

数据类型的分类-按数据类型

数据类型的分类-按位置

整形

Java各整数类型有固定的表数范围和字段长度,不收具体OS的影响,以保证java程序的可移植性。

整形分为四种:

public class VarTest1{

	public static void main(String[] args){
		byte b1 = -127;
		byte b2 = 121;
		System.out.println(b1);
		System.out.println(b2);
		
		//编译不通过,超出byte数据范围
		//b2 = 128;
		//System.out.println(b2);
		
		short s1 = 12;
		System.out.println(s1);
		
		int i1 = 1111111;
		System.out.println(i1);
		
		long l1 = 123123123123L;
		System.out.println(l1);
	}
}

浮点型

浮点型分为两种:

public class VarTest2{

	public static void main(String[] args){
		//编译错误,float值后面要加大写或者小写F
		//float f1 = 12.2;
		float f1 = 12.2F;
		System.out.println(f1);
		
		double d1 = 12.22222222222;
		System.out.println(d1);
	}
}

字符类型

char类型数据表示通常意义上的“字符”(两个字节)
字符型变量的三种表现形式:

public class VarTest3{

	public static void main(String[] args){
		//1.表示一个字符,2个字节
		char c1 = 'A';
		char c2 = '2';
		char c3 = '你';
		char c4 = 'タ';
		System.out.println(c1);
		System.out.println(c2);
		System.out.println(c3);
		System.out.println(c4);
		
		//2.转义字符
		char c5 = '\n';
		System.out.println("Hello"+c5+"World");
		
		//3. UniCode编码
		char c6 = '\u0046';
		System.out.print(c6);
	}
}

布尔类型

boolean,两个值,truefalse

public class VarTest4{

	public static void main(String[] args){
		boolean bool = true;
		if(bool){
			System.out.println("已婚");
		}else{
			System.out.println("未婚");
		}

	}
}

基本数据类型转换

前提:这里只讨论基本数据类型的运算。不包括boolean。

自动类型提升

public class VarTest5{

	public static void main(String[] args){
		int i1 = 10;
		byte b1 = 127;
		//编译错误,
		//byte b2 = i1 + b1;
		int i2 = i1 + b1;
		System.out.println(i2);
		
		short s1 = 12;
		//编译错误
		//short s2 = s1 + i1;
		
		long l1 = 1234;
		//编译错误
		//int i3 = i1 + l1;
		long l2 = i1 + l1;
		System.out.println(l2);
		
		float f1 = 12.3f;
		//编译错误
		// long l3 = f1 + l1;
		float f2 = f1 + l1;
		System.out.println(f2);
		
		double d1 = 12.33;
		//编译错误
		//float f3 = d1 +f1;
		double d2 = d1 + f1;
		System.out.println(d2);
		
		char c1 = 'a';//97
		//char 和int做运算
		//编译错误
		//char c2 = c1 +i1;
		int i4 = c1 + i1;
		System.out.println(i4);
		//也就说明char和int做运算,会提升到int,所以插入比int容量小
		
		//char和short作运算
		//会报错,提示int类型
		//char c2 = c1 + s1;
		//short s2 = c1 + s1;
		int i5 = c1 + s1;
		System.out.println(i5);
		//也就是说明char和short作比较会提升到int类型
		
		//char和byte 做运算
		//错误,提示int类型
		//byte b3 = b1 + c1;
		//错误,提示int类型
		//char c3 = b1 + c1;
		int i6 = b1 + c1;
		System.out.println(i6);
		
	}
}

强制类型转换

自动提升的逆运算
注意:强制类型转换可能会损失精度。

public class VarTest6{

	public static void main(String[] args){
		double d1 = 123.999;
		//编译错误
		//int i1 = d1;
		
		int i1 = (int)d1;
		System.out.println(i1);
	}
}

注意

整形常量,默认类型为int类型
浮点型常量,默认类型为double类型

字符串类型String

public class StringTest{

	public static void main(String[] args){
		String s1 = "Hello World";
		System.out.println(s1);
		
		//连接运算
		String firstName = "Gorry";
		String lastName = "Wang";
		int userId = 123;
		String info = firstName + lastName +":"+userId;
		System.out.println(info);
	}
}

练习

/*
Sting练习
*/
public class StringTest2{

	public static void main(String[] args){
		//练习1
		char c1 = 'a';
		int i1 = 10;
		String s1 = "Hello";
		System.out.println(c1+i1+s1);//107Hello
		System.out.println(c1+s1+i1);//aHello10
		
		//练习2
		//打印*	*
		System.out.println("*	*");//ok
		System.out.println('*' + '\t' + '*');//no
		System.out.println('*' + "\t" + '*');//ok
		System.out.println("*" + '\t' + '*');//ok
	}
}

进制

对于整数,有四种表示方式:

public class NumTest{
	public static void main(String[] args){
		int i1 = 123;
		int i2 = 0B101;
		int i3 = 0123;
		int i4 = 0X123;
		System.out.println("num1:"+i1);
		System.out.println("num2:"+i2);
		System.out.println("num3:"+i3);
		System.out.println("num4:"+i4);
	}
}

DAY02问题

  1. 标识符的命名规则有哪些?
  1. 标识符的命名规范有哪些?
  1. Java变量按照数据类型怎么划分?并指出Java的基本类型有哪8种,并指出各自占用的内存空间大小。
  1. 说明基本数据类型变量之间自动提升的运算规则。
  1. 说明基本数据类型之间强制转换的使用规则和墙砖可能出现的问题。