二,java简介
(1)位操作
&(按位与),|(按位或),^(按位异或)
&,两者为1则为1;|,两者中有一个是1则为1;^,两者不同则为1
原码:正数的原码是二进制数;负数的原码是二进制的最高为设为1
反码:正数的反码是原码本身;负数的反码是符号位不变,其他位取反。
补码:正数的补码是原码本身;负数的补码是负数的反码加1
左移(<<):在二进制数的右边加0
带符号右移(>>):在二进制左边,正数加1,负数加0
不带符号右移(>>>):在二进制左边加0
(2)数组
数组属于引用数据类型,先在栈中声明数组名称,然后使用时需要在堆中开辟内存空间
数组的动态初始化,开辟数组的时候并不知道数组中的数值,而是用默认值:
数据类型 数组名称[]=new 数据类型[长度]
数据类型[] 数组名称=new 数据类型[长度]
关键字new表示引用数据类型,要进行堆空间的开辟,数组中的默认数值为0,默认字符串为null。
例如:int scorce[ ]=null,在栈中开辟空间,但未指明具体的空间
数组的静态声明,开辟数组的时候设定初始值:
数据类型 数组名称[]={若干数值……}
(3)二维数组
数据类型 数组名称[][],用行列表示,多个一维数组的集合
动态初始化:
数据类型 数组名称[][]=new 数据类型[长度][长度]
静态初始化:
数据类型 数组名称[][]={{数值1,数值2},{数值3,数值4}}
(4)方法
方法就是一段可以重复调用的代码段
[权限][静态] 返回值类型 方法名(参数列表)
{
方法体
[return][返回内容]
}
如果要定义有返回值的方法,直接在返回值类型上写上数据类型即可。
(5)方法的重载
方法名称相同,参数的类型或个数不同,根据传入的参数个数或类型的不同,来调用相应的方法。
但是注意如下情况:
public class MethodDemo05{
public static void main(String args[]){
}
public static int add(int x ,int y){
int temp = x + y ;
return temp ; // 将计算结果返回
}
public static float add(int x ,int y){
float temp = x + y ;
return temp ; // 将计算结果返回
}
};
重载看的不是返回值的类型,而是参数的个数和类型。
在方法的使用中使用return后,会返回到方法调用的位置继续执行。
在递归的调用中,必须有递归的结束点。
(6)方法和数组
一个方法可以接收或者返回一个数组,但是在接收数组的时候,注意数组时引用数据类型,所以方法中对数组所作的一切修改,最终会被保留下来。
例如:int a[10],b[10];a=b;///那么a与b都指向同一片堆空间
public class MethodArrayDemo01{
public static void main(String args[]){
int temp[] = {1,3,5,7,9} ; // 声明数组
fun(temp) ;
print(temp) ;
}
public static void fun(int []x){////temp传递给了x,则两者指向了同一片空间
x[0] = 6 ; // 修改第一个元素
}
public static void print(int[] x){
for(int i=0;i<x.length;i++){
System.out.print(x[i] + "、") ;
}
}
};
方法不管是接收还是返回数组,实际上最终都是要以数组的形式接收和返回:int[] x
(7)数组操作相关方法
Java.util.Arrays.sort(数组名称)///进行排序操作
System.arraycopy(源数组名称,源数组开始下标,目的数组名称,目的数组开始下标,拷贝数组长度)///数组的拷贝
(8)java新特性对数组的支持
foreach输出:
for(数据类型 变量:数组名称){}
例如:
int[] a={1,2,23}
for( int x:a)
{System.out.println(x+"、");}
可变参数:
正常情况下,一个方法在调用时必须明确的指定传入的参数,而且参数的个数必须统一,但是可变参数表示传入的参数可以不限定个数:
[权限][静态] 返回值类型 数组名称(数据类型 …参数名称){}
这样就可以在传入参数的时候传递任意多个参数,而且全部的参数是以数组的形式接收。
例如:
public class MethodArrayDemo06{
public static void main(String args[]){
int temp[] = {2,4,6,8} ;
fun() ; // 没有参数
fun(1) ; // 一个参数
fun(1,3,5,7,9) ; // 一个参数
fun(temp) ;
}
public static void fun(int ... arg){
for(int x:arg){
System.out.print(x + "、") ;
}
System.out.println() ;
}
};