java学习第三章3.基本类型的转换和直接量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java学习第三章3.基本类型的转换和直接量相关的知识,希望对你有一定的参考价值。

基本类型转换

      自动转换:如果系统支持把某种基本类型变量值直接赋给另一种基本类型的变量,则这种方式为直接转换。

            java所有数值类型变量可以互相转换。

public class autoconversion
{
	public static void main (String [] args)
	{
		byte a = 6;

		//byte 类型可以自动转换到int类型。
		int b = a;
		System.out.println(b);

		float c = b;
		System.out.println(c);

		//byte 类型不可以转化为char类型。
		char d =(char) a;
		System.out.println(d);

		//byte类型可以自动转化为double类型
		double e = a;
		System.out.println(e);



	}

}
技术分享

与字符串的运算

          当把任何基本类型的值和字符串链接运算时,基本类型的值会制动转换为字符串类型。

          字符串是引用类型。

          如果希望把基本类型的值转换为对应的字符串时候,可以把基本类型值和一个空字符串链接。

 

public class string
{
	public static void main (String []args)
	{
		//不可以赋值给引用型变量
		//String a = 9;

		//一个基本变量值加上一个字符串时候,基本类型的值会自动转换为字符串变量
		String b = 3.14f + " ";

		//将会输出3.14
		System.out.println(b);

		//下面将会输出7hello
		System.out.println(3+4+"hello");

		//下面将输出hello34
		System.out.println("hello"+3+4);


	}

}

 

  

强制类型转换

         强制类型转换类似于把大瓶子里的水装到小瓶子里。语法格式是(targettype)value.强制类型转换的符号是圆括号().

 

public class nconversion
{
	public static void main(String [] args)
	{
		int a = 200;
	
		//强制把一个int的类型转化为byte类型;
		byte b = (byte) a;
		
		//将输出一个负数
		System.out.println(b);
		
		double c = 3.14;
		//强制把double类型转换为int类型
		int d = (int) c;
		System.out.println(d);	



	}

}

 

  表达式类型自动提升

          当一个算术表达式包含多个基本类型值时候,整个算术表达式的数据类型将发生自动提升。

           1.所有的byte类型,short类型和char类型将被自动提升到int类型。

           2.整个算术表达式的数据结构自动提升到表达式中最高等级操作数的同样类型。

 

/**
*<br>网站:<a href ="https://i.cnblogs.com/EditPosts.aspx?postid=5868502&update=1"> java学习笔记</a>
*Copyright (C),2016-2017,Dean Zhang
*This program is protected by the copyright laws
*program name: promote
*Date:2016-9-14 7:22 am
*@author Zhang
*@version 1.8 */ public class autopromote { //编译将从这里开始,主函数,调用方法; public static void main (String [] args) { //先定义一个byte类型值 byte a = 12; //这里等式右边的a的值将会自动被提升到int类型, //接着将发生错误 //a = a + 11; System.out.println(a); //下面是正确的自动类型提升的计算过程; byte b = 12; char c = ‘c‘; int d = 500; double e = 99.9; //结果应该是double类型的值 e = b+c+d+e; //静静的期待结果 System.out.println(e); //java是强类型语言,严格规定了各种变量的格式,下面将只会得到int类型,体会。。。 System.out.println(28/9);//这里将会输出3,而不是浮点型。 } }
技术分享

  直接量

    直接量的类型:能直接定量的类型通常只有三种:基本类型,字符串类型和null类型。

    java有8中直接量:1.int类型:在程序中直接给出整数类型值,分为二进制,十进制,十六进制,和八进制。

                  二进制以0b或者0B开头,八进制以0开头,十六进制以0x或者0X开头

            2.Long类型值:在整数类型值后添加1或者L后就变成了Long类型的直接量。如3L,0x12L

            3.float类型值:一个浮点数后面添加F或者f就成了float类型直接量,这个浮点数可以是标准小数,也可以是科学计数 5.34f 3.14e5f

            4.double类型:把float的后面跟的f去掉就是double类型。

            5.boolean类型直接量:只有true和false

            6.char类型直接量:char类型直接量有三种形式,分别是单引号括起来的字符.转义字符.和unicode表示的字符。如‘a‘ ‘\r‘ ‘\u0099‘

            7.String类型直接量:用双引号括起来的字符序列就是String类型直接量

            8.null型直接量:这个类型的直接量只有一个,即null

            说明:null类型可以赋值给任意引用类型变量,用来表示这个引用型变量中保存地址为空,即还没有指向任何有效方向。

public class direct
{

	public static void main (String [] args)
	{

		byte a = 2;
		char b = ‘\r‘;
		int c = 89999;
		float d = 3.14f;
		double e = 3.14;
		String f = "波多野结衣";
		

		//java会确保每个字符串常量只有一个,不会产生多个副本s1=s2=s3
		String s1 = "hello";
		String s2 = "hello";
		String s3 ="he"+"llo";
		System.out.println(s1==s2);
		System.out.println(s2==s3);


	}



}

技术分享

  

以上是关于java学习第三章3.基本类型的转换和直接量的主要内容,如果未能解决你的问题,请参考以下文章

3.内存分配逃逸分析与栈上分配直接内存和运行时常量池基本类型的包装类和常量池TLAB可达性分析算法(学习笔记)

(12)awk数据类型和字面量

20165233 Java第三章学习总结

零基础如何学习Java?Java学习路线图

复习第三章多态

Java学习6——基本数据类型及其转换