Java基础知识点整理

Java基础知识点整理

JDK输出

System.out.println() //小括号可以没有内容, 作为换行符
System.out.print() //小括号中必须有内容,否则报错

转义符

\

注释

学会写注释的习惯

注释写的位置: 1) 类名 2) 方法上 3) 很复杂的逻辑代码上

变量

变量的三要素:

变量名(获取数据) 数据类型(控制变量的存储空间) 变量值

注意:

String是引用数据类型

整数默认int型,浮点数默认double型

char类型值: 只能是单字符, 值必须使用单引号引起 ‘a’ ‘中’ ‘1’ ‘ab’ 错误

变量的使用

声明,赋值,使用

注意:

1):如果变量是 byte: 赋值的数字 ~128 - 127 之间, 可以直接赋值,如果数字超出该范围, 直接赋值报错(直接!)

2):float num = 1.2; 1.2 double类型, 相当于把double类型转换为float类型, 但是float类型比double低

相当于把高的转换为低的, 无法自动转换,报错

3):char的值只能是单字符且需要要用单引号引起 ‘a’ ‘1’

数据类型转换
  1. 由低转换为高 , java 自动转换

  2. 由高转换到低: 无法自动转换, 需要手动强制进行转换: 数据类型(低) 变量名 = ()值(高的值);

double a = 1.2;
float b = (float)a;
int c = (int)a;
面试题: char为什么能存中文字符

电脑里保存的不是中文字符,是ASCII码,每一个中文字符都对应一个ASCII码

进制转换

Scanner输入

使用步骤

1):在类上导入 Scanner类, 位于java.util包: import java.util.Scanner; String/System 不需要导包, 位于java.lang包中的类程序会自动加载

2):创建Scanner Scanner input = new Scanner(System.in); (input可以自定义)

3):调用next相关的方法, 进行输入 input .nextInt() input.nextDouble()等等,

注意:

不能输入char ,没有nextChar() 这个方法,

next() 输入字符串 nextLine() 输入字符串

细节:

next() 输入有效字符串, 不包含 空格,tab,回车, 遇到空格,tab,回车,都结束输入,但是空格,tab,回车及后面的内容会保存到缓存中

nextLine() 输入字符串,包含空格, 但是nextLine() 前面如果有其他next() nextInt() nextDouble()…等方法时,nextLine() 不起作用, 无法输入

解决方案:
  1. nextLine() 放在所有的next方法之前
  2. nextLine() 不在第一个位置: 使用nextLine() 再加一个nextLine()

运算符

算数运算符 + - * / %

+:数值类型+数值类型,结果为数值类型; 任意类型+字符串类型,结果为字符串类型

int a = 10; int b = 20;

System.out.println(a+b+101)// 30101

System.out.println(101+a+b)//1011020

/:整数/整数,结果取整; 存在浮点数时,结果为小数

int num1 = 5; int num2 = 2;

System.out.println(num1 / num2); // 2

double num3 = 2;

System.out.println(num1 / num3); //2.5

System.out.println(double)num1 / num2); // 2.5

System.out.println(num1 / (double)num2); // 2.5

System.out.println((double)(num1 / num2); // 2.0

%:作用1:判断是否整除 2.得到某位数值

1234 % 10 ,得到个位

1234 / 10 %10 ,得到十位

1234 /100 %10 ,得到百位

1234 / 1000 % 10 ,得到千位

赋值运算符 =

a = a+1; 与 a+=1; 的区别

赋值符号与算术符号组合的赋值符号存在 隐式数据类型转换,a += b; 把a+b的结果 转换为a的类型

int a = 1; double b = 2; a = a+b;//报错

a+=b;// a=3 (a+b)的结果转换为int类型也就是a的类型

-= *= /= %=同理

面试题可能出现
int a = 2;

byte b = 1;

b = b+a;//报错

b +=a;//b=3

比较运算符> < >= <= == !=

使用场景

1):条件语句、循环语句 运算结果:boolean类型

逻辑运算符&& || ! & |

使用场景

1):条件语句、循环语句、连接多个比较表达式 运算结果:boolean类型

&&与&、||与|的区别

&&、||存在短路运算,&、|不存在短路运算,推荐使用&&、||

面试题
int a = 10;

int b = 6;

boolean rs = (a++ >11)&&(b++ >5);//10>11 false

System.out.println(rs);//false

System.out.println(a,b);//a = 11;b = 6

boolean rs = (a++ >11)&(b++ >5);

System.out.println(rs);//false

System.out.println(a,b);//a = 11;b = 7

三目运算符 条件(boolean的表达式)?值1:值2

三目运算符可以嵌套: 条件1?值1:(条件2?值2:值3),最好不要嵌套超过两次,可读性差

对if-else 某些场景的简化, if-else返回结果, 可以使用三目运算替换

自增自减运算符++ –

++变量 变量++ --变量 变量–

++a : a = a+1; (++a) = a

a++:(a++)= a; a = a+1

位运算& | ^(异或) !

异或特征

一个数异或某个数两次,得到自己(简单得密码加密)

拓展

>>右移

<<:左移

java: 十进制, 八进制, 十六进制:

int a = 123; //十进制数

int b = 0123; //八进制

int c = 0x123; //十六进制

分支语句

  1. if 分支语句: 条件语句 最重要的
  2. switch分支语句: 条件语句: 等值判断

if语句

注意:

如果 if,else, else if大括号中只有一行代码, 可以省略大括号, 但是最好不省略,提高可读性

switch语句 等值判断

注意

1):case的值不能相同, 值唯一

2):break: 可以省略, 也可以不省略

3):default: 可有可无, default 可以在最前面, 也可以在最后面, 推荐写在最后面, 可以省略break,如果写在最前面, 一定要写 break;

循环

for循环

使用步骤
  1. 判断是否需要使用循环, 看问题中是否有重复做的事情
  2. 找循环条件
  3. 找循环要做的事情
难点: 把循环条件,循环要做的事情转换为代码
细节: 表达式能省略, 两个分号一定不能省略
for循环的表达式细节
  1. 表达式1 可以省略, 可以把表达式1 写在for循环的外面, 提升循环变量的作用域

  2. 表达式2可以省略, 默认永远为true, 出现死循环, 避免出现死循环, 也可以在循环体中使用 break关键字退出循环

  3. 表达式3可以省略, 循环变量没有改变,可能出现死循环, 也可以在循环体写表达式3

  4. 三个表达式都省略, 但是两个分号不能省略

for(;{ //死循环

​ //在循环体中使用break退出循环

}

while循环

//把for循环的表达式1 写在循环之外, 表达式3写循环体的for循环

for/while特征:

先判断,后循环, 可能一次都不执行, 开始循环条件为false

do-while循环

do-while 特征

先循环,后判断, 循环体至少执行一次

语法:

do{

//循环体

}while(循环条件);

注意: while后面小括号之后有一个分号,不能省略

IDEA的使用

你可能感兴趣的:(java,开发语言)