JAVA与C语言之间的差异(二)

一、while循环,do while循环

众所周知,while循环的结构是这样的:

java 复制代码
 while(循环条件) {
        循环语句;
 }

在C语言中,可以直接再循环条件处写1,表示死循环,直到执行break才可以跳出,但是在JAVA中不可以,JAVA中这里的表达式必须是通过关系运算符进行判断后结果为true或false才可以!!!

do while循环同理!!!(很少使用)

二、方法(就是C语言中的函数)

1.方法的格式:

java 复制代码
修饰符   返回值类型   ⽅法名称([参数类型  形参 ...]){
        ⽅法体代码;
        [return 返回值];
 }

可以通过下面的例子了解:

java 复制代码
 //检测⼀个年份是否为闰年
 public static boolean isLeapYear(int year){
     if((0 == year % 4 && 0 != year % 100) || 0 == year % 400){
         return true;
     }else{
         return false;
     }
 }


 //两个整数相加
 public static int add(int x, int y) {
     return x + y;
 }

#注:

(1)如果⽅法有返回值,返回值类型必须要与返回的实体类型⼀致,如果没有返回值,必 须写成void

(2)⽅法名字:采⽤⼩驼峰命名

(3)在Java当中,⽅法必须写在类当中

(4)在Java当中,⽅法不能嵌套定义

(5)在Java当中,没有⽅法声明⼀说

函数的调用同C语言一样!!!

#注:JAVA可以直接返回一个数组,这是C语言中办不到的!!!

(直接 "return 数组名")

2.方法的重载

C语言中不支持两个同名的函数同时存在,而在我们高贵的JAVA中可以!!!

方法的重载可以简单理解为有几个同名的方法同时存在,他们之间参数列表不同,这样编译器在编译代码时会对实参进行推演,根据推演结果确定调用哪个方法(简单来说就是那个最合适用哪个)

java 复制代码
 public class TestMethod {
 public static void main(String[] args) {
 add(1, 2);              // 调⽤add(int, int)   
 add(1.5, 2.5);          // 调⽤add(double, double)  
 add(1.5, 2.5, 3.5);     // 调⽤add(double, double, double)  
 }

 public static int add(int x, int y) {
        return x + y;
    }

 public static double add(double x, double y) {
        return x + y;
    }

 public static double add(double x, double y, double z) {
        return x + y + z;
    }
 }

三、数组

JAVA中数组的写法与C语言中有所区别:

1.一维数组

两种数组创建方法:

java 复制代码
//动态初始化:在创建数组时,直接指定数组中元素的个数
int[] array = new int[10];

// 静态初始化:在创建数组时不直接指定数据元素个数,⽽直接将具体的数据内容进⾏指定
int[] array1 = new int[]{0,1,2,3,4,5,6,7,8,9};

#注:如果没有对数组进行初始化,那么将会默认存储对应的0值,boolean默认为FALSE,引用类型(String)默认为null。

在JAVA中,用数组对象.length来获取数组长度.

对于数组的遍历(就是打印一遍),JAVA中有着快捷的方法:

java 复制代码
//for-each遍历数组

 int[] array = {1, 2, 3};
 for (int x : array) {
     System.out.println(x);
 }

2.null

null 在Java中表⽰"空引⽤",也就是⼀个不指向对象的引⽤

java 复制代码
int[] arr = null;
System.out.println(arr[0]);

// 执⾏结果 
Exception in thread "main" java.lang.NullPointerException at Test.main(Test.java:6)

null 的作⽤类似于C语⾔中的NULL(空指针),都是表⽰⼀个⽆效的内存位置.因此不能对这个内存进⾏ 任何读写操作.⼀旦尝试读写,就会抛出NullPointerException

3.数组转字符串

java 复制代码
 import java.util.Arrays

 int[] arr = {1,2,3,4,5,6};
 
 String newArr = Arrays.toString(arr);
 System.out.println(newArr);

 // 执⾏结果 
 [1, 2, 3, 4, 5, 6]

4.数组拷⻉

java 复制代码
import java.util.Arrays;

public static void func(){
    //全拷贝(引用同一个数组)
    //改一个都会变
    int[] arr = {1,2,3,4,5,6};
    int[] newArr = arr;
    newArr[0] = 10;
    System.out.println("newArr: " + Arrays.toString(arr));

    //全拷贝(引用不同数组)
    //用Arrays中copyOf在拷贝的同时建一个新的数组
    //改一个另一个不变
    arr[0] = 1;
    newArr = Arrays.copyOf(arr, arr.length);
    System.out.println("newArr: " + Arrays.toString(newArr));

    //拷贝某个范围  [  ,  )
    int[] newArr2 = Arrays.copyOfRange(arr, 2, 4);
    System.out.println("newArr2: " + Arrays.toString(newArr2));
 }

5.二维数组

java 复制代码
数据类型[][] 数组名称 = new 数据类型 [⾏数][列数]{ 初始化数据 };

#注:

(1)在JAVA中,⾏不可以省略,列可以省略

(2)二维数组必须用{}区分行,编译器没有办法自己判断划分!!!

java 复制代码
 int[][] arr = {{1, 2, 3, 4},{5, 6, 7, 8}, {9, 10, 11, 12} };

6.不规则的二维数组

不规则的⼆维数组指的是,⼆维数组的列在定义的时候,没有确定。

java 复制代码
 int[][] array = new int[2][];
 array[0] = new int[3];
 array[1] = new int[5];

上述⼆维数组就不是⼀个规则的⼆维数组。第1⾏有3列,第2⾏有5列。

相关推荐
进击的小白菜10 分钟前
LeetCode 75. 颜色分类 - 双指针法高效解决(Java实现)
java·算法·leetcode
杨豆芽33 分钟前
SpringBoot WebMvcConfigurer使用Jackson统一序列化格式化输出
java·spring boot·后端
程序猿大波34 分钟前
基于Java,SpringBoot,Vue,UniAPP宠物洗护医疗喂养预约服务商城小程序管理系统设计
java·vue.js·spring boot
Z.Virgil44 分钟前
【案例95】“小”问题引发的“大”发现---记一次环境修复
java·开发语言·jvm·数据库·oracle·性能优化·tomcat
梁诚斌44 分钟前
JNI开发流程
开发语言·python
麓殇⊙1 小时前
MyBatisPlus--快速入门
java·服务器·tomcat
不秃的开发媛1 小时前
C与C++相互调用
c语言·开发语言·c++
布谷歌1 小时前
一个Mybatisplus组件扫描不当引起的bug:弄巧成拙,认真的锅,自我怀疑
java·开发语言·bug
Lanii_1 小时前
Java复习Day23
java·哈希算法·散列表