重新开始学Java——java中的基本数据类型和类型转换

在Java中,大体方向上分为两种数据类型:基本数据类型和引用数据类型。 基本数据类型可以分为三类:数值、逻辑、字符。其中数值类型还可以分为两种:整数和小数( 浮点数 ) 。 那么整数来看一下:有 byte、short、int、long 四种,我们用一个例子来看一下。

/**
 * 1、如果在程序中直接写了一个整数,则这个整数会被当作 int 类型来对待
 * 2、各种整数类型的数据 占多大的 内存空间
 * 3、大哥你不要把我写的数当作 int 对待好不好,要当作 long 来对待
 *       在 书写的数字之后 紧跟着 写一个 L 或 l 来表示 是 long 类型,比如:
 *       long o = 2509520000250L ; // 建议用 大写 L
 *       或  
 *       long o = 2509520000250l ;  // 反对用 小写 l
 *      
 */
public class DataType3 {

    public static void main( String[] args ) {

        /* 二进制 : 是 电子计算机 中的基本运算单位 */

        /* byte 占 1 个 字节 ,1 个字节是 8 个二进制位*/
        byte b1 = 5 ;
        System.out.println( b1 );
        byte b2 = 0b00000101 ; // JDK 1.7 开始 允许用 二进制 形式表示整数
        System.out.println( b2 );

        /* short 占 2 个字节 , 16 个二进制位*/
        short s1 = 11 ; 
        System.out.println( s1 );
        short s2 = 0b0000_0000_0000_1011 ; // JDK 1.7 允许用 下划线 来链接不同部分
        System.out.println( s2 );

        /* int 占 4 个字节 , 32 个二进制位*/
        int i = 9527 ; 
        System.out.println( i );

        /* long 占 8 个字节, 64 个二进制位 */
        long o = 2509520000250L ; // 数字后 加上 L 或 l 表示 long 类型
        System.out.println( o );

    }
}

那么小数也是一样的,只不过有两种:double、float 。double也有人叫双精度浮点数,float也有人叫单精度浮点数,一样的道理。用个例子来看一下

/**
 *  1、如果在程序中直接写了一个 带小数 的数值,它会被当作 double 类型对待
 *  2、在 浮点数值 之后 加上 F 或 f 来表示 float 的值,比如
 *        float  f = 5.28F ;
 */

public class DataType4 {

    public static void main( String[] args ) {

        /* double 占 8 个 字节 , 64 个二进制位*/
        double pi = 3.1415926 ;
        System.out.println( pi );

        /* float 占 4 个 字节 , 32 个二进制位*/
        float f = 5.28F ;
        System.out.println( f );

    }

}

那么对于char类型有什么需要关注的呢?

/**
 * 1、所有的 字符值 必须使用 单引号 包起来
 * 2、在两个 单引号 之间 不能没有任何东西
 * 3、除了 用 unicode 方式 和 转义字符 来表示字符外,
 *      两个 单引号 中间 只能有一个 字符
 *      
 * 4、Java 语言内部采用 Unicode 编码 ,因此 严格区分大小写
 */
public class DataType6 {

    public static void main( String[] args ) {

        char ch1 = 'a' ;
        System.out.println( ch1 );

        char ch2 = '汉' ;
        System.out.println( ch2 );

        // Java 语言内部采用 Unicode 编码 ,这套编码中 '麻' 字对应的就是 40635 这个数字
        char ch3 = '\u9ebb' ; // 0x9ebb <--->  40635
        System.out.println( ch3 );

        char ch4 =  '\u8fa3' ; // 0x8fa3  <---->   36771
        System.out.println( ch4 );

        char ch5 = '\n' ; // 转义字符 \n 表示换行
        System.out.println( ch5 );
        System.out.println( "-------" );

    }

}

逻辑类型就有一个,名字叫 boolean ,只能表示真或假。

public class DataType7 {

    public static void main( String[] args ) {

        // 将 true 赋值 给 b1 这个变量
        boolean b1 = true ; // 真
        System.out.println( b1 );

        boolean b2 = false ; // 假
        System.out.println( b2 );
        /* = 在 Java 中只用来做 赋值 操作 */
        int a = 100 ; 
        int b = 200 ;

        // 用 a 和 b 进行比较,如果 a 小于 b 则 输出 true 
        System.out.println( a < b );

        /* 如果在 Java 语言中比较两个变量 ,可以使用 == 运算符 */
        // 用 a 和 b 进行比较,如果 a 等于 b 则 输出 true
        System.out.println( a == b );

        System.out.println( a > b );

    }

}

类型转换: 在类型转换中,有两种:自动类型转换和强制类型转换。 自动类型转换:如果系统支持把某个基本类型的值直接赋给另一种基本类型的变量,则称这种方式为自动类型转换。自动类型转换,总是可以发生在从小到大的变化中。

以上就是自动转换的规则。

强制类型转换 : 强制类型转换的语法是 (TargetType)value; 强制类型转换会导致数据” 部分丢失”,因此也称这种转换为缩小转换(Narrow Conversion)。

例:double d = 3.14 ;int i = (int) d ; 
TargetType target = (TargetType)value ; 

但是有时候,强制类型转换的话,可能会发生数据丢失的情况,就比如你要把你家的缸中的水倒入一个杯子中,明显放不下,这时候就会舍弃一部分水,这种情况我们称之为数据丢失。

最后,总结一下(分别说明有什么,占几个字节,最大是多少) :

	基本数据类型 :
		整数类型 :
			byte :1B = 8bit , -128 ~ 127
			short: 2B , -2的15次方 ~ 2的15次方-1
			int : 4B , -2的31次方 ~ 2的31次方-1
			long: 8B , -2的63次方 ~ 2的63次方-1
		小数类型 ( 最大值与最小值就不书写了):
			float : 4B 
			double :8B
		逻辑类型 :
			boolean : 1bit ( 因为有点小,所以在计算机中通常是1B来显示)
		字符类型 :
			char : 2B

转载于:https://my.oschina.net/lujiapeng/blog/2246241

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值