当前位置: 首页 > news >正文

Java常用类库

Java常用类库

      • 1. **Java基础类库**
        • 1.1 **`java.lang`**
        • 1.2 **`java.util`**
        • 1.3 **`java.io`**
        • 1.4 **`java.nio`**
        • 1.5 **`java.time`**
      • 2. **第三方类库**
        • 2.1 **Apache Commons**
        • 2.2 **Google Guava**
        • 2.3 **Jackson**
        • 2.4 **Lombok**
      • 3. **Spring相关类库**
      • 4. **并发类库**
        • 4.1 **`java.util.concurrent`**
      • 5. **网络类库**
        • 5.1 **`java.net`**
        • 5.2 **OkHttp**

Java中有许多常用的类库,它们大大提高了开发效率。以下是一些常见的Java类库及其典型用法:

1. Java基础类库

这些类库是JDK自带的,广泛应用于各种Java项目中。

1.1 java.lang
  • Object:所有类的父类,提供基础的方法如equals()hashCode()toString()等。

  • String:用于字符串操作。典型用法:

    String str = "Hello, World!";
    String upperStr = str.toUpperCase(); // HELLO, WORLD!
    String subStr = str.substring(0, 5); // Hello
    
  • Math:提供基本数学运算,如取整、三角函数等。

    int max = Math.max(10, 20); // 20
    double sqrt = Math.sqrt(16); // 4.0
    
  • Thread:用于多线程编程。

    Thread thread = new Thread(() -> {System.out.println("Thread running");
    });
    thread.start();
    
1.2 java.util
  • ArrayList:动态数组。

    List<String> list = new ArrayList<>();
    list.add("Apple");
    list.add("Banana");
    
  • HashMap:键值对的集合。

    Map<String, Integer> map = new HashMap<>();
    map.put("John", 25);
    int age = map.get("John"); // 25
    
  • Collections:集合工具类,提供排序、查找等功能。

    List<Integer> numbers = Arrays.asList(3, 1, 2);
    Collections.sort(numbers); // [1, 2, 3]
    
1.3 java.io
  • File:用于文件操作。

    File file = new File("test.txt");
    boolean exists = file.exists();
    
  • BufferedReader:用于读取文本文件。

    BufferedReader reader = new BufferedReader(new FileReader("test.txt"));
    String line = reader.readLine();
    reader.close();
    
1.4 java.nio
  • Files:用于高效的文件操作。

    Path path = Paths.get("test.txt");
    List<String> lines = Files.readAllLines(path);
    
1.5 java.time
  • LocalDateLocalTimeLocalDateTime:用于处理日期和时间。

    LocalDate today = LocalDate.now();
    LocalDate birthDate = LocalDate.of(1990, Month.JANUARY, 1);
    

2. 第三方类库

以下是常见的第三方库,这些库不包含在JDK中,但可以通过Maven或Gradle引入。

2.1 Apache Commons
  • Commons Lang:提供各种实用工具类。

    String reversed = StringUtils.reverse("abc"); // "cba"
    
  • Commons IO:简化I/O操作。

    String content = FileUtils.readFileToString(new File("test.txt"), "UTF-8");
    
2.2 Google Guava
  • Lists:快速创建集合。

    List<String> list = Lists.newArrayList("a", "b", "c");
    
  • Joiner:将集合转换为字符串。

    String result = Joiner.on(", ").join(list); // "a, b, c"
    
2.3 Jackson

用于JSON的序列化和反序列化。

ObjectMapper mapper = new ObjectMapper();
String jsonString = mapper.writeValueAsString(object); // 序列化
MyClass obj = mapper.readValue(jsonString, MyClass.class); // 反序列化
2.4 Lombok

简化Java代码,自动生成getter、setter、构造函数等。

@Data
public class User {private String name;private int age;
}

