java学习day1:C基础下的对比与学习

1.java里面不用include,不用using std namespace,直接

public static void xxx{//xxx是文件名
	public static void main(String[] args){
	//相当于int main
	}
}

2.函数用法和C一样,只不过前面多了个public static,而且与public static void main{}没有先后之别,函数的调用方法都是一样的。但是java里面,函数调用时,参数表除了可以写已定义的变量(就像以前的C一样),还可以在写的时候,当打出括号、IDE出现悬浮提示时,输入数字即可实现不定义变量。同样,一个有返回值的函数,最后只能有一个return被执行

3.这里同样有类型转换。例如short+short == int,出现在变量运算(常量运算没有这个问题)

4.if语句的写法同样是

if(){
//...
}
else if(){
//...
}
else{
//...
}

5.同样有三元运算符

int result = A>B?A:B;

6.switch用法一致,同样有case、break、default

7.这里的printf变成了

int num = 456;
System.out.println("ABC123"+num);

8.for、while、dowhile、循环语句格式一样,用法一样

9.break:立即跳出所有循环
continue:立即开始下一轮循环

10.函数重载:名字一样、但参数列表不一样(个数/类型/不同类型的顺序)的函数,跟前面的修饰符public无关

11.创建数组的语句不一样

//动态初始化
//整型数组初始化,得到的每个数组元素都是0
//String数组初始化,得到的每个数组元素都是\u0000
//引用类型数组初始化,得到的每个数组元素都是null
//boolean数组初始化,得到的每个数组元素都是false
//静态初始化也有默认值,但初始化的时候程序立刻把默认值变成了{}的内容
//静态初始化里面填的也可以是变量
int[] array_num = new int[300];
String[] series = new String[10];

12.直接打印数组,得到的只是数组的内存地址值
访问数组的格式:数组名称[索引值],索引值从0开始,一直到数组长度-1

13.java的内存需要划分为5个部分
(java中将函数统称为方法method)
(1)栈Stack:存放的是方法对应的的局部变量(的地址),包括方法的参数和{}内定义的变量。方法的运行一定要在栈中
特点:局部变量一旦超过{}作用域,会从内存中消失
(2)堆Heap:new出来的新东西都在堆中。堆内存中的东西都有一个16进制地址值。堆内存中的数据都有默认值,规则参考数组初始化的默认值。在堆中进行数据的赋值
(3)方法区Method Area:存放.class的相关信息,包含方法的信息。方法区只存放信息,不负责方法的运行
(4)本地方法栈Native Method Stack:与操作系统有关
(5)寄存器pc Register:与CPU相关,性能非常高
内存之间如何运作?

14.IDEA小操作
(1)shift+f6(不用按fn键):将当前位置以后所有同名词统一修改
(2)想要遍历数组可以直接在idea中输入

arrayA.fori

然后按回车

//将数组A的地址赋给数组B
int[] arrayB = arrayA;

16.如果动态初始化数组的时候没有new,会发生空指针错误

17.java获取数组长度不用sizeof,而用数组.length
数组一旦创建,长度不可改变

int[] arrayA = {100200100300};
int num = arrayA.length;

18.方法中,数组作为参数,传递的是数组头地址

public static void ExchangeArray(int[] array){}

数组作为返回值的话,应该这样写,本质上返回的是数组头地址

public static int[] ExchangeArray(int[] array){
	//...
	return array;
}

猜你喜欢

转载自blog.csdn.net/jieyannn/article/details/104819737