Java的数据类型和参数传递

Java提供的数据类型主要分为两大类:基本数据类型和引用数据类型。

Java中的基本数据类型
名称 大小  取值范围
byte型 (字节) 8bit -128-127  (-2^7到2^7-1)

short型 (短整型)

16bit -2^15到2^15-1
int型 (整形) 32bit -2^31到2^31-1
long型 (长整型) 64bit -2^63到2^63-1
float型 (单精度浮点型) 32bit  
double型 (双精度浮点型) 64bit  
char型 (字符型) 16bit  
boolean型 (布尔型) true和false 只有两种结果,要么为“真”要么为“假”

Java中的引用数据类型:

Java作为面向对象的语言,Java中所有用class,interface,abstract class定义的都属于Java的引用数据类型。

如何理解Java中的基本数据类型和引用数据类型:

  1.Java的基本数据类型是由Java语言本身提供的数据类型,不需要用户自己定义;

  2.Java中的引用数据类型则是由用户自己定义的,而引用数据类型的定义需要用到基本数据类型;

  3.从内存关系上来说:

  Java的的内存分为两大块:栈内存和堆内存

  栈内存负责存储方法中的基本数据类型变量和对象的引用变量

  堆内存负责存储通过new关键字产生的数据,也就是new关键字后面的类中的属性和方法。

Java中基本数据类型存储在栈内存中,而引用数据类型的类型名存储在栈内存中,但是引用数据类型的内容则存储在堆内存中。两者之间通过地址来连接,实现互相的访问。

4.数据由小范围往大范围转换时,JVM会自动帮我们实现类型的转换。比如:int i=10;long l=i;类似于这样的数据转换,Java的虚拟机可以自动帮我们来完成这个工作。但是当数据由大范围往小范围转换时就需要手动的加上强制类型转换。如果在转过程中出现数据的溢出则根据小范围的数据类型的值域进行变动。比如说把整形的-129赋值给byte这时候输出byte的值就是127;如果把整形的128赋值给byte类型,那么输出的就应该是-128。

Java中的参数传递:

基本数据类型:

public void test1(){
        int i=10;
        long l;
        l=i;
        System.out.println(i);//输出值10
        System.out.println(l);//输出值10
        l=i+1;
        System.out.println(i);//输出值10
        System.out.println(l);//输出值11
    } 

由于基本数据类型是变量名与变量值一同存储在栈内存中,i l 这两个变量是互相独立的,对 l 的赋值操作并不会影响 i 值。

引用数据类型:

public class Book {
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}
public class Test {
    public static void main(String[] args) {
        Book book1=new Book();
        book1.setName("《百年孤独》");
        Book book2=new Book();
        book2.setName("《围城》");
        System.out.println("book1:"+book1.getName());//输出:book1:《百年孤独》
        System.out.println("book2:"+book2.getName());//输出:book2:《围城》
        book1=book2;
        book1.setName("《活着》");
        System.out.println("book1:"+book1.getName());//输出:book1:《活着》
        System.out.println("book2:"+book2.getName());//book2:《活着》

    }
}

第一次new了两个对象分别是book1,book2他们的书名分别是“百年孤独”和“围城”。然后通过赋值,book1也指向了与book2一样的内存区域,这时无论是对book1 还是book2 进行操作影响的都是同一块内存区域了。这也就是为什么后面的输出都是一样的原因了。另外book1原先开辟的内存空间由于没有使用,JVM的垃圾回收机制会对其进行处理,将这些不用的内存空间进行释放。

时间: 2024-10-19 08:15:25

Java的数据类型和参数传递的相关文章

Java 基本数据类型

基本数据类型 所占用空间大小 byte b; 1字节 short s; 2字节 int i; 4字节 long l; 8字节 char c; 2字节(C语言中是1字节) float f; 4字节 double d; 8字节 boolean bool; false/true 1字节 基本数据类型注意事项: 1.未带有字符后缀标识的整数默认为int类型: 未带有字符后缀标识的浮点数默认为double类型. 2.如果一个整数的值超出了int类型能够表示的范围,则必须增加后缀“L”(不区分大小写,建议用

Java中数据类型及其之间的转换

Java中数据类型及其之间的转换 基本的数据类型 基本类型有以下四种: 1)int长度数据类型有:byte(8bits).short(16bits).int(32bits).long(64bits). 2)float长度数据类型有:单精度(32bits float).双精度(64bits double),JAVA中将小数默认为double类型,若要定义float需在数据后面用f声明: 3)boolean类型变量的取值有:ture.false 4)char数据类型有:unicode字符,16位 对

