java中的变量及变量类型转换

             java变量是程序中最基本的存储单元,其要素包括变量名、变量类型和作用域。java中的变量都属于一特定的数据类型,使用前必须申明,申明后必须赋初值。变量的分类:

            (1)按声明的位置分位:局部变量和成员变量。局部变量表示方法和语句块内部定义的变量,局部变量必须进行初始化;成员变量表示方法外部,类内部定义的变量,java默认对成员变量进行初始化,所以在定义时可以不赋初值。

            (2)按照所属的数据类型分位:基本数据类型和引用数据类型。基础数据类型有数值型(byte、short、int、long、float和double)、字符型(char)、布尔类型(boolean)。byte占1个字节、short占2个字节、int占4个字节、long占8个字节、float占4个字节、double占8个字节,char采用unicode编码占2个字节,boolean由jvm决定;引用类型包括类、接口和数组。

            (3)对象的创建和引用:必须使用new关键字来创建对象,使用“.”访问对象的成员或方法,同一类的不同对象具有不同的存储空间,同一类的每个对象共享该类的方法(非静态方法是针对每个对象进行调用,即调用的时候必须使用new关键字创建该类的对象,再由该对象调用该方法)。

几个注意点:

            (1)声明为long类型的时候,要在末尾加“l”或者“L”,因为java中看到所有的整数默认为int,如果这样的语句      long a = 8888888888 ,此时java中把该整数当作int,就会截断出错。

            (2)声明为float类型必须在数字后面加f,同样,java中看到所有的小数当作double类型,此时就会报错。即使1.2这种小数也不行,计算机小数只是一个近似的表示。

            (3)boolean类型不能转换为任意类型。

            (4)大的类型转换为小的类型,必须加强制转换符,除了int能转byte、short和char(但是不能超过范围)。

            (5)基本数据类型在内存中占一块区域(分配在栈空间),引用类型占两块区域(除了基本类型之外,即四类八种,其他的所有都是引用类型,一块在栈空间,一块在堆空间)。

              java中类的对象时引用类型,占有两块区域,例如下面这行代码:

                               class C{

                                         main()

                                         {

                                                 C c1 = new C();//c1是一个引用存储在栈空间中,指向堆内存的对象的空间(就是说c1其实是指针,即在java中其实是指针无所不在啊),但是平时就称c1是一个对象,其实它是对象的一个引用,即对象一定是new出来的,位于堆内存。

                                          }

                                }

注:在堆内存中存在没有引用指向的对象,垃圾收集器会将它收集掉。

在java中,同一个类的对象有不同的成员变量存储空间(在堆中),当然静态成员变量除外。但是,同一个类的对象共享类的方法。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
自动类型转换,也称隐式类型转换,是指不需要书写代码,由系统自动完成的类型转换。由于实际开发这样的类型转换很多,所以Java语言在设计时,没有为该操作设计语法,而是由JVM自动完成。 转换规则 从存储范围小的类型到存储范围大的类型。 具体规则为: byte→short(char)→int→long→float→double 也就是说byte类型变量可以自动转换为short类型,示例代码: byte b = 10; short sh = b; 这里在赋值时,JVM首先将b的值转换为short类型,然后再赋值给sh。 在类型转换时可以跳跃。示例代码: byte b1 = 100; int n = b1; l 注意问题 在整数之间进行类型转换时,数值不发生改变,而,特将整数类型别是比较大的整数类型转换成小数类型时,由于存储方式不同,有可能存在数据精度的损失。 强制类型转换,也称显式类型转换,是指必须书写代码才能完成的类型转换。该类类型转换很可能存在精度的损失,所以必须书写相应的代码,并且能够忍受该种损失时才进行该类型转换转换规则 从存储范围大的类型到存储范围小的类型。 具体规则为: double→float→long→int→short(char)→byte 语法格式为: (转换到的类型)需要转换的值 示例代码: double d = 3.10; int n = (int)d; 这里将double类型变量d强制转换成int类型,然后赋值给变量n。需要说明的是小数强制转换为整数,采用的是“去1法”,也就是无条件的舍弃小数点的所有数字,则以上转换出的结果是3。整数强制转换为整数时取数字的低位,例如int类型变量转换为byte类型时,则只去int类型的低8位(也就是最后一个字节)的值。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值