java 随机数,加密

java语法

操作符

分支

布尔类型boolean

true/false==>真/假

public class BooleanDemo {    public static void main(String[] args) {        boolean s = true;        while (s){//java不允许写常量0,1...            //用true,false表示真假            s=!s;        }        System.out.println("hello!");    }}

字符类型char

第一版国际编码 jb2312 台湾早期的big5码

最后开会的标准——UTF-8

在这里插入图片描述

在这里插入图片描述

//gbk不给外国人看,国内看够了

Acsll码:4位,键盘上的所有字符 0~127

Unicode:8位,UTF-8

编码:GB2312

GB2312编码:1981年5月1日发布的简体中文汉字编码国家标准。GB2312对汉字采用双字节编码,收录7445个图形字符,其中包括6763个汉字。

BIG5编码:台湾地区繁体中文标准字符集,采用双字节编码,共收录13053个中文字,1984年实施。

GBK编码:1995年12月发布的汉字编码国家标准,是对GB2312编码的扩充,对汉字采用双字节编码。GBK字符集共收录21003个汉字,包含国家标准GB13000-1中的全部中日韩汉字,和BIG5编码中的所有汉字。

GB18030编码:2000年3月17日发布的汉字编码国家标准,是对GBK编码的扩充,覆盖中文、日文、朝鲜语和中国少数民族文字,其中收录27484个汉字。GB18030字符集采用单字节、双字节和四字节三种方式对字符编码。兼容GBK和GB2312字符集。

Unicode编码:国际标准字符集,它将世界各种语言的每个字符定义一个唯一的编码,以满足跨语言、跨平台的文本信息转换。

乱码的产生

char的三种形式

  1. ‘A’
  2. ACSII值
  3. UNCODE

在这里插入图片描述

随机数问题

伪随机数–赌场应用

生成随机数1~9程序

package com.ffyc.Radom;import java.util.Random;public class RadomDemo {    public static void main(String[] args) {        Random ran = new Random(System.currentTimeMillis());        for (int i = 0;i<10;i++) {            //左闭右开            int t = ran.nextInt(10);//[0,10)||+1实现1~10            System.out.println(t);        }    }}

验证码生成器

生成10个汉字,要求客户填入正确的结果。

package com.ffyc.Random;

import java.util.Random;
import java.util.Scanner;

public class RandomDemo01 {
    public static void main(String[] args) {
        Random ran = new Random(System.currentTimeMillis()); // 创建一个随机数生成器,使用当前时间作为种子
        Scanner in = new Scanner(System.in); // 创建一个输入扫描器

        int min = '\u4e00'; // 汉字编码的最小值
        int max  = '\u9fa5'; // 汉字编码的最大值

        boolean f = true; // 控制循环继续的标志

        String str = null; // 用于存储生成的随机汉字字符串

        while (f) { // 循环,直到用户选择退出
            str = "";

            for (int i = 0; i < 10; i++) {
                int t = ran.nextInt(max - min + 1) + min; // 生成[min, max]范围内的随机整数
                str += (char) t; // 将随机整数转换为对应的汉字并拼接到字符串中
            }

            System.out.println(str); // 打印生成的随机汉字字符串
            System.out.println("是否继续(Yes/No)");
            String line = in.nextLine(); // 获取用户输入的继续或退出指令

            if ("n".equalsIgnoreCase(line)) { // 如果用户输入'n'(不区分大小写),则退出循环
                f = false;
            }
        }

        System.out.println("谢谢使用"); // 输出感谢信息
    }
}

变量&常量

变量(Variables)—(本质)—>内存的地址

定义:驼峰法

小写字母 res——result

保留字,关键字

保留字:const(常量,java用final);goto

见名知意

常量(Constants)

不可变

基本常量

  1. 1,2,3
  2. ‘a’
  3. “abc”
  4. true/flase
  5. null
  6. ……

魔鬼常量

常量要有含义,5–星期五

符号常量

只读不可写

final int SIZE = 5;//大写区分是常量

在工作中:敏捷开发——快,高效

常量的类型+L/F

编译器的两个默认:

1,2,3——>int

1.1 2.8 …——>double

long 3F

float 2.3F

//java统一是从左向右,c/c++可以调

java运算符 or 操作符(opt)

程序的最小单位:语句,表达式(类型,操作符,变量,常量)

算术运算符

序号名称解释
1+1)加法;2)拼接字符
2-减法
3*乘法
4/除法:相同类型(在Java中两个整数相除结果还是整数。)
5%取余

单引号:一个字‘’

双引号:两个字“”

赋值运算符

赋值/复合运算符(二元)

序号运算符解释
1=左值(变量)=右值
2+=编译器优化类型的问题
3-=
package com.ffyc.opt;

public class OptDemo03 {
    public static void main(String[] args) {
        int a = 3;
        int b = (a++ + ++a) * (++a + a++);
        System.out.println("a="+a+",b="+b);
    }
}

a=7,b=96
在这里插入图片描述

自增,自减

一元运算符

序号运算符解释
1a++在变量后 ,先使用变量,再进行变量自增/自减
2++a在变量前 ,先进行变量自增/自减,再使用变量。

1.自增、自减运算符是什么,有什么作用,需要注意什么?

++、–;对当前变量值+1、-1

只能操作变量,不能操作字面量

2.自增、自减运算符放在变量前后有区别吗?

l如果单独使用放前放后是没有区别的。

l非单独使用:在变量前 ,先进行变量自增/自减,再使用变量。

l非单独使用:在变量后 ,先使用变量,再进行变量自增/自减。

关系运算符

序号运算符解释
1>a>b :成立返回true、不成立返回false
2<
3>=
4<=
5==a==b,基本数据类型值相等,非数据类型:equals
6!=

逻辑运算符

序号运算符解释
&&a&&b
||a||b
!a

在这里插入图片描述

package com.ffyc.opt;

/**
 * & && 区别
 */
public class OptDemo05 {
    public static void main(String[] args) {
        int a= 3;
        int b=5;

        boolean f = a>1 & b>a;
        boolean f2 = a>1 && b>a;
//        System.out.println("f1:"+f);//t
//        System.out.println("f2:"+f2);//t;两者结果相同
        
        //boolean t = a++>10 && ++a>1;//左边条件不成立,则不执行右边. a=4
        boolean t1 = a++>10 & ++a>1;//a=5
        System.out.println(a);

    }
}

位运算符

序号运算符解释
1&按位与
2|
3^异或(相同为0;不同为1)
4>>
5<<

异或重要公式:xyy=x (加密)

三目运算符

表达式?真:假

条件

if…

if…else…

if…elseif…elseif…else

任务:输入三个整数,要求安装从小到大的顺序打印。

5
System.out.println(a);

}

}


## 位运算符

| 序号 | 运算符 | 解释                     |
| ---- | ------ | ------------------------ |
| 1    | &      | 按位与                   |
| 2    | \|     |                          |
| 3    | ^      | 异或(相同为0;不同为1) |
| 4    | >>     |                          |
| 5    | <<     |                          |

异或重要公式:x^y^y=x (加密)

## 三目运算符

表达式?真:假

# 条件

## if...

## if...else..

## if..elseif...elseif...else

任务:输入三个整数,要求安装从小到大的顺序打印。



  • 15
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值