javaSE教程03

导包

如何引入系统所提供的类库,工具!
在.java文件的非注释第一行编写引入工具包的代码:

格式:

import 包名.类名;
在控制台中接收用户键盘的输入 熟练掌握

步骤1. 在导包的位置, 导入 java.util.Scanner包
例如: import java.util.Scanner;

步骤2. 在main方法中, 创建接收用户输入的特殊变量
例如: Scanner input = new Scanner(System.in);

步骤3. 在完成步骤12的前提下, 在需要接收用户输入的位置, 加入 如下代码:

出了char以外,  八种基本数据类型, 都可以通过input.nextXxx();来得到 

int a = input.nextInt();
input.nextDouble();
input.nextXxx();

接收用户输入的一段文本 : 

input.next();
或
input.nextLine();

注意: 接收用户输入的方法, 并不会主动的去提示用户 应输入 ,

    建议我们在使用nextXxx之前, 打印一句提示性的文本 :
  • 如果需要接收多个参数, 则重复执行步骤3 即可

例如:

System.out.println("请输入");

练习求和:

通过Scanner接收两个int类型的数 , 并将其相加后 输出到控制台

如何产生一个伪随机的数字 熟悉

步骤1. 在导包的位置, 导入 java.util.Random包
例如: import java.util.Random;

步骤2. 在main方法中, 创建产生伪随机数的特殊变量
例如: Random r = new Random();

步骤3. 在完成步骤12的前提下, 在需要随机数字的位置, 使用
变量.nextInt(最大范围) ,获取一个随机数字

例如获得一个0-10的整数数字

int a = r.nextInt(11);

案例:
猜数字:

请用户输入一个0-5的数字 , 

我们通过系统, 获得一个伪随机数(0-5) , 如果与用户输入的相同, 则表示用户猜对了 !

如果输入不同, 则表示猜测错误 !

代码:

import java.util.Random;
import java.util.Scanner;
class Demo3{
    public static void main(String[] args){
        Scanner input = new Scanner(System.in);
        Random r = new Random();
        System.out.println("-------------- 欢迎访问猜数字游戏 -----------");
        System.out.println("-------------- 请输入一个0-5的数字 -----------");
        //接收用户输入的内容
        int a = input.nextInt();
        //随机产生一个0-5的数字
        int b = r.nextInt(6);
        System.out.print("系统产生的数字为:");
        System.out.print(b);
        System.out.println("结果为:");
        System.out.println(a==b);

    }
}

运算符和表达式
算数运算符 重点

加法运算(+) 1+1=2

减法运算(-) 1-1=0

乘法运算(*) 1*1=1

除法运算(/) 10/3 = 3

取余运算(%) 10%3 = 1

在进行算数运算时 , 需要注意的地方:

  1. 整数进行除法运算时, 有取整特性, 小数点后的部分会被舍弃 !

  2. 整数运算中0不能为除数 , 浮点型运算时, 0.0是可以做为除数的 ,但是结果是无穷

练习:

提示用户输入一个整数值, 这个值是描述的一个秒数 !

我们将用户输入的秒, 进行运算, 得到共有几个小时, +几分钟 +几秒 ,并依次打印输出

例如: 3600秒 等于 1小时0分0秒
7261秒 等于 2小时 1分 1秒

1.  用户输入的秒  s

  1. 将秒s 转换为分钟m

    • 通过除法运算 ,得到共有多少分钟
    • 通过取余运算 ,得到剩余多少秒
  2. 将分钟m 转换为小时h

    • 通过除法运算 , 得到共有多个小时
    • 通过取余运算 , 得到剩余多少分钟
      字符串连接符 重点

    • : 如果加号的任意一边出现了字符串 , 这时这个+号转换为了字符串连接符

    字符串连接符 , 会将所有的数据 同化为字符串 !

“1”+1 = “11”

1+1+”1” 和 “1”+1+1 的区别 :

