Java基础 | 基本程序设计

it2026-08-24  4

目录

数据类型常量和静态变量字符串数组

数据类型

这里我只写出于C++不同的地方

常量和静态变量

Java中的常量有final修饰,其所修饰的变量在初始化完毕之后不可再更改。 那么final也可以修饰变量,函数形参,函数返回值。

public static void main(String[] args) { final int y=3; y=5; //这里会报编译错误 System.out.println(y); }

C++中的const因为可以修饰指针、引用等等,作用要丰富得多。

静态使用static来修饰,其可以修饰的变量、代码段、函数。

修饰变量,此变量只有静态方法可以调用修饰类成员函数,则此函数调用时不需要对象来运行,此函数内部也不能再使用this指针。修饰代码段,则此代码段优先于Main函数执行

字符串

Java里的字符串是不可修改的。没法通过数组形式去访问,下标访问也是不行的。

String s="123"; String b=new String("123"); StringBuilder stringBuilder=new StringBuilder(); stringBuilder.append("123"); String temp = stringBuilder.toString();

Java的字符串拼接会产生临时对象,消耗比较大。具体内容还是需要看到虚拟机才行。但是可以通过StringBuild构造器去构造,消耗比较小。

数组

涉及到深浅拷贝的问题,Java里的拷贝默认是浅拷贝。深拷贝需要调用特殊API.Arrays.copyOf(arr,arr.length)

public static void main(String[] args) { int[] arr={1,4,2,5,3,9,7,8,6}; int[] brr=arr; int[] crr= Arrays.copyOf(arr,arr.length); brr[0]=2; System.out.println(arr[0]); //浅拷贝导致arr[0]变成2 crr[0]=3; System.out.println(arr[0]); //深拷贝,arr[0]值还是2 }

还有一个tips:Java里的二维数组相当于C++里的双重Vector,甚至于可以做到二维数组的一维进行换层。

最新回复(0)