Java基础-03-java流程控制、函数及内存结构

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值