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’
数据类型转换-
由低转换为高 , java 自动转换
-
由高转换到低: 无法自动转换, 需要手动强制进行转换: 数据类型(低) 变量名 = ()值(高的值);
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() 不起作用, 无法输入
解决方案:
- nextLine() 放在所有的next方法之前
- 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; //十六进制
if语句 注意:
- if 分支语句: 条件语句 最重要的
- switch分支语句: 条件语句: 等值判断
如果 if,else, else if大括号中只有一行代码, 可以省略大括号, 但是最好不省略,提高可读性
switch语句 等值判断 注意1):case的值不能相同, 值唯一
2):break: 可以省略, 也可以不省略
3):default: 可有可无, default 可以在最前面, 也可以在最后面, 推荐写在最后面, 可以省略break,如果写在最前面, 一定要写 break;
循环 for循环 使用步骤难点: 把循环条件,循环要做的事情转换为代码
- 判断是否需要使用循环, 看问题中是否有重复做的事情
- 找循环条件
- 找循环要做的事情
细节: 表达式能省略, 两个分号一定不能省略for循环的表达式细节
-
表达式1 可以省略, 可以把表达式1 写在for循环的外面, 提升循环变量的作用域
-
表达式2可以省略, 默认永远为true, 出现死循环, 避免出现死循环, 也可以在循环体中使用 break关键字退出循环
-
表达式3可以省略, 循环变量没有改变,可能出现死循环, 也可以在循环体写表达式3
-
三个表达式都省略, 但是两个分号不能省略
for(;{ //死循环
//在循环体中使用break退出循环
}
while循环//把for循环的表达式1 写在循环之外, 表达式3写循环体的for循环
for/while特征:先判断,后循环, 可能一次都不执行, 开始循环条件为false
do-while循环 do-while 特征先循环,后判断, 循环体至少执行一次
语法:do{
//循环体
}while(循环条件);
注意: while后面小括号之后有一个分号,不能省略 IDEA的使用 暑期编程PK赛 得CSDN机械键盘等精美礼品!


