主頁 > 後端開發 > Java復習,Java知識點以及Java面試題(三)

Java復習,Java知識點以及Java面試題(三)

2020-09-14 23:56:08 後端開發

Object

   類層次結構的跟類,每個類都使用Object作為超類,每個類都直接或者間接繼承于Object

  構造方法 public Object()

  成員方法 :

    public int hashCode():回傳該物件的哈希碼值,哈希值是根據哈希演算法計算出來,于地址值有關

    public final Class getClass(): 回傳此Object類的運行時類 

    toString() 回傳物件的字串表示,默認是由類的全路徑+'@'+哈希值的十六進制表示, 這個表示其實是沒有意義的,一般子類都會重寫該方法, 可以自動生成    

    equals()比較兩個物件是否相同,默認情況下,比較的是地址值是否相同,
而比較地址值是沒有意義的,所以,一般子類也會重寫該方法,可以自動生成,

    finalize() 用于垃圾回收,在不確定的時間

    clone() 可以實作物件的克隆,包括成員變數的資料復制,但是它和兩個參考指向同一個物件是有區別的,

    直接輸出一個物件名稱,其實默認呼叫了該物件的toString()方法,

  面試題
    ==和equals()的區別?
    A:==
      基本型別:比較的是值是否相同
      參考型別:比較的是地址值是否相同
    B:equals()
      只能比較參考型別,默認情況下,比較的是地址值是否相同,
      但是,我們可以根據自己的需要重寫該方法,

String

  構造方法:public String()
       public String(byte[] bytes)
       public String(byte[] bytes,int offset,int length)
       public String(char[] value)
       public String(char[] value,int offset,int count)
       public String(String original)
  面試題:

      字面值作為字串物件和通過構造方法創建物件的不同

      String s = new String("hello");和String s = "hello"的區別?

      前者創建兩個物件后者創建一個物件

 1 /*
 2  * 看程式寫結果
 3  */
 4 public class StringDemo3 {
 5     public static void main(String[] args) {
 6         String s1 = new String("hello");
 7         String s2 = new String("hello");
 8         System.out.println(s1 == s2);// false
 9         System.out.println(s1.equals(s2));// true
10 
11         String s3 = new String("hello");
12         String s4 = "hello";
13         System.out.println(s3 == s4);// false
14         System.out.println(s3.equals(s4));// true
15 
16         String s5 = "hello";
17         String s6 = "hello";
18         System.out.println(s5 == s6);// true
19         System.out.println(s5.equals(s6));// true
20     }
21 }

 

 1 /*
 2  * 看程式寫結果
 3  * 字串如果是變數相加,先開空間,在拼接,
 4  * 字串如果是常量相加,是先加,然后在常量池找,如果有就直接回傳,否則,就創建,
 5  */
 6 public class StringDemo4 {
 7     public static void main(String[] args) {
 8         String s1 = "hello";
 9         String s2 = "world";
10         String s3 = "helloworld";
11         System.out.println(s3 == s1 + s2);// false 字串拼接是先開了一個空間(X002)然后在進行拼接而不是直接指向s3所指向的那個位置(X001)(方法區的常量池中).所以地址值不一樣,false,
12         System.out.println(s3.equals((s1 + s2)));// true
13 
14         System.out.println(s3 == "hello" + "world");// false 這個我們錯了,應該是true
15         System.out.println(s3.equals("hello" + "world"));// true
16 
17         // 通過反編譯看原始碼,我們知道這里已經做好了處理,
18         // System.out.println(s3 == "helloworld");
19         // System.out.println(s3.equals("helloworld"));
20     }
21 }

 

  與判斷功能相關的方法

    boolean equals(object obj): 

    boolean equalsIgnoreCase(String str):

    boolean contains(String str):

    boolean startwith(String str):

    boolean endswith(String str):

    boolean isEmpty();

 

  與獲取相關的方法

    int length();獲取字串的長度,

    char charAt(int index):獲取指定索引位置的字符

    int indexOf(int ch):回傳指定字符在此字串中第一次出現處的索引,

    int indexOf(String str):回傳指定字串在此字串中第一次出現處的索引,

    int indexOf(int ch, int fromIndex):回傳指定字符在此字串中從指定位置后第一次出現處的索引,

    int indexOf(String str, int fromIndex):回傳指定字串在此字串中從指定位置后第一次出現處的索引,

    String substring(int start):從指定位置開始截取字串,默認到末尾,

    String substring(int start, int end):從指定位置開始到指定位置結束截取字串,

 

