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);
}
}
}
- 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