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的垃圾回收机制会对其进行处理,将这些不用的内存空间进行释放。

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

  1. Java基础-数据类型int,short,char,long,float,double,boolean,byte

    Java语言是静态类型的(statical typed),也就是说所有变量和表达式的类型再编译时就已经完全确定.由于是statical typed,导致Java语言也是强类型(Strong typed ...

  2. Java基本数据类型总结(转载)

    Java基本数据类型总结 基本类型,或者叫做内置类型,是JAVA中不同于类的特殊类型.它们是我们编程中使用最频繁的类型.java是一种强类型语言,第一次申明变量必须说明数据类型,第一次变量赋值称为变量 ...

  3. Java 基本数据类型总结一

    Java基本数据类型总结一 基本类型,或者叫做内置类型,是JAVA中不同于类的特殊类型.它们是我们编程中使用最频繁的类型.java是一种强类型语言,第一次申明变量必须说明数据类型,第一次变量赋值称为变 ...

  4. java基本数据类型总结 类型转换 final关键字的用法

    java基本数据类型总结 Java数据类型总结 数据类型在计算机语言里面,是对内存位置的一个抽象表达方式,可以理解为针对内存的一种抽象的表达方式.接触每种语言的时候,都会存在数据类型的认识,有复杂的. ...

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

    Java中数据类型及其之间的转换 基本的数据类型 基本类型有以下四种:1)int长度数据类型有:byte(8bits).short(16bits).int(32bits).long(64bits).2 ...

  6. Java 基本数据类型 sizeof 功能【转】

    转自:http://blog.csdn.net/sunboy_2050/article/details/7310008 版权声明:本文为博主原创文章,未经博主允许不得转载. Java基本数据类型int ...

  7. java 的数据类型

    java 的数据类型有基本类型和引用类型 java的类的关系:有继承,有依赖,有关联,聚合,组成.

  8. java基础之java基本数据类型

    1.Java数据类型基本概念: 数据类型在计算机语言里面,是对内存位置的一个抽象表达方式,可以理解为针对内存的一种抽象的表达方式.接触每种语言的时候,都会存在数据类型的认识,有复杂的.简单的,各种数据 ...

  9. Java学习笔记之:Java的数据类型

    一.介绍 变量就是申请内存来存储值.也就是说,当创建变量的时候,需要在内存中申请空间. 内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据. Java语言提供了八种基本类型 ...

随机推荐

  1. iStat for mac

    iStat for mac 电脑硬件信息检测软件,安装完成后它位于"系统偏好设定"的应用程序面板,让您从选单列监测系统的各项丰富资讯,又不会占用使用者太大的桌面空间,提供的信息包括 ...

  2. Lua学习(3)——控制结构

    Lua提供了一组传统的,小巧的控制结构,包括用于条件执行的if,用于迭代的while.repeat和for.所有的控制结构都有一个现实的终止符号:if for while 都以end结尾,repeat ...

  3. UICollectionView左对齐流水布局、右对齐流水布局

    在平时使用的app中会经常碰到一些规格选择,筛选,标签等页面,这些页面的布局展示通常是左对齐流水布局.实现类似这样的左对齐流水布局有多种方式,如果选项少的话可以直接用UIButton实现.现在我们有一 ...

  4. 卸载XCode插件的方法

    1.Finder--前往---前往文件夹--输入~/Library/Developer/Xcode/Plug-ins 2.删除要卸载的插件即可.

  5. JMeter-MyEclipse编译运行问题(Could not read JMeter properties file)

    JMeter-MyEclipse编译运行问题按照 此贴 http://phoenix0529.iteye.com/blog/1530728 进行配置,然后用Ant编译Build.xml 是可以的. 但 ...

  6. How and when: ridge regression with glmnet

    @drsimonj here to show you how to conduct ridge regression (linear regression with L2 regularization ...

  7. VOD, TVOD, SVOD FVOD的区别(转)

    VOD: Video On Demand 视频点播 TVOD: True Video On Demand 即点即播 按次付费点播,付费后,观众一般有48小时的时间可以观看该片,48小时后需要再次付费才 ...

  8. 前端教你学UI——人物处理(一)

    一.序言 本文作为本系列的第一篇写UI的文章,开头还是有必要申明一些东西的,本系列主要是为了作为博主在前端工作之余学习UI的一个记录,同时为了让更多的同行学习到一些编程之外的其他东西.所以本文会尽可能 ...

  9. python之numpy库[1]

    python-numpy python中的数据 一维数据 用列表和集合表示 数组与列表的关系 列表:数据类型可以不同 数组:数据类型可以相同 多维数据 用列表表示 高维数据 用字典表示 高维数据仅利用 ...

  10. 模拟jquery底层链式编程

    //特点1:快级作用域,程序启动自动执行 //内部的成员变量,外部无法访问(除了var) //简单的函数链式调用 function Dog(){ this.run=function(){ alert( ...