[雜亂筆記]在Java編程比賽中,我們務必要掌握的8個基本知識點(不斷更新中...)

1.數據類型

Java是一種強類型語言。這就意味着必須爲每一個變量聲明一種類型。在Java中,一共有8種基本類型,其中有4種整型(int、long、long long、byte)、2種浮點類型(float、double)、1種用於表示Unicode編碼的字符單元的字符類型(char)和一種用於表示真值的boolean類型。

數據類型 包裝類 存儲需求(byte) 位數(bit) 最小值 最大值
byte Byte 1 byte 8 bit -128 127
char Charactor 2 byte 16 bit 0 65535
short int Short int 2 byte 16 bit -32768 32767
int Integer 4 byte 32 bit -2147483648 2147483647(>20億)
long Long 4 byte 32 bit -2147483648 2147483647
float Float 4 byte 32 bit -3.4028347e+38 3.4028347e+38
double Double 8 byte 64 bit -1.79769e+308 1.76969e+308

注意:3.4028347e+38代表3.4028347*10的38次方,2的63次方=9 223 372 036 854 775 808
包裝類與基本數據類型的區別

區別/類型 包裝類 基本數據類型
對象調用 是對象,擁有方法和字段,對象的調用都是通過引用對象的地址 基本數據類型不一樣
傳遞方式 引用的傳遞 值的傳遞
聲明方式 需要new在堆內存中進行new來分配內存空間 不需要new關鍵字
存儲位置 把對象放在堆中,然後通過對象的引用來調用他們 直接將值保存在值棧中
初始值 null i0或false
使用方式 在集合中使用 直接賦值使用

2.常見的數學函數

在這裏插入圖片描述
一般來說,如果我們在程序中調用的格式如:

import java.lang.Math;
int x;
x = -1;
System.out.println(Math.abs(x));///對x絕對值

如果們不想添加Math前綴的話,我們可以這樣:

import static java.lang.Math;
int x;
x = -1;
System.out.println(abs(x));///對x絕對值

3.常見的字符串函數

在這裏插入圖片描述
注意:圖中的指定字符哪裏int ch爲char ch!!!!
有些時候,需要由較短的字符串構建字符串,例如,按鍵或來自文件中的單詞。採用字符串連接的方式達到此目的效率比較低。每次連接字符串,都會構建一個新的String的對象,既耗時,又浪費空間。使用StringBuilder類就可以避免這個問題的發生。

public class Main{
    public static void main(String [] args) {
       StringBuilder builder = new StringBuilder();///構建一個空的字符串構建器
        int len = builder.length();///返回構建起或緩衝器的代碼單元數量
        char ch = 'a';
        builder.append(ch);////追加一個代碼單元並返回this
        String str = "bc";
        builder.append(str);///追加一個字符串並返回this

        //builder.setCharAt(int index,char ch);///將某個字符設置爲字符ch
        ///builder.insert(int offset,String str);///在offset位置插入一個字符串
        ///builder.insert(int offset,char ch);///在offset位置插入一個字符
        ///builder.delete(int startIndex,int endIndex);///刪除偏移量從startIndex到endIndex-1的代碼單元並返回this
        ///String toString();///返回一個與構建器或緩衝器內容相同的字符串
    }
}
      

4.控制檯輸入與輸出

4.1 讀取輸入

要在控制檯進行輸入,首先需要構造一個Scanner對象:

import java.util.Scanner;
Scanner sc = new Scanner(System.in);

Scanner類中常見的函數

import java.util.Scanner;

public class Main{
    public static void main(String [] args) {
      Scanner sc = new Scanner(System.in);
      while(sc.hasNext()){///檢查輸入中是否還有其他元素,多行輸入時會用到
          int x = sc.nextInt();///讀取輸入整數
          ///long x = sc.nextLong();///輸入長整型
          ///float x = sc.nextFloat();///
          ///double x = sc.nextDouble();///輸入浮點型
          ///String str = sc.nextLine();///輸入一行,包括空格
          ///String str = sc.next();///輸入單詞,不包含空格(以空格作爲分隔符)
      ///sc.hasNextInt()、sc.hasNextDouble()...(檢查是否還有此類型的元素)
      }
     sc.close();///關閉此掃描儀
    }
}

