初入java06

可变参数:
参数的个数不确定,可以是0个可以是多个,参数的数据类型必须相同.
可变数必须要写在参数列表的最后;
… ,数据类型 … 参数名–>可变参数;
操作可变参数,要通过使用数组的方式,编译器会隐式的在内部为我们构建一个数组,存储可变参数的值.

数组排序
数组:
int[] arr={9,10,5,7,4}
冒泡排序: 没两个数之间进行比较,找到一个最小的或者最大的进行交换,把它放在这一轮的最后一个位置
i=1~arr.length-1 两个数中的第一个j的变化范围
第一轮: 9,5,7,4,10 [0,arr.length-1) —>能确定一个最大值,放在最后,下一轮
第二轮: 5,7,4,9 [0,arr.length-2) 不用比较
第三轮: 5,4,7 [0,arr.length-3)
第四轮: 4,5 [0,arr.length-4)

	选择排序:

public class ArraySort03{
public static void main(String[] args){
int[] arr={9,10,5,7,4};
print(bubble(arr));
}

//冒泡排序
public static int[] bubble(int[] arr){
//外层循环控制比较轮数 1~arr.length-1 比如5个数,比较4轮
for(int i=1;i<=arr.length-1;i++){
//内层循环的变量控制i 没两个数比较的第一个数的索引j 和 j+1 j的范围:0 ~ arr.length-i-1
for(int j=0;j<arr.length-i;j++){
if(arr[j]<arr[j+1]){
int temp=arr[j+1];
arr[j+1]=arr[j];
arr[j]=temp;
}
}
}
return arr;
}

//遍历数组
public static void print(int[] arr){
for(int i:arr){
System.out.println(i);
}
}
//二分法查找:
//数组已经升序排序
//查找数组中指定的数据,找到返回它的索引,没有找到返回-1
public static int find(int[] arr,int i){
int min=0;
int max=arr.length-1;
int mid=(min+max)/2;

	while(i!=arr[mid]){
		if(i>arr[mid]){
			min=mid+1;
		}else if(i<arr[mid]){
			max=mid-1;
		}
		if(max<min){
			return -1;
		}
		mid=(min+max)/2;
	}
	return mid;
}

Arrays 工具类 :

static boolean equals(int[] a, int[] a2) 如果两个指定的 int 型数组彼此相等,则返回 true。
static String toString(int[] a) 返回指定数组内容的字符串表示形式。
static void sort(int[] a) 对指定的 int 型数组按数字升序进行排序。
static void sort(int[] a, int fromIndex, int toIndex) 对指定 int 型数组的指定范围按数字升序进行排序。
static void fill(int[] a, int val) 将指定的 int 值分配给指定 int 型数组的每个元素。
static int binarySearch(int[] a, int key) 使用二分搜索法来搜索指定的 int 型数组,以获得指定的值。
static int[] copyOf(int[] original, int newLength)
static int[] copyOfRange(int[] original, int from, int to) 将指定数组的指定范围复制到一个新数组。
static boolean deepEquals(Object[] a1, Object[] a2) 如果两个指定数组彼此是深层相等 的,则返回 true。
static String deepToString(Object[] a) 返回指定数组“深层内容”的字符串表示形式
数组的使用 ***
使用,遍历…

面向对象
一.面向对象和面向过程区别:
都是一种思维方式,是一种思想
面向过程:“我应该怎么去做?” 然后一步一步去实现
面向对象:“我应该让谁来做?” 不关注具体如何实现,关注的是对象

二.面向对象的优点:
1.更贴近于现实生活
2.面向对象可以将复杂的问题简单化
3.面向对象贴近管理者的角度,面向过程体现于执行者

三.如何使用面向对象的思维方式进行编程:
想要程序和现实生活挂上关系,所以提供的两个概念,类 对象
类:现实生活中一系列事物的模板
对象:具体的某个事物

四.自定义类|模板类|javabean
1)手机能做什么??? 打电话,上网,发短息,刷抖音… 动词 —功能 成员方法
2)手机的特征??? 颜色 价钱 品牌 尺寸… 名词 —属性 成员变量
事物:属性 功能

public class 类名{
//成员变量
修饰符 数据类型 变量名=赋值;

		//成员方法
		修饰符 返回值类型 方法名([参数]){
			方法体
		}
		
	}

用引用数据类型:
1.导包 1)java.lang包下的内容 2)同包下的类不需要导包
2.创建类型的引用
数据类型 引用名|变量名 = new 数据类型(); --创建一个对象,new是用来创建对象的
3.使用功能|属性
引用.功能名字()|属性名字

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值