JAVA基础 学习day_01

java基础day_01

1.如果操作数中没有int,均为short或byte,计算结果仍旧提升为int。
byte short char 运算时,会自动转为int
2. 特殊:任何类型与String相加(+)时,实为拼接,其结果自动提升为String。
3. Scanner .next().charAt(0);//获得单个字符
4. 注:如果输入了不匹配的数据,则会产生 java.util.InputMismatchException
5. ASCII(American Standard Code for Information Interchange)美国信息交换标准码。 32:space 48:0 57:9 65:A 97:a
6. switch使用

 while (true) {
    Scanner s = new Scanner(System.in);
    int a = s.nextInt();
    System.out.println("请输入一个数字:");
    switch (a) {
        case 0:
            System.out.println("这是0");
            break;
        case 1:
            System.out.println("这是1");
            break;
        case 2:
            System.out.println("这是2");
            break;
        default:
            System.out.println("这是其他数");
    }
}



7.递归函数
从远点回到近点,再从近点回到远点。


```java
public class QFTest_04 {
    public static void main(String[] args) {
        int a = fibonacci(11);
        System.out.println(a);
    }
    public static int fibonacci(int n) {
        if (n ==1) {
            return 0;
        }else if(n==2){
            return 1;
        } else{
            return fibonacci(n-1)+fibonacci(n-2);
        }

    }
}
  1. bin: binary 二进制文件
    db:database 数据库
    lib:library 类库
    include:头文件
    jre:java runtime envirment java 运行环境
    配置: JAVA_HOME
    PATH %JAVA_HOME%\bin
    CLASS_PATH(可以不用配置)

9.DOS 命令
cd
cd…
del
md
dir /o /p /w
rd /s /q
copy A B
exit
javap: 查看字节码文件 javap -c 或者-v javap -c HelloWorld
javac: 编译.java文件
javac -d . 带包编译 javac -d . Hello.java
读取带包字节码文件:java 包名.类名

10.字节码文件开头 前四个字节 :CA FE BA BE (魔数)文件标识
11. byte 有符号 -128 127 无符号 0 255
short 有符号-32768 32767 无符号 0 65535
int 有符号 -21亿 21亿
12. double 是浮点数的默认类型,如果想用float,加F或者f

-128的补码为10000000 没有原码和反码

13.制表符 \t ,占用8个字节 回车 \r 、换行符 \n、\"、\’
14.面试题

double aa=1.4;
double bb=0.5;
double cc=0.9;
System.out.println((aa-bb)/cc);

代码答案
因为 aa在内存中的二进制编码有误差,cc也是一样。导致出现误差,答案而不是1.0
15.面试题
不用第三个变量能否实现两个变量的值的交换?

//方法一
int a=5;
int b=7;
a=a+b;
b=a-b;
a=a-b;
System.out.println(a+"---"+b);
//方法二
int num1=10;
int num2=2;
num1=num1^num2;
num2=num1^num2;
num1=num1^num2;
System.out.println(num1+"---"+num2);

16 ++和–

int i=10;
for(int j=0;j<10;j++){
    i=i++;
}
System.out.println(i);
//步骤1:i=10压入栈中;
//步骤2:i自增,此时i变为11;
//步骤3:进行赋值,取栈中元素,i=i=10;

i=10;
for(int j=0;j<10;j++){
    i=++i;
}
System.out.println(i);
//步骤1:i先自增,i=11;
//步骤2:将i压入栈中;
//步骤3:取栈中元素,进行赋值。i=i=11;

答案
如果不理解,可以这样想,把k++和++k当作整体,比如(k++)和(++k)

练习题

public class QFTest_09 {
    public static void main(String [] args){
        int a=0;
        int b=0;
        for (int i = 0; i <99 ; i++) {
            a=a++;
            b=a++;
        }
        System.out.println(a+"---"+b);
    }
}

答案为 a=99,b=98

猜你喜欢

转载自blog.csdn.net/m0_45196258/article/details/107470452
今日推荐