Java學習-第一部分-第一階段-第二節:變數

来源:https://www.cnblogs.com/wenjie2000/archive/2022/06/16/16378648.html
-Advertisement-
Play Games

變數 變數介紹 為什麼需要變數 變數是程式的基本組成單位 不論是使用哪種高級程式語言編寫程式,變數都是其程式的基本組成單位,比如: //變數有三個基本要素(類型+名稱+值) class Test{ public static void main(String []args){ int a=1;//定 ...


變數

變數介紹

為什麼需要變數

  • 變數是程式的基本組成單位

不論是使用哪種高級程式語言編寫程式,變數都是其程式的基本組成單位,比如:

//變數有三個基本要素(類型+名稱+值)

class Test{
    public static void main(String []args){
        int a=1;//定義了一個變數,類型int整型,名稱a,值1
        int b=3;//定義了一個變數,類型int整型,名稱b,值3
        b=89;//把89值賦給b變數
        System.out.println(a);//輸出a變數的值
        System.out.println(b);//輸出b變數的值
    }
}

變(變化)量(值)的介紹

概念
變數相當於記憶體中一個數據存儲空間的表示,你可以把變數看做是一個房間的門牌號,通過門牌號我們可以找到房間,而通過變數名可以訪問到變數(值)。
●變數使用的基本步驟

  1. 聲明變數
    int a;
  2. 賦值
    a = 60;//應該這麼說:把60賦給a
  3. 使用 System.out.println(a);

//也可以一步到位[int a = 60;通常我們是一步完成]

變數快速入門

變數使用入門案例
看演示並對代碼進行說明,演示記錄人的信息的代碼

public class Var02{
    //編寫一個main方法
    public static void main(string[] args) {
        //記錄人的信息
        int age = 30;
        double score = 88.9;
        char gender =‘男';
        string name = "king";//輸出信息,快捷鍵
        System.out. println(”人的信息如下:");
        System.out.println(name);
        System.out.println(age);
        System.out.println(score);
        System.out.println(gender);
    }
}

變數使用註意事項

  1. 變數表示記憶體中的一個存儲區域[不同的變數,類型不同,占用的空間大小不同,比如:int 4個位元組,double就是8個位元組]
  2. 該區域有自己的名稱[變數名]和類型[數據類型]
  3. 變數必須先聲明,後使用,即有順序
  4. 該區域的數據可以在同一類型範圍內不斷變化
  5. 變數在同一個作用域內不能重名
  6. 變數=變數名+值+數據類型,這一點請註意。變數三要素

+號的使用

  1. 當左右兩邊都是數值型時,則做加法運算

  2. 當左右兩邊有一方為字元串,則做拼接運算

  3. 運算順序從左到右

  4. 測試題1min

    下麵代碼輸出什麼?
    System.out.println(100 + 98);
    System.out.println("100" + 98);

    System.out.println(100+3 +"hello");
    System.out.println("hello" +100 +3);

    答案

