Java学习--(三)变量与常量与与C++的一些区别
2015-07-28 23:57
531 查看
感觉与C++并没有多大的不同,同样有关键字,标识符(数字,字母,$,_(注意符号只能有这两个))。
1.基本数据类型:boolean, char, byte, short, int, long, float, double, void,此外还有Wrapper type,Boolean, Character, Byte,Short…(就是上面八种的全称且开头大写(同C++,Java也是区分大小写的)),至于区别嘛,目前 的理解是Wrapper type类似于C++中的类,比如string吧,初始化时Integer integer=new Integer(2);
而int 初始化的则是常量(? )。
*注意C++中的bool在java要写成boolean。
2.区别:
b. 数组:Java的数组更加安全,会自己进行下标检索不会越界,同时会自己初始化为NULL。当你创建一个对象数组,其实你已经创造了一个引用数组,同时每个引用都自动初始化为null。当Java检测到null时,它知道该引用没有指向对象,会报错。
Java的数据类型在任何机器上都是相同大小的。与C++不同,所以没有sizeof()这个操作符
c.delete与否:很多语言都有域(scope)的概念,Java也是。在C++中,下面代码是合理的,但Java不行
然后,在C++中我们new了一个对象或变量,如果不需要用到了一定要delete释放内存空间,而Java不用,到了域外,该引用会消失,但其指向(或代表)的内容仍占着空间,但没关系,它已经成为了垃圾数据,到内存不够用时会自己释放。
自动转换:java支持向上转换,向下转换需要自己显示转换(boolean不允许任何转换)浮点数向整数转换没有四舍五入的原则,直接去掉小数点后的数字
1.基本数据类型:boolean, char, byte, short, int, long, float, double, void,此外还有Wrapper type,Boolean, Character, Byte,Short…(就是上面八种的全称且开头大写(同C++,Java也是区分大小写的)),至于区别嘛,目前 的理解是Wrapper type类似于C++中的类,比如string吧,初始化时Integer integer=new Integer(2);
而int 初始化的则是常量(? )。
*注意C++中的bool在java要写成boolean。
2.区别:
b. 数组:Java的数组更加安全,会自己进行下标检索不会越界,同时会自己初始化为NULL。当你创建一个对象数组,其实你已经创造了一个引用数组,同时每个引用都自动初始化为null。当Java检测到null时,它知道该引用没有指向对象,会报错。
Java的数据类型在任何机器上都是相同大小的。与C++不同,所以没有sizeof()这个操作符
c.delete与否:很多语言都有域(scope)的概念,Java也是。在C++中,下面代码是合理的,但Java不行
{ int x=0; { int x=1; } }
然后,在C++中我们new了一个对象或变量,如果不需要用到了一定要delete释放内存空间,而Java不用,到了域外,该引用会消失,但其指向(或代表)的内容仍占着空间,但没关系,它已经成为了垃圾数据,到内存不够用时会自己释放。
自动转换:java支持向上转换,向下转换需要自己显示转换(boolean不允许任何转换)浮点数向整数转换没有四舍五入的原则,直接去掉小数点后的数字
相关文章推荐
- 开发一款C语言小游戏——骑士飞行棋
- c/c++对数组取地址
- c++成员指针笔记
- POJ 1273 最大流入门题 Edmonds_Karp算法
- c++编写断点续传和多线程下载模块【转】
- C\C++ 程序的编译过程
- 堆排序
- Visual C++ 2015 下的 enable_shared_from_this 原理简析
- C语言程序 指针
- C++构造函数的自动调用(调用一个父类的构造函数,有显性调用最好,否则就默认调用无参数的构造函数)——哲学思想:不调用怎么初始化父类的成员数据和VMT?
- C++新特性学习(3)
- C语言中关于位域的介绍
- C++新特性学习(4)
- C++新特性学习(2)
- C语言之函数调用16—递归法之一般函数的调用(1)
- C++对象内存布局(1)
- 猜数字游戏
- c++指针作为函数参数传递的问题
- C语言之函数调用15—递归法求哥德巴赫猜想
- C++ IO类