Java基础
编程基础
1、程序流程控制
(1)、三元运算符
(x>y)?z:m;
Eg: y = (x>1)?100:200; //若x>1则把100赋给y,否则把200赋给y三元运算符的特点:可以简化代码,但必须有一个结果。
(2)、选择结构
注意:if和switch都很像,但具体什么场景下,应用哪种语句呢? 如果判断的具体数值不多,而且是符合byte,short,int,char这四种类型,虽然两个语句都可以使用,但这情况还是使用switch语句合适,因为效率稍高。如果其他情况对区间判断,对结果为boolean类型判断,if的使用范围更广。
(3)、循环结构
代表语句有:while, do while(后面是while();结尾),for等语句。 注意:for和while的区别:语句内变量范围的作用范围不同。还有for对内存更优化,节省空间。
(4)、其他控制流程语句 * break(跳出):应用范围:选择结构和循环结构。
输出结果:
x=0
x=1
x=2
y=0
y=0
y=1
y=1
y=2
y=2
z=0
- continue:只能作用于循环结构,继续循环。特点:结束本次循环,继续下一次循环。
总结:1、break和continue语句的作用范围不同。2、break和continue单独存在时,下面可以有任何语句,因为这些语句都执行不到,所以不会影响程序的运行。
2、函数:定义在类中的有特定功能的独立程序。
为什么在程序中使用函数?在编程当中,发现代码中某一段的运算,因为获取不同数据的运算结果,代码出现了重复,为了提高代码的复用性,我们对代码进行了抽取,将这个部分定义成一个独立的功能,方便日后使用,JAVA中对功能的定义是通过函数的形式来体现的。 我们最常见的函数就是JAVA当中的主函数:如图:
函数的特点:
- 便于对该功能进行复用
- 函数只有被调用才会被执行。
- 函数的出现提高代码的复用性。
- 定义函数可以对功能代码进行封装。
注意:
- 当函数运行后,没有具体的返回值时,这是返回值类型用一个特殊的关键字来标识,该关键字是void,void代表的是函数没有具体的返回值的情况,当函数的返回值类型是void时,函数中的return语句可以省略不写。
- 另外,函数中只能调用函数,不可以在函数内部定义函数。
- 定义函数时,函数的结果应该返回给调用者,交由调用者处理。
- JAVA当中最小的功能单元就是函数。
- 主函数最多的用处就是调用函数。
如何定义一个函数?
(1)、既然函数是一个独立的功能,那么该功能的运算结果是什么要先明确。
(2)、在明确在定义该功能的过程中是否需要未知的内容参与运算。
Eg:
需求:定义一个功能完成3+4的运算,并将结果返回给调用者。
1、明确功能的结果是一个整数和。
2、在实现该功能的过程中是否有未知内容参与运算。(没有!)
其实以上换句话即:
1、是在明确函数的返回值类型。
2、明确函数的参数列表。
Eg: 需求:判断两个数是否相同
1、明确功能结果:结果是boolean类型。
2、功能是否有未知内容参与运算。(有,两个整数)
public static boolean compare(int a, int b)
{
if (a==b)
{
return true;
}
return false;
}
(1)、函数的重载 在同一个类中允许存在一个以上同名函数,只要他们的参数个数或则参数类型不同即可。
//定义一个加法运算,获取两个数的和。
优点:有利于功能相同的函数但参数数量有异的功能函数去重载。
-
什么时候用重载?
当定义的功能相同,但参与运算的未知内容不同,那么就定义一个函数名称以表示该功能,方便阅读,通过参数列表不同来区分各个同名函数。
3、数组:同一种类型的数据集合,其实数组就是一个小容器。
好处:可以自动给数组中的元素从0开始编号,方便操作元素。
格式:
元素类型 [ ] 数组名 = new 元素类型 [元素个数或数组长度];
Eg: //需求:想定义一个可以存储3个整数的容器
int [ ] x = new int [3];
该例子意思是定义了一个名为x的int数组类型,该数组长度为3.
(1)、内存结构: Java程序在运行时需要在内存中分配空间。为了提高运算效率,有对空间进行了不同空间的划分,因为每一片区域都有特定的处理数据方式和内容管理方式。
- 栈内存
用于存储局部变量,当数据使用完毕,所占空间会自动释放。
-
堆内存
(1)、存储数组和对象这类的数据,通过new建立的实例都存放在对内存中。 (2)、每一个实体都有内存地址值 (3)、实体中的变量都有默认初始化值。 (4)、实体不再被使用,会在不确定的时间内被垃圾回收器回收。
-
内存中还有方法区、本地方法区和寄存器
如图:
Eg:
int [ ] x = new int [3];
int [ ] y = x;//指向
y [1] = 89;
System.out.println(x[1]);//输出结果是89