三:Java语言基础-数据类型

位和字节(bit and Byte)

众所周知,计算机是由0和1表示的二进制代码组成运算系统。二进制中的每一位数字要么是0,要么是1,一位这样的数字是计算机中的最小的数值单位,我们称为位(bit)。
计算机中其次小的单位是字节(Byte),1 Byte是由8 bit组成的,2的8次方等于256,所以1 Byte可以表示256个整数。我们常说的网络带宽10兆,100兆,兆中的单位即使Bps,即字节每秒。
其实,在计算机发展的早期,1 Byte并不恒等于8 bit,有些系统等于6 bit或10 bit也是有的,只不过后来,人们发现1 Byte等于8 bit最方便计算,于是在1980年代,主流计算机处理器中的1 Byte就变成了8 bit大小了。
我们的计算机的内存可以看作是一组由Byte组成数组,计算机读写的最小单位也是按照Byte来的。


计算机内存模拟

在Java中的数据类型分两种:基本数据类型引用类型(对象)

基本数据类型

基本数据类型有如下特征:

  • 基本数据类型的变量直接存储在内存中
  • 基本数据类型,当拷贝一个变量给另一个变量时, 传递的是这个变量的值本身, 两个变量除了值相等以外没有任何关系
  • 基本数据类型的变量可以直接施加数学运算符进行计算,如+-*/等

Java中有8种基本数据类型:

类型 实例 描述
int int a = 0; 32位有符号整型
double double b = 123.4; 64位浮点数,精度高,可以表示十进制的16位有效数字
float float c = 2.0; 32位浮点数,精度低,可以表示十进制7位有效数字,相比double,内存空间占有小,速度快
boolean boolean d = true; 8位 一个字节,只有2个值true和false,转换成int后,false用0表示,true用非零表示
char char e = 'a'; 16位 Unicode字符,最小值'\u0000'(即为0)最大值'\uffff'(即为65535)
byte byte f = 2; 8位 有符号的整数,最小值-128,最大值127。byte占用的空间只有int类型的四分之一
short short g = 3; 16位 有符号的整数
long long h = 3000000000; 64位 有符号的整数

对象

引用类型(对象) 是面向对象语言的基础,它的主旨是把自然界和生活中存在的任何事物看作是一个对象,每一个对象都有特定的属性行为。把相同属性行为的对象归纳在一起就是,比如,People, Employee等。
对象有如下特征:

  • 对象本身涵盖众多的属性和方法
  • 对象中的属性可以是基本数据类型和其他对象
  • 对象其实是一个指针,当拷贝一个变量给另一个变量时,是把内存地址传递给新变量,对任何一方的修改都影响到另一方
  • 操作对象不能直接使用数学运算符,而是使用对象本身提供的方法

Null
对象的默认值是Null,是指没有对象,所以不能对Null的对象进行任何操作。另外Null也不是一个空对象。

String temp;
temp.length(); // 会报错 "Null Pointer Exception"
String empty="";
empty.length(); // 返回 0

注:基本数据类型和引用类型的区别

基本数据类型,比如两个人A和B,

A.age=15 ; B.age=A.age;

A和B的年龄相同,但是他们是俩个不同的人。
引用类型,比如在我们中国一个人有多个名字,在家有一个乳名,在学校和公司有一个正式名字,无论是称呼哪一个名字,人都是同一个。还有,无论我是坐在A位置上或坐在B位置上,我都是我。我坐在A位置上理完发以后,再去坐B位置,B位置上的我已经也理过发了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 基本数据类型与引用类型 Java是面向对象的语言,在java中一切都可以视为对象。然而,为什么却会引入基本数据类型...
    觅渡技术阅读 460评论 0 0
  • 一. Java基础部分.................................................
    wy_sure阅读 3,882评论 0 11
  • 九种基本数据类型的大小,以及他们的封装类。(1)九种基本数据类型和封装类 (2)自动装箱和自动拆箱 什么是自动装箱...
    关玮琳linSir阅读 1,957评论 0 47
  • Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和...
    Java小辰阅读 1,129评论 0 2
  • 1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?答:可以有多个类,但只能有一个publ...
    岳小川阅读 981评论 0 2