3. Spring相关类库

  • Spring Context:管理Bean的生命周期和依赖注入。

    ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
    MyService myService = context.getBean(MyService.class);
    
  • Spring Boot:用于快速创建Spring应用。

    @SpringBootApplication
    public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
    }
    

4. 并发类库

4.1 java.util.concurrent
  • ExecutorService:用于管理线程池。

    ExecutorService executor = Executors.newFixedThreadPool(10);
    executor.submit(() -> System.out.println("Task executed"));
    executor.shutdown();
    
  • CountDownLatch:同步工具类。

    CountDownLatch latch = new CountDownLatch(3);
    latch.await(); // 等待计数为0
    

5. 网络类库

5.1 java.net
  • HttpURLConnection:用于HTTP请求。

    URL url = new URL("http://example.com");
    HttpURLConnection conn = (HttpURLConnection) url.openConnection();
    conn.setRequestMethod("GET");
    int responseCode = conn.getResponseCode();
    
5.2 OkHttp

流行的HTTP客户端库。

OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder().url("http://example.com").build();
Response response = client.newCall(request).execute();

这些类库涵盖了Java开发中的各个方面,熟练掌握它们能够大大提高开发效率。

相关文章:

Java常用类库

Java常用类库 1. **Java基础类库**1.1 **java.lang**1.2 **java.util**1.3 **java.io**1.4 **java.nio**1.5 **java.time** 2. **第三方类库**2.1 **Apache Commons**2.2 **Google Guava**2.3 **Jackson**2.4 **Lombok** 3. **Spring相关类库**4. **并发类库**4.1 **java.util.…...

2024年高教社杯数学建模国赛C题超详细解题思路分析

本次国赛预测题目难度&#xff0c;选题人数如下所示 难度评估 A:B:C 1.8:1.3:1 D:E1.5:1 选题人数 A:B:C 1:1.5:2.8 D:E0.5:1.2 C题一直以来都是竞赛难度最低、选题人数最多的一道本科生选题&#xff0c;近三年C题的选题人数一直都是总参赛队伍的一半左右&#xff0c;2023年…...

深度学习(七)-计算机视觉基础

计算机视觉 计算机视觉在广义上是和图像相关的技术总称。包括图像的采集获取&#xff0c;图 像的压缩编码&#xff0c;图像的存储和传输&#xff0c;图像的合成&#xff0c;三维图像重建&#xff0c;图像增强&#xff0c;图像修复&#xff0c;图像的分类和识别&#xff0c;目…...

机器人笛卡尔空间轨迹规划原理与MATLAB实现

机器人笛卡尔空间轨迹规划是指在给定的笛卡尔坐标系&#xff08;通常是三维空间坐标系&#xff09;中规划机器人的末端执行器&#xff08;如抓手、焊枪等&#xff09;的移动路径。这种规划方式直观且易于理解&#xff0c;因为它直接关联到任务空间中机器人的位置和姿态。下面将…...

数据结构:树与二叉树

1、树的基本概念 1.1树的定义 树是n个结点的有限集。 若n0&#xff0c;称为空树&#xff1b;若n>0称为非空树&#xff0c;非空树有且仅有一个称之为根的结点。 除根结点以外的其余结点可分成m个互不相交的有限集T1,T2,......Tm,每个有限集合本身又是一棵树&#xff0c;并…...

BUUCTF—[网鼎杯 2020 朱雀组]phpweb

题解 打开题目是这样子的。 啥也不管抓个包看看&#xff0c;从它返回的信息判断出func后面的是要调用的函数&#xff0c;p后面的是要执行的内容。 那我们直接执行个系统命令看看&#xff0c;可以看到返回了hack&#xff0c;估计是做了过滤。 funcsystem&pls 直接读取源码…...

什么是CDN及其如何影响SEO?

有没有想过&#xff0c;为什么你的网站在谷歌搜索结果的后几页徘徊&#xff0c;即使你已经优化了每一个网页&#xff1f; 有时候&#xff0c; 慢速的网站性能可能是罪魁祸首。 如果这个问题引起了你的共鸣&#xff0c;那么你可能想要探索一下内容分发网络&#xff08;Content…...

