Java和C语言在数据类型大部分相同,但是也有不同
1.新增了byte类型(相当于C语言中把char用作整数一样)
2.然后就是char类型的大小改为了2字节。
3.布尔型改名为boolean而不是bool,且大小没有明确规定,方便进行不同平台之间的移植!
4.没有有符号无符号的区分,Java都是有符合,即正负都可以表示!
但是Java里面不再有指针这个概念了,而是将数据类型分成了基本数据类型和引用数据类型。
基本数据类型就是刚刚的8种类型,而引用数据类型就包括String,数组,类,接口,我们会慢慢接触到的!
然后我们讲Java为了保证安全而与C语言不一样的地方!
1.局部变量必须初始化才能使用(否则就直接报错),而不是像C语言哪有还有随机值!
2.直接赋值的字面值常量不能超过范围(仅字面值常量,并不是不可能超范围,如果超出范围同样会溢出)
整数类型的区别
除此之外如同C语言中的double和float中默认浮点数是double一样
Java中的int和long也可以加L/l区分!
其次就是byte类型的整形提升
布尔型的区别
1.首先是名字不是bool而是boolean!
2.大小没有规定!
3.打印出来的是true和false而不是像C语言打印0或者1的数值出来!
4.Java中不存在0为假,非0为真这种说法,即boolean不能和整数进行转化!
字符串类型
1.String后面没有什么以\0结尾这种说法,String里面本身就是有一个数组,根本不需要\0做标识符!
2.String不是包装类型(并且String连基本数据类型都不是,更不谈包装类型)(最后会提到包装类)
3.整形和字符串的转换也非常简单
4.字符串+其他这个时候+就是拼接而不是+!
包装类型
基础数据类型会有其对应的包装类型,其中包含一些有关基础数据类型的功能被封装其中!
如Integer(int),Charcter(char).Boolean(boolean),short(Short),byte(Byte),long(Long)
使用类似如下
这些都是基础类型的包装类,但是大家现在还没有学类,所以大家见一下就行,以后大家就会理解这是什么东西的!
然后就是运算符
常见的加减乘除,取余,取模等C语言基本相同!
但是Java支持浮点数取模!除此之外的就不再赘述!
数组
Java中不存在指针的概念,所以就有一套新的规则去解决这个问题!
这个地方arr1和arr2本质只是一个指向(引用类型),所以可以通过直接赋值改变指向其指向!
如图所示,并且如果一块内存没有被指,就会自动回收,例如此处arr2原本指向的空间就会在适当的时机被系统回收!这样就不用像C语言那样手动管理内存,大大的简化了内存管理!提高了程序的安全性!