Java的数据类型和参数传递(详解)

网友投稿 253 2023-05-01


Java的数据类型和参数传递(详解)

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

Java中的基本数据类型

名称

大小 

取值范围

byte型 (字节)

8bit

-128-127 (-2^7到2^7-1)

short型 (短整型)

16bit

-2^15到2^15-1

int型 (整形)

32bit

-2^31到2MeRqYXmQHf^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("《百年孤独》");

MeRqYXmQHfBook 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.printlnhttp://("book1:"+book1.getName());//输出:book1:《活着》

System.out.println("book2:"+book2.getName());//book2:《活着》

}

}

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


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java编程实现汉字按字母顺序排序的方法示例
下一篇:java mock工具类空指针(java空指针解决)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~