1. 数据类型与变量
1.1 基本数据类型
C语言:
int
, char
, float
, double
- 强调大小和符号:
unsigned int
与int
Java:
int
, char
, float
, double
,无unsigned
1.2 类型转换
- C语言: 显式类型转换使用
(type) value
- Java: 包装类提供了一些类型转换的方法,比如
Integer.valueOf()
1 2 3
| int a = 10; double b = (double)a / 3;
|
1 2 3
| int a = 10; double b = (double)a / 3;
|
2. 控制结构
2.1 条件语句
C语言:
if
, else if
, else
- 使用
switch
语句时,case
可以是 char
类型
Java:
- 同样使用
if
, else if
, else
,switch
支持 String
类型
1 2 3 4 5 6
| if (a > b) { printf("a is greater\n"); } else { printf("b is greater or equal\n"); }
|
1 2 3 4 5 6
| if (a > b) { System.out.println("a is greater"); } else { System.out.println("b is greater or equal"); }
|
2.2 循环
C语言:
Java:
for
, while
, do-while
,并且有增强型for
循环(for-each)
1 2 3 4
| for (int i = 0; i < 5; i++) { printf("%d\n", i); }
|
1 2 3 4
| for (int i = 0; i < 5; i++) { System.out.println(i); }
|
3. 函数与方法
3.1 函数定义
- C语言: 使用类型声明返回值类型
- Java: 方法定义包含返回值类型和访问修饰符
1 2 3 4
| int add(int a, int b) { return a + b; }
|
1 2 3 4
| public int add(int a, int b) { return a + b; }
|
3.2 参数传递
1 2 3 4
| void modify(int *a) { *a = 20; }
|
1 2 3 4
| public void modify(MyObject obj) { obj.value = 20; }
|
4. 内存管理
4.1 动态内存分配
1 2 3
| int *arr = (int*)malloc(5 * sizeof(int)); free(arr);
|
1 2
| int[] arr = new int[5];
|
5. 结构体与类
5.1 数据结构
- C语言: 使用
struct
定义结构体
- Java: 使用
class
定义类,支持继承和封装
1 2 3 4 5
| struct Point { int x; int y; };
|
1 2 3 4 5
| class Point { int x; int y; }
|
5.2 访问控制
- C语言: 没有访问控制
- Java: 使用
private
, protected
, public
控制访问权限
6. 异常处理
6.1 异常处理机制
- C语言: 通过返回值标记错误,检查错误码
- Java: 使用
try-catch-finally
进行异常处理
1 2 3 4
| if (function() == -1) { }
|
1 2 3 4 5 6
| try { } catch (Exception e) { }
|
7. 总结与实践
7.1 C语言与Java的应用场景比较
7.2 案例与项目
- 实践通过结合 C 和 Java 的项目开发,加深理解。
针对以上内容,通过对比 C 语言与 Java 的不同点,能够帮助学习者更好地掌握 C 语言的进阶主题。