javaSE教程03

来源:互联网 发布:算法心得 epub 编辑:程序博客网 时间:2024/05/19 06:38

导包

如何引入系统所提供的类库,工具!
在.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 的结果为: true1>2 的结果为: false1<1 的结果为: false1!=2的结果为: true1==1的结果为true10>=10的结果为true10<=10的结果为true

++和–运算符 重点

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

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

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


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

例如:

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

int a = 10;a--;System.out.println(a);//a是9int 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, 不相同为1int 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 声明类

原创粉丝点击