Java变量有哪些类型?

2021-04-26 19:59发布

6条回答
等等同学
1楼 · 2021-05-05 11:06.采纳回答

参考下图:

image.png

三岁奶猫
2楼 · 2021-04-27 13:20

Java的数据类型分为三大类,即布尔型、字符型和数值型,而其中数值型又分为整型和浮点型;相对于数据类型,Java的变量类型为布尔型boolean;字符型char;整型byte、short、int、long;浮点型float、double。其中四种整型变量和两种浮点型变量分别对应于不同的精度和范围。此外,我们还经常用到引用变量

十七
3楼 · 2021-05-06 08:52

首先说说变量的定义吧:变量就是在程序运行过程中会发生变化的量


从类型上来划分,可以分为两种:

  1. 基本数据类型

  2. 引用数据类型

基本数据类型又可以分为四类八种:

  1. 整型:byte short int char

  2. 浮点型:float double

  3. 字符类型:char

  4. 布尔类型:boolean

引用数据类型指向的事存储对象的地址值,举一些例子吧:

  1. String字符串类型

  2. 数组

  3. 集合

  4. 基本数据类型的包装类:eg:Integer Double.......

  5. 枚举类型

  6. 对象类型

......


变量还可以从位置来划分,可以分为局部变量和成员变量

局部变量:存储在类中方法中,存储的位置是跟随方法在栈内存中

成员变量:存储在类中方法外,存储的位置是跟随对象在堆内存中


变量还以分为静态变量和非静态变量,这里要注意的事静态变量属于类,随着类的加载而加载,优先于对象


变量还可以被final关键字修饰,表示最终的变量,本质上就是一个常量

用户555666
4楼 · 2021-05-13 16:36
变量类型分为基本数据类型和对象

基本数据类型的变量可以直接操作,不能调用域和方法,像int,char
对象可以调用域和方法,不能直接操作,像Class,Object,ArrayList

比较特殊的是数据类型包装类,既可以直接操作,又可以调用域和方法,像Integer,Boolean


pipi雪
5楼 · 2021-05-17 21:57

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

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

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

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

int a, b, c;         // 声明三个int型整数:a、b、c。 int d = 3, e, f = 5; // 声明三个整数并赋予初值。 byte z = 22;         // 声明并初始化z。 double pi = 3.14159; // 声明了pi。 char x = 'x';        // 变量x的值是字符'x'。

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

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

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

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

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

Java局部变量

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

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

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

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

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

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

实例1

在以下实例中 age 是一个局部变量。定义在 pupAge() 方法中,它的作用域就限制在这个方法中。

public class Test{     public void pupAge(){       int age = 0;       age = age + 7;       System.out.println("Puppy age is : " + age);    }        public static void main(String args[]){       Test test = new Test();       test.pupAge();    } }

以上实例编译运行结果如下:

Puppy age is: 7

实例2

在下面的例子中 age 变量没有初始化,所以在编译时出错。

public class Test{     public void pupAge(){       int age;       age = age + 7;       System.out.println("Puppy age is : " + age);    }        public static void main(String args[]){       Test test = new Test();       test.pupAge();    } }

以上实例编译运行结果如下:

Test.java:4:variable number might not have been initialized age = age + 7;          ^ 1 error

实例变量

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

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

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

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

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

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

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

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

  • 实例变量可以直接通过变量名访问。但在静态方法以及其他类中,就应该使用完全限定名:ObejectReference.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  : " + name );       System.out.println("salary :" + salary);    }    public static void main(String args[]){       Employee empOne = new Employee("Ransika");       empOne.setSalary(1000);       empOne.printEmp();    } }

以上实例编译运行结果如下:

name  : Ransika salary :1000.0

类变量(静态变量)

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

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

  • 静态变量除了被声明为常量外很少使用。常量是指声明为 public/private,final 和 static 类型的变量。常量初始化后不可改变。

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

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

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

  • 默认值和实例变量相似。数值型变量默认值是0,布尔型默认值是 false,引用类型默认值是 null。变量的值可以在声明的时候指定,也可以在构造方法中指定。此外,静态变量还可以在静态语句块中初始化。

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

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

实例:

