首先想说的是我虽然是个小白,但是多少有点c++ 和c的基础,所以自学java的时候就没有搞得那么详细,因为大量的东西跟c++是比较像的,这里是今天的学习笔记,重点是一些跟c++不一样的地方。 前面还有一篇从知乎上找到的很长很详细的专门论述c++ 与JAVA不同的文章,感兴趣的可以看下
1、main函数的写法:
java是完全面向对象的,由一个一个类组成,在每一个类里可以写主函数,跟c的main函数地位一样的
具体形式不一样: public static void main(String [] args){}
public static 跟c++的类与对象是一样的,表示所有类都可以访问,并且static表示这是静态的,类声明了就存在了,跟对象无关, String [] args表示要传入的参数, 什么都不传的话程序也可以进行
2、数据类型:
跟c++基本相似,不过有 byte类型,表示一个字节,表示 -128~127范围的数字,
用float的时候:float f = 12.9f;后面的f不能丢,否则会报错;这点跟c也比较像;
用double的时候: double f = 12.8D; 但是这个D不写也不报错
3、变量名与作用域:
几个例子体会一下
1) if(...)
{
int i = 3;
int i = 5;
}//报错, 同一个作用域内不能变量名重复
2)if(..)
{
int i = 7;
}int i = 3; //这里是不报错的,因为int i = 7之后,出了其作用域就被自动回收了
3) int i = 0;
if(...)
{
int i = 8;
}
// 这里是不可以的,因为前面i的作用域还在
变量的命名规则基本还是一样的,不过变量名中还可以使用$号,不知c++是否可以;
另外注意局部变量必须声明的时候初始化,否则报错;
4、常量:
public static final int i = 0;
类似于c++ 的const的功能
5、变量类型转化:
byte b = 7; int h = b; // 这里是可以的
int b = 7; byte h = b;// 这里是不可以的,跟c++一样,小的转成大的可以,大的不能转成小的,除非强制类型转化
强制类型转化: byte b = (byte) h;
6、比较运算:
JAVA中任何数据类型都可以用 == 或者!= 来比较,但是c++有些类型是不可以的(比如char数组)
所有的比较返回的都是true 或false, 而不是c++中的0 1; 其他的符号还有优先级基本是一样的
7、输入 从控制台输入要用Scanner类 :
Scanner con = new Scanner(System.in);
int num = con.nextInt();
这里表示从控制台输入一个整数, //这个类我目前了解也不多
8、数组的声明:
以下用Int 代替各种数组类型举例
int [] A; A = new int[]{1,2,3};
int [] A = {1,2,3};
int [] A = new int[]{1,2,3};
int [] A = new int[3];
以上都是可以的,最后一种是特意指明了数组大小
除了常规的for循环等输出数组外,JAVA里有Arrays类
System.print(Arrays.toString(A));
可以输出 [1,2,3];