JAVA的数据类型

JAVA的数据类型:基本类型: 四类:整型:byte(1字节) ,short(2字节), int(4字节), long(8字节) (整数类型) 浮点型: float(4字节)  ,double(8字节) (小数类型) 字符型: char(2字节) 布尔型: boolean(不确定) 引用类型: 类:class 接口:interface

深入理解Java之数据类型

一.概述 我们通过编程解决一个具体问题时,首先要做的工作是用各种“数据结构”表示问题中的实体对象,而后才能着手研究描述具体业务逻辑的算法.这也正印证了”程序 = 数据结构 + 算法“.而这里的数据结构,便对应着各种数据类型. 数据类型指的是一组值以及相关的一组操作.Java中有两大类数据类型:一类是原始(primitive)数据类型,包括boolean.int.double等等:还有一类是引用类型,也就是类(class),包括Java类库提供给我们的类和我们自己使用关键字class定义的类.Ja

Java基本数据类型与位运算

Java基本数据类型与位运算 >>赋值运算符 赋值使用操作符“=”.它的意思是“取右边的值(即右值),把它复制给左边(即左值)”.右值可以是任何 常数.变量或者表达式 (只要它能 生成 一个值就行).但左值必须是一个明确的,已命名的变量.也就是说,必须有一个物理空间可以存储等号右边的值.分类 基本数据类型 与 类数据类型 的不同1. 对基本数据类型的赋值是很简单的.基本数据存储了实际的数值,而并非指向一个对象的引用,所以在为其赋值的时候,是直接将一个地方的内容复制到了另一个地方.2. 但是在为

Java学习笔记之一:Java基本数据类型

(本内容纯属个人总结,如有不当,欢迎读者指正!! Java 基本数据类型: 1.整型 Java中的整型数据类型有 十进制,十六进制,八进制. 十进制的就不用多说了,和C语言里的十进制数是一样的. 例如:inti=12; iny j=10; int m=-1223;等 八进制: 满8进1,数字是0~7, 在整数前面加上一个0表示八进制, int i=09; int j=-012; 十六进制: 也和c语言里的十六进制数一样,在数字的前面加上0x或0X int i=0x12; int j=0X123;

java基本数据类型四类八种

第1类:整型:byte.short.int.long 第2类:浮点型:float.double 第3类:逻辑型:boolean 第4类:字符型:char 字节长度从小到大: boolean型: 1/8 byte字节类型:1 char字符型:2 一个字符能存储一个中文汉字 short短整型:2 int整数类型:4 float浮点类型(单精度):4 long长整型:8 double双精度类型(双精度)8 注:java中默认的整数类型是int类型,若要定义为float型,加上l或L; 默认的浮点型也是

java学习手札(3) java基本数据类型和引用数据类型

java的基本数据类型有八种,每一种都对应一种引用数据类型. java基本数据类型:1)数值型  byte 1个字节 范围-128--127(计算方法  -2^(字节数*8-1)--2^(字节数*8-1)-1) short 2个字节  范围 -2^15--2^15 - 1 int 4个字节      范围  -2^31--2^31-1 long 8个字节  范围  -2^63--2^63-1 定义时通常加一个f 2)布尔类型  boolean 1个字节   true 或 false通常用于判断

java基本数据类型,变量

变量 存储空间 存储数据 强类型: 变量的类型和变量中数据类型必须一致 定义变量: 变量类型 变量名; int a; 为变量赋值: 变量名=变量值 a = 10; int a = 10; int a , b; int a = 10 , b =20; int a = 10 , b; 局部变量 : 定义在方法内部的变量 1.先赋值,再使用 2.作用范围:从定义开始,到其所在的代码块结束 3.重合范围内,不允许2个局部变量同名 数据类型 1.简单类型 原始类型 基本类型 byte 1B -128 --