1+1+”1”=2+”1” = “21”

“1”+1+1 =”11”+1 = “111”
关系运算符(比较运算) 重点

返回的结果为boolean类型, true表示真 ,false表示假

: 大于号: 判断左边的值是否大于右边的值
< : 小于号: 判断左边的值是否小于右边的值
= : 大于等于: 判断左边的值是否大于等于右边的值
<= : 小于等于: 判断左边的值是否小于等于右边的值
== : 双等号: 判断两边的值是否相等
!= : 非等号: 判断两边的值是否不想等

举例:

2>1 的结果为: true
1>2 的结果为: false
1<1 的结果为: false
1!=2的结果为: true
1==1的结果为true
10>=10的结果为true
10<=10的结果为true

++和–运算符 重点

++和–只能应用到变量上 !

++ : 表示自身加一(自增1)

– : 表示自身减一(自减1)


++和–在使用中, 可以放在变量的前面或后面 :

例如:

int a = 10;
a++;
System.out.println(a);//a是11

int a = 10;
++a;
System.out.println(a);//a是11

int a = 10;
a--;
System.out.println(a);//a是9

int a = 10;
--a;
System.out.println(a);//a是9

自增和自减符号 放在前后的区别:

放前面: 先自增或自减 , 然后参与当前行运算
放后面: 先参与当前行运算, 再自增或自减

面试的回答:

程序员对于自增和自减放前后的直观感受为: 
    放前面, 先自增或自减, 再参与当前行运算 .
    放后面, 先参与当前行运算, 后自增或自减 . 

内部的实现原理是: 

    放前面, 是直接对自身进行了自增或自减操作 ,没有什么特殊的 .

    放后面, 其实是再内存中进行了值的复制 (创建了一个新的备份的值)

    直接对原值进行自增或自减, 然后拿原来备份的值参与当前行的运算 !

++案例:

++放在前面时 , 表示自身立即进行加一, 再参与当前的运算

int a = 10;
System.out.println(++a);//结果为   11  

++放在后面时 , 表示自身先拿旧的值参与当前的运算, 运算结束后, 再对自身进行加一

int a = 10;
System.out.println(a++);//结果为   10  
System.out.println(a);//结果为 11  

–案例:

–放在前面时 , 表示自身立即进行减一, 再参与当前的运算

int a = 10;
System.out.println(--a);//结果为9  

–放在后面时 , 表示自身先拿旧的值参与当前的运算, 运算结束后, 再对自身进行减一

int a = 10;
System.out.println(a--);//结果为   10  
System.out.println(a);//结果为 9   

练习, 求结果:

  1. 求下题变量b的值

    int a = 10;
    int b = a+++a+1;
    b=22

  2. 求下题变量b的值
    int a = 10;
    int b = ++a+a+1;
    b=23

数据类型 变量名 = 初始化值;
逻辑运算符 重点

逻辑运算是连接boolean类型表达式的

int a = 10;

与 & 并且
如果 a大于3 并且 小于15 , 则 吃鸡

    a=1

或 |
如果 a大于3 或 a小于15 , 则 吃鸡
a=5
非 !

短路与 &&

    如果  a大于3 并且 小于15  , 则 吃鸡

短路或 ||

    如果  a大于3 或 a小于15  , 则 吃鸡

与:
true&true : true
true&false: false
false&true: false
false&false: false
特点: 只有两边都为true时 , 结果才为true


true|true : true
true|false: true
false|true: true
false|false: false
特点: 只有两边都为false时 , 结果才为false

非真即假 

短路与 &&

如果逻辑运算符的左边结果为false,  则右边不再参与运算, 结果为false

短路或 ||

如果逻辑运算符的左边结果为true , 则右边不再参与运算, 结果为true

移位运算符 熟悉

是针对二进制位进行移动的运算符 !

左移 <<

    格式: 变量<<移动的位数

    例如:  

        int a = 10;
        a<<1;  结果为20

