JavaSE基础部分
1、简单的Hello.java 开始
public class Hello{
private static String []array={"1","2"};
public static void main(String args[]){
System.out.println("Hello,World");
Hello.main(array);
}
}
递归调用main方法,无限循环打印"Hello,world";
2、数组的理解
一位数组 String a="a",变量a指向字符a
二维数组int[][] arr={{1,2},{3,4}};
System.out.println(arr[0]);
打印结果为地址[I@1b219665 ,可见arr是指向数组的引用。
多维数组同理去理解
未初始化的数组,int[] 默认为0,String[] 默认为null
3、算术运算符
== 比较的是是否指向同一对象,是则为true
String str="Hello";
String str2="Hello";
String str3=str;
System.out.println(str==str2);
System.out.println(str==str3);
int a=1;
int b=2;
System.out.println(a==b);
System.out.println(a==1);
Dog dog1= new Dog("aa");
Dog dog2= new Dog("aa");
System.out.println(dog1==dog2);
分别为true true false true false
& 按位与操作符,当且仅当两个操作数的某一位都非0时 候结果的该位才为1
| 按位或操作符,只要两个操作数的某一位有一个非0时候结果的该位就为1
^ 按位异或操作符,两个操作数的某一位不相同时候结果的该位就为1
~ 按位补运算符翻转操作数的每一位
<< 按位左移运算符。左操作数按位左移右操作数指定的位数
>> 按位右移运算符。左操作数按位右移右操作数指定的位数
>>> 按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。
逻辑语句 If -else // switch- case // wile // for
homework
循环递归输出斐波那契数列
package com.homework;
import java.util.Scanner;
public class feibo {
public static void main(String[] args) {
//递归
System.out.println(shulie(4));
//循环
Scanner scanner=new Scanner(System.in);
int N = Integer.parseInt(scanner.next());
System.out.println(N);
int f1=1;
int f2=1;
int[] a=new int[10];
a[0]=f1;a[1]=f2;
for (int i = 1; i <= N-2; i++) {
if(N==1||N==2) break;
int temp=f1+f2;
f1=f2;
f2=temp;
a[i+1]=f2;
}
// System.out.println(f2);
for (int i : a) {
System.out.print(i+" ");
}
scanner.close();
}
public static int shulie(int n){
if(n==1||n==2) return 1;
else
return shulie(n-1)+shulie(n-2);
}
}