JAVA学习笔记2——字符型+布尔变量+类型转换

最近在看JAVA教学的视频,觉得老师讲的很好,同时借用源代码还有笔记来撰写本系列博客,记录自己的学习内容,同时也供看到的人学习。

开始写第二篇了哦~

继上篇介绍完JAVA的数值类型后,我们再来看看字符型(char)和布尔变量(boolean)。

上一篇已经提到过JAVA内部采用的字符集是Unicode字符集,每一个字符占据两个字节的大小,这和C++是不一样的哦,除了正常的各国语言的一个字符外,char类型下还有很多特殊功能的字符,下面的代码片段介绍几种经常见到并且实用的。

//测试char
public class TestCharType {
	public static void main(String[] args){
		char c1 = 'a';
		char c2 = '尚';   //unicode  2: 0-65535
		char c3 = '\n';   //表示换行符
		char c4 = '\'';   //用转义字符来输出单引号
		char c5 = '\t'     //用制表符来拉开固定间距
		System.out.print(c1);
		System.out.print(c3);
		System.out.print(c2);
	
		char c4 = 'a';
		int i = c4 + 2;     //i是99
		char c5 = (char)i;   //强制转型(常用在高级别往低级别转)
		System.out.println(c5);
		//循环打印a-z
		for(int j=0;j<26;j++){
			char temp = (char)(c4+j);
			System.out.print(temp);
		}
		//java里面的字符串,是定义成:String类了。
		String  str = "abcdefghijklmnopqrstuvwxyz";
		System.out.println("\n"+str);
	    
		//boolean类型只有一位
		boolean b = false;   //false
		if(b){    
			System.out.println("true");
		}	
	}
}
好了,介绍完这四种基本数据类型之后,我们看看它们之间的类型转换吧!

JAVA里面的基本数据类型转换分为自动类型转换与强制类型转换,先来看自动类型转换:

JAVA学习笔记2——字符型+布尔变量+类型转换_第1张图片

再开看看强制类型转换:

        JAVA学习笔记2——字符型+布尔变量+类型转换_第2张图片

对比上述两种类型转换我们可以得出结论:JAVA转型的原则是不是编程者的数据丢失精度,所以向着大容量数据类型方向转型的就是自动类型转换,而相比之下,强制类型转换则既有“顺流而下”也有“逆流而上”,最大的不同时不考虑精度是否会丢失而只是规定了一个特定的“目的地”。

下面的代码是相应的实现以及两个小的实践题,大家仔细看看哦:

//测试自动转型和强制转型 
public class TestCast {
	
	public static void main(String[] args){
	/*	
		byte b = 123;
		//byte b2 = 300;    这两个不能转型
		//char c = -3;
		char c2 = 'a';
		int i = c2;
		long d01 = 123213;
		float f = d01;
		
		//测试强制转型
		int i2 = -100;
		char c3 = (char)i2;   //-100超过char的表数范围(0~65535),所以转换成完全不同的值,无意义的值!
		System.out.println(c3);
	*/	
	/*
		//表达式中的类型提升问题
		int a = 3;
		long b = 4;
		double d = 5.3;
		int c = (int)(a+b);   //做所有的二元运算符(+-/*%),都会有类型提升(向容量大的转换)的问题!损失精度的都不会正常进行!
		float f = (float)(a + d);
	*/
	
		int money = 1000000000;  //10亿
		int years = 20;
		long total = money*years;   //注:返回的是负数,因为money和years都是int型,乘完还是int型,已经溢出成为负数,再赋给long型的total也仍然显示为负数!
		long total = (long)money*years; //可以只对money进行转型,然后进行自动转型,便可以正常显示
		long total = (long)(money*years); //这样返回仍然为负数,原因同第一个
		System.out.println(total);
		
		//一个人70年心跳多少次
		long times = 70L*60*24*365*70;      //同理,其中一个数字(最好不要是最后一个数字)转换为long型
		System.out.println(times);
		
		
	}

}



你可能感兴趣的:(JAVA学习)