黑马程序员──函数、数组
来源:互联网 发布:java ee的jdk 编辑:程序博客网 时间:2024/06/05 23:01
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
函数
定义函数可以将功能代码进行封装
便于对该功能进行复用
函数只有被调用才会被执行
函数的出现提高了代码的复用性
对于函数没有具体返回值的情况,返回值类型用关键字void表示,那么该函数中的return语句
如果在最后一行可以省略不写。
定义函数:两个明确
明确要定义的功能最后的结果是什么?-->返回值类型
明确在定义该功能的过程中,是否需要未知内容参与运算-->明确参数
函数的重载(overload)
重载的概念
在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不同即可。
重载的特点:
与返回值类型无关,只看参数列表。
重载的好处:
方便于阅读,优化了程序设计。
重载示例:
//返回两个整数的和
int add(int x,int y){return x+y;}
//返回三个整数的和
int add(int x,int y,int z){return x+y+z;}
//返回两个小数的和
double add(double x,double y){return x+y;}
数组
概念
同一种类型数据的集合。其实数组就是一个容器。
好处:
可以自动给数组中的元素从0开始编号(角标),方便操作这些元素。
格式:
元素类型[] 数组名= new 元素类型[元素个数或数组长度];
示例:int[] arr = new int[5];
元素类型[] 数组名= new 元素类型[]{元素,元素,……};
int[] arr = new int[]{3,5,1,7};
内存结构
栈内存
用于存储局部变量,当数据使用完,所占空间会自动释放。
堆内存
数组和对象,通过new建立的实例都存放在堆内存中。
每一个实体都有内存地址值。
实体中的变量都有默认初始化值。
实体不在被使用,会在不确定的时间内被垃圾回收器回收。(垃圾回收机制)
数组操作常见问题
数组脚标越界异常(ArrayIndexOutOfBoundsException)
空指针异常(NullPointerException)
数组排序方式:
选择排序:
public static int[] xuanZhe(int[] arr)//选择排序,由0角标开始比较,一次循环,比较出一次所有值最小值。{for(int x=0;x<arr.length-1;x++)//因为最后一个角标不需要比较,所以用x<arr.length-1,让最后两个角标的元素比较一次就结束。{for(int y=x+1;y<arr.length;y++){if(arr[x]>arr[y]){int temp;//定义临时变量用于换位。temp=arr[x];arr[x]=arr[y];arr[y]=temp;}}}return arr;}
冒泡排序:
public static int[] maoPao(int[] arr)//相邻元素比较,把最大值确定。{for(int x=0;x<arr.length-1;x++){for(int y=0;y<arr.length-1-x;y++)//-1 防止角标越界{if(arr[y]>arr[y+1])//重点在这里 相邻比较用arr[y]>arr[y+1]!!!记住就好!!!{int temp;temp=arr[y];arr[y]=arr[y+1];arr[y+1]=temp;}}}return arr;}
其他排序方式 插入排序、希尔排序、Arrays.sort( )。
进制转换:
十进制-->二进制:
public static void toBin1(int num)//打印出来时相反的 可以存入SB中 再反转。{StringBuilder sb = new StringBuilder();while(num>0){sb.append(num % 2);num = num/2;}sb.reverse();System.out.println(sb.toString());}
第二种方式 查表法:
public static void toBin(int num)//二进制转换{char[] chs = new char[]{'0','1'};//查表char[] ch = new char[32];//定义存储容器int pos = ch.length;//定义指针while(num!=0){int temp = num&1;//取最低1位ch[--pos] = chs[temp];//存入容器相应位置num = num>>>1;//右移一位}for(int x=pos;x<ch.length;x++){System.out.print(ch[x]);}System.out.println();
十进制转八进制 、十六进制原理类似。
数组中的数组
二维数组[][]
格式:int[][] arr = new int[3][2];
定义了名称为arr的二维数组
二维数组中有3个一维数组
每一个一维数组中有2个元素
一维数组的名称分别为arr[0], arr[1], arr[2]。
格式二
int[][] arr = new int[3][];
格式三
int[][] arr = {{3,8,2},{2,7},{9,0,1,6}};
特殊写法: int[] x,y[]; x是一维数组,y是二维数组。
以上内容为本人笔记,仅供参考。
- 黑马程序员──函数、数组
- 黑马程序员----函数,数组
- 黑马程序员 03 函数 数组
- 黑马程序员 函数与数组
- 黑马程序员--函数与数组
- 黑马程序员 第三节-------函数 || 数组
- 黑马程序员_语句 函数 数组
- 黑马程序员 Java基础(函数,数组)
- 黑马程序员_day04_Java基础之函数、数组
- 黑马程序员 Java函数与数组
- 黑马程序员_函数和数组
- 黑马程序员---函数与数组总结
- 黑马程序员_函数和数组
- 黑马程序员_04函数与数组
- 黑马程序员_Java函数和数组
- 黑马程序员_java基础_函数&数组
- 黑马程序员——函数、数组
- 黑马程序员_JAVA基础-函数与数组
- Jenkins加Shell实现最简单的持续部署
- ARM汇编初识
- 从replaceIgnoreCase说起
- 再探Objective-C.9
- handbook-fedora
- 黑马程序员──函数、数组
- Linux中只有以下7种文件类型
- SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
- 芯片间的互连标准: HSIC, UniPro, HSI, C2C, LLI
- 国际会议及期刊星级说明
- python除去html标签
- Centos5上源代码安装Ganglia
- perl学习笔记(2)
- Spring定时器的两种实现方式