作为一个从c直接奔Java去的学习者而言,我想我有一点点必要去简述,去总结一下两者的异同点吧;

1;第一思维不同;
c语言是面向过程的语言;而java是面向对象的语言;
c语言是由方法也就是函数构成,而Java是由类也就是对象构成;

2;编译运行过程;

C语言和Java通信 c语言和java的关系_C语言和Java通信

2;基本数据;

都是强类型语言;一个变量一定要被指定了某个数据类型,要求变量的使用要严格符合定义,所有变量都必须先定义后使用。

关于Java的基本类型;

C语言和Java通信 c语言和java的关系_c语言_02


C语言和Java通信 c语言和java的关系_C语言和Java通信_03


关于c语言的基本类型;

C语言和Java通信 c语言和java的关系_C语言和Java通信_04


找区别;

Java多了byte类型,它的基本数据类型的内存大小都是确定的(也是可以跨平台的原因),它实数默认的是double类型,它的boolean类型只有true和false不能进行转换;意思是0并不能代表false;char是Unicode表;Java没有unsigned无符号形;

c语言,字节大小随执行机器的不同而变化;bool型是可以转化的,非0为真,0为假;

Java中的自动转化;

C语言和Java通信 c语言和java的关系_c语言_05


Java中数据类型转化时可能存在的精度缺失;

C语言和Java通信 c语言和java的关系_C语言和Java通信_06


一个上课时的小例子;

long l = 1234567890000000000………;这样会存在缺失的,因为这串数字是整数,因此默认的还是int类型,但这个数超过看int因此就缺失了,这个是进行自动转化的,但是缺失了。解决办法就是加个L;

3;标识符,变量;
java是由字母,下划线,美元符,数字组成,且第一个字符不能是数字,但是尽量不要使用美元符,美元符一般是Java中表示特定的一些标识符例如内部类的class文件名;
c语言就没有美元符;
Java表示常量是final;
c是const或者define宏定义;

4;运算符;
都存在数据类型的自动转化;
Java;
\除法在实数除法中(整数则不可以)可以除以0;因为Java中有Infinity(正无穷大),-Infinity(负无穷大),NaN表示计算机也不知道结果;
%取摸;可以对实数进行%;并且%0时得到NaN;

5补充两个Java运算符;
new;用来创建一个对象;就是new加这个类的构造方法则创建了这个类的对象了;
instanceof ;用来测试第一个运算对象是否是第二个运算对象的实例;一般用来检测这个对象是不是这个类的实例;

6;其余的语法都差不多相同,Java多了一个each for循环;

7;字符串;
Java字符串就是到对象知识了;
c语言的字符串是一个字符数组了;

8;注释;
java中增加了文档注释;为生成API文档而准备的,并且可以让文档和程序同时存在,增强可读性;

水平有限,现在只到这里了,下次再补充和改错;