import java.io.*; public class Employee{    //salary是静态的私有变量    private static double salary;    // DEPARTMENT是一个常量    public static final String DEPARTMENT = "Development ";    public static void main(String args[]){       salary = 1000;       System.out.println(DEPARTMENT+"average salary:"+salary);    } }

以上实例编译运行结果如下:

Development average salary:1000


相关问题推荐

  • 回答 156

    对于每一位才开始接触JAVA的新手来说,先不要管算法和数据结构,大多数简单的程序不需要用到算法和数据结构,所以当你真正需要时再去学习。编程一段时间以后,你就会知道在哪些地方用到他们。这时知道算法的名字并了解它们的功能,然后动手去实践。当我们在去...

  • 回答 93

    2个都很好就业,更关键的是要学得到东西

  • 回答 12
    已采纳

    获取Map集合中所有的key可以通过map集合的keySet()方法获取例如:    Map map = new HashMap();    map.put(xx,xx); //存放数据    //.... 省略    Set set = map.keySet();    //可以通过迭代器进行测试    Iterator iter = set.iter...

  • 回答 56
    已采纳

    不同年龄,不同掌握程度,学历,找工作城市,面试能力这是一个多方面影响的结果,如果是平均值的话,全国平均薪资14k左右

  • 回答 38

    具体学多久,根据自己的学习力,自律性、解决问题能力来决定若系统性学习,跟着讲师的节奏走,大概半年左右,有专业的讲师把课程进行规划,尽心系统学习,有问题,讲师会帮忙解决,学习的效率很高,避免了自学中出现各种问题解决不了,而耽误很多时间,可能会...

  • 回答 23
    已采纳

    (1)idea启动时会有两个快捷方式,安装完后默认生成在桌面的是32位的idea的快捷方式,如果我们使用这个快捷方式运行大项目,一般都会很卡。解决方法是找到idea的安装目录,然后进入bin文件夹,找到名称为idea64的应用程序,右键他生成桌面快捷方式。以后每次...

  • BIO与NIO、AIO的区别2020-05-19 15:59
    回答 4
    已采纳

    IO的方式通常分为几种,同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIO。一、BIO     在JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个ServerSocket,然后在客户端启动Socket来对服务端进行通信,默认情况下服务端需要...

  • Java方法的命名规则2021-04-06 19:07
    回答 31

    ava是一种区分字母的大小写的语言,所以我们在定义变量名的时候应该注意区分大小写的使用和一些规范,接下来我们简单的来讲讲Java语言中包、类、变量等的命名规范。(一)Package(包)的命名Package的名字应该都是由一个小写单词组成,例如com、xuetang9、compan...

  • 回答 2

    public class Point {    private int x;    private int y;    public int getX() {        return x;    }    public void setX(int x) {        this.x = x;    }    public int getY() {        return y;    } ...

  • 回答 6

    经典版单例模式public class Singleton {        private static Singleton uniqueInstance;//利用一个静态常量来记录singleton类的唯一实例。     private Singleton() {     }     public static  Singleton getInstance()...

  • 回答 3

    哈希表的长度一般是定长的,在存储数据之前我们应该知道我们存储的数据规模是多大,应该尽可能地避免频繁地让哈希表扩容。但是如果设计的太大,那么就会浪费空间,因为我们跟不用不到那么大的空间来存储我们当前的数据规模;如果设计的太小,那么就会很容易发...

  • 回答 14

    1. DOM(Document Object Model)        DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准。DOM是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中寻找特定信息。分析该结构通常需要加载整个文档和构造层次结构,然后才...

  • 回答 19

    1)作用不同: throw用于程序员自行产生并抛出异常; throws用于声明在该方法内抛出了异常2) 使用的位置不同: throw位于方法体内部,可以作为单独语句使用; throws必须跟在方法参数列表的后面,不能单独使用。3)内容不同: throw抛出一个异常对象,且只能是...

  • 回答 11

    基本执行过程如下:1)程序首先执行可能发生异常的try语句块。2)如果try语句没有出现异常则执行完后跳至finally语句块执行;3)如果try语句出现异常,则中断执行并根据发生的异常类型跳至相应的catch语句块执行处理。4)catch语句块可以有多个,分别捕获不同类型...

  • 回答 20

    100-199 用于指定客户端应相应的某些动作。 200-299 用于表示请求成功。 300-399 用于已经移动的文件并且常被包含在定位头信息中指定新的地址信息。 400-499 用于指出客户端的错误。 400 语义有误,当前请求无法被服务器理解。 401 当前请求需要用户验证...

  • 回答 16

    异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误,只要程序设计得没有问题通常就不会发生。受检异常跟程序运行的上下文环境有关,即使程序设计无误,仍然可能因使用的问题而引发。Java编译...

没有解决我的问题,去提问