Java基础类库使用

1.Scanner 类

例:Scanner sc = new Scanner(System.in);
sc.useDelimiter("\n");   // 把回车当作分隔符,Scanner 使用空白符作为分隔符;
hasNextXxx();  是否还有下一个输入项,判断字符串,直接使用 hasNext()
nextXxx();     获取下一个输入项;

行读取
boolean hasNextLine(); 返回输入源是否还有下一行;
String nextLine();     返回输入源中下一行的字符串;

读取文件输入
Scanner sc = new Scanner(new File("ScannerFileTest.java"));

2.System 类

类变量:标准输入,标准输入,错误输出;
类方法:访问环境变量,系统属性(native 方法),加载文件和动态链接库;

System.getenv();  获取系统环境变量
System.getProperties();  获取所有系统属性
System.getProperty();    获取特定属性;

System.currentTimeMillis(); 获取当前时间:毫秒
System.nanoTime();          获取当前时间:纳秒

System.identityHashCode(Object x)方法     返回指定对象的精确 hashCode 值

3.Runtime 类

getRuntime();  获取与之关联的 Runtime 对象;
load(String filename);   加载文件;
loadLibrary(String libname);    加载动态链接库;

4.Object 类

boolean equals(Object obj)   判断指定对象与该对象是否相等;
protected void finalize()    清理资源;
Class<?> getClass()          返回该对象的运行时类;
int hashCode()               返回该对象的 hashCode 值;
String toString()            返回该对象的字符串表示;

wait(),notify(),notifyAll()  控制线程的暂停和运行;

clone()                      帮助对象实现自我克隆;

    1.自定义类实现 Cloneable 接口;接口里无任何方法;
    2.自定义类实现自己的 clone() 方法;
    3.实现 clone() 方法时通过 super.clone();调用 Object 实现的 clone() 方法来得到该对象的副本,并返回该副本;

    只克隆所有成员变量值,不会对引用类型的成员变量值所引用的对象进行克隆;

Objects 工具类

    空指针安全

5.String StringBuffer StringBuilder 类

String 类是不可变类;
StringBuffer 对象代表一个字符序列可变的字符串;
StringBuilder 性能略高;

String 类 
    1.String();                                          0 个字符串
    2.String(char[] value, int offset, int count);       将指定的字符数组从 offset 开始,长度为 count 的字符元素连缀成字符串;
    3.String(String original);                           根据字符串直接量创建对象;
    4.String(StringBuffer buffer);                       
    5.String(StringBuilder buider);

    6.char charAt(int index);                            获取字符串中指定位置; 0~length()-1;
    7.int compareTo(String anotherString);               相等返回 0,不同返回 字符差,长度差;
    8.String concat(String str);                         +
    9.boolean contentEquals(StringBuffer sb);            进行比较,包含字符序列相同返回 true;
    10.static String copyValueOf(char[] data);           将字符数组连缀成字符串;
    11.static String copyValueOf(char[] data, int offset, int count);
    12.boolean endsWith(String suffix);                  返回该 String 对象是否以 suffix 结尾;
    13.boolean equals(Object obj);
    14.boolean equalsIgnoreCase(String str);             忽略字符大小写;
    15.void getChar(int srcBegin, int srcLast, char[] dst, int disBegin);
    16.int indexOf(int ch);                              ch字符在该字符串中第一次出现的位置;
    17.int indexOf(int ch, int fromIndex);               ch字符在该字符串中从 fromIndex 第一次出现的位置;
    18.int indexOf(String str);
    19.int indexOf(String str, int fromIndex);
    20.int lastIndexOf(int ch);                          ch字符在该字符串中最后一次出现的位置;
    21.int lastIndexOf(int ch, int fromIndex);           ch字符在该字符串中从 fromIndex 最后一次出现的位置;
    22.int lastIndexOf(String str);
    23.int lastIndexOf(String str, int fromIndex);
    24.int length();                                     返回当前字符串长度;
    25.String replace(char oldChar, char newChar);       将字符串第一个 oldChar 替换为 newChar;
    26.boolean startsWith(String prefix);                该 String 对象是否以 prefix 开始;
    27.boolean startsWith(String prefix, int toffset);   该 String 对象从 toffset 算起是否以 prefix 开始;
    28.String substring(int beginIndex);                 获取从 beginIndex 位置开始到结束的子字符串;
    29.String substring(int beginIndex, int endIndex);   获取从 beginIndex 位置开始到 endIndex 的子字符串;
    30.char[] toCharArray();                             将 String 对象转换成 char 数组;
    31.String toLowerCase();                             将字符串转换成小写;
    32.String toUpperCase();                             将字符串转换成大写;
    33.static String valueOf(X x);                       将基本类型转换为 String 对象;