    198
    10098
    103hello
    hello1003

數據類型

每一種數據都定義了明確的數據類型,在記憶體中分配了不同大小的記憶體空間(位元組)。

(boolean 值只有 true 和 false 兩種,這個數據類型只代表 1 bit 的信息,但是它的“大小”沒有嚴格的定義。也就是說,不管它占多大的空間,只有一個bit的信息是有意義的。)(在 Oracle 的 Java 虛擬機實現中,Java 語言中的 boolean 數組被編碼成 Java 虛擬機的 byte 數組,每個元素占 8 比特。參考:https://binkery.com/archives/346.html)

image

整數類型

整型的類型

類型 占用存儲空間 範圍
byte[位元組] 1位元組 -128 ~127
為啥存放的範圍是這個=>二進位(二進位我們詳解)
short[短整型] 2位元組 -(215)~215-1
-32768~32767
int[整型] 4字 -231 ~ 231-1
-2147483648 - 2147483647
long[長整型] 8位元組 -263 ~ 263-1

整型的使用細節

  1. Java各整數類型有固定的範圍和欄位長度,不受具體OS[操作系統]的影響,以保證java程式的可移植性。

  2. Java的整型常量(具體值)預設為int型,聲明long型常量須後加‘l’或'L'

  3. java程式中變數常聲明為int型,除非不足以表示大數,才使用long

  4. bit:電腦中的最小存儲單位。 byte:電腦中基本存儲單元, 1byte = 8 bit
    [二進位再詳細說,簡單舉例一個byte 3和short 3]

思考題:long類型,有幾個 bit
[8*8=64 bit]
long n = 3;//記憶體中

浮點類型

  • 基本介紹

    Java的浮點類型可以表示一個小數,比如123.4,7.8,0.12等等

浮點型的分類

類型 占用存儲空間 範圍
單精度float 4位元組 -3.403E38~3.403E38
雙精度double 8位元組 -1.798E308 ~ 1.798E308
  • 說明一下
    1.關於浮點數在機器中存放形式的簡單說明,浮點數=符號位+指數位+尾數位

    2.尾數部分可能丟失,造成精度損失(小數都是近似值)。

浮點型使用細節

  1. 與整數類型類似,Java浮點類型也有固定的範圍和欄位長麾,不受具體OS的影響。[float 4個位元組 double是8個位元組]

  2. Java的浮點型常量預設為double型,聲明float型常量,須後加f或‘F’

  3. 浮點型常量有兩種表示形式

    十進位數形式:如:5.12 512.0f .512(必須有小數點)

    科學計數法形式:如:5.12e2[5.12*102] 5.12E-2 [5.12*10-2]

  4. 通常情況下,應該使用double型,因為它比float型更精確。[舉例說明]
    double num9 =2.1234567851;
    float num10 = 2.1234567851F;

  5. 浮點數使用陷阱:2.7和8.1/3比較(浮點數做除法結果為近似值)(實際開發中當它們的差值的絕對值很小時視為相等)

    if(Math.abs(num1 - num2)<0.000001){
        System.out.println("差值非常小,到我的規定精度,認為相等...");
    }
    

Java API文檔

  1. API (Application Programming Interface,應用程式編程介面)是Java提供的基本編程介面(java提供的類還有相關的方法)。中文線上文檔:https://www.matools.com

  2. Java語言提供了大量的基礎類,因此 Oracle公司也為這些基礎類提供了相應的API文檔,用於告訴開發者如何使用這些類,以及這些類里包含的方法。

  3. Java類的組織形式 [圖]

    image

  4. 舉例說明如何使用

    按:包->類->方法
    直接搜索。(Math)

字元類型(char)

基本介紹
字元類型可以表示單個字元,字元類型是char, char是兩個位元組(可以存放漢字),多個字元我們用字元串String(我們後面詳細講解String)
案例演示

//演示char的基本使用
public class Chare1 {
    //編寫一個main方法
    public static void main(String[] args){
        char c1 = 'a';
        char c2 = '\t';
        char c3 = '韓';
        char c4 = 97;//說明:字元類型可以直接存放一個數字
        System.out.println(c1);//a
        System.out.println(c2);// 
        System.out.println(c3);//韓
        System.out.println(c4);//a
    }
}

代碼

char c1 = 'a';

char c2 ='\t';

char c3='韓';

char c4 =97:

字元類型使用細節

  1. 字元常量是用單引號( ‘ ’ )括起來的單個字元。例如:char c1 = 'a'; char c2 ='中‘; char c3 ='9';(不能使用雙引號,會報錯)

  2. Java中還允許使用轉義字元'\'來將其後的字元轉變為特殊字元型常量。例如:char c3 = n'; 'n'表示換行符

  3. 在java中,char的本質是一個整數,在輸出時,是unicode碼對應的字元。
    http://tool.chinaz.com/Tools/Unicode.aspx

  4. 可以直接給char賦一個整數,然後輸出時,會按照對應的unicode字元輸出[97]

  5. char類型是可以進行運算的,相當於一個整數,因為它都對應有Unicode碼.

public class CharDetail{
    //編寫一個main方法
    public static void main(String[] args) {
        //在java中,char的本質是一個整數,在輸出時,是unicode碼對應的字元char c1 = 97;
        System.out.println(c1); // a
        char c2 = 'a';//輸出'a’對應的數字
        System.out.println((int)c2);//92
        char c4 = 38889;
        System.out.println(c4);//韓
        //char類型是可以進行運算的,相當於一個整數,因為它都對應有Unicode
        System.out.println('a' + 10);//97+10=107
        
        //課堂小測試
        char c5 = 'b’ + 1;//98+1==> 99
        System.out.println((int)c5);//99
        System.out.println(c5);//99->對應的字元->編碼表
    }
}

字元類型本質探討

  1. 字元型存儲到電腦中,需要將字元對應的碼值(整數)找出來,比如'a'
    存儲:'a' ==> 碼值97 ==> 二進位 ==> 存儲
    讀取:二進位 ==> 97 ==> 'a' ==> 顯示
  2. 字元和碼值的對應關係是通過字元編碼表決定的(是規定好)

介紹一下字元編碼表

ASCIl(ASCII編碼表一個位元組表示,一個128個字元)(http://c.biancheng.net/c/ascii/)

Unicode (Unicode編碼表固定大小的編碼使用兩個位元組來表示字元,字母和漢字統一都是占用兩個位元組,這樣浪費空間)
utf-8(編碼表,大小可變的編碼。其中字母使用1個位元組,漢字使用3個位元組)

gbk(可以表示漢字,而且範圍廣,字母使用1個位元組,漢字2個位元組)

gb2312(可以表示漢字,gb2312<gbk)

big5碼(繁體中文,臺灣,香港)

布爾類型:boolean

基本介紹

  1. 布爾類型也叫boolean類型,booolean類型數據只允許取值true和false,無null

  2. boolean類型占1個位元組。

  3. boolean類型適於邏輯運算,一般用於程式流程式控制制[這個後面會詳細介紹]:

    if條件控制語句;
    while迴圈控制語句;

    do-while迴圈控制語句;

    for迴圈控制語句

案例演示

boolean pass = true;
if (pass){
    System.out.print1n("通過考試");
}else{
    System.out.print1n("沒有通過考試~");
}

基本數據類型轉換

自動類型轉換

介紹
當java程式在進行賦值或者運算時,精度小的類型自動轉換為精度大的數據類型,這個就是自動類型轉換。
數據類型按精度(容量)大小排序為(背,規則)

graph LR A(char) -->B(int)-->C(long)-->D(float)-->E(double) F(byte)-->G(short)-->B

看一個基本案例

int a = 'c";
double d = 80;

自動類型轉換註意和細節

  1. 有多種類型的數據混合運算時,系統首先自動將所有數據轉換成容量最大的那種數據類型,然後再進行計算。
  2. 當我們把精度(容量)大的數據類型賦值給精度(容量)小的數據類型時,就會報錯,反之就會進行自動類型轉換。
  3. (byte, short)和char之間不會相互自動轉換。
  4. byte,short,char他們三者可以計算,在計算時首先轉換為int類型。
  5. boolean不參與轉換
  6. 自動提升原則:表達式結果的類型自動提升為操作數中最大的類型
byte b2 = 1;
byte b3 = 2;short s1 = 1;
//short s2 = b2 + s1;//錯,b2 + s1 => int
int s2 = b2 + s1;//錯,b2 + s1 => int
byte b4 = b2 + b3;//b2 + b3 => int

強制類型轉換

介紹
自動類型轉換的逆過程,將容量大的數據類型轉換為容量小的數據類型。使用時要加上強制轉換符(),但可能造成精度降低或溢出,格外要註意。
案例演示

int i = (int)1.9;
System.out.println(i);//造成精度損失

int j =100;
byte b1 = (byte)j;
System.out.print1n(b1);//數據溢出

強制類型轉換細節說明

  1. 當進行數據的大小從大——>小,就需要使用到強制轉換

  2. 強轉符號只針對於最近的操作數有效,往往會使用小括弧提升優先順序

    //int x =(int)10*3.5+6*1.5;
    int y = (int)(10*3.5+6*1.5);
    System.out.println(y);
    
  3. char類型可以保存int的常量值,但不能保存int的變數值,需要強轉

    char c1 = 100;//v
    int m = 100;//v
    char c2 = m;//x
    char c3= (char)m;//v
    System.out.println(c3);//100對應的字元
    
  4. byte和short類型在進行運算時,當做int類型處理。

基本數據類型轉換-練習題

判斷是否能夠通過編譯

//1
short s= 12;
s= s-9;
x
//2 
byte b = 10;
b =b +11;
b =(byte)(b+11);

//3
char c = 'a';
int i= 16;
float d = .314F;
double result =c+i+d;

//4
byte b = 16;
short s=14;
short t =s + b;


答案:
----------------------------------------
1.錯
2.錯
3.對
4.錯

基本數據類型和String類型的轉換

介紹
在程式開發中,我們經常需要將基本數據類型轉成String類型。或者將String類型轉成基本數據類型。

  • 基本類型轉String類型

    語法:將基本類型的值+""即可

int n1 = 100;
fLoat f1 = 1.1F;
double d1 = 4.5;
boolean b1 = true;
String s1 = n1 +"";
String s2 = f1 +"";
String s3 = d1 +";
String s4 = b1 +"":
System.out.print1n(s1 + " " + s2 + " " +s3 + "" + s4);
  • String類型轉基本數據類型

    語法:通過基本類型的包裝類調用parseXX方法即可

//String->對應的基本數據類型
String s5 = "123";
//會在0OP講對象和方法的時候回詳細
int num1 = Integer.parseInt(s5);
double num2 = Double.parseDouble(s5);
float num3 = Float.parseFloat(s5);
long num4 = Long.parseLong(s5);
byte num5 = Byte.parseByte(s5);
booLean b = BooLean.parseBoolean("true");
short num6 = Short.parseShort(s5);

System.out.println(num1);//123
System.out.println(num2);//123.0
Sytem.out.println(num3);//123.0
System.out.println(num4);//123
System.out.println(num5);//123
System.out.println(num6);//123
System.out.println(b);//true

//怎麼把字元串轉成字元char ->含義是指把字元串的第一個字元得到
//解讀s5.charAt(0)得到s5字元串的第一個字元'1'
System.out.println(s5.charAt(0));

註意事項

  1. 在將String類型轉成基本數據類型時,要確保String類型能夠轉成有效的數據,比如我們可以把"123",轉成一個整數,但是不能把"hello"轉成一個整數。
  2. 如果格式不正確,就會拋出異常,程式就會終止,這個問題在異常處理章節中,會處理

本章練習

  1. 程式閱讀題,看看輸出什麼?

    public class Homework01 {
        public static void main(String]args){
            int n1;
            n1 = 13;
            int n2;
            n2 = 17;
            int n3;
            n3 = n1 +n2;
            System.out.println("n3 = " + n3);
            int n4 = 38;
            int n5 = n4 - n3;
            System.out.println("n5 = " + n5);
        }
    }
    /*
    n3 = 30
    n5 = 8
    */
    
  2. 使用char類型,分別保存\n \t \r \\ 1 2 3等字元,並列印輸出

    public class Homework02 {
        //編寫一個main方法
        public static void main(String[] args) {
        //使用char類型,分別保存\n \t \r\ \1 23等字元,並列印輸出
            char c1 = '\n';//換行
            char c2 = '\t';//製表位ctrl +d
            char c3 = '\r ';//回車
            char c4 = '\r';//輸出\
            char c5 = '1';//換行
            char c6 = '2 ';//換行
            char c7 = '3';//換行
            System.out.println(c1);
            System.out.println(c2);
            System.out.println(c3);
            System.out.println(c4);
            System.out.println(c5);
            System.out.println(c6);
            System.out.println(c7);
        }
    }
    
  3. 編程,保存兩本書名,用+拼接,看效果。保存兩個性別,用加號拼接,看效果。保存兩本書價格,用加號拼接,看效果。

    public class HomeworkO3 {i
        //編寫一個main方法
        public static void main(String[] args) {
        //編程,保存兩本書名,用+拼接,看效果。保存兩個性別,//用加號拼接,看效果。保存兩本書價格,用加號拼接,看效果
            String book1 ="天龍八部";
            String book2 ="笑傲江湖";
            System.out.println(book1 + book2);//天龍八部笑傲江湖
            
            //性別應該使用char保存
            char c1 =‘男';
            char c2 =‘女;
            System.out.println(c1 + c2);//得到男字元碼值+女字元碼值
            
            //保存兩本書價格
            double price1 = 123.56;
            double price2 = 100.11;
            System.out.println(price1 + price2);//就是123.56+100.11
        }
    }
    
  4. 編程實現如下效果:
    年齡 成績 性別 愛好
    XX XX XXX XXX
    要求:
    1)用變數將姓名、年齡、成績、性別、愛好存儲

