Java教程 Java语言中的数据类型及String类

开发 后端
Java类中的主要组成部分就是数据成员和方法成员。而数据成员的声明必须指定其数据类型,方法成员的声明也必须指定其返回值类型,如果方法有形式参数,也必须指定其参数类型。本文讲述了Java语言中的数据类型及String类。

本文是Java教程之Java语言中的数据类型及String类部分。
Java类中的主要组成部分就是数据成员和方法成员。而数据成员的声明必须指定其数据类型,方法成员的声明也必须指定其返回值类型,如果方法有形式参数,也必须指定其参数类型。因此,对于初学者来说,了解Java语言的数据类型是非常必要的。

Java语言中的数据类型可以分为两大类,即基本数据类型(也有人称为原始类型)和引用类型(也有人称类类型,对象类型等)。Java语言是面向对象的语言,大多数数据都是引用类型,基本类型主要为了进行数学运算。下面对这两种类型分别进行介绍。

1.基本数据类型:

Java中的基本数据类型分4大类

整型:byte,short,int,long

浮点型:float,double

字符型:char

逻辑型(也称布尔型):boolean(true、false)

值得一题的是,Java中的基本数据类型的数据长度是跨平台的,不会因为运行的平台不同而不同。

另外需要注意的是,整型默认以32位的int存储,浮点型默认以64位的double存储。如下面例子:

  1. package com.csst.test;  
  2. public class TestType {  
  3.  
  4.    
  5.     /**  
  6.  
  7.      * @param args  
  8.  
  9.      */ 
  10.  
  11.     public static void main(String[] args) {  
  12.  
  13.        float f=1.0;//会有编译错误  
  14.  
  15.     }  
  16.  


出现错误的一行,主要就是因为数据类型转换引起。1.0是浮点型,默认以64位的double存储,而程序中将1.0声明位32位的float,就会出现编译错误。基本原则是高精度的数不能直接赋值给低精度的数。修改如下:

       float f=(float) 1.0;

称为强制类型转换。

 

2.引用类型:

可以说,除了基本数据类型以外的数据,都是引用类型。也可以说,引用类型就是对象,或者对象都是引用类型。很多人会有一个疑问,字符串算什么类型?让我们看看,在基本类型的8个类别中,没有字符串,那么可以肯定的说,字符串是引用类型。但是接下来的疑问就是,引用类型都是对象,对象不都是用new创建出来的么?为什么我们常常看到如下语句:

       String s=”Hello World”;

其实,在所有的类中,包括我们自己创建的类,以及API中已有的类,只有String这个类比较特殊,可以直接使用=进行赋值,不用使用new关键字。但是String既然是对象,也可使用new创建,如:

       String s=new String(“Hello World”);

那么这两种声明方式,有何不同?如果使用new关键字创建,那么每次创建,都是在内存空间初始化一个新的字符串对象,而如果使用=创建,并不会每次都初始化一个新的。而是会看一下实例池中是否有字符序列相同的字符串,如果有,就将引用指向该空间,如果没有,才初始化,如下:

  1. String s1=”abc”;  
  2.  
  3. String s2=”abc”;  
  4.  
  5. String s3=new String(“abc”);  
  6.  
  7. String s4=new String(“abc”); 

其中假设s1赋值时,在实例池中没有找到abc字符串,那么s1就被初始化到内存中。但是创建s2时,由于已经有了一个用=号创建的abc了,将不会创建新的对象,而是将s2也指向跟s1相同的空间,共享s1的abc。而s3,s4由于是使用new创建的,所以都会新创建对象,在内存中初始化新的abc字符串。

String类有这样的特性,源于String类另一个特征:String对象是不可变的。也就是说,不管通过哪个方式初始化到内存中的字符串,都是不能被修改的。如:

       String s=”abc”;

       s=”def”;

当s被重新赋值时,并不是修改了abc,而是会新开辟内存空间,初始化新的字符串def。

【编辑推荐】

  1. Java语言入门教程之Java类中的包
  2. Java语言入门教程之Java类的组成
  3. Java语言入门教程之Java类中的各种数据
  4. Java语言入门教程之Java语言的访问权限修饰符
  5. 2008最值得学习的五种JAVA技术
责任编辑:仲衡 来源: taomoon719的专栏
相关推荐

2009-06-12 15:01:48

Java数组Java教程

2009-06-12 14:18:20

构造方法Java语言Java教程

2009-06-12 14:46:05

static修饰符Java教程

2024-09-29 16:09:23

2023-11-23 08:25:40

开发人员SmaliAndroid

2009-08-27 15:47:00

C#数据类型string

2022-10-27 20:42:04

JavaScripJava编程语言

2009-04-30 15:15:01

Java抽象类接口

2010-09-17 14:49:04

Java数据类型

2010-10-15 13:28:34

MySql数据类型

2023-03-27 10:04:27

数据类型浮点型布尔型

2020-10-29 10:28:31

Java数据类型

2020-10-26 13:46:07

Java基础入门篇

2009-09-01 16:35:55

C#操作String数

2009-06-12 12:56:29

Java类Java教程

2010-09-17 14:57:34

JAVA数据类型

2019-08-12 11:40:48

数据库SQLite3数据类型

2011-07-21 14:45:13

java

2023-05-26 00:02:31

SDS数据编码

2024-11-12 13:01:46

点赞
收藏

51CTO技术栈公众号