【推荐】常州电脑培训 常州网络营销|淘宝培训,常州软件开发Java|.NET|PHP培训,常州CAD|平面设计|PS培训,常州网页设计|网工培训,常州领新教育-东方博宜-常州IT技能培训网
扫一扫,加我们为好友有惊喜哦~
-->

核心课程
开班动态
专题服务

您当前所在位置:首页 > 中心动态 >>
【常州电脑培训】Java的数据类型及方法调用

3.5 数据类型

3.5.1 基本概念

Java是强类型的语言。(强类型:所有变量显示声明)

3.5.2 简单数据类型

注:记忆每种数据类型所占的位数。

(1)       boolean类型默认:false;

(2)       字符类型:

char类型,Java采用16位的Unicode编码,Unicode编码可以表示世界上几乎所有的书面语言的字符。

ASCII码:占一个字节,Unicode编码的前256个跟ASCII码重合。

常见编码方式:gbkgb2312utf-8

Unicode编码常用16进制的形式表示,范围是‘\u0000 ~ \uFFFF’,‘\u’表示这是一个Unicode编码。

注:十六进制数据前加上0x,八进制之前加0

 

(3)       浮点类型

Afloatdouble,默认为double类型。

B、浮点类型的表示形式:

十进制:必须有小数点,3.14314.0      

科学计数法3.14e23.14E2314E2

注:只有浮点类型才能用科学计数法。

熟练掌握非boolean简单数据类型之间的转换。(page44

熟练掌握对象的构造和初始化的顺序。(page47

        三种特殊的浮点类型:正无穷(infinity),负无穷(-infinity),NaN

System.out.println(Math.sqrt(-10.0)); //对负数开平方根将得到NaN

       System.out.println(0.0 / 0); //0(浮点数)除以0得到NaN

       System.out.println(10.0 / 0); //正数除以0得到Infinity

       System.out.println(-10.0 / 0); //负数除以0得到-Infinity

 

 

3.6 局部变量 && 成员变量

3.6.1 局部变量

局部变量:定义在程序语句块或方法体中的变量,这些变量只在相应的方法体或与语句块中有效

         局部变量必须先赋初值才能使用。

 

3.6.2 成员变量

成员变量:不在方法体也不再程序块中的变量被称为成员变量也成全局变量。成员变量可以不赋初值,程序会自动初始化。只要对象被引用,成员变量就存在

注:熟练掌握每种类型的变量默认初始化的值。(page51

    char类型默认初始化的值为:’\u0000’

 

3.7 Java的值传递

1)值拷贝

Java简单数据类型的值传递是副本传递的过程(值的拷贝)

示例:

    public static void main(String[] args) {

        int m = 10;

        changeValue(m);

        System.out.println(m);

    }

   

    public static void changeValue(int i){

       i = i * 2; 

    }

changeValue方法执行完毕以后,m的值任为10

分析:

m

   10

main方法栈

changeValue方法栈

  10

10拷贝到changeValue方法栈中并赋值给变量ichangeValue方法栈中将i翻倍。

此处将10 * 2并重新赋值给i,不影响main方法栈中的m的值。(注意:简单数据类型不涉及堆中的操作)

2)引用传递

Java中的引用数据类型的值传递是引用传递的过程,传递的是对堆中对象的引用,两个引用将指向同一个对象,因此,在方法体中改变引用类型的值,该对象将真实被改变。实质因素是:引用类型对象本身存在堆中,在栈中存的仅仅是对对象的引用。(对象的类名 + @ + 对象的哈希码的无符号十六进制表示)

示例:

int age;

    public static void main(String[] args) {

        Test t = new Test();

        t.age = 20;

        t.changeValue(t);

        System.out.println(t.age);

    }

   

    public void changeValue(Test t){

       t.age += 1;

    }

changeValue方法执行之后输出值为:21

changeValue方法栈

地址(实际不是地址)

 t

Test对象在堆中

age

  20

main方法栈

地址

调用changeValue方法,将这个地址直接拷贝到方法栈中,他们将指向同一个对象。

该方法将把20 + 1,改变的是堆中对象的值,所以打印也将是改变后的21




返回顶部