python实现粒子群算

博客目录 引言 什么是粒子群算法&#xff08;PSO&#xff09;&#xff1f;粒子群算法的应用场景为什么使用粒子群算法&#xff1f; 粒子群算法的原理 粒子群算法的基本概念粒子位置和速度的更新规则粒子群算法的流程粒子群算法的特点与优势 粒子群算法的实现步骤 初始化粒子群…...

【Unity案例】搭建射击系统与UI

上期将基础的移动系统搭建完毕后就可以开始搭建更加复杂的系统部分了 前排提示&#xff0c;由于一开始仅思考如何完成操作相关功能&#xff0c;以至于到后面重构稍微有些困难&#xff0c;继续写下去恐成屎山&#xff0c;故在搭完射击和武器UI后不再继续泛化到敌人和敌人状态机…...

Python使用zdppy_mysql操作MySQL和MariaDB数据库快速入门教程

zdppy_mysql 使用python操作MySQL 项目开源地址&#xff1a;https://github.com/zhangdapeng520/zdppy_mysql 安装 pip install zdppy_mysql使用教程 连接MySQL import zdppy_mysql from config import host, username, password, database, port# 连接数据库 db zdppy_…...

union 的正确食用方法

0.前情提要 &#xff08;很久&#xff09;之前上编译原理时&#xff0c;一次实验课需要补充完善一个用 c 写的词法分析器&#xff1b;而这个分析器在定义语法树结点时使用了 union 存储语言中不同表达式的类型标签或值本身。因为当时刚好学完了 cpp&#xff0c;拿着锤子看啥都…...

汇编语言在虚拟机中输出“Hello World!”

1.软件 Nasmide64.exe(李忠老师编写) Fixvhdw64.exe(李忠老师编写) VirtualBox虚拟机(免费 开源) 2.过程 01.Fixvhdw64.exe输入以下代码: mov ax,0xb800 mov ds,ax mov byte [0x00],H mov byte [0x02],e mov byte [0x04],l mov byte [0x06],l mov byte [0x08],o mov byte…...

JVM类的加载和类的加载器

JVM类的加载和类的加载器 一.类的加载过程 类的加载指的是将类的.class文件中的二进制数据读入到内存中&#xff0c;将其放在运行时数据区的方法区内&#xff0c;然后在堆区创建一个java.lang.Class对象&#xff0c;用来封装类在方法区内的数据结构。类的加载的最终产品是位于…...

MLM:多模态大型语言模型的简介、微调方法、发展历史及其代表性模型、案例应用之详细攻略

MLM&#xff1a;多模态大型语言模型的简介、微调方法、发展历史及其代表性模型、案例应用之详细攻略 目录 相关文章 AI之MLM&#xff1a;《MM-LLMs: Recent Advances in MultiModal Large Language Models多模态大语言模型的最新进展》翻译与解读 MLM之CLIP&#xff1a;CLIP…...

Java健康养老智慧相伴养老护理小程序系统源码代办陪诊陪护更安心

健康养老&#xff0c;智慧相伴 —— 养老护理小程序&#xff0c;代办陪诊陪护更安心 &#x1f308;【开篇&#xff1a;智慧养老&#xff0c;新时代的温馨守护】&#x1f308; 在这个快节奏的时代&#xff0c;我们总希望能给予家人更多的关爱与陪伴&#xff0c;尤其是家中的长…...

Python | Leetcode Python题解之第390题消除游戏

题目&#xff1a; 题解&#xff1a; class Solution:def lastRemaining(self, n: int) -> int:a1 1k, cnt, step 0, n, 1while cnt > 1:if k % 2 0: # 正向a1 stepelse: # 反向if cnt % 2:a1 stepk 1cnt >> 1step << 1return a1...