算数右移(带符号右移) >>

    格式: 变量>>移动的位数

    例如: 

        int a = 10;
        a>>1;  结果为5

右移以后, 左边空出的符号位, 使用原符号位补齐

逻辑右移(无符号右移) >>>

    格式: 变量>>>移动的位数

    例如: 

        int a = 10;
        a>>>1;  结果为5

右移以后, 左边空出的使用0补齐        

注意: 移位运算时, 如果移位的值超出了当前类型的总位数长度, 会自动取余总长度

例如:  
    int a = 10;
    a = a<<33;//相当于: a = a<<(33%32)    

    结果为20

位运算符 熟悉

位运算符 对于两个操作数中的每一个二进制位进行运算

按位取反 ~

将二进制中的每一个数字 进行取反操作: 0变为1 , 1变为0 

int a = 10;

~00000000   00000000    00000000    00001010
-----------------------------------------------
 11111111   11111111    11111111    11110101

按位与 &

两个二进制位数进行与运算时, 只有都为1时, 结果才为1 
特点: 任何数, 与上自身 , 结果都为自身 !

int a = 10;
int b = 48;

 00000000   00000000    00000000    00001010
&00000000   00000000    00000000    00110000
------------------------------------------------

按位或 |

两个二进制位数进行或运算时, 只有都为0时, 结果才为0 


int a = 10;
int b = 56;

 00000000   00000000    00000000    00001010
|00000000   00000000    00000000    00111000
------------------------------------------------
                                    00111010

按位异或 ^

两个二进制位数进行异或运算时 , 只要两个数字相同, 结果为0, 不相同为1
int a = 10;
int b = 56;

 00000000   00000000    00000000    00001010
^00000000   00000000    00000000    00111000
------------------------------------------------
 00000000   00000000    00000000    00110010
^00000000   00000000    00000000    00111000
------------------------------------------------
 00000000   00000000    00000000    00001010
特性: 

    任何一个数 异或 同一个数字两次, 得到的是这个数本身 !

    因为这个特性, 异或经常参与加密操作

赋值运算符 – 熟练掌握

= 赋值 : 把等号右边的值或运算结果 赋值给左边

+= 加等赋值 : 左边的变量加上右边的值, 结果赋值给左边的变量

案例: 
    int a = 10;
    a+=10;//相当于 a = a+10;

-= 减等赋值 : 左边的变量减去右边的值, 结果赋值给左边的变量

案例: 

    int a = 10;
    a-=10; //相当于 a = a-10;

*= 乘等赋值 : 左边的变量乘以右边的值, 结果赋值给左边的变量

案例: 

    int a = 10;
    a*=10; //相当于 a = a*10;

/= 除等赋值 : 左边的变量除以右边的值, 结果赋值给左边的变量

案例: 

    int a = 10;
    a/=10; //相当于 a = a/10;

%= 模等赋值 : 左边的变量模以右边的值, 结果赋值给左边的变量

案例: 

    int a = 10;
    a%=10; //相当于 a = a%10;

面试题:

a+=10  与 a = a+10的区别: 

a+=10 效率高, 因为只有一个运算符, 只进行了一次运算
a=a+10 进行了两次运算 !

三目运算符 (三元运算符)(条件运算符)

格式: boolean表达式?表达式1:表达式2;

运算:  

    如果boolean表达式的结果为true , 则这个三元运算符运算的结果位表达式1的值, 否则这个三元运算符运算结果为表达式2的值!



-------------------


举例:  

    某公司 根据员工的业务完成数量, 进行员工等级的划分 , 共分为2个等级(1级 ,2级) , 当员工的完成业务数量达到10000时 , 则位1级员工, 否则位2级员工!

员工: 业务量位 9999 , 通过程序判断 , 这个员工是几级员工 ?

    int a = 9999;

    int b = a>=10000?1:2;

保持class名称与文件名称一致的方式

通过public class 声明类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值