zoukankan      html  css  js  c++  java
  • Java--基本数据类型与变量

    Java 基础数据类型

    • 内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来存储该类型的数据

    内置数据类型

    • 六种数字类型:四个整数型(byte short int long),两个浮点型(float double),一种字符型(char),一种布尔型(boolean)

    引用类型

    • 引用类型指向一个对象,指向对象的变量是引用变量;这些变量在声明时被指定为一个特定的类型;变量一旦声明后,类型就不能改变了
    • 对象数组都是引用数据类型
    • 所有引用类型的默认值都是null
    • Site site = new Site("Something")

    Java常量

    • 使用final关键字来修饰常量,声明方式和变量类似,常量名大写

        final double PI = 3.1415926
      

    自动类型转换

    • 整型、实型、字符型数据可以混合运算;运算中,不同类型的数据先转化为同一类型
    • 转换从低级到高级:byte,short,char-->int-->long-->float-->double
    • 转换类型必须满足的规则
    1. 不能对boolean类型进行类型转换
    2. 不能把对象类型转换成不相关类的对象
    3. 在把容量大的类型转换成容量小的类型时必须使用强制类型转换
    4. 转换过程中可能导致溢出或损失精度
    5. 浮点数到整数的转换是通过舍弃小数得到的,不是四舍五入

    强制类型转换 (type)value type

    Java 变量类型

    • 类变量:独立于方法之外的变量,用static修饰

    • 实例变量:独立于方法之外的变量,不过没有static修饰

    • 局部变量:类的方法中的变量

        public class Variable{
        	static int allClicks = 0; //类变量
        	String str = "hello world";//实例变量
        	public void method() {
        		int i = 0;//局部变量
        	}
        }
      

    Java局部变量

    • 局部变量声明在方法、构造方法或者语句块中;

    • 局部变量在方法、构造方法、或者语句块被执行的时候创建,当它们执行完后,变量将会被销毁

    • 访问修饰符不能用于局部变量

    • 局部变量只在声明它的方法、构造方法或者语句块中可见

    • 局部变量是在栈上分配的

    • 局部变量没有默认值,所以局部变量被声明后,必须进过初始化后才可以使用

        public class Test{
        	public void pupAge() {
        		int age = 0;//局部变量声明并初始化
        		age = age + 7;//不初始化会报错
        		System.out.println("小狗的年龄是:" + age);
        	}
        	public static void main(String args[]) {
        		Test test = new Test();
        		test.pupAge();
        	}
        }
      

    实例变量

    • 实例变量声明在一个类中,但在方法、构造方法和语句块之外

    • 当一个对象被实例化之后,每个实例变量的值就跟着确定;

    • 实例变量在对象创建的时候创建,在对象销毁的时候销毁

    • 实例变量的值至少被一个方法、构造方法或者语句块引用,使得外部能够通过这些方式获取实例变量信息

    • 实例变量可以声明在使用前或使用后

    • 访问修饰符可以修饰实例变量

    • 实例变量对于类中的方法、构造方法、或者语句块是可见的;一般情况下应该把实例变量设为私有。通过访问修饰符可以使实例变量对子类可见

    • 实例变量具有默认值,数值型变量的默认值是0,布尔值变量的默认值是false,引用类型变量的默认值是null。变量的值可以在声明时指定,也可以在构造方法中指定

    • 实例变量可以通过变量名访问。但在静态方法以及其他类中,就应该使用完全限定名:ObjectReference.VariableName

        import java.io.*;
        public class Employee{
        //这个实例变量对子类可见
        public String name;
        //私有变量,仅在该类可见
        private double salary;
        //在构造器中对name赋值
        public Employee (String empName) {
        	name = empName;
        }
        //设定salary的值
        public void setSalary(double empSal) {
        	salary = empSal;
        }
        //打印信息
        public void printEmp() {
        	System.out.println("名字: " + name);
        	System.out.println("薪水:" + salary);
        }
        public static void main (String args[]) {
        	Employee empOne = new Employee("programer");
        	empOne.setSalary(1000);
        	empOne.printEmp();
        }
        }
      

    类变量(静态变量)

    • 类变量也称为静态变量,在类中以static关键字声明,但必须在方法、构造方法和语句块之外

    • 无论一个类创建多少个对象,类只拥有类变量的一份拷贝

    • 静态变量除了被声明为常量外很少使用。常量是指声明为publicprivate,finalstatic类型的变量;常量初始化以后不可改变

    • 静态变量存储在静态存储区,经常被声明为常量,很少单独使用static声明变量

    • 静态变量在程序开始时创建,在程序结束时销毁

    • 与实例变量具有相似的可见性;但为了对类的使用者可见,大多数静态变量声明为public类型

    • 默认值与实例变量类似

    • 静态变量可以通过ClassName.VariableName的方式访问

    • 类变量被声明为public static final类型时,类变量名称一般使用大写字母;如果静态变量不是publicfinal类型,其命名方式与实例变量以及局部变量的命名方式一致

        import java.io.*;
        public class Employee {
        	// salary是静态的私有变量
        	private static double salary;
        	// DEPARTMENT是一个常量
        	public static final String DEPARTMENT = "开发人员";
            public static void main(String args[]) {
            salary = 10000;
            	System.out.println(DEPARTMENT + "平均工资:" + salary);
            }
        }
  • 相关阅读:
    使用javap分析Java的字符串操作
    使用javap深入理解Java整型常量和整型变量的区别
    分享一个WebGL开发的网站-用JavaScript + WebGL开发3D模型
    Java动态代理之InvocationHandler最简单的入门教程
    Java实现 LeetCode 542 01 矩阵(暴力大法,正反便利)
    Java实现 LeetCode 542 01 矩阵(暴力大法,正反便利)
    Java实现 LeetCode 542 01 矩阵(暴力大法,正反便利)
    Java实现 LeetCode 541 反转字符串 II(暴力大法)
    Java实现 LeetCode 541 反转字符串 II(暴力大法)
    Java实现 LeetCode 541 反转字符串 II(暴力大法)
  • 原文地址:https://www.cnblogs.com/yfife/p/7354142.html
Copyright © 2011-2022 走看看