java_03语言基础(方法&数组)

一、方法

java对方法和python对方法做对比,因为这两个语言差别很大,比如java中方法依赖类,而python中方法可以单独存在与py文件中。他是一段用来完成特定功能对代码片段。

1、方法的定义格式:

【修饰符】 【static】返回值类型 方法名(【形式参数。。。】)

{

    方法体;

    return 返回值;

}

2、方法的好处

  1. 提高代码的复用性,抽取复用代码成方法
  2. 提高代码的维护性,实现相对独立的逻辑
  3. 可以更好的封装和私有化

3、修饰符

修饰符当前类相同包子类其他包
publicokokokok
protetctedokokokno
defaultokoknono
privateoknonono

Java访问修饰符包括private,default,protected和public。含义分别表示私有的,默认的,受保护的和公有的访问修饰符。这些访问修饰符既可以修饰类中的属性,又可以修饰类中的方法,而public和default还可以修饰类。在同一个java文件里,公有类有且仅有一个,并且该文件命名为类名.java。

4、方法中术语

修饰符:public、static修饰的方法属于类,可以直接{类.方法名}调用。

返回值类型:有返回值和返回值的类型一致,没有返回值使用void。

方法名称:使用驼峰命名法。

形式参数:仅仅是占位而已。

方法签名

方法体:方法的{}中的变量,表示具体完成功能的代码。

返回值:在方法内部,使用return关键字:

        功能:给调用者返回一个结果值,此时方法不能使用void修饰。

        功能:结束当前方法。

实际参数:调用者在调用某个方法时实际传递的参数值。

5、方法的从载

定义:如果有两个方法的方法名相同,但参数不一致,那么可以说一个方法是另一个方法的重载。

两同:同类中,方法名相同

一不同:参数列表不同(参数类型,参数个数,参数顺序)

6、方法的递归

递归需要满足2个条件:

1)反复执行的操作(自己调用自己)

2)有跳出反复执行的出口(递归出口)

举例:汉诺塔

总结:方法是java 的重要组成部分。为了实现某个功能, 将一类操作封装在方法里,方便其他模块调用。java的方法语法严格,写法多样,相应的性能也就不同,一个经验丰富的程序员写的方法不光可用性比较高,而且性能也高,便于维护。

二、JVM内存模型

程序计数器:

本地方法栈:

堆:

栈:

方法区:

Gc(传送门:垃圾回收器):是Java语言的核心技术之一, 在Java中,程序员不需要去关心内存动态分配和垃圾回收的问题,这一切都交给了JVM来处理。

总结:java被程序员广泛使用,其中很重要的一个原因就是java的虚拟机。各种数据结构,垃圾的处理,都是虚拟机完成的。单独拿出来也是一门很大的课程,想详细了解这个博客写的就可以作为入门:Java虚拟机

三、数组

1、什么是数组:

         数组指一组数据的集合,数组中的每个数据被称作元素。

2、数组的定义:

1):数组元素的类型【】 数组名;

    例如:int [] ages;

2):数组元素的类型 数组名 【】;

    例如:int ages[];

3、数组的初始化:

int[] news = new int[]{1,2,3};//1、静态正常写法

int[] news1 = {1,2,3};//2、静态简单写法

int[] news2 = new int[5];动态初始化 

*1、正常写法可以先定义,后初始化。

*2、简单写法不能后初始化,因为他不知道数据类型。

 数组声明分成三步操作:

     1、声明int类型数组 news:int[] news

     2、初始化数组:new int[] {1, 2, 3, 4}

     3、把初始化的数据赋值给news变量 

4、遍历数组:

// 遍历数组的元素
for(int index = 0;index < ages.length;index ++)
{
    System.out.println(ages[index]);
}

总结:java数组名字表示的是地址值,需要专门遍历数组。 

5、数组操作常见异常:

1)空引用异常:没有初始化就被调用。

2)索引越界异常:索引为负数或者超出数组长度 - 1。

总结:由于java特殊的储存机制,数组索引越界会导致异常出现

6、(蒜法)求数组的最大值和最小值

    // 获得数组最大元素
    static int getMax(int[] ages)
    {
        int max = ages[0];
        for(int i = 0;i < ages.length;i ++)
        {
            if(ages[i] > max)
            {
                max = ages[i];

            }
        }
        return max;
    }
    // 获得数组最小元素
    static int getMin(int[] ages)
    {
        int min = ages[0];
        for(int i = 0;i < ages.length;i ++)
        {
            if(ages[i] < min)
            {
                min = ages[i];

            }
        }
        return min;
    }

7、二维数组

二维数组定义和初始化:

例:int[][] ages = new int[][]{{1, 2, 3}, {4, 5, 6},{7, 8, 9}};

总结:java二维数组定义有三种方式,有固定的写法,且长度不可变,这一点和其他语言相比体现了java的严谨性。

8、操作数组(算法)

  1. 元素拷贝
  2. 找最大数
  3. 冒泡排序
  4. 选择排序
  5. 二分法查找
  6. java内置工具类

总结:java数组的概念和python有些差别,相同点是都是用来存储数据的容器,不同点是java数组更为严格,数组的长度和元素类型在声明的时候就已经确定,一旦确定就无法修改,而python的元素类型相对比较开放。使用熟练后你的代码不管是python还是Java都会信手拈来。语言永远只是开发者的工具,用什么语言不重要,关键是写它的人。

多看看源代码,学习编程的思想

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值