Java变量与数据类型

Java变量与数据类型

1、注释

//单行注释
/*多行注释*/
/**文档注释*/

/**
    什么是注释?
        解释说明的文字
    注释的作用?
        对代码的解释说明
        便于后期维护
    注释的分类:
        单行注释
            作用域:只在当前行有效
            嵌套:可以嵌套单行注释,不能嵌套多行注释和文档注释
            位置:一行代码的上面或者行尾
        多行注释
            作用域:多行
            嵌套:可以嵌套单行注释,不能嵌套多行注释和文档注释
            位置:类的上面或者方法的上面
        文档注释
            作用域:多行
            嵌套:可以嵌套单行注释,不能嵌套多行注释和文档注释
            位置:类的上面或者方法的上面
    区别:文档注释可以存在于类的api文档中---javadoc

*/

public class Demo {

    public static void main(String[] args) {

    }
}

2、标识符

/*
    标识符:
        在Java中的一切需要起名字的地方的这个名字都是标识符
    标识符的命名规则
        1)数字,字母,下划线,美元符号$任意组合而成,数字不能放在首位
        2)Java严格区分大小写
        3)关键字不能作为标识符使用
            关键字:
                Java中具有自己的用法或者用途的一些词
                关键字会变色
                所有的关键字都是小写
            保留字:Java中将来可能具有自己的用法或者用途的一些词,如:const goto
    标识符的命名规范
        1)见名知意
        2)驼峰命名原则
            包:全部小写
                单级包:单个文件夹
                多级包:多个文件夹嵌套
            类|接口:每个单词的首字母大写
            方法|变量:第一个单词全部小写,从第二个单词开始每个单词的首字母大写
            常量:全部大写
 */
public class Identifier {

    public static void main(String[] args) {
        int a=6;
        int A0_$=16;
        System.out.println(a);
        System.out.println(A0_$);
    }
}

3、变量

/*
    变量:
        在程序运行过程中,其值可以发生改变的量
        在内存中开辟一块空间,用来存放指定类型的数据
        用来存储数据, 变量(内存空间的大小由数据类型决定) 数据类型(由要存储的数据决定) 数据
    变量的定义与使用:
        1.声明的同时赋值
        数据类型 变量名 = 变量值;
        int(整数) double(小数) char(字符) String(字符串) boolean(布尔)
        2.先声明后赋值
            数据类型 变量名; --声明
            变量名 = 变量值; --赋值
        3.同时声明多个变量
        注意:等号是唯一一个自右向左运算的符号
    变量需要关注的点:
        数据类型
        变量名(标识符的命名规则规范)
        变量值
        作用域:{}
            变量只能在其作用范围内可以使用
        变量在使用时的注意事项(输出,运算)
            1.变量必须已声明
            2.并且已经赋值
            3.从变量的而声明开始,到包括它的,最近的}结束为止
        变量的分类:
            局部变量:方法,语句块{}声明的变量,局部变量使用前必须声明并且赋值
            成员变量:类的方法外,不赋值有默认值
                int-->0 double-->0.0 char-->' ' String-->null boolean-->false
*/
public class Variable {
    //成员变量
    String memberVar = "成员变量";
    public static void main(String[] args) {
        //System.out.println(name);
        //存储一个学生的年龄  18->int
        int age=18;
        //存储学生的姓名 "因为" -->字符串
        String name="因为";

        System.out.println(name);
        System.out.println(age+1);
        
        double money;
        money=100.1;
        System.out.println(money);

        int x,y,z;
        x=y=z=10;
        System.out.println(x);
        System.out.println(y);
        System.out.println(z);
    }
}
3.1、Java 变量类型

在Java语言中,所有的变量在使用前必须声明。声明变量的基本格式如下:

type identifier [ = value][, identifier [= value] ...] ;

格式说明:type为Java数据类型。identifier是变量名。可以使用逗号隔开来声明多个同类型变量。

以下列出了一些变量的声明实例。注意有些包含了初始化过程。

Java语言支持的变量类型有:

  • 类变量:独立于方法之外的变量,用 static 修饰。
  • 实例变量:独立于方法之外的变量,不过没有 static 修饰。
  • 局部变量:类的方法中的变量。
3.2、Java 局部变量
  • 局部变量声明在方法、构造方法或者语句块中;
  • 局部变量在方法、构造方法、或者语句块被执行的时候创建,当它们执行完成后,变量将会被销毁;
  • 访问修饰符不能用于局部变量;
  • 局部变量只在声明它的方法、构造方法或者语句块中可见;
  • 局部变量是在栈上分配的。
  • 局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用。
3.3、实例变量
  • 实例变量声明在一个类中,但在方法、构造方法和语句块之外;
  • 当一个对象被实例化之后,每个实例变量的值就跟着确定;
  • 实例变量在对象创建的时候创建,在对象被销毁的时候销毁;
  • 实例变量的值应该至少被一个方法、构造方法或者语句块引用,使得外部能够通过这些方式获取实例变量信息;
  • 实例变量可以声明在使用前或者使用后;
  • 访问修饰符可以修饰实例变量;
  • 实例变量对于类中的方法、构造方法或者语句块是可见的。一般情况下应该把实例变量设为私有。通过使用访问修饰符可以使实例变量对子类可见;
  • 实例变量具有默认值。数值型变量的默认值是0,布尔型变量的默认值是false,引用类型变量的默认值是null。变量的值可以在声明时指定,也可以在构造方法中指定;
  • 实例变量可以直接通过变量名访问。但在静态方法以及其他类中,就应该使用完全限定名:ObejectReference.VariableName。