    2)使用+
    3)添加適當的註釋
    4)添加轉義字元,使用一條語句輸出

    public class HomeworkO4 {i
        //編寫一個main方法
        public static void main(String[] args) {
            String name = "jack";
            int age = 20;
            double score = 80.9;
            char gender ='男';
            String hobby ="打籃球";//輸出了信息,可以使用換行
            System.out.println("姓名\t年齡\t成績\t性別t愛好\n" + name + "\t"
                               + age + “\t" + score + "\t" + gender + "\t" + hobby);
        }
    }
    

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1 前言 函數調用很好理解,即使剛學沒多久的朋友也知道函數調用是怎麼實現的,即調用一個已經封裝好的函數,實現某個特定的功能。 把一個或者多個功能通過函數的方式封裝起來,對外只提供一個簡單的函數介面,然後在其他地方調用即可 2 函數調用方式 函數調用難道還能怎麼調用?不就封裝好直接調用嗎??? 函數調 ...
  • 目錄 一.簡介 二.效果演示 三.源碼下載 四.猜你喜歡 零基礎 OpenGL (ES) 學習路線推薦 : OpenGL (ES) 學習目錄 >> OpenGL ES 基礎 零基礎 OpenGL (ES) 學習路線推薦 : OpenGL (ES) 學習目錄 >> OpenGL ES 轉場 零基礎 O ...
  • 一、Pycharm軟體簡介 產品簡介 PyCharm是一種Python IDE(Integrated Development Environment,集成開發環境),帶有一整套可以幫助用戶在使用Python語言開發時提高其效率的工具,比如調試、語法高亮、項目管理、代碼跳轉、智能提示、自動完成、單元測 ...
  • 一. 打包參數 1. * 的作用:在函數定義中,收集所有的位置參數到一個新的元組,並將這個元組賦值給變數args >>> def f(*args): print(args) >>> f() () >>> f(1) (1,) >>> f(1, 2, 3, 4) (1, 2, 3, 4) >>> 2. ...
  • 1、Date 1.1 Date實例化 Date date1 = new Date(); System.out.println(date1); //Thu Jun 16 19:18:56 CST 2022 1.2 獲取日期毫秒數 getTime() System.out.println(date1.g ...
  • 大家好!我們是阿裡云云效智能代碼天團!旨在用人工智慧解放各位開發者的生產力!或許你們關註過我們的話會知道,我們有一個超酷的產品它叫Alibaba Cloud AI Coding Assistant,小名兒叫Cosy。說起這代碼補全和代碼搜索那可是樣樣精通٩(˃̶͈̀௰˂̶͈́)و 我們不僅把文檔搬進 ...
  • 今天來點特別的~ 不僅把好看的視頻全部pa下來,咱們還要實現自動評論、點贊、關註三連~ 寶,你也可以順手給我個三連嗎?給你個摸摸大~ 抓包分析流程 我寫成了文檔,都在這個PDF裡面了,但是好像不能上傳,所以點一下大家自行下載吧! 點我獲取,提取密碼 qwer 開始代碼 獲取視頻的代碼 import ...
  • 大佬的理解->《深入理解Java中的String》 1、String 1.1 String 實例化 String str1 = "xxx"; String string1 = "hello KH96"; System.out.println(string1); //hello KH96 String ...
一周排行
    -Advertisement-
    Play Games
  • GoF之工廠模式 @目錄GoF之工廠模式每博一文案1. 簡單說明“23種設計模式”1.2 介紹工廠模式的三種形態1.3 簡單工廠模式(靜態工廠模式)1.3.1 簡單工廠模式的優缺點:1.4 工廠方法模式1.4.1 工廠方法模式的優缺點:1.5 抽象工廠模式1.6 抽象工廠模式的優缺點:2. 總結:3 ...
  • 新改進提供的Taurus Rpc 功能,可以簡化微服務間的調用,同時可以不用再手動輸出模塊名稱,或調用路徑,包括負載均衡,這一切,由框架實現並提供了。新的Taurus Rpc 功能,將使得服務間的調用,更加輕鬆、簡約、高效。 ...
  • 本章將和大家分享ES的數據同步方案和ES集群相關知識。廢話不多說,下麵我們直接進入主題。 一、ES數據同步 1、數據同步問題 Elasticsearch中的酒店數據來自於mysql資料庫,因此mysql數據發生改變時,Elasticsearch也必須跟著改變,這個就是Elasticsearch與my ...
  • 引言 在我們之前的文章中介紹過使用Bogus生成模擬測試數據,今天來講解一下功能更加強大自動生成測試數據的工具的庫"AutoFixture"。 什麼是AutoFixture? AutoFixture 是一個針對 .NET 的開源庫,旨在最大程度地減少單元測試中的“安排(Arrange)”階段,以提高 ...
  • 經過前面幾個部分學習,相信學過的同學已經能夠掌握 .NET Emit 這種中間語言,並能使得它來編寫一些應用,以提高程式的性能。隨著 IL 指令篇的結束,本系列也已經接近尾聲,在這接近結束的最後,會提供幾個可供直接使用的示例,以供大伙分析或使用在項目中。 ...
  • 當從不同來源導入Excel數據時,可能存在重覆的記錄。為了確保數據的準確性,通常需要刪除這些重覆的行。手動查找並刪除可能會非常耗費時間,而通過編程腳本則可以實現在短時間內處理大量數據。本文將提供一個使用C# 快速查找並刪除Excel重覆項的免費解決方案。 以下是實現步驟: 1. 首先安裝免費.NET ...
  • C++ 異常處理 C++ 異常處理機制允許程式在運行時處理錯誤或意外情況。它提供了捕獲和處理錯誤的一種結構化方式,使程式更加健壯和可靠。 異常處理的基本概念: 異常: 程式在運行時發生的錯誤或意外情況。 拋出異常: 使用 throw 關鍵字將異常傳遞給調用堆棧。 捕獲異常: 使用 try-catch ...
  • 優秀且經驗豐富的Java開發人員的特征之一是對API的廣泛瞭解,包括JDK和第三方庫。 我花了很多時間來學習API,尤其是在閱讀了Effective Java 3rd Edition之後 ,Joshua Bloch建議在Java 3rd Edition中使用現有的API進行開發,而不是為常見的東西編 ...
  • 框架 · 使用laravel框架,原因:tp的框架路由和orm沒有laravel好用 · 使用強制路由,方便介面多時,分多版本,分文件夾等操作 介面 · 介面開發註意欄位類型,欄位是int,查詢成功失敗都要返回int(對接java等強類型語言方便) · 查詢介面用GET、其他用POST 代碼 · 所 ...
  • 正文 下午找企業的人去鎮上做貸後。 車上聽同事跟那個司機對罵,火星子都快出來了。司機跟那同事更熟一些,連我在內一共就三個人,同事那一手指桑罵槐給我都聽愣了。司機也是老社會人了,馬上聽出來了,為那個無辜的企業經辦人辯護,實際上是為自己辯護。 “這個事情你不能怪企業。”“但他們總不能讓銀行的人全權負責, ...