6.Math 类

类变量: PI 和 E
类方法:

三角运算:
    toDegrees();        弧度转角度;
    toRadians();        角度转弧度;
    acos();             反余弦;
    asin();             反正弦;
    atan();             反正切;
    cos();              三角余弦;
    cosh();             双曲余弦;
    sin();              正弦;
    sinh();             双曲正弦;
    tan();              三角正切;
    tanh();             双曲正切;
    atan2();            转极坐标;

取整运算:
    floor();            小于目标数的最大整数;
    ceil();             大于目标数的最小整数;
    round();            四舍五入取整;

乘方,开方,指数运算:
    sqrt();             平方根;
    cbrt();             立方根;
    exp();              e的n次幂;
    hypot();            sqrt(x2+y2);
    pow();              计算乘方;
    log();              乘方;
    log10();            自然对数;

符号相关:
    abs();              绝对值;
    copySign();         返回带有第二个浮点数符号的第一个浮点数参数;
    signum();

大小相关:
    max();
    min();
    random();           伪随机数,0~1;

7.Random 类 ThreadLocalRandom

Random 构造器:
    默认种子;
    显式传入 long 型整数种子;

    Random rand = new Random();
    rand.nextXxx();

    推荐:
        Random rand = new Random(System.currentTimeMillis());

ThreadLocalRandom 

    ThreadLocalRandom rand = ThreadLocalRandom.current();

8.BigDecimal 类

BigDecimal(String val);                 优先使用;
BigDecimal.valueOf(double value);       

add();          +
subtract();     -
multipy();      *
divide();       /
pow();

9.Data 类

Data();
Data(long data);
long getTime();
void setTime(long time);

10.Calendar 类
抽象类

子类 GregorianCalendar 类;
静态 getInstance() 方法,TimeZone,Locale 类获取实例;

与 Data 转换:
Calendar calendar = Calendar.getInstance();
Data data = calendar.getTime();
calendar.setTime(data);

方法:  field 是类变量,Calendar.YEAR  Calendar.MONTH....
    void add(int field, int amount);            能进位,修正
    int get(int field);
    int getActualMaximun(int field);            返回指定日历字段拥有的最大值;
    int getActualMinimun(int field);            返回指定日历字段拥有的最小值;
    void roll(int field, int amount);           不能进位,修正
    void set(int field, int value);
    void set(int year, int month, int data);
    void set(int year, int month, int data, int hour, int minute, int second);

    关闭容错性:
        setLenient(false);

11.正则表达式

合法字符: x \0mnn   \xhh    \uhhhh    \t    \n   \r    \f   \a   \e    \cx

特殊字符:
    $      匹配一行结尾;
    ^       匹配一行开头;
    ()      标记子表达式开始结束位置;
    []      中括号表达式开始结束位置;
    {}      标记前面子表达式的出现频度;
    *       指定前面子表达式可以出现零次或多次;
    +       指定前面子表达式可以出现一次或多次;
    ?       指定前面子表达式可以出现零次或一次;
    .       匹配除换行符 \n 之外任何单字符;
    \       转义下一个字符;
    |       指定两项之间任选一项;

