一.基础API
java提供了一些类型给我们用
常用类型再lang包内,自动导入:例如String,Math
不常用的类型,其他包内,需要手动导入:Ranom,Scanner
随机数:
方式一:
Random random = new Random();
int number = random.nextInt(最大值);
获取[0,最大值)的随机整数,前闭后开
方式二:
Math.random(); 获取[0,1)的随机数
(int)(Math.random()*(max-min+1))+min
[min,max]
用户输入:
Scanner sc = new Scanner(System.in);
//获取输入的整数
int i = sc.nextInt();
//获取输入的字符串
String input = sc.next();
二.条件语句
if:选择一段代码是否执行
if(条件){代码}else if(条件){代码}else{代码}
if结构中,一次只会执行一个分支语句
局部变量的作用域:
从被定义的位置开始到所在的块结束
块:一对大括号括起来的区域
示例代码:
public class IfStu{
public static void main(String[] args){
int age = 20;
int c = 30;
if(age>18){
int b = 20;
System.out.println("开心的进入网吧玩游戏"+c);
}else if(age>15){
System.out.println("跟哥们儿打篮球");
}else if(age>12){
System.out.println("找女盆友玩耍");
}else{
System.out.println("找小霞玩泥巴");
}
if(age>18){
//System.out.println("b="+b);
System.out.println("也许可以做卷子");
}
//System.out.println("b="+b);
System.out.println("你妈叫你回去吃饭了");
}
}
三.运算符
运算符:
基本运算符:+,-,*,/,%,=
关系运算符:<,>,==,<=,>=,!=
逻辑运算符:连接多个boolean值或者布尔表达式,判断最终结果
&:连接的多个表达式,结果都为true才为true,读作并且
|:连接的多个表达式,结果都为false才为false,读作或者
!:将后面的布尔值取反
按位符:连接10进制整数
按位与 &:将整数转换为2进制,每一位比较,如果都为1,才为1;最后转10进制
按位或 |:............................,如果都为0,才为0
当能确定最终结果的时候,停止判断,返回结果
短路与 &&:
短路或 ||:
赋值运算符: +=,/=,*=,%=,-=(最终的结果为符号左边变量的类型,自动转换)
a+=b -> a = a + b; a-=b -> a=a-b;
自增,自减运算符:
a++,++a:等价于 a += 1
a--,--a:等价于 a -= 1
加号在变量前,先自增再进行其它操作
加号在变量后,先执行该行语句,再自增
特殊:当一个语句中多次使用到被自增的变量,那么自增即可生效
三目运算符:
布尔表达式?值1:值2
当结果为true,返回值1
当结果为false,返回值2
四.数据类型转换
整数120 byte,short,int,long
基本原则:大转小强制转,小转大,自动转
强制类型转换:让编译器忽略类型验证
编译器的优化:
1.整型字面值在其它类型范围内可以自动转换
2.字符型的字面值在整型范围内可以自动转换
3.char类型可以自动转换为int和long类型,char类型的范围0~65535
4.浮点类型转整型强制转(直接省略小数部分),整型转浮点自动转
运算符与类型转换:
一.相同类型运算,结果就为该类型
二.大类型和小类型运算,结果为大类型
三.浮点类型与整型运算,结果为浮点类型
四.整型与字符型运算,结果为整型
其它:精度小于int的整型运算,会先转换为int类型再参与运算