使用案例回顾类库相关知识(上) | 带你学《Java语言高级特性》之四十三

简介: 回顾之前学习的类库相关知识,我们已经对其基本概念与简单使用有了一个较为全面的了解,现在让我们一起来结合具体的一些案例巩固一下StringBuffer类和Random类的相关内容吧。

上一篇:使用红黑树实现节点增减的平衡修复 | 带你学《Java语言高级特性》之四十二
回顾之前学习的类库相关知识,我们已经对其基本概念与简单使用有了一个较为全面的了解,现在让我们一起来结合具体的一些案例巩固一下StringBuffer类和Random类的相关内容吧。

【本节目标】
通过阅读本节内容,你将结合相关案例场景进行功能实现,复习StringBuffer类,完成对字符串的各种操作与随机,复习Random类并实现抛硬币的小demo,进一步理解与掌握其使用方法。

StringBuffer使用

类库案例分析一

定义一个StringBuffer类对象,然后通过append()方法向对象添加26个小写字母,要求每次只添加一个,共添加26次,然后按照逆序的方式输出,然后删除前5个字符。

本操作主要是训练StringBuffer类中的处理方法,因为StringBuffer的主要特点是允许修改。

public class JavaAPIDemo {
    public static void main(String[] args) throws Exception{
        StringBuffer buf=new StringBuffer();
        for (int x='a';x<='z';x++){     //直接循环设置
           buf.append((char)x);  //保存字符
        }
        buf.reverse().delete(0,5);   //反转处理
        System.out.println(buf);  //utsrqponmlkjihgfedcba
    }
}

因为StringBuffer的内容是允许修改的,而String内容不允许修改,现在的程序是一个单线程的开发,所以不需要去考虑所谓的并发访问问题。

随机数组

类库案例分析二

利用Random类产生5个1~30之间(包括1和30)的随机整数。

Random产生随机数的操作之中会包含有数字0,所以此时不应该存在有数字0。

import java.util.Arrays;
import java.util.Random;
public class JavaAPIDemo {
    public static void main(String[] args){
        int result [] =NumberFactory.create(5);
        System.out.println(Arrays.toString(result)) ;
    }
}  
class NumberFactory{
    private static Random random = new Random() ;
     /**
     * 通过随机数来生成一个数组的内容,该内容不包括有0
     * @param len 要开辟的数组大小
     * @return 包含有随机数的内容
     */
    public static int [] create(int len) {
        int data [] = new int[len] ;   //开辟新的数组
        int foot = 0;
        while (foot < data.length) {
             int num = random.nextInt(30) ;
             if(num != 0) {
                 data[foot ++]= num ; //保存数据
             }
        }
        return data;
    }
}

执行结果:
[4, 2, 7, 22, 12]

扔硬币

类库案例分析三

编写程序,用0~1之间的随机数来模拟扔硬币实验,统计扔1000次后出现正、反面的次数并输出。

import java.util.Random;
public class JavaAPIDemo {
    public static void main(String[] args){
        Coin coin = new Coin();
        coin.throwCoin(1000);
        System.out.println("正面出现次数:"+ coin.getFront()+"、背面出现次数:"+ coin.getBack()) ;
    }
}
class Coin{     //模拟硬币扔的操作
    private int front ;   //保存正面次数
    private int back ;   //保存背面的次数
    private Random random = new Random();
    /**
     *扔硬币的处理
     * @param num 扔硬币的执行次数
     */
    public void throwCoin(int num) {
        for(int x=0; x < num; x ++) {
           int temp=random.nextInt(2);
           if (temp == 0) {
              this.front ++ ;
           }else {
               this.back ++ ;
           }
        }
     }
     public int getFront() {
         return this.front ;
     }
     public int getBack() {
         return this.back ;
     }
}

执行结果:
正面出现次数:485、背面出现次数:515

想学习更多的Java的课程吗?从小白到大神,从入门到精通,更多精彩不容错过!免费为您提供更多的学习资源。
本内容视频来源于阿里云大学

下一篇:使用案例回顾类库相关知识(中) | 带你学《Java语言高级特性》之四十四
更多Java面向对象编程文章查看此处

