zoukankan      html  css  js  c++  java
  • java数据类型和变量

    炎炎夏日。有时间记得去找房东拿空调遥控器。

    java数据类型分类:

    一、基本数类型和引用数据类型。

    基本数据类型:整型(short,int,long),字符型(char),浮点型(float,double),布尔型(boolean):

    四类八种基本数据类型:

      

     其中字节与字符的关系:

        1.位(bit)  数据存储的最小单位。每个二进制数字0或者1就是1个位;如 0000 0000  即8位 (8 bit);

         2.字节(byte)8个位构成一个字节;即:1 byte (字节)= 8 bit(位);

        3.字符(char) 一个字符占两个字节,如上图所示

        tips:Java中的char是Unicode编码,Unicode编码占两个字节,也就是16位,足够存储一个汉字。

    引用数据类型:类,数组,接口

    二、java变量的定义

    java 变量的定义应包含 三个要素:数据类型  变量名  = 数据值;

    如  int a = 10;

    或  int a;

      a=10;

    注:long类型的建议在数据值后加L;如120L;

      folat类型的建议在数据值后加F;如120F;

      在同一大括号内{},变量名不可重复,

      变量在使用前必须赋值;

    三、Java数据类型转换

       基本概念:在java程序中,参与计算的数据,必须保持数据类型一致,否则会生类型转换;

    1、自动类型转换:将取值范围小的类型自动提升为取值范围大的类型

    public class Hello{

    public static void main(String[] args) {
    int a = 1;
    byte b = 2;
    //将b自动提升为int类型参与运算,结果c为int类型
    int c = a + b;
    //如果定义为 byte c =a+b;则会报错,无法通过编译
    System.out.println(c);
    }
    }

      自动转换原理:byte占一个字节,int占四个字节,在参与int类型的运算时,byte会自动补充三个字节参与运算,所以结果为int类型;

    再比如:int a=1; double b = 2L; double  c = a+b;  a会自动向取值范围大的double类型转换,再参与运算,结果为double类型。

    Tips:转换规则:

      byte、char、shrt--->int--->long--->(float)--->double

    注:boolean不能与其他基本类型进行转换;

    2、强制类型转换:将取值范围大的类型强制转换为取值范围小的类型(需要程序员自己操作);

    强制类型转换定义格式:

    数据类型  变量名=(数据类型)被转换数据值;

    如:int a=(int)1.5; //直接double类型的数据强制转换为int类型,直接去掉小数点。得到的结果为1;

    例子:

    public static void main(String[] args) {
    //short占两个字节
    short s = 1;
    /*
    编译失败的原因:
    s在和1做运算的时候,由于1是int类型,s会自动转换为int类型,则结果为int,
    将int类型赋值给short类型,所以编译不通过

    */
    //short s = s+1; //编译失败
    //进行强制类型转换则编译通过:
    s= (short)(s+1);
    }

    在上面的例子中,short s=1;s= (short)(s+1);如果写成short s+=1;也不会报错,原因是,在写成s+=1时,java内部已经帮我们进行了类型转换;

    注:强制类型转换会造成精度下降,数据丢失等问题;

  • 相关阅读:
    [j2me]KSoap2在Nokia真机上可能导致SymbianOS error 28
    [J2ME]Nokia播放音乐时发生MediaException的解决办法
    [j2me]利用JLayerMECLDC0.2播放MP3的试验[1]
    [j2me]手机也可以玩播客(Podcast)! Geek开发说明[开源]
    [JavaME]手机申请移动分配的动态IP(3)?
    [流媒体]实例解析MMS流媒体协议,下载LiveMediaVideo[1][修正版,增加了带宽测试包]
    [JavaME]手机申请移动分配的动态IP(2)?
    [JavaME]手机是否能够申请到动态IP?
    [收藏]MIDlet如何签名的tutorial
    [流媒体]实例解析MMS流媒体协议,下载LiveMediaVideo[3]
  • 原文地址:https://www.cnblogs.com/lifengSkt/p/13255262.html
Copyright © 2011-2022 走看看