C++与JAVA的不同之处
2016-02-12 00:27
417 查看
大一一年学了C++,寒假看head First Java,在此把与C++显著不同的知识点整理出来。初学JAVA,如有不对欢迎指出。
1.JAVA文件格式是.java,编译后是.class。c++是.cpp,.h。
2.条件判断中,只能用布尔型boolean,不能用数字。即while(1)是错误的。
3.System.out.print("Hello World!") 不输出换行
System.out.printIn("Hello World!") 多输出换行
4.在Java的面向对象概念中并没有全局变量这回事。任何变量只要加上public,static,final,基本上都会变成全局变量取用的常数。
5.float f=3.2f,加上f才是浮点数,否则所有带小数点的值都会被编译器会当做double处理。
6.JAVA不会自动类型转换,如有需要必须进行强制装换。如int a; double b=3.2; a=b;是错的 必须写成 a=(int)b;
7.dog a=new dog(); 在JAVA中没有指针,会返回给a一个引用变量。不同的JAVA虚拟机a的大小也是不同的。并且不能进行运算。而在c++中指针可以进行加减。
8.dog[] dogs; dogs=new dog[7]; 此时dogs[0],dogs[1]...中只有dog的引用变量,但没有对象。还需要单独new 对象。dogs[0]=new dog; 这点与C++也不同。
9.class Dog{
private int size;
private String name; //这里的变量,即实例变量会有初始值,数字为0,布尔型为false,对象引用为null,所以不初始化也可以。
public int Text(){
int a; //但这里的局部变量必须初始化,不初始化编译器会报错。
}
}
10.使用==来比较两个primitive主数据类型(即int,doule那些)或者判断两个引用是否引用同一个对象。使用equals()来判断两个对象是否在意义(现在还不了解这里说的意义是什么意思)上相等。
11.java.util.ArryList java.util 是包名,ArryList是类名。使用时某个类时必须写全类名或者开头加上import java.util.ArryList.类似于C++中的命名空间using namespace std; 可以防止类名重复。但和#include“” 不一样,import不会增加文件的大小。java.lang 不用import,默认导入了,里面有常用的类例如Math
12. 这个方法是继承父类的
public void roam(){
super.roam(); 会先调用父类的此方法
// my own code
}
13.final 修饰符表示此类不能或方法不能再被继承
14. Java中所有的类的继承于Object,引用变量是什么类型,就只能用什么类型的方法,比如,Object a=new dog();则a.eat(),是错误的。
15.接口可以看做是用来解决JAVA不能多重继承问题的。接口中的方法全部是抽象方法,子类需要全部实现,
接口的定义:public interface Pet{ public abstract void play(); }
接口的实现:public class Dog extends Canine implements Pets{ }
16.局部变量在栈上,实例变量和对象在堆上。如果引用当对象没有对应的引用变量时,垃圾回收器便可以销毁对象。
1.JAVA文件格式是.java,编译后是.class。c++是.cpp,.h。
2.条件判断中,只能用布尔型boolean,不能用数字。即while(1)是错误的。
3.System.out.print("Hello World!") 不输出换行
System.out.printIn("Hello World!") 多输出换行
4.在Java的面向对象概念中并没有全局变量这回事。任何变量只要加上public,static,final,基本上都会变成全局变量取用的常数。
5.float f=3.2f,加上f才是浮点数,否则所有带小数点的值都会被编译器会当做double处理。
6.JAVA不会自动类型转换,如有需要必须进行强制装换。如int a; double b=3.2; a=b;是错的 必须写成 a=(int)b;
7.dog a=new dog(); 在JAVA中没有指针,会返回给a一个引用变量。不同的JAVA虚拟机a的大小也是不同的。并且不能进行运算。而在c++中指针可以进行加减。
8.dog[] dogs; dogs=new dog[7]; 此时dogs[0],dogs[1]...中只有dog的引用变量,但没有对象。还需要单独new 对象。dogs[0]=new dog; 这点与C++也不同。
9.class Dog{
private int size;
private String name; //这里的变量,即实例变量会有初始值,数字为0,布尔型为false,对象引用为null,所以不初始化也可以。
public int Text(){
int a; //但这里的局部变量必须初始化,不初始化编译器会报错。
}
}
10.使用==来比较两个primitive主数据类型(即int,doule那些)或者判断两个引用是否引用同一个对象。使用equals()来判断两个对象是否在意义(现在还不了解这里说的意义是什么意思)上相等。
11.java.util.ArryList java.util 是包名,ArryList是类名。使用时某个类时必须写全类名或者开头加上import java.util.ArryList.类似于C++中的命名空间using namespace std; 可以防止类名重复。但和#include“” 不一样,import不会增加文件的大小。java.lang 不用import,默认导入了,里面有常用的类例如Math
12. 这个方法是继承父类的
public void roam(){
super.roam(); 会先调用父类的此方法
// my own code
}
13.final 修饰符表示此类不能或方法不能再被继承
14. Java中所有的类的继承于Object,引用变量是什么类型,就只能用什么类型的方法,比如,Object a=new dog();则a.eat(),是错误的。
15.接口可以看做是用来解决JAVA不能多重继承问题的。接口中的方法全部是抽象方法,子类需要全部实现,
接口的定义:public interface Pet{ public abstract void play(); }
接口的实现:public class Dog extends Canine implements Pets{ }
16.局部变量在栈上,实例变量和对象在堆上。如果引用当对象没有对应的引用变量时,垃圾回收器便可以销毁对象。
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 关于指针的一些事情
- 堆排序