预定义字符:(通配符)
    .       匹配任何字符;
    \d      匹配 0~9 数字;
    \D      匹配非数字;
    \s      匹配空白符;
    \S      匹配非空白符;
    \w      匹配单词字符;
    \W      匹配非单词字符;

方括号表达式:
    枚举      [abc]
    范围 -        [a-f]
    求否 ^        [^abc]
    与运算 &&   [a-z&&[def]]
    并运算         [a-d[m-p]]

    中文字符    [\\u0041-\\u0056]

圆括号表达式:
    (|)     

边界匹配符:
    ^       行的开头;
    $      行的结尾;
    \b      单词的边界;
    \B      非单词的边界;
    \A      输入的开头;
    \G      前一个匹配的结尾;
    \Z      输入的结尾;仅用于最后的结束符;
    \z      输入的结尾;

数量标识符:
    贪婪模式(Greedy)    勉强模式(Reluctant)     占用模式(Possessive)
    X?                  X??                     X??                     X 表达式出现零次或一次;
    X*                  X*?                     X*?                     X 表达式出现零次或多次;
    X+                  X+?                     X+?                     X 表达式出现一次或多次;
    X{n}                X{n}?                   X{n}?                   X 表达式出现n次;
    X{n,}               X{n,}?                  X{n,}?                  X 表达式最少出现n次;
    X{n,m}              X{n,m}?                 X{n,m}?                 X 表达式最少出现n次,最多出现m次;


使用正则表达式:
    Pattern  和  Matcher   多个 Matcher 对象可共享一个 Pattern 对象;
        Pattern p = Pattern.compile("a*b");
        Matcher m = p.matcher("aaaab");
        boolean b = m.matches();

        boolean b = Pattern.matches("a*b", "aaaab");

    Matcher 方法:
        find()          返回目标字符串中是否包含与 Pattern 匹配的字串;
        group()         返回上一次与 Pattern 匹配的子串;
        start()         返回上一次与 Pattern 匹配的子串在目标字符串中的开始位置;
        end()           返回上一次与 Pattern 匹配的子串在目标字符串中的开始位置+1;
        lookingAt()     返回目标字符串前面部分与 Pattern 是否匹配;
        matches()       返回整个目标字符串与 Pattern 是否匹配;
        reset()         将现有 Matcher 对象应用于一个新的字符序列;
内容概要:本文详细介绍了“秒杀商城”微服务架构的设计与实战全过程,涵盖系统从需求分析、服务拆分、技术选型到核心功能开发、分布式事务处理、容器化部署及监控链路追踪的完整流程。重点解决了高并发场景下的超卖问题,采用Redis预减库存、消息队列削峰、数据库乐观锁等手段保障数据一致性,并通过Nacos实现服务注册发现与配置管理,利用Seata处理跨服务分布式事务,结合RabbitMQ实现异步下单,提升系统吞吐能力。同时,项目支持Docker Compose快速部署和Kubernetes生产级编排,集成Sleuth+Zipkin链路追踪与Prometheus+Grafana监控体系,构建可观测性强的微服务系统。; 适合人群:具备Java基础和Spring Boot开发经验,熟悉微服务基本概念的中高级研发人员,尤其是希望深入理解高并发系统设计、分布式事务、服务治理等核心技术的开发者;适合工作2-5年、有志于转型微服务或提升架构能力的工程师; 使用场景及目标:①学习如何基于Spring Cloud Alibaba构建完整的微服务项目;②掌握秒杀场景下高并发、超卖控制、异步化、削峰填谷等关键技术方案;③实践分布式事务(Seata)、服务熔断降级、链路追踪、统一配置中心等企业级中间件的应用;④完成从本地开发到容器化部署的全流程落地; 阅读建议:建议按照文档提供的七个阶段循序渐进地动手实践,重点关注秒杀流程设计、服务间通信机制、分布式事务实现和系统性能优化部分,结合代码调试与监控工具深入理解各组件协作原理,真正掌握高并发微服务系统的构建能力。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值