目录:
数据类型
Java数组
Arrays类
Character类
String类
StringBuffer和StringBuilder类
http://www.runoob.com/java/java-basic-datatypes.html
Java两大数据类型:内置数据类型和引用数据类型
八种基本类型:六种数字类型(四个整数型、两个浮点型),一种字符类型,一种boolean类型。
byte short int long float double boolean char
byte:
byte 数据类型是8位、有符号的,以二进制补码表示的整数;
最小值是 -128(-2^7);最大值是 127(2^7-1);
默认值是 0;
byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一;
例子:byte a = 100,byte b = -50。
short:
short 数据类型是 16 位、有符号的以二进制补码表示的整数最小值是 -32768(-2^15);最大值是 32767(2^15 - 1);
Short 数据类型也可以像 byte 那样节省空间。
一个short变量是int型变量所占空间的二分之一;
默认值是 0;例子:short s = 1000,short r = -20000。
int:
int 数据类型是32位、有符号的以二进制补码表示的整数;
最小值是 -2,147,483,648(-2^31);
最大值是 2,147,483,647(2^31 - 1);
一般地整型变量默认为 int 类型;默认值是 0 ;
例子:int a = 100000, int b = -200000。
long:
long 数据类型是 64 位、有符号的以二进制补码表示的整数;
最小值是 -9,223,372,036,854,775,808(-2^63);
最大值是 9,223,372,036,854,775,807(2^63 -1);
这种类型主要使用在需要比较大整数的系统上;
默认值是 0L;
例子: long a = 100000L,Long b = -200000L。
"L"理论上不分大小写,但是若写成"l"容易与数字"1"混淆,不容易分辩。所以最好大写。
float:
float 数据类型是单精度、32位、符合IEEE 754标准的浮点数;
float 在储存大型浮点数组的时候可节省内存空间;
默认值是 0.0f;
浮点数不能用来表示精确的值,如货币;
例子:float f1 = 234.5f。
double:
double 数据类型是双精度、64 位、符合IEEE 754标准的浮点数;
浮点数的默认类型为double类型;
double类型同样不能表示精确的值,如货币;
默认值是 0.0d;例子:double d1 = 123.4。
boolean:
boolean数据类型表示一位的信息;
只有两个取值:true 和 false;
这种类型只作为一种标志来记录 true/false 情况;
默认值是 false;
例子:boolean one = true。
char:
char类型是一个单一的 16 位 Unicode 字符;
最小值是 \u0000(即为0);
最大值是 \uffff(即为65,535);
char 数据类型可以储存任何字符;
例子:char letter = ‘A’;。
引用类型指向一个对象,指向对象的变量是引用变量。这些变量在声明时被指定为一个特定的类型,比如 Employee、Puppy 等。变量一旦声明后,类型就不能被改变了。
对象、数组都是引用数据类型。
所有引用类型的默认值都是null。
一个引用变量可以用来引用任何与之兼容的类型。
例子:Site site = new Site(“Runoob”)。
数组用来存储固定大小的同类型元素
dataType[] ar = new dataType[size];
//一、使用 dataType[arraySize] 创建了一个数组。二、把新创建的数组的引用赋值给变量 arrayRefVar。
dataType[] arrayRefVar = {value0, value1, …, valuek};
获取数组长度:ar.length;
获取数组元素:ar[i];
多维数组:
多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组,
例如:String str[][] = new String[3][4];
初始化:
1. 直接为每一维分配空间,格式如下:type[][] typeName = new type[typeLength1][typeLength2];type 可以为基本数据类型和复合数据类型,arraylenght1 和 arraylenght2 必须为正整数,arraylenght1 为行数,arraylenght2 为列数。
2. 例如:int a[][] = new int[2][3];解析:二维数组 a 可以看成一个两行三列的数组。2. 从最高维开始,分别为每一维分配空间,例如:String s[][] = new String[2][];
s[0] = new String[2];
s[1] = new String[3];
s[0][0] = new String(“Good”);
s[0][1] = new String(“Luck”);
s[1][0] = new String(“to”);
s[1][1] = new String(“you”);
s[1][2] = new String("!");解析:s[0]=new String[2] 和 s[1]=new String[3] 是为最高维分配引用空间,也就是为最高维限制其能保存数据的最长的长度,然后再为其每个数组元素单独分配空间 s0=new String(“Good”) 等操作。
java.util.Arrays 类能方便地操作数组,它提供的所有方法都是静态的。具有以下功能:给数组赋值:通过 fill 方法。对数组排序:通过 sort 方法,按升序。比较数组:通过 equals 方法比较数组中元素值是否相等。查找数组元素:通过 binarySearch 方法能对排序好的数组进行二分查找法操作。
用于对单个字符进行操作
Character 类在对象中包装一个基本类型 char 的值
Java语言为内置数据类型char提供了包装类Character类。Character类提供了一系列方法来操纵字符。你可以使用Character的构造方法创建一个Character类对象,例如:Character ch = new Character(‘a’);在某些情况下,Java编译器会自动创建一个Character对象。例如,将一个char类型的参数传递给需要一个Character类型参数的方法时,那么编译器会自动地将char类型参数转换为Character对象。 这种特征称为装箱,反过来称为拆箱。
// 原始字符 ‘a’ 装箱到 Character 对象 ch 中
Character ch = ‘a’;
// 原始字符 ‘x’ 用 test 方法装箱
// 返回拆箱的值到 ‘c’
char c = test(‘x’);
比如:public static boolean isDigit(char ch) //isDigit() 方法用于判断指定字符是否为数字。
字符串广泛应用 在Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串
String类不可以改变。一旦创建,不能改变
length() 方法,length 属性和 size() 方法的区别:
1、length() 方法是针对字符串来说的,要求一个字符串的长度就要用到它的length()方法;
2、length 属性是针对 Java 中的数组来说的,要求数组的长度可以用其 length 属性;
3、Java 中的 size() 方法是针对泛型集合说的, 如果想看这个泛型有多少个元素, 就调用此方法来查看!
关于string为什么不可以改变:
根据jdk源码分析,字符串实际上是一个char数组,并且内部封装了一个char数组。并且这里char数组是被final修饰的。
常见问题: