常用類學習

文章目錄

  • 字符串相關的類
    • String的特性
    • String對象的創建
    • 字符串相關的類
    • String類與其他結構之間的轉換
    • StringBuffer,StringBuilder
    • StringBuffer類的常用方法
  • JDK8之前日期時間API
    • java.lang.System類
    • java.util.Date類
    • java.text.SimpleDateFormat類
    • java.util.Calendar類
  • JDK8中新日期時間API
    • 新時間日期API
    • LocalDate、LocalTime、LocalDateTime
    • 常用方法
    • Instant
    • 格式化與解析日期或時間
  • Java比較器
    • 自然排序:java.lang.Comparable

字符串相關的類

String的特性

  1. String:字符串,使用一對""引用起來表示

  2. String聲明為final的,不可被繼承

  3. String實現了Serializable接口:表示字符串是支持序列化的
    實現了Comparable接口:表示String可以比較大小

  4. String內部定義了final char[] value用于存儲字符串數據

  5. String代表不可變的字符序列.簡稱:不可變性.

     體現:1.當對字符串重新賦值時,需要重寫指定內存區域賦值,不能使用原有的value進行賦值2.當對現有的字符串進行連續操作時,也需要重新指定內存區域賦值,不能使用原有的value進行賦值3.當調用String的replace()方法修改指定字符或字符串時,也需要重新指定內存區域賦值
    
  6. 通過字面量的方式給一個字符串賦值,此時的字符串值聲明在字符串常量池中.

  7. 字符串常量池是不會存儲相同內容的字符串的

String對象的創建

  1. 方式一:通過字面量定義的方式:此時的s1和s2的數據javaEE聲明方法區中的字符串常量池中
String s1="javaEE";
String s2="javaEE";
  1. 方式二:通過new+構造器的方式:
String s3=new String("javaEE");
String s4=new String("javaEE");

字符串相關的類

  1. int length():返回字符串的長度

  2. char charAt(int index): 返回某索引處的字符

  3. boolean isEmpty():判斷是否是空字符串

  4. String toLowerCase():使用默認語言環境,將 String 中的所有字符轉換為小寫

  5. String toUpperCase():使用默認語言環境,將 String 中的所有字符轉換為大寫

  6. String trim():返回字符串的副本,忽略前導空白和尾部空白

  7. boolean equals(Object obj):比較字符串的內容是否相同

  8. boolean equalsIgnoreCase(String anotherString):與equals方法類似,忽略大小寫

  9. String concat(String str):將指定字符串連接到此字符串的結尾。 等價于用“+”

  10. int compareTo(String anotherString):比較兩個字符串的大小

  11. String substring(int beginIndex):返回一個新的字符串,它是此字符串的從beginIndex開始截取到最后的一個子字符串。

  12. String substring(int beginIndex, int endIndex) :返回一個新字符串,它是此字符串從beginIndex開始截取到endIndex(不包含)的一個子字符串

  13. boolean endsWith(String suffix):測試此字符串是否以指定的后綴結束

  14. boolean startsWith(String prefix):測試此字符串是否以指定的前綴開始

  15. boolean contains(CharSequence s):當且僅當此字符串包含指定的 char 值序列時,返回 true

  16. int indexOf(String str):返回指定子字符串在此字符串中第一次出現處的索引

  17. int lastIndexOf(String str):返回指定子字符串在此字符串中最右邊出現處的索引

String類與其他結構之間的轉換

  1. String 與基本數據類型,包裝類之間的轉換.
