Java中的基础数据类型
基本数据类型:
- 浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入
- 不能对boolean类型进行类型转换
- 转换过程中可能导致溢出或损失精度
内置数据类型:(内存字节、数值范围不变)
整型:byte、short、int(默认类型)、long
- byte最小值-最大值:-128~127,byte d=(byte)128,则d=-128
- 十六进制数以0x或0X开头
- long类型以L结尾
- int包装类:Integer
区别:
1、Integer必须实例化才能使用,int直接可以使用
2、Integer实际是对象的引用,在实例化一个对象后,是一个指针指向这个对象,而int是直接存储值
3、默认值一个是null,一个是0
浮点型:float、double(默认类型)
- 单精度float的定义要在后面加F或f,float f=9.8f,双精度double可省略d或D
字符型:char
- 可以储存任意单个字符
- 最小值-最大值:\u0000-\uffff(即65535),\u表示Unicode编码
- 可作为整型数据
- 包装类:Character
布尔型:boolean
引用数据类型:(存放地址)
-
数组、字符串、接口、类
-
默认值为NULL
String类
-
声明时首字母大写
-
用于创建和操纵字符串
-
创建的对象的值不能修改
-
有11种构造方法,来提供不同的参数来初始化字符串,比如通过字符数组来赋值
-
创建方法:
1、关键字new和构造方法:String s1 = new String(“Hello”);
创建的对象赋相同值,比较之后不相等
原因:new出来的对象地址不同,那么对象的比较就是地址的比较,显然不同
2、直接赋值:String s2 = “Hello”;
创建的对象赋相同值,比较之后相等
原因:在方法区中找"Hello"字符串对象,如果没有,则让引用对象,因此println方法要严格内容格式,String类型则用+连接的变量都要是String类型,否则就可能打印出变量地址,就是乱码 -
常见成员方法:
1、length():对象长度
2、charAt(int index):下标为index的字符
3、indexOf(char ch):指定字符ch的下标
4、indexOf(String char,int fromIndex):从下标fromIndex开始,搜索指定字符串char,最后打印出第一个字符的下标
5、subString(int beginIndex):从指定下标beginIndex到串尾的子字符串
6、subString(int beginIndex,int endIndex):返回从beginIndex到endIndex的子串
7、equals(Object anObject):字符串与指定的对象比较,仅比较对象字符串的长度和对应的字符,返回布尔值
8、equalsIgnoreCase(String anotherString):和equals相似,不过不区分大小写
9、compareTo(String anotherString):比较并返回第一个不同字符的unicode值的差
10、concat(String str):指定字符串str添加到序列中
- StringBuffer类:
在应用程序要求线程安全的情况下,该类用来修改字符串
方法:
1、append(String s):指定字符串s追加到字符序列
2、capacity():返回当前容量
3、charAt(int index):下标为index的字符
4、setcharAt(int index,char ch):下标为index的字符换成ch
5、toString():返回它本身,前提是字符串,数字、字符都不能打印
- 问题: 为什么println能输出“ ”+sum,其中sum为基本数据类型?