相关文章
|
3月前
|
安全 Java API
Java 集合高级应用与实战技巧之高效运用方法及实战案例解析
本课程深入讲解Java集合的高级应用与实战技巧,涵盖Stream API、并行处理、Optional类、现代化Map操作、不可变集合、异步处理及高级排序等核心内容,结合丰富示例,助你掌握Java集合的高效运用,提升代码质量与开发效率。
209 0
|
3月前
|
安全 JavaScript Java
java Web 项目完整案例实操指南包含从搭建到部署的详细步骤及热门长尾关键词解析的实操指南
本项目为一个完整的JavaWeb应用案例,采用Spring Boot 3、Vue 3、MySQL、Redis等最新技术栈,涵盖前后端分离架构设计、RESTful API开发、JWT安全认证、Docker容器化部署等内容,适合掌握企业级Web项目全流程开发与部署。
158 0
|
3月前
|
JSON JavaScript 前端开发
Python+JAVA+PHP语言,苏宁商品详情API
调用苏宁商品详情API,可通过HTTP/HTTPS发送请求并解析响应数据,支持多种编程语言,如JavaScript、Java、PHP、C#、Ruby等。核心步骤包括构造请求URL、发送GET/POST请求及解析JSON/XML响应。不同语言示例展示了如何获取商品名称与价格等信息,实际使用时请参考苏宁开放平台最新文档以确保兼容性。
|
3月前
|
监控 Java API
Java语言按文件创建日期排序及获取最新文件的技术
这段代码实现了文件创建时间的读取、文件列表的获取与排序以及获取最新文件的需求。它具备良好的效率和可读性,对于绝大多数处理文件属性相关的需求来说足够健壮。在实际应用中,根据具体情况,可能还需要进一步处理如访问权限不足、文件系统不支持某些属性等边界情况。
204 14
|
4月前
|
缓存 算法 NoSQL
校招 Java 面试高频常见知识点深度解析与实战案例详细分享
《2025校招Java面试核心指南》总结了Java技术栈的最新考点,涵盖基础语法、并发编程和云原生技术三大维度: 现代Java特性:重点解析Java 17密封类、Record类型及响应式Stream API,通过电商案例演示函数式数据处理 并发革命:对比传统线程池与Java 21虚拟线程,详解Reactor模式在秒杀系统中的应用及背压机制 云原生实践:提供Spring Boot容器化部署方案,分析Spring WebFlux响应式编程和Redis Cluster缓存策略。
93 0
|
4月前
|
人工智能 Java API
Java 生态大模型应用开发全流程实战案例与技术路径终极对决
在Java生态中开发大模型应用,Spring AI、LangChain4j和JBoltAI是三大主流框架。本文从架构设计、核心功能、开发体验、性能扩展性、生态社区等维度对比三者特点,并结合实例分析选型建议。Spring AI适合已有Spring技术栈团队,LangChain4j灵活性强适用于学术研究,JBoltAI提供开箱即用的企业级解决方案,助力传统系统快速AI化改造。开发者可根据业务场景和技术背景选择最适合的框架。
561 2
|
4月前
|
自然语言处理 前端开发 Java
JBoltAI 框架完整实操案例 在 Java 生态中快速构建大模型应用全流程实战指南
本案例基于JBoltAI框架,展示如何快速构建Java生态中的大模型应用——智能客服系统。系统面向电商平台,具备自动回答常见问题、意图识别、多轮对话理解及复杂问题转接人工等功能。采用Spring Boot+JBoltAI架构,集成向量数据库与大模型(如文心一言或通义千问)。内容涵盖需求分析、环境搭建、代码实现(知识库管理、核心服务、REST API)、前端界面开发及部署测试全流程,助你高效掌握大模型应用开发。
411 5
|
4月前
|
缓存 Java API
Java 集合容器实操技巧与案例详解
本教程基于Java 8+新特性和现代开发实践,深入讲解Java集合容器的实操技巧。通过具体场景演示Stream API数据处理、ConcurrentHashMap并发控制、LinkedHashMap实现LRU缓存、TreeSet自定义排序等高级特性。同时涵盖computeIfAbsent优化操作、EnumMap专用集合使用、集合统计与运算(交集、并集、差集)等内容。代码示例丰富,助力掌握高效编程方法。[点击获取完整代码](https://pan.quark.cn/s/14fcf913bae6)。
65 0
|
4月前
|
Java 编译器 应用服务中间件
为什么说 Java 语言编译与解释并存的原因
在编程语言的世界里,Java以其独特的“编译与解释并存”特性独树一帜。这一特性不仅赋予了Java强大的跨平台能力,还使其在性能和灵活性上达到了很好的平衡。接下来,我们将深入探讨Java语言这一特性的本质、原理以及在实际应用中的体现。
96 6
|
4月前
|
分布式计算 Java 大数据
Java 语言基础概念与常识之主要特点解析
Java是一种广泛应用于企业级开发、移动应用(如Android)、大数据处理及云计算等领域的编程语言。其核心特点包括跨平台性(一次编写,到处运行)、面向对象设计、自动垃圾回收、多线程支持和高性能表现。Java通过JVM实现跨平台,具备强大的健壮性和安全性,同时拥有丰富的标准库与活跃的开发者社区。本文深入解析Java的技术优势及其在电商系统、大数据处理和云计算中的实际应用,并提供相关面试资料供学习参考。
127 0