字串的遍歷:

  1. charAt()獲取每個字符,length()用來回圈

  2.  toCharArray() 轉換成字符陣列,在對陣列進行遍歷

  

  與轉換相關的方法

    byte[] getBytes():把字串轉換為位元組陣列,

    char[] toCharArray():把字串轉換為字符陣列,

    static String valueOf(char[] chs):把字符陣列轉成字串,

    static String valueOf(int i):把int型別的資料轉成字串,

    String toLowerCase():把字串轉成小寫,

    String toUpperCase():把字串轉成大寫,

    String concat(String str):把字串拼接,

 

  其他常用方法

     String replace(char old, char new)

     String replace(String old, String new)

     String trim()

     int compateTo(String str)

     int compareToIgnoreCase(String str)

 

StringBuffer

  執行緒安全的可變字串

  StringBuffer和String的區別? 前者長度和內容可變,后者不可變,如果使用前者做字串的拼接,不會浪費太多的資源,

  構造方法:StringBuffer的構造方法:

         public StringBuffer(): 

         public StringBuffer(int capacity): 

         public StringBuffer(String str): 

  StringBuffer的方法:

    public int capacity():

    public int length():

    添加:public StringBuffer append(String str): 把任意型別資料添加到字串緩沖區里,并回傳字串緩沖區本身,

         public StringBuffer insert(int offset, String str): 在指定位置把任意型別資料插入到字串緩沖區里面,并回傳字符緩沖區本身,

    洗掉:public StringBuffer deleteCharAt(int index):

       public StringBuffer delete(int start, int end):

    替換:public StringBuffer replace(int start, int end, String str):

    反轉:public StringBuffer reverse()

    截取:public String substring(int start):

       public String substring(int start, int end):

 

String和StringBuffer相互轉換:

  StringBuffer的構造方法 public StringBuffer(String str):

  StringBuffer的append方法; 

  String的構造方法 public String(StringBuffer buffer):

  StringBuffer的toString方法;

 

StringBuilder

  執行緒不安全的可變字串

 

  面試題:

    String, StringBuffer, StringBuilder的區別?

      String是內容不可變的,而StringBuffer,StringBuilder都是內容可變的

      StringBuffer是同步的,資料安全,效率低;StringBuilder是不同步的,資料不安全,效率高

    StringBuffer和陣列的區別?

      兩者都可以看出是一個容器,裝其他的資料

      但是StringBuffer的資料最終是一個字串資料

      而陣列可以放置多種資料,但是必須是同一種資料型別

    

 1 /* 形式引數問題
 2  * String作為引數傳遞
 3  * StringBuffer作為引數傳遞 
 4  * 
 5  * 形式引數:
 6  *         基本型別:形式引數的改變不影響實際引數
 7  *         參考型別:形式引數的改變直接影響實際引數
 8  * 
 9  * 注意:
10  *         String作為引數傳遞,雖然String是參考型別但是效果和基本型別作為引數傳遞是一樣的,
11  *        SreingBuffer運用賦值符號時形式引數的改變不影響實際引數,運用append()方法時,形式引數的改變直接影響實際引數
12  */
13 public class StringBufferDemo {
14     public static void main(String[] args) {
15         String s1 = "hello";
16         String s2 = "world";
17         System.out.println(s1 + "---" + s2);// hello---world
18         change(s1, s2);
19         System.out.println(s1 + "---" + s2);// hello---world
20 
21         StringBuffer sb1 = new StringBuffer("hello");
22         StringBuffer sb2 = new StringBuffer("world");
23         System.out.println(sb1 + "---" + sb2);// hello---world
24         change(sb1, sb2);
25         System.out.println(sb1 + "---" + sb2);// hello---worldworld
26 
27     }
28 
29     public static void change(StringBuffer sb1, StringBuffer sb2) {
30         sb1 = sb2;
31         sb2.append(sb1);
32     }
33 
34     public static void change(String s1, String s2) {
35         s1 = s2;
36         s2 = s1 + s2;
37     }
38 }

 

Arrays

  針對陣列進行操作的工具類

  public static String toString(int[] a):

  public static void sort(int[] a):  底層快排實作

  public static int binarySearch(int[] a, int key):

