1.方法
函数又叫方法。
方法的重载
方法的重载是指方法名称相同,参数的类型或个数不同,调用的时候将会按照传递的参数类型和个数完成不同方法体的执行。
package text001;
/**
* Created by Administrator on 2021/1/16.。方法重载
*/
public class TestDemo3 {
public static void main(String[] args) {
System.out.println("两个整数"+add(10,20));
System.out.println("三个整数"+add(10,20,30));
System.out.println("两个浮点型参数"+add(10.2,10.3));
}
public static int add(int x,int y){
return x+y;
}
public static int add(int x,int y,int z){
return x + y + z;
}
public static double add(double x,double y){
return x + y;
}
}
方法的递归
递归调用是一种特殊的调用方式,指的是方法自己调用自己的形式。
package text001;
/**
* Created by Administrator on 2021/1/16. 实现从1到100求和。
*/
public class TestDemo4 {
public static void main(String[] args){
System.out.println(sum(100));
}
public static int sum(int num){
if(num == 1){
return 1;
}
return num + sum(num - 1);
}
}
2. 数组
数组属于引用型数据,所以在数组的操作过程中,会设计到内存分配的问题。
数组定义结构是动态初始化的方式,即数组首先会开辟内存空间,但是数组中的内容都是对应的数据类型的默认值,如果声明的是int型数组,则数组里面的内容全部是0,不是其他垃圾值。
① 数组的引用传递
package text001;
/**
* Created by Administrator on 2021/1/23.
*/
public class TestDemo5 {
public static void main(String [] args){
int data[] = new int[3];
data[0] = 10;
data[1] = 20;
data[2] = 30;
int temp[] = data;
temp[0] = 40;
for(int x = 0;x < temp.length;x++){
System.out.println(data[x]+"、");
}
}
}
② 数组的缺点
虽然数组支持顺序的数据访问操作,但是数组有一个最大的缺点——长度不能改变,所以在开发中不直接应用数组,而是使用数组的概念(利用类集框架来解决)。
③ 数组操作方法
System.arraycopy():数组复制
java.util.Arrays.sort():数组排序
package text001;
/**
* Created by Administrator on 2021/1/23.数组排序方法
*/
public class TestDemo5 {
public static void main(String[] args){
int data[] = new int[]{3,6,1,2,8,0};//数组静态初始化
java.util.Arrays.sort(data);//数组排序
print(data);
}
public static void print(int temp[]){
for(int x = 0;x < temp.length;x++){
System.out.println(temp[x]+"、");
}
}
}
④ 对象数组
对象数组表示一个引用类型里面嵌套其他的引用类型。之前使用的数组都是基本数据类型的数组,但是所有的引用数据类型也可以定义数组,这样的数组称为对象数组,动态初始化后数组中的每一个元素都是null。
对象数组的最大优点是:将多个对象统一进行管理,并且除了数据类型改变外,与之前的数组没有任何区别,而且数组本身就属于引用数据类型,因此对象数组就是在一个引用数据类型中嵌入其他引用数据类型。
package text001;
/**
* Created by Administrator on 2021/1/23.
*/
class Book{
private String title;
private double price;
public Book(String t,double p){
title = t;
price = p;
}
public String getlnfo(){
return"书名:"+title+",价格:"+price;
}
}
public class TestDemo5 {
public static void main(String[] args){
Book books[] = new Book[3];
books[0] = new Book("java",79.8);//动态初始化开辟数组
books[1] = new Book("JSP",69.8);
books[2] = new Book("android",89.8);
for(int x = 0;x < books.length;x++){
System.out.println(books[x].getlnfo());
}
}
}
3. 排序算法
① 冒泡排序
比较一轮确定一个最大数。
package text001;
/**
* Created by Administrator on 2021/1/25.
*/
public class TestDemo6 {
public static void main(String[] args){
int[] a = {8,5,4,3,7,2};
for(int i = 0;i < a.length-1;i++){
for(int j = 0;j < a.length-1-i;j++){
if(a[j] > a[j + 1]){
int t = a[j];
a[j] = a[j + 1];
a[j+1] = t;
}
}
}
for(int x = 0;x < a.length;x++) {
System.out.println(a[x]);
}
}
}
② 选择排序法
一个元素 和 其他所有元素进行比较。
比较一轮确定一个最小数。
package text001;
/**
* Created by Administrator on 2021/1/25.
*/
public class TestDemo6 {
public static void main(String[] args){
int[] a = {8,5,4,3,7,2};
for(int i = 0;i < a.length-1;i++){
for(int j = i + 1;j < a.length;j++){
if(a[i] > a[j]){
int t = a[i];
a[i] = a[j];
a[j] = t;
}
}
}
for(int x = 0;x < a.length;x++) {
System.out.println(a[x]);
}
}
}
③ JDK排序
是较快的排序算法。
package text001;
/**
* Created by Administrator on 2021/1/25.
*/
public class TestDemo6 {
public static void main(String[] args){
int[] a = {8,5,4,3,7,2};
java.util.Arrays.sort(a);
for(int x = 0;x < a.length;x++){
System.out.println(a[x]+"\t");
}
}
}