2026-05-21 C与Java的六个关键差异
背景
诊断为C语言知识污染了Java理解。开设C/Java差异专项课。
六个关键差异
- switch:C只能int → Java支持String/enum/包装类/byte/short/char
- 参数传递:C有指针 → Java全值传递。改对象内部(arr[0]=999)外面看得见,改引用本身(arr=new int[10])外面看不见
- 数组声明:int arr[] → Java推荐 int[] arr
- String:C的char[]可变 → Java String不可变(Immutable),字符串常量池(String Pool)自动去重
- for循环:C只有传统for → Java多了for-each,无索引只读遍历
- 布尔:C非零即真 → Java的if()只接受boolean表达式
额外收获
读代码要顺着时间线,不能当一幅画看。同一变量在不同时刻可以有不同值。
2026-05-21 C与Java的六个关键差异
http://example.com/2026/05/21/2026-05-21 C与Java的六个关键差异/