昨天看视频,老师在讲到String与StringBuffer之间的类型转换这一节的时候!就想怎么这么多的类型转换?数据类型之间是怎么转换的?为什么会有这么多的类型转换?数据类型有什么意义?我觉得我是钻牛角尖了,但是还是总结一下以后自己看吧!
站在自己的认知上:
为什么会有数据类型/意义?
编程的本质是模拟现实世界的事物,实现信息化。我觉得是对编程的最好定义了。信息化世界就像栈内存里面的s(Student s = new Student()),而现实世界就是new 出来的东西 是具体而存在的! 他们就像映射一样,所以为了模拟世界就必须把具体事物用数据在编程中表现出来,比如:年龄 可以用数据类型 +成员变量名表现 int age; 或者如 现实世界用 “条”,“个”等来形容鱼、人等、而 “条”“个”就相当于 int、 double ,这样我们就可以说 一条鱼 两条鱼 三个人。。等等也就是可以吧相同类型的东西放在一起,做一些操作(加减乘除。。)就不会出现 一条鱼+一个人 =两个人了 这也就很好的解释了数据类型之间的转换: 1、就是相同类型之间2、存在基本逻辑运算,不然转换干什么
百度了一下:“编程语言里面为什么要用那么多大小不同的数据类型?”总结一下答案基本上都是说 节省空间 增加程序速度,我是这样理解的 就是准确性;比如:在火车站接人 我们首先要做的就是把他分类,和不需要的人区分开。 是几点的火车 在哪个出站口 。。。等等我们要做的就是把他不断的分类,让你准确的锁定他更快的找到他 !
数据类型的转换
基本类型我是这样理解的:基本类型之间都是存在着联系的就像大圈套小圈一样;(布尔除外)同样的要做类型转换就必须转换成一致类型才可以 ,所以基本类型 可以分为 1、默认向上转型 如 byte b =100; int x = b; 赋值符号 左大右小 2、强制类型转换 int x =10; byte b = (byte)10; 赋值符号 左小右大;
引用类型之间的转换我是这样理解的:引用的类型基本上是类的类型 如 Student s = new Student(); s 则为引用类型 数据类型为Student类, 又因为类与类之间的关系只有继承关系所以 fu 类型> zi类型 可以使用默认向上转型 或者强制类型转换,前提是必须有继承关系;
无继承关系就不能转换了吗?
1、可以的可以使用 toString方法(必须重写,不然没有意义)这也是和继承是有关系的;
2、以字符串String类型为中间媒介调用静态方法static String valueOf(任意类型);
3、 String 与StringBuffer之间的转换,通过构造方法实现String转StringBuffer: StringBuffer sb = new StringBuffer(string str); 通过append()方法实现String转StringBuffer:sb.append(str);
通过构造方法实现StringBuffer 转String : StringBuffer sb =new StringBuffer(); String s = new String (sb);
4、其他(String类方法)
byte[] getByes();把字符串转换为字节数组
char[] tocharArray();把字符串转换为字符数组
static String valueOf(任意类型);把任意类型转换为字符串
static String tolowerCase/toupperCase();把字符转换成大小写
(待改。。)