基本型別包裝類

  Integer

    構造方法:public Integer (int value)

         public Integer (String s)

 1 /*
 2  * int型別和String型別的相互轉換
 3  * 
 4  * int -- String
 5  *         String.valueOf(number)
 6  * 
 7  * String -- int
 8  *         Integer.parseInt(s)
 9  */
10 public class IntegerDemo {
11     public static void main(String[] args) {
12         // int -- String
13         int number = 100;
14         // 方式1
15         String s1 = "" + number;
16         System.out.println("s1:" + s1);
17         // 方式2
18         String s2 = String.valueOf(number);
19         System.out.println("s2:" + s2);
20         // 方式3
21         // int -- Integer -- String
22         Integer i = new Integer(number);
23         String s3 = i.toString();
24         System.out.println("s3:" + s3);
25         // 方式4
26         // public static String toString(int i)
27         String s4 = Integer.toString(number);
28         System.out.println("s4:" + s4);
29         System.out.println("-----------------");
30 
31         // String -- int
32         String s = "100";
33         // 方式1
34         // String -- Integer -- int
35         Integer ii = new Integer(s);
36         // public int intValue()
37         int x = ii.intValue();
38         System.out.println("x:" + x);
39         //方式2
40         //public static int parseInt(String s)
41         int y = Integer.parseInt(s);
42         System.out.println("y:"+y);
43     }
44 }

   面試題

 1 /*
 2  * 看程式寫結果
 3  * 
 4  * 注意:Integer的資料直接賦值,如果在-128到127之間,會直接從緩沖池里獲取資料,否則就創建一個新的空間
 5  */
 6 public class IntegerDemo {
 7     public static void main(String[] args) {
 8         Integer i1 = new Integer(127);
 9         Integer i2 = new Integer(127);
10         System.out.println(i1 == i2);
11         System.out.println(i1.equals(i2));
12         System.out.println("-----------");
13 
14         Integer i3 = new Integer(128);
15         Integer i4 = new Integer(128);
16         System.out.println(i3 == i4);
17         System.out.println(i3.equals(i4));
18         System.out.println("-----------");
19 
20         Integer i5 = 128;
21         Integer i6 = 128;
22         System.out.println(i5 == i6);          //false
23         System.out.println(i5.equals(i6));    //true
24         System.out.println("-----------");
25 
26         Integer i7 = 127;
27         Integer i8 = 127;
28         System.out.println(i7 == i8);        //true
29         System.out.println(i7.equals(i8));    //true
30 
31         // 通過查看原始碼,我們就知道了,針對-128到127之間的資料,做了一個資料緩沖池,如果資料是該范圍內的,每次并不創建新的空間
32         // Integer ii = Integer.valueOf(127);
33     }

 

  Byte

  Short

  Long

  Float

  Double

  Character

    構造方法:public Character(char value)

    public static boolean isUpperCase(char ch):判斷給定的字符是否是大寫字符

    public static boolean isLowerCase(char ch):判斷給定的字符是否是小寫字符

    public static boolean isDigit(char ch):判斷給定的字符是否是數字字符

    public static char toUpperCase(char ch):把給定的字符轉換為大寫字符

    public static char toLowerCase(char ch):把給定的字符轉換為小寫字符

  Boolean

 

正則運算式:

  Pattern類:正則運算式的編譯表示形式

  正則運算式規則:

A:字符
    x 字符 x,舉例:'a'表示字符a
    \\ 反斜線字符("\"),
    \n 新行(換行)符 ('\u000A') 
    \r 回車符 ('\u000D')
    
B:字符類
    [abc] a、b 或 c (3者選其一)(簡單類) 
    [^abc] 任何字符,除了 a、b 或 c(否定) 
    [a-zA-Z] a到 z 或 A到 Z,兩頭的字母包括在內(范圍) 
    [0-9] 0到9的字符都包括
    
C:預定義字符類
    . 任何字符,我的就是.字符本身,怎么表示呢? \.
    \d 數字:[0-9]
    \w 單詞字符:[a-zA-Z_0-9]
        在正則運算式里面組成單詞的東西必須有這些東西組成

D:邊界匹配器
    ^ 行的開頭 
    $ 行的結尾 
    \b 單詞邊界
        就是不是單詞字符([a-zA-Z_0-9])的地方,
        舉例:hello world?haha;xixi
    
E:Greedy 數量詞 
    X? X,一次或一次也沒有
    X* X,零次或多次
    X+ X,一次或多次
    X{n} X,恰好 n 次 
    X{n,} X,至少 n 次 
    X{n,m} X,至少 n 次,但是不超過 m 次 

   判斷:String類的public boolean matches(String regex):

   分割:String類的public String[] split(String regex):

   替換:String類的public String replaceAll(String regex,String replacement)

   Pattern和matcher的使用

 

Math

  成員變數:

    public static final double PI

    public static final double E

  成員方法

    public static int abs(int a):絕對值

    public static double ceil(double a ):向上取整

    public static double floor(double a):向下取整

    public static int max(int a, int b):回傳最大值

    public static double pow(double a, double b):平方根

    public static double random():產生0到1亂數

    public static int round(float a):四舍五入

    public static double sqrt(double a):正平方根

 

Random

  構造方法:public Random(): 沒有給種子,用的是默認種子,是當前時間的毫秒值

       public Random(long seed): 給出指定的種子 給定種子后隨機出來的數是固定的

   成員方法:public int nextInt():

        public int nextInt(int n):

 

System

  無構造方法,不能被實體化

  成員方法:public static void gc():  運行垃圾回收器 

       public static void exit(int status): 終止當前正在運行的java虛擬機,引數用作狀態碼;根據慣例,非 0 的狀態碼表示例外終止,即表示0狀態碼表示正常終止,

       public static long currentTimeMillis():回傳以毫秒為單位的當前時間[可以用來計算程式運行的時間]    

       public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length): 用于將一個陣列的元素快速拷貝到另一個陣列

  

BigInteger

  構造方法:BigInteger(String val)

  成員方法:

    public BigInteger add(BigInteger val):加
    public BigInteger subtract(BigInteger val):減
    public BigInteger multiply(BigInteger val):乘
    public BigInteger divide(BigInteger val):除
    public BigInteger[] divideAndRemainder(BigInteger val):回傳商和余數的陣列

BigDecimal

  由于在運算的時候,float型別和double很容易丟失精度,為了能精確的表示、計算浮點數,Java提供了BigDecimal,BigDecimal類:不可變的、任意精度的有符號十進制數,可以解決資料丟失問題,

  構造方法:public BigDecimal(String val)

  成員方法:public BigDecimal add(BigDecimal augend)

       public BigDecimal subtract(BigDecimal subtrahend)

       public BigDecimal multiply(BigDecimal multiplicand)

       public BigDecimal divide(BigDecimal divisor)

       public BigDecimal divide(BigDecimal divisor,int scale,int roundingMode):商,幾位小數,如何舍取

 

Date

  構造方法:Date():根據當前的默認毫秒值創建日期物件

      Date(long date):根據給定的毫秒值創建日期物件

  成員方法:public long getTime(): 獲取時間,以毫秒為單位

       public void setTime(long time):設定時間

  

DateFormat

  Date -- String(格式化)
    public final String format(Date date)
  String -- Date(決議)
    public Date parse(String source)

  DateForamt:可以進行日期和字串的格式化和決議,但是由于是抽象類,所以使用具體子類SimpleDateFormat,

  SimpleDateFormat的構造方法:
    SimpleDateFormat():默認模式
    
SimpleDateFormat(String pattern):給定的模式(該模式為:年 y月 M 日 d時 H分 m秒 s)

 

Calendar

  抽象類,使用Calender.getInstance()獲取子類物件

  public int get (int field): 回傳給定日歷欄位的值,日歷類中的每個日歷欄位都是靜態的成員變數,并且是int型別,   

  public void add(int field,int amount):根據給定的日歷欄位和對應的時間,來對當前的日歷進行操作,

  public final void set(int year,int month,int date):設定當前日歷的年月日

  

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/39689.html

標籤:Java

上一篇:C/C++編程筆記:C++ 嵌套回圈,含回圈列印及蛇形矩陣實體

下一篇:Spring系列之初識Spring Spring概述

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【C++】Microsoft C++、C 和匯編程式檔案

    ......

    uj5u.com 2020-09-10 00:57:23 more
  • 例外宣告

    相比于斷言適用于排除邏輯上不可能存在的狀態,例外通常是用于邏輯上可能發生的錯誤。 例外宣告 Item 1:當函式不可能拋出例外或不能接受拋出例外時,使用noexcept 理由 如果不打算拋出例外的話,程式就會認為無法處理這種錯誤,并且應當盡早終止,如此可以有效地阻止例外的傳播與擴散。 示例 //不可 ......

    uj5u.com 2020-09-10 00:57:27 more
  • Codeforces 1400E Clear the Multiset(貪心 + 分治)

    鏈接:https://codeforces.com/problemset/problem/1400/E 來源:Codeforces 思路:給你一個陣列,現在你可以進行兩種操作,操作1:將一段沒有 0 的區間進行減一的操作,操作2:將 i 位置上的元素歸零。最終問:將這個陣列的全部元素歸零后操作的最少 ......

    uj5u.com 2020-09-10 00:57:30 more
  • UVA11610 【Reverse Prime】

    本人看到此題沒有翻譯,就附帶了一個自己的翻譯版本 思考 這一題,它的第一個要求是找出所有 $7$ 位反向質數及其質因數的個數。 我們應該需要質數篩篩選1~$10^{7}$的所有數,這里就不慢慢介紹了。但是,重讀題,我們突然發現反向質數都是 $7$ 位,而將它反過來后的數字卻是 $6$ 位數,這就說明 ......

    uj5u.com 2020-09-10 00:57:36 more
  • 統計區間素數數量

    1 #pragma GCC optimize(2) 2 #include <bits/stdc++.h> 3 using namespace std; 4 bool isprime[1000000010]; 5 vector<int> prime; 6 inline int getlist(int ......

    uj5u.com 2020-09-10 00:57:47 more
  • C/C++編程筆記:C++中的 const 變數詳解,教你正確認識const用法

    1、C中的const 1、區域const變數存放在堆疊區中,會分配記憶體(也就是說可以通過地址間接修改變數的值)。測驗代碼如下: 運行結果: 2、全域const變數存放在只讀資料段(不能通過地址修改,會發生寫入錯誤), 默認為外部聯編,可以給其他源檔案使用(需要用extern關鍵字修飾) 運行結果: ......

    uj5u.com 2020-09-10 00:58:04 more
  • 【C++犯錯記錄】VS2019 MFC添加資源不懂如何修改資源宏ID

    1. 首先在資源視圖中,添加資源 2. 點擊新添加的資源,復制自動生成的ID 3. 在解決方案資源管理器中找到Resource.h檔案,編輯,使用整個專案搜索和替換的方式快速替換 宏宣告 4. Ctrl+Shift+F 全域搜索,點擊查找全部,然后逐個替換 5. 為什么使用搜索替換而不使用屬性視窗直 ......

    uj5u.com 2020-09-10 00:59:11 more
  • 【C++犯錯記錄】VS2019 MFC不懂的批量添加資源

    1. 打開資源頭檔案Resource.h,在其中預先定義好宏 ID(不清楚其實ID值應該設定多少,可以先新建一個相同的資源項,再在這個資源的ID值的基礎上遞增即可) 2. 在資源視圖中選中專案資源,按F7編輯資源檔案,按 ID 型別 相對路徑的形式添加 資源。(別忘了先把檔案拷貝到專案中的res檔案 ......

    uj5u.com 2020-09-10 01:00:19 more
  • C/C++編程筆記:關于C++的參考型別,專供新手入門使用

    今天要講的是C++中我最喜歡的一個用法——參考,也叫別名。 參考就是給一個變數名取一個變數名,方便我們間接地使用這個變數。我們可以給一個變數創建N個參考,這N + 1個變數共享了同一塊記憶體區域。(參考型別的變數會占用記憶體空間,占用的記憶體空間的大小和指標型別的大小是相同的。雖然參考是一個物件的別名,但 ......

    uj5u.com 2020-09-10 01:00:22 more
  • 【C/C++編程筆記】從頭開始學習C ++:初學者完整指南

    眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......

    uj5u.com 2020-09-10 01:00:41 more
最新发布
  • Rust中的智能指標:Box<T> Rc<T> Arc<T> Cell<T> RefCell<T> Weak

    Rust中的智能指標是什么 智能指標(smart pointers)是一類資料結構,是擁有資料所有權和額外功能的指標。是指標的進一步發展 指標(pointer)是一個包含記憶體地址的變數的通用概念。這個地址參考,或 ” 指向”(points at)一些其 他資料 。參考以 & 符號為標志并借用了他們所 ......

    uj5u.com 2023-04-20 07:24:10 more
  • Java的值傳遞和參考傳遞

    值傳遞不會改變本身,參考傳遞(如果傳遞的值需要實體化到堆里)如果發生修改了會改變本身。 1.基本資料型別都是值傳遞 package com.example.basic; public class Test { public static void main(String[] args) { int ......

    uj5u.com 2023-04-20 07:24:04 more
  • [2]SpinalHDL教程——Scala簡單入門

    第一個 Scala 程式 shell里面輸入 $ scala scala> 1 + 1 res0: Int = 2 scala> println("Hello World!") Hello World! 檔案形式 object HelloWorld { /* 這是我的第一個 Scala 程式 * 以 ......

    uj5u.com 2023-04-20 07:23:58 more
  • 理解函式指標和回呼函式

    理解 函式指標 指向函式的指標。比如: 理解函式指標的偽代碼 void (*p)(int type, char *data); // 定義一個函式指標p void func(int type, char *data); // 宣告一個函式func p = func; // 將指標p指向函式func ......

    uj5u.com 2023-04-20 07:23:52 more
  • Django筆記二十五之資料庫函式之日期函式

    本文首發于公眾號:Hunter后端 原文鏈接:Django筆記二十五之資料庫函式之日期函式 日期函式主要介紹兩個大類,Extract() 和 Trunc() Extract() 函式作用是提取日期,比如我們可以提取一個日期欄位的年份,月份,日等資料 Trunc() 的作用則是截取,比如 2022-0 ......

    uj5u.com 2023-04-20 07:23:45 more
  • 一天吃透JVM面試八股文

    什么是JVM? JVM,全稱Java Virtual Machine(Java虛擬機),是通過在實際的計算機上仿真模擬各種計算機功能來實作的。由一套位元組碼指令集、一組暫存器、一個堆疊、一個垃圾回收堆和一個存盤方法域等組成。JVM屏蔽了與作業系統平臺相關的資訊,使得Java程式只需要生成在Java虛擬機 ......

    uj5u.com 2023-04-20 07:23:31 more
  • 使用Java接入小程式訂閱訊息!

    更新完微信服務號的模板訊息之后,我又趕緊把微信小程式的訂閱訊息給實作了!之前我一直以為微信小程式也是要企業才能申請,沒想到小程式個人就能申請。 訊息推送平臺🔥推送下發【郵件】【短信】【微信服務號】【微信小程式】【企業微信】【釘釘】等訊息型別。 https://gitee.com/zhongfuch ......

    uj5u.com 2023-04-20 07:22:59 more
  • java -- 緩沖流、轉換流、序列化流

    緩沖流 緩沖流, 也叫高效流, 按照資料型別分類: 位元組緩沖流:BufferedInputStream,BufferedOutputStream 字符緩沖流:BufferedReader,BufferedWriter 緩沖流的基本原理,是在創建流物件時,會創建一個內置的默認大小的緩沖區陣列,通過緩沖 ......

    uj5u.com 2023-04-20 07:22:49 more
  • Java-SpringBoot-Range請求頭設定實作視頻分段傳輸

    老實說,人太懶了,現在基本都不喜歡寫筆記了,但是網上有關Range請求頭的文章都太水了 下面是抄的一段StackOverflow的代碼...自己大修改過的,寫的注釋挺全的,應該直接看得懂,就不解釋了 寫的不好...只是希望能給視頻網站開發的新手一點點幫助吧. 業務場景:視頻分段傳輸、視頻多段傳輸(理 ......

    uj5u.com 2023-04-20 07:22:42 more
  • Windows 10開發教程_編程入門自學教程_菜鳥教程-免費教程分享

    教程簡介 Windows 10開發入門教程 - 從簡單的步驟了解Windows 10開發,從基本到高級概念,包括簡介,UWP,第一個應用程式,商店,XAML控制元件,資料系結,XAML性能,自適應設計,自適應UI,自適應代碼,檔案管理,SQLite資料庫,應用程式到應用程式通信,應用程式本地化,應用程式 ......

    uj5u.com 2023-04-20 07:22:35 more