@Testpublic void test1(){String str1="123";int num=Integer.parseInt(str1);String str2=String.valueOf(num);//123System.out.println(str2);String str3=num+"";System.out.println(str1==str3);}
  1. String 與char[]之間的轉換
@Testpublic void test2(){String str1="abc123";char[] charArray=str1.toCharArray();for(int i=0;i<charArray.length;i++){System.out.println(charArray[i]);}char[] arr=new char[]{'h','e','l','l','o'};String str2=new String(arr);System.out.println(str2);}
  1. String 與byte[]之間的轉換
@Testpublic void test3() throws UnsupportedEncodingException {String str1="abc123中國";byte[] bytes=str1.getBytes();//使用默認的字符集,進行轉換System.out.println(Arrays.toString(bytes));byte[] gbks=str1.getBytes("gbk");System.out.println(Arrays.toString(gbks));String str2=new String(bytes);//使用默認的字符集進行解碼System.out.println(str2);String str3=new String(gbks);System.out.println(str3);//出現亂碼.原因:編碼集和解碼集不一致String str4=new String(gbks,"gbk");System.out.println(str4);}

StringBuffer,StringBuilder

  1. java.lang.StringBuffer代表可變的字符序列,JDK1.0中聲明,可以對字符串內容進行增刪,此時不會產生新的對象。

  2. 很多方法與String相同。

  3. 作為參數傳遞時,方法內部可以改變值。

  4. StringBuffer類不同于String,其對象必須使用構造器生成。有三個構造器

    • StringBuffer():初始容量為16的字符串緩沖區
    • StringBuffer(int size):構造指定容量的字符串緩沖區
    • StringBuffer(String str):將內容初始化為指定字符串內容
  5. String,StringBuffer,StringBuilder三者異同

    String:不可變的字符序列:底層使用char[]存儲
    StringBuffer:可變的字符序列:線程安全的,效率低:底層使用char[]存儲
    StringBuilder:可變的字符序列:JDK5.0新增的,線程不安全的,效率高:底層使用char[]存儲

StringBuffer類的常用方法

  1. StringBuffer append(xxx):提供了很多的append()方法,用于進行字符串拼接
  2. StringBuffer delete(int start,int end):刪除指定位置的內容
  3. StringBuffer replace(int start, int end, Stringstr):把[start,end)位置替換為str
  4. StringBuffer insert(int offset, xxx):在指定位置插入xxx
  5. StringBuffer reverse() :把當前字符序列逆轉
  6. public int indexOf(String str)
  7. public String substring(int start,intend):返回一個從start開始到end索引結束的左閉右開區間的子字符串
  8. public int length()
  9. public char charAt(int n )
  10. public void setCharAt(int n ,char ch)

總結:

增:append(xxx)
刪:delete(int start,int end)
改:setCharAt(int n ,char ch) /replace(int start, int end, String str)
查:charAt(int n )
插:insert(int offset, xxx):在指定位置插入xxx
長度:length()
遍歷:for +charAT()

JDK8之前日期時間API

java.lang.System類

  • System類提供的public staticlongcurrentTimeMillis()用來返回當前時間與1970年1月1日0時0分0秒之間以毫秒為單位的時間差。
  • 此方法適于計算時間差。
  • 計算世界時間的主要標準有:
    UTC(Coordinated Universal Time)
    GMT(Greenwich Mean Time)
    CST(Central Standard Time)

java.util.Date類

  1. 表示特定的瞬間,精確到毫秒
  2. 構造器
    • Date():使用無參構造器創建的對象可以獲取本地當前時間。
    • Date(long date)
  3. 常用方法
    • getTime():返回自 1970 年 1 月 1 日 00:00:00 GMT 以來此 Date 對象表示的毫秒數。
    • toString():把此 Date 對象轉換為以下形式的 String: dow mon ddhh:mm:ss zzz yyyy 其中: dow 是一周中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri, Sat),zzz是時間標準。

java.text.SimpleDateFormat類

  1. Date類的API不易于國際化,大部分被廢棄了,java.text.SimpleDateFormat類是一個不與語言環境有關的方式來格式化和解析日期的具體類。
  2. 它允許進行格式化:日期->文本、解析:文本->日期
  3. 格式化:
    • SimpleDateFormat() :默認的模式和語言環境創建對象
    • public SimpleDateFormat(String pattern):該構造方法可以用參數pattern指定的格式創建一個對象,該對象調用
    • public String format(Date date):方法格式化時間對象date
  4. 解析
    • public Date parse(String source):從給定字符串的開始解析文本,以生成一個日期。
@Testpublic void test() throws ParseException {//實例化SimpleDateFarmatSimpleDateFormat sdf = new SimpleDateFormat();//實例化:日期--->字符串Date date=new Date();String format=sdf.format(date);System.out.println(format);//解析:格式化的逆過程,字符串--->日期String str="2025/7/16 18:07";sdf.parse(str);Date date1=sdf.parse(str);System.out.println(date1);System.out.println();SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//格式化String format1=sdf.format(date);System.out.println(format1);//解析Date date2=sdf.parse("2025/7/16 18:10");System.out.println(date2);}

java.util.Calendar類

  1. Calendar是一個抽象基類,主用用于完成日期字段之間相互操作的功能。
  2. 獲取Calendar實例的方法
    • 使用**Calendar.getInstance()**方法
    • 調用它的子類GregorianCalendar的構造器。
  3. 一個Calendar的實例是系統時間的抽象表示,通過get(int field)方法來取得想要的時間信息。比如YEAR、MONTH、DAY_OF_WEEK、HOUR_OF_DAY 、MINUTE、SECOND
    • public void set(int field,int value)
    • public void add(int field,int amount)
    • public final Date getTime()
    • public final void setTime(Date date)

JDK8中新日期時間API

新時間日期API

  1. java.time – 包含值對象的基礎包
  2. java.time.chrono – 提供對不同的日歷系統的訪問
  3. java.time.format – 格式化和解析時間和日期
  4. java.time.temporal – 包括底層框架和擴展特性
  5. java.time.zone – 包含時區支持的類

LocalDate、LocalTime、LocalDateTime

  1. LocalDate、LocalTime、LocalDateTime 類是其中較重要的幾個類,它們的實例是不可變的對象
  2. LocalDate代表IOS格式(yyyy-MM-dd)的日期,可以存儲 生日、紀念日等日期
  3. LocalTime表示一個時間,而不是日期
  4. LocalDateTime是用來表示日期和時間的,這是一個最常用的類之一

常用方法

  1. noew():獲取當前的日期,時間,日期+時間
  2. of():設置指定的年,月,日,時,分,秒,沒有偏移量
  3. getXxx():獲取相關的屬性
  4. withXxx():設置相關的屬性
  5. plus:向當前對象添加幾天、幾周、幾個月、幾年、幾小時
  6. minus:從當前對象減去幾月、幾周、幾天、幾年、幾小時

Instant

  • Instant:時間線上的一個瞬時點。 這可能被用來記錄應用程序中的事件時間戳。

格式化與解析日期或時間

  • java.time.format.DateTimeFormatter 類:該類提供了三種格式化方法
    1. 預定義的標準格式。如:ISO_LOCAL_DATE_TIME;ISO_LOCAL_DATE;ISO_LOCAL_TIME
    2. 本地化相關的格式。如:ofLocalizedDateTime(FormatStyle.LONG)
    3. 自定義的格式。如:ofPattern(“yyyy-MM-dd hh:mm:ss”)

Java比較器

自然排序:java.lang.Comparable

  1. 像String,包裝類等實現類Comparable接口,重寫了Comparable()方法給出了比較兩個對象大小
  2. 像String,包裝類重寫了compareTo()方法以后,進行了從小到大的排序
  3. 重寫了compareTo()的規則:
    • 如果當前的對象this大于形參對象obj,則返回正整數.
    • 如果當前的對象this小于形參對象obj,則返回負整數.
    • 如果當前的對象this等于形參對象obj,則返回零.
  4. 對于自定義類來說,如果需要排序,我們可以讓自定義類實現Comparable接口,重compareTo(obj)方法,在comparableTo(obj)方法中指定如何排序

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/915165.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/915165.shtml
英文地址,請注明出處:http://en.pswp.cn/news/915165.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Python庫包】Gurobi-Optimize (求解 MIP) 安裝

目錄Step1&#xff1a;注冊賬號Step2&#xff1a;獲取Licence另&#xff1a;完整安裝 Gurobi軟件參考本博客簡介Gurobi-Optimizer的安裝&#xff08;Python 環境&#xff09;。 Step1&#xff1a;注冊賬號 官網-Gurobi-Optimizer ??注意&#xff1a; Gurobi 是商業軟件&…

【滲透測試】NmapScanHelper 掃描輔助工具

目錄NmapScanHelper 掃描輔助工具一、功能特性二、文件說明三、使用方法1. 安裝依賴macOSUbuntu/DebianCentOS/RHEL2. 配置網段3. 運行掃描基本用法常用端口掃描示例掃描模式特殊環境模式選擇性掃描自定義文件4. 查看結果四、掃描模式說明標準模式特殊環境模式五、支持的 Nmap …

Python爬蟲入門到實戰(1)-requests庫

一.網絡爬蟲庫網絡爬蟲通俗來講就是使用代碼將HTML網頁的內容下載到本地的過程。爬取網頁主要是為了獲取網之間需要中的關鍵信息&#xff0c;例如網頁中的數據、圖片、視頻等。urllib庫:是Python自帶的標準庫&#xff0c;無須下載、安裝即可直接使用。urllib庫中包含大量的爬蟲…

深入理解設計模式之代理模式:原理、實現與應用

在軟件開發中&#xff0c;我們經常需要控制對某些對象的訪問——可能是為了延遲加載、添加額外功能或保護敏感資源。這正是代理模式大顯身手的地方。作為結構型設計模式的重要成員&#xff0c;代理模式在眾多知名框架和系統中扮演著關鍵角色。本文將全面剖析代理模式的方方面面…

VSCode - VSCode 快速跳轉標簽頁

VSCode 快速跳轉標簽頁 1、標簽頁列表快速跳轉 通過快捷鍵 Ctrl Tab 即可快速跳轉標簽頁 # 操作方式先按住 Ctrl 鍵&#xff0c;再按 Tab 鍵&#xff0c;此時&#xff0c;即可打開標簽頁列表&#xff08;保持 Ctrl 鍵一直按住&#xff09;然后&#xff0c;再按 Tab 鍵&#xf…

深入理解設計模式:享元模式(Flyweight Pattern)

在軟件開發中&#xff0c;我們經常會遇到需要創建大量相似對象的情況。如果每個對象都獨立存儲所有數據&#xff0c;將會消耗大量內存資源&#xff0c;導致系統性能下降。享元模式&#xff08;Flyweight Pattern&#xff09;正是為解決這一問題而生的經典設計模式。本文將深入探…

網絡大提速,RDMA,IB,iWrap

本章第一節介紹的存儲設備方面的創新解決了CPU訪問存儲設備的性能問題。但在實際的業務當中,數據的傳輸除了在節點內部的CPU與存儲設備間外,節點之間也存在數據傳輸的需求。本節我們就介紹在網絡傳輸方面是如何提速的。 在介紹新的網絡技術之前,我們看看傳統網絡是如何傳輸…

【C++】紅黑樹,“紅“與“黑”的較量

各位大佬好&#xff0c;我是落羽&#xff01;一個堅持不斷學習進步的大學生。 如果您覺得我的文章有所幫助&#xff0c;歡迎多多互三分享交流&#xff0c;一起學習進步&#xff01; 也歡迎關注我的blog主頁: 落羽的落羽 一、紅黑樹的概念與規則 紅黑樹是一種更加特殊的平衡二…

【愚公系列】《MIoT.VC》001-認識、安裝 MIoT.VC 軟件

??【行業認證權威頭銜】 ? 華為云天團核心成員:特約編輯/云享專家/開發者專家/產品云測專家 ? 開發者社區全滿貫:CSDN博客&商業化雙料專家/阿里云簽約作者/騰訊云內容共創官/掘金&亞馬遜&51CTO頂級博主 ? 技術生態共建先鋒:橫跨鴻蒙、云計算、AI等前沿領域…

git:tag標簽遠程管理

git tag v1&#xff1a;在當前所在分支創建標簽v1git tag -a v2 -m release version&#xff1a;創建一個帶有附注的標簽git tag -d v2&#xff1a;刪除本地標簽git tag&#xff1a;查看標簽git push origin 標簽1 標簽2……&#xff1a;把多個標簽推送到遠程git push origin -…

力扣 hot100 Day49

105. 從前序與中序遍歷序列構造二叉樹 給定兩個整數數組 preorder 和 inorder &#xff0c;其中 preorder 是二叉樹的先序遍歷&#xff0c; inorder 是同一棵樹的中序遍歷&#xff0c;請構造二叉樹并返回其根節點。 //抄的 class Solution { private:unordered_map<int, i…

jvm-sandbox-repeater 錄制和回放

https://github.com/alibaba/jvm-sandbox-repeater/blob/master/docs/user-guide-cn.md 快速錄制自己應用 step0 安裝sandbox和插件到應用服務器 curl -s https://github.com/alibaba/jvm-sandbox-repeater/releases/download/v1.0.0/install-repeater.sh | sh step1 修改repe…

【C++底層剖析】++a vs a++:到底誰是左值,誰是右值?

在 C 編程中&#xff0c;我們經常使用 a 和 a 來實現自增操作。乍一看它們只是“先加還是后加”的語法糖&#xff0c;但你真的理解它們的底層機制、返回值類型和左值右值屬性嗎&#xff1f;1. a 和 a 的基礎區別表達式名稱語義返回值類型左值 / 右值a前置自增先將 a 加 1&#…

【世紀龍科技】汽車故障診斷與排除仿真教學軟件讓課堂更高效安全

隨著汽車產業向智能化、電動化快速轉型&#xff0c;職業院校汽修專業的教學模式正面臨全新挑戰。傳統實車實訓存在成本高、風險大、場景單一等問題&#xff0c;而行業對人才的要求卻越來越高——既需要扎實的理論基礎&#xff0c;又必須具備熟練的故障診斷能力。如何在保證安全…

網絡基礎9:按流負載均衡實驗(等價路由)

實驗eNS拓撲圖&#xff1a;1. 網絡拓撲與 IP 配置AR5&#xff1a;GE0/0/0: 192.168.1.1/24&#xff08;連接 AR6&#xff09;GE0/0/1: 192.168.3.1/24&#xff08;連接 AR8&#xff09;Loopback0: 1.1.1.1/32&#xff08;源地址&#xff09;AR6&#xff1a;GE0/0/0: 192.168.1.…

4G模塊 A7680發送中文短信到手機

命令說明 基礎AT指令 ATi顯示產品的標志信息 ATCIMI查詢IMSI ATCICCID從SIM卡讀取ICCID ATCGSN查詢產品序列號 ATCPIN查詢卡狀態 ATCSQ查詢信號強度 ATCGATT查詢當前PS域狀態 ATCREG查詢GPRS注冊狀態 ATCEREG查詢4G注冊狀態 ATCGPADDR查詢PDP地址 ATCMGF選擇短信格式 ATCMGS發…

深度學習-線性神經網絡

文章目錄線性回歸基本概念隨機梯度下降矢量化加速正態分布和平方損失極大似然估計線性回歸實現從0開始**torch.no_grad()的兩種用途****為什么需要 l.sum().backward()&#xff1f;**調用現成庫softmax回歸圖像數據集從0開始實現softmax利用框架API實現課程學習自李牧老師B站的…

【王樹森推薦系統】推薦系統漲指標的方法04:多樣性

漲指標的方法有哪些&#xff1f; 改進召回模型&#xff0c;添加新的召回模型改進粗排和精排模型提升召回&#xff0c;粗排&#xff0c;精排的多樣性特殊對待新用戶嗎&#xff0c;低活用戶等特殊人群利用關注&#xff0c;轉發&#xff0c;評論這三種交互行為 排序的多樣性 精排多…

1. Spring AI概述

一、前言 Spring AI 是由 Spring 團隊推出的開源項目&#xff0c;旨在為 Java 開發者提供簡潔、一致的 Spring 風格開發體驗&#xff0c;用于構建基于生成式人工智能&#xff08;GenAI&#xff09;和大型語言模型&#xff08;LLM&#xff09;的應用程序。它通過標準化抽象層簡…

[每日隨題10] DP - 重鏈剖分 - 狀壓DP

整體概述 難度&#xff1a;1600 →\rightarrow→ 2200 →\rightarrow→ 2600 P6005 [USACO20JAN] Time is Mooney G 標簽&#xff1a;DP 前置知識&#xff1a;鏈式前向星 難度&#xff1a;綠 1600 題目描述&#xff1a; 輸入格式&#xff1a; 輸出格式&#xff1a; 樣例輸…