数组和方法

方法:

(java方法是语句的集合,他们在一起执行一个功能)
(方法是解决一类问题的步骤的有序组合)
(方法包含于类中或对象中,方法在程序中被创建,在其他地方被应用)
注意
1、方法要实现代码的复用性、要整合零散的代码;
2、方法是执行程序的 最小单元。
3、一个方法实现一个功能,多个功能实现一个模块,多个模块实现一个项目 }
方法名:驼峰命名,不使用下划线

优点:
1、有利于程序的维护;
2、提高了代码的复用性,扩展性 ;
3、提高程序的开发效率。
1、参数:一个方法运行前,需要的前提条件
2、传参: 某个数据需要在多个类和多个方法之间共享要用到传参
参数的类型、顺序、个数相同
3、返回值 :方法运行后得到的最终结果,结果会反馈给方法的调用者
如果定义了返回值,方法运行的任何情况都必须有返回值

构造方法:
1、(一个与类名同名的方法,且没有返回值)
2、创建对象的前提,new对象时会自动调用构造方法
3、方法名和参数列表决定调用哪个方法
4、可在无参构造中第一行使用this来调用有参构造方法
5、作用:初始化对象(为对象赋值)
{ 注:一个类中定义一个有参构造必须配一个无参构造
static{ }静态块——{ }构造块——构造方法——方法 }

方法重载:
1、必须出现在同一个类中(方法名相同,参数列表不同,方法体不同)
2、方法的重载源自于构造方法 (跟返回值类型没有关系)
就近原则(会调用最近的变量,加上this会调用远的变量(全局变量))
this:调用全局变量或成员方法
方法重写:
1、 具有继承关系,方法名相同,
2、 重写方法内容
3、重载和重写的区别
1、重载overloaded:
1、 必须在同一类中,且方法名相同、参数列表不同
2、 方法的重载源自于构造方法,所以与返回值类型无关
2、重写 override:
1、子类将父类方法的名字保留,参数列表相同,权限和返回值可以不一样,重写方法的内容
3、重构:
1、子类与父类的方法返回值,名称,参数类型及个数相同,唯一不同的是方法的实现内容

数组

java里的数据结构 JDK7之后新特性:红黑树 冒泡排序
1、为什么使用数组:
1、变量声明过多、太繁琐、不利于数据处理
2、数组本身就是一种数据类型
3、是相同类型的用一个标识符封装到一起的基本数据类型序列或对象序列、
4、可以用数组名和下标类唯一确定数组中的元素
5、实质上,数组事宜个简单的线性序列,访问速度很快
6、数组可作为方法参数和返回值类型
2、什么是数组:
1.存储同一种数据类型和多个元素的集合
2.可存储基本数据类型和引用数据类型
3.数组是一组相关数据的集合,一个数组实际上就是一连串的变量
3、变量和数组的区别
变量:声明一个变量在内存中划出一块空间
数组:声明一个数组在内存空间划出一串连续的相同类型的空间
4、 格式:
数据类型[] 数组名 = new 数据类型[元素个数或数据长度];
数据类型[] 数组名 = {n1,n2,n3,…,nn}; //动态赋值,其长度自赋值就不能改变
注:1、数组的长度一旦给定,就不能修改
2、使用下标来访问元素,下标从0开始
3、ArrayIndexOutOfBoundsException 数组下标越界异常
4、内存优化:声明变量时在赋值时内存才会分配空间

5、特殊的数组
(1)对象数组
School [ ] ss = new School [ 2]
ss[0] = new School ( );
ss[1] = new School ( );
数组名 . length 获取数组长度
(2)二维数组
一维的数组基础上有加了一个一维数组,一维数组中的元素有事一个数组
6、数组的基本操作(Arrays类提供的静态方法)
(1)、替换元素
Arrays.fill(arr,value) //给数组所有元素填充指定的值
Arrays.fill(arr,fromIndex , toIndex, value) //给指定位置替换指定的值
(2)数组元素排序
Arrays.sort(arr) //升序排序
(3)复制数组
Arrays.copyOf(arr,int 长度) //创建新数组的长度实现扩容
Arrays.copyOfRange(arr, fromIndex , toIndex) //将新数组的长度复制到新数组中
(4)查询数组
Arrays. binarySearch(arr,ketValue)
//采用二分查找法,获取指定元素的索引值,如果key值在数组中,返回key插入排序好中的数组的索引,否则返回-1或-(插入点):插入点是key插入数组后,key后面的元素的索引

Arrays. binarySearch(arr, fromIndex , toIndex ,key)
//在数组的指定范围内查询元素key,返回key索引或-1或-插入点

7、冒泡排序:(必须背会一套冒泡算法)
把相邻俩个元素相比较,满足条件则交换元素,直到把最大的值排到最后

jdk7之前包括7,sort方法效率较低,通常自己写排序算法
jdk8之后,sort方法效率得到了较高的优化,通常直接使用sort方法

int[] arry = new int[]{1,22,3,65,7,44,54,4};
for(int i=0;i<arry.length;i++){
for(int j=0;j<arry.length-1-i;j++){
if(arry[j]>arry[j+1]){

             arry[j] = arry[j]^ arry[j+1];
             arry[j+1] = arry[j]^ arry[j+1];
             arry[j] = arry[j]^ arry[j+1];

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

坏女人净画饼

原创辛苦

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值