Java 基础2

1.Java数组

数组的创建

int(数据类型)[] arr(数组类型变量) = new int[10(数组的长度)];

数组的初始化

基本类型的数组创建后,其元素的初始值:byte、short。char、int、long为0;float和double为0.0;boolean为false。
可以在数组声明的同时进行初始化,例
int[] arr = {10,23,30,-10};
但此种方式只能用于声明时的吃石化,不能用于赋值。

数组的赋值

int[]arr
arr = new int[] {10,23.54}; //元素的个数即为数组的长度

数组的访问

int len = arr.length; //获取数组的长度
可以通过下标的方式访问数组中的每一个元素,下标从0开始,范围:0 ~ n-1
int tmp = arr[2];

2.Java方法

方法的声明

方法用于封装一段特定的逻辑功能。方法的主要要素有:方法名、参数列表和返回值。

...(修饰符) long(返回值类型) fac1(方法名) (int n)(参数列表) {
  //方法体
}

方法要素---返回值

方法调用结束后可以返回一个数据,称之为返回值。
方法在声明时必须指定返回值的类型。
如果没有返回值,需将返回值的类型声明为void。
通过return语句返回,return语句的作用在于结束方法且将数据返回。

方法要素---参数列表

方法的参数是指:在调用时传递给方法,需要方法处理的数据。
在方法定义时需要声明该方法所需要的参数变量。

3.基础算法

Arrays核心API

JDK中的java.utils.Arrays 类提供对数组操作的一些列的方法。
Arrays.toString 方法用于字符串表示数组的元素。
Arrays.equals 方法用于比较两个数组的各个元素是否相等。
Arrays.sort 方法用于实现数组的排序。
Arrays.binarySearch 方法用于实现有序数组的二分法查找。找到后返回元素的下标值,没有返回负数。y有多个相等元素时不确定返回哪一个。

   int[] arr1 = {12,34,67,23,67,45,67};
   int[] arr2 = {12,34,23,67,46};
   System.out.println(Arrays.toString(arr1)); //[12, 34, 67, 23, 67, 45, 67]
   System.out.println(Arrays.equals(arr1,arr2)); //false
   Arrays.sort(arr1);
   System.out.println(Arrays.toString(arr1)); //[12, 23, 34, 45, 67, 67, 67]
   int index = Arrays.binarySearch(arr1,67);
   System.out.println(index); //5 或 2 或 7
  • 数组复制

    JDK提供数组进行复制的方法,即将一个数组中的各个元素值复制到另一个数组中;
    Systemn.arraycopy(src,sccPos,dest,destPos,length)
    src---要复制的源数组。
    srcPos---从源数组复制的起始位置。
    dest---复制到的目标数组。
    destPos---复制到目标数组的起始位置。
    length---要复制的元素的个数。
    System.arraycopy(arr1,0,arr2,1,3);
    System.out.println(Arrays.toString(arr2)); //[12, 12, 23, 34, 46]
  • 数组扩展

    数组的长度在创建后是不可改变的。所谓的扩展是指创建一个更大新数组并将原有数组的内容复制到其中。
String[] names = {"Ocsdf","Kojff","Pkfjjg","Ghddg","Fcsdf","Vojff","Skfjjg","Zhddg","Lgjgd","kevin"};
String[] names1 = names;
names = new String[names.length + 1];
System.arraycopy(names1,0,names,0,names1.length);
names[10] = "Kenny";
System.out.println(Arrays.toString(names));
 //[Ocsdf, Kojff, Pkfjjg, Ghddg, Fcsdf, Vojff, Skfjjg, Zhddg, Lgjgd, kevin, Kenny]
 
  • Arrays.copyOf方法 简便实现数组扩展。
 String[] names = {"Ocsdf","Kojff","Pkfjjg","Ghddg","Fcsdf","Vojff","Skfjjg","Zhddg","Lgjgd","kevin"};
 names = Arrays.copyOf(names,names.length+1);
 names[10] = "Zhou";
 System.out.println(Arrays.toString(names));
  //[Ocsdf, Kojff, Pkfjjg, Ghddg, Fcsdf, Vojff, Skfjjg, Zhddg, Lgjgd, kevin, Zhou]

二进制基础

  • 移位运算符

    左移(<<)、算数右移(>>)、逻辑右移(>>>).
    移位运算针对于整数做二进制位移动。
     int a = 8;
     a = a>>1;
     System.out.println(a); //4 相当于除2
     a = a<<2; 
     System.out.println(a); //16 相当于乘4
     int b = -8;
     System.out.println(b>>>2); //1073741822  相当于将原数据看成无符号数,再除4
     int bb = 8;
     System.out.println(bb<<33); //16 移位运算时,移位值将对32取模。此处的移位值为33%32=1
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值