一、数据类型
在C语言中我们已经知道的数据类型有
整型: short int long longlong
浮点型:float double
字符型:char
JAVA中没有longlong类型,但是多了字符串类型、字节类型和布尔类型
字节类型 byte
字符串型 String
布尔类型 boolean
虽然数JAVA中这些数据类型和C都大同小异,但是由于JAVA虚拟机的存在,在JAVA中每个类型所占的字节数是固定的
数据类型 | 所占字节 |
short | 2 |
int | 4 |
long | 8 |
float | 4 |
double | 8 |
char | 2 |
byte | 1 |
boolean | 1 |
JAVA中对于char型所占内存做了调整,将其改变为2个字节,那么这与C中的char型数据有什么不同呢?
我所了解到的是能表示得到数据范围不同,相对于C中的char来说,JAVA中的char能表示的范围更广,
JAVA中的char | C中的char |
\u0000~\uFFFF | -128~127 |
无符号 | 有符号 |
在JAVA中有byte字节类型,它所占内存是1个字节,和C中的char所占内存一样大,那么这两个又有什么区别或者联系呢?
我也有点懵,毕竟两个表示的数据范围一样。
但是我个人认为两者是没有关系的,毕竟一个是字节型,一个是字符型,能有什么关系QAQ。
字符串类型
JAVA好用的一点包括他有字符串类型String,在表示一个字符串的时候不需要像C中定义一个字符数组,而且C中字符数组是以“/0”结尾的,一个不注意,就可能出错。
那么JAVA中如何定义一个字符串类型的数据呢?
目前我所掌握的有这么几种方法:
String str1 = "hello"; //直接定义
String str2 = new String("World"); //通过new一个String实例定义
char[] tmp = {'a','b','c'};
String str3 = Arrays.toString(tmp);//通过字符数组来定义
在我看来呢,直接定义的这种方法最快速简便,因为它不仅好用,耗费的内存也是最少的
我们可以看到,这里直接就在内存池里创建了一个“hello”,然后将地址给引用str1
在看一下第二种方法是如何创建的:
相比于第一种方法,这种方法明显耗费了内存空间
我们再来看一下第三种方法,这和第二种方法有“异曲同工”之妙,我个人认为这种方法是最不可取的。
字符串类型的数据一般情况下也是不能随便改变它的值得,但是有时候我们可以通过其他手段改变字符串数据的值,这个方法我还没有掌握,就不和大家解释了,只晓得好像是通过映射。
二、运算符
Java中的运算符和C中的并没有什么特别大的区别