Github 2024-09-01 开源项目月报 Top16

根据Github Trendings的统计,本月(2024-09-01统计)共有16个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目9TypeScript项目5Dart项目2C项目1Jupyter Notebook项目1Rust项目1开发者职业成长指南 创建周期:2670 天开发语言:TypeScript协议类…...

C++ 继承(二)

目录 1. 实现一个不能被继承的类 2. 友元与继承 3.继承与静态成员 4.多继承及其菱形继承问题 (1). 继承模型 (2). 虚继承 (2.1)虚继承解决数据冗余和二义性的原理 (3). 多继承中指针偏移问题 (4). IO库中的菱形虚拟继承 5. 继承和组合 1. 实现一个不能被继承的类 方法1…...

第 2 章:AJAX 的使用

AJAX 的使用 核心对象&#xff1a;XMLHttpRequest&#xff0c;AJAX 的所有操作都是通过该对象进行的。 1. 使用步骤 创建 XMLHttpRequest 对象 var xhr new XMLHttpRequest(); 设置请求信息 xhr.open(method, url);//可以设置请求头&#xff0c;一般不设置 xhr.setReques…...

ROS——视觉抓取

纲要 视觉抓取中的关键技术 内参标定 物体识别定位 抓取姿态分析 运动规划 外参标定 任意两个位姿之间的关系 眼在外 眼在内 手眼标定流程 robot 部分 标定效果 视觉抓取例程 grasping_demo.cpp 获取两个坐标系之间变换关系:waitForTransform 、 LookupTransform 求相…...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…...

练习(含atoi的模拟实现,自定义类型等练习)

一、结构体大小的计算及位段 &#xff08;结构体大小计算及位段 详解请看&#xff1a;自定义类型&#xff1a;结构体进阶-CSDN博客&#xff09; 1.在32位系统环境&#xff0c;编译选项为4字节对齐&#xff0c;那么sizeof(A)和sizeof(B)是多少&#xff1f; #pragma pack(4)st…...

【网络安全产品大调研系列】2. 体验漏洞扫描

前言 2023 年漏洞扫描服务市场规模预计为 3.06&#xff08;十亿美元&#xff09;。漏洞扫描服务市场行业预计将从 2024 年的 3.48&#xff08;十亿美元&#xff09;增长到 2032 年的 9.54&#xff08;十亿美元&#xff09;。预测期内漏洞扫描服务市场 CAGR&#xff08;增长率&…...

UE5 学习系列(三)创建和移动物体

这篇博客是该系列的第三篇&#xff0c;是在之前两篇博客的基础上展开&#xff0c;主要介绍如何在操作界面中创建和拖动物体&#xff0c;这篇博客跟随的视频链接如下&#xff1a; B 站视频&#xff1a;s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...

【机器视觉】单目测距——运动结构恢复

ps&#xff1a;图是随便找的&#xff0c;为了凑个封面 前言 在前面对光流法进行进一步改进&#xff0c;希望将2D光流推广至3D场景流时&#xff0c;发现2D转3D过程中存在尺度歧义问题&#xff0c;需要补全摄像头拍摄图像中缺失的深度信息&#xff0c;否则解空间不收敛&#xf…...

linux arm系统烧录

1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 &#xff08;忘了有没有这步了 估计有&#xff09; 刷机程序 和 镜像 就不提供了。要刷的时…...

大数据学习(132)-HIve数据分析

​​​​&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4…...

使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台

🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...

保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek

文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama&#xff08;有网络的电脑&#xff09;2.2.3 安装Ollama&#xff08;无网络的电脑&#xff09;2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合

在汽车智能化的汹涌浪潮中&#xff0c;车辆不再仅仅是传统的交通工具&#xff0c;而是逐步演变为高度智能的移动终端。这一转变的核心支撑&#xff0c;来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒&#xff08;T-Box&#xff09;方案&#xff1a;NXP S32K146 与…...