4.2 格式化輸出

如果我們沒有什麼特殊的強制性要求的話,我們這樣輸出:

System.out.println();///沒有內容輸出,就是換行

int x = 1;
System.out.prinln(x);///輸出整型

char ch = 'a';
System.out.prinln(ch);///輸出字符

String str = "Hello";
System.out.prinln(str+" world");///輸出字符

System.out.prinln(x+str);///輸出字符加整型

如果我們在編程中需要有特殊性要求的話,比如我們希望顯示美元、美分等符號。上面的方法就無法滿足我們的需求了。JavaSE5.0沿用了C語言函數中的printf方法:

double x = 10000.0/3.0;
System.out.printf("%8.2f",x);///3333.33

☞ 格式說明符的語法如下:
在這裏插入圖片描述
注意:上面的格式符視自己需求增減
☞ 用於printf的轉換符:(以整數159爲例)

轉換符 類型 舉例
d 十進制整數 159
c 字符 H
s 字符串 Hello
b 布爾 true
h 散列碼 42628b2
% 百分號 %
x 十六進制整數 9f
o 八進制整數 237
f 定點浮點數 15.9
e 指數浮點數 1.59e+01
g 通用浮點數
a 十六進制浮點數 0x1.fccdp3
n 與平臺有關的行分割符 -
tx或Tx 日期時間 已過時

☞ 用於printf的標誌:

標誌 目的 舉例
+ 打印正數符號(負數系統自動給) +3333.33
空格 在數之前添加空格 3333.33
0 數字前面補0(系統默認右對齊,如要求12格式化寬度爲4的數,0012) 03333.33
- 左對齊 3333.33
將負數括在括號內 (3333.33)
, 添加分組分隔符 3,333.33
#(對於f格式) 包含小數點 3,333.
#(對於x或0格式) 添加前綴0x或0 0xcafe
$ 給定被格式化的參數索引,如:%1$d將以十進制打印第一個參數 159
< 格式化前面說明的數值。 如:5和6,%d%<d輸出55

在這裏插入圖片描述
☞ String.Format格式化用法:

(System.out.printf()==System.out.printf(String.format()))
///這兩種方式是等同的

5.(算術、邏輯、位、比較、三元)運算符

我的另外一篇博客,直達鏈接:徹底掌握幾種運算符的運用

6、數組的定義

一維數組聲明:nt arr[ ] 或int [ ] arr

public class Main{
    public static void main(String [] args) {
        ///int []arr = new int[100];///方式一,固定數組長度
        ///int []arr = new int[]{1,5,2,4,3};///方式二,不固定數組長度
        int []arr={1,5,2,4,3};///方式三,不固定數組長度
        for(int a:arr){///枚舉數組
            System.out.println(a);
        }
    }
}

二維數組聲明:int [ ][ ]arr或int arr[ ][ ]

public class Main{
    public static void main(String [] args) {
        int [][]arr1 = new int[100][100];///方式一,固定數組長度
        int [][]arr2 = new int[][]{
                {1,5},
                {2,4}
        };///方式二,不固定數組長度
        int [][]arr3={
                {1,5},
                {2,4}
        };///方式三,不固定數組長度
    }
}

7.集合的基礎知識點

鏈接直達:集合知識點

8.(數字、字符串、字符)之間的轉換和進制轉換

8.1 常見數據類型的轉換

在這裏插入圖片描述

8.2 進制轉換

字符0 ~ 9的十進制爲48 ~ 57
大寫字符(A~Z)的十進制爲65 ~ 90
小寫字符(a~z)的十進制爲97 ~ 122
☞ r進制轉十進制

Integer.parseInt(str, r);///str爲要轉換的字符串,r爲被轉換的進制

☞ 十進制轉換爲r進制

10進制轉2進制:Integer.toBinaryString(n);///n爲要轉換的10進制
10進制轉8進制:Integer.toOctalString(n);
10進制轉16進制:Integer.toHexString(n);
10進制轉 r 進制 Integer.toString(n, r);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章