3.4、类变量(静态变量)
  • 类变量也称为静态变量,在类中以 static 关键字声明,但必须在方法之外。
  • 无论一个类创建了多少个对象,类只拥有类变量的一份拷贝。
  • 静态变量除了被声明为常量外很少使用。常量是指声明为public/private,final和static类型的变量。常量初始化后不可改变。
  • 静态变量储存在静态存储区。经常被声明为常量,很少单独使用static声明变量。
  • 静态变量在第一次被访问时创建,在程序结束时销毁。
  • 与实例变量具有相似的可见性。但为了对类的使用者可见,大多数静态变量声明为public类型。
  • 默认值和实例变量相似。数值型变量默认值是0,布尔型默认值是false,引用类型默认值是null。变量的值可以在声明的时候指定,也可以在构造方法中指定。此外,静态变量还可以在静态语句块中初始化。
  • 静态变量可以通过:ClassName.VariableName的方式访问。
  • 类变量被声明为public static final类型时,类变量名称一般建议使用大写字母。如果静态变量不是public和final类型,其命名方式与实例变量以及局部变量的命名方式一致。

4、常量

/*
    常量:
        在程序执行过程中,其值不可发生改变的值
    字面值常量:
        整数常量
        小数常量
        字符常量
        字符串常量
        布尔常量:false true
        空常量:null
    自定义常量:
        被final修饰的变量为常量
*/
public class Constant {
    public static void Constant (String[] args){
        final double PI = 3.1415926535;
        System.out.println(PI);
        
    }
}

5、数据类型

/*
    数据类型:
        基本数据类型: 4类8种 :规定存储数据的大小
        计算机基本存储单位:字节    1byte = 8bit;
        数值型
            整型  表示名称    表现形式        范  围                大  小
                  字节型       byte        [-128,127]              1个字节
                  短整型       short       [-32768,32767]          2个字节
                  整型        int     [-2147483648,2147483647]    4个字节
                  长整形       long        [-2^63,2^63-1]          8个字节

                  整型的字面常量值默认int类型
                  如果想要存储比int类型更大的long类型的数据,需要在数据的后面添加l/L,推荐使用L

            浮点型 表示名称    表现形式        精  度                大  小
                    单精度     float       表示精度为7位有效数字     4个字节
                    双精度     double      表示精度为16位有效数字    8个字节

                    浮点类型默认的字面常量值时double类型
                    如果要想给float赋值需要在数据的后面添加f/Fca
                    注意:浮点类型运行可能发生不精确

            字符型 表示名称    表现形式        范  围        大  小
                    字符型     char        0~65535         2个字节

                    字符型的表现形式:
                        1)0~65536之间的整数
                        2)' '中包裹一个字符
                    字符型参与运算,会先转为对应的十进制数再参与运算
            布尔型 boolean true|false  1bit
        引用数据类型:类    接口  数据[]
*/
public class Main {
    public static void main(String[] args){
        byte b = 127;
        System.out.println(b);

        short s = 127;
        System.out.println(s==b);

        int i = 2147483647;
        System.out.println(i);

        long l = 2147483647;
        System.out.println(l);

        double d = 4.0;
        float f = 4.0f;
        System.out.println(d);
        System.out.println(f);

        char c = ' ';
        char c1 = 72;
        char c2 = 'g'+1;
        System.out.println(c);
        System.out.println(c1);
        System.out.println(c2);

        boolean bl = true;
        System.out.println(bl);
    }
}

6、类型转换

/*
    数据类型类型转换
        boolean类型不参与类型转换
        自动类型提升
            小范围类型的数据到大范围类型会发生自动类型提升
        强制类型转换
            大范围类型的数据赋值给小范围的变量,需要发生强制类型转换,有可能损失精度
            小范围类型 变量名 = (小范围类型)大范围类型数据
        如果多个的数据参与运算,最终结果会提升成为参与运算的数据的最大类型
        如果比int小的char,byte,short参与运算时,会自动类型提升为int类型
        如果给byte,char,short赋值,只要在其范围内的常量就能成功赋值

        byte -> short -> char -> int -> long -> float ->double
 */
public class Main {
    public static void main(String[] args){
        byte b = 127;
        //自动类型提升
        int i = b;
        //强制类型转换
        short s = (short)i;
        System.out.println(b);
        System.out.println(i);
        System.out.println(s);
        //如果多个的数据参与运算,最终结果会提升成为参与运算的数据的最大类型
        double d = b +i;
        System.out.println(d);
        //如果比int小的char,byte,short参与运算时,会自动类型提升为int类型
        char c = 'c';
        int i1 =c + s +i;
        System.out.println(i1);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值