01-計(jì)算機(jī)、程序和Java概述

01-計(jì)算機(jī)、程序和Java概述

  • 1.1 引言

    • 該專題旨在學(xué)習(xí)如何通過(guò)編寫程序來(lái)解決問(wèn)題
  • 1.2 什么是計(jì)算機(jī)
    計(jì)算機(jī)是存儲(chǔ)和處理數(shù)據(jù)的電子設(shè)備。
    計(jì)算機(jī)包括硬件和軟件兩部分。硬件指的是計(jì)算機(jī)中可見的物理部分,而軟件指的是提供不可見的指令,這些指令控制硬件并使得硬件完成特定的任務(wù)。

    一臺(tái)計(jì)算機(jī)是由以下幾個(gè)主要的硬件組件構(gòu)成的:

    • 中央處理器
    • 內(nèi)存(主存)
    • 存儲(chǔ)設(shè)備(磁盤和光盤)
    • 輸出設(shè)備(顯示器和打印機(jī))
    • 輸入設(shè)備(鼠標(biāo)和鍵盤)
    • 通信設(shè)備(調(diào)制解調(diào)器和網(wǎng)卡)
    • 1.2.1 中央處理器
      • 中央處理器是計(jì)算機(jī)的大腦,由控制單元和算術(shù)/邏輯單元組成。
      • 控制單元:用于控制和協(xié)調(diào)其他組件的動(dòng)作。
      • 算術(shù)/邏輯單元:用于完成數(shù)值運(yùn)算(加法、減法、乘法、除法)和邏輯運(yùn)算(比較)。
    • 1.2.2 比特和字節(jié)
      • 計(jì)算機(jī)中字節(jié)是最小的存儲(chǔ)單元。
      • 計(jì)算機(jī)的存儲(chǔ)能力是以字節(jié)和多字節(jié)來(lái)衡量的:
        • 千字節(jié)(KB)大約是1000字節(jié)
        • 兆字節(jié)(MB)大約是100萬(wàn)字節(jié)
        • 千兆字節(jié)(GB)大約是10億字節(jié)
        • 萬(wàn)億字節(jié)(TB)大約是1萬(wàn)億字節(jié)
    • 1.2.3 內(nèi)存
      • 計(jì)算機(jī)的內(nèi)存由一個(gè)有序的字節(jié)序列組成,用于存儲(chǔ)程序及程序需要的數(shù)據(jù)。
      • 每個(gè)字節(jié)都有唯一的地址,以便于存儲(chǔ)和獲取數(shù)據(jù)。
      • 內(nèi)存中字節(jié)的內(nèi)容永遠(yuǎn)非空,但是她的原始內(nèi)容可能對(duì)于你的程序來(lái)說(shuō)是毫無(wú)意義的。一旦新的信息被放入內(nèi)存,該字節(jié)的當(dāng)前內(nèi)容就會(huì)丟失。
    • 1.2.4 存儲(chǔ)設(shè)備
      • 磁盤驅(qū)動(dòng)器
      • 光盤驅(qū)動(dòng)器(DVD和CD)
      • USB閃存驅(qū)動(dòng)器
    • 1.2.5 輸入和輸出設(shè)備
    • 1.2.6 通信設(shè)備
  • 1.3 編程語(yǔ)言

    • 1.3.1 機(jī)器語(yǔ)言
      • 計(jì)算機(jī)的原生語(yǔ)言就是機(jī)器語(yǔ)言,是一套內(nèi)嵌的基本指令集。這些指令都是以二進(jìn)制代碼的形式存在。
    • 1.3.2 匯編語(yǔ)言
      • 匯編語(yǔ)言使用短的描述性單詞(稱為助記詞)來(lái)表示每一條機(jī)器語(yǔ)言指令。
    • 1.3.3 高級(jí)語(yǔ)言
      • 用高級(jí)語(yǔ)言編寫的程序都稱為源程序或源代碼。由于計(jì)算機(jī)不能運(yùn)行源程序,源程序必須被翻譯成可執(zhí)行的機(jī)器代碼。翻譯可以由另外一種稱為解釋器或者編譯器的編程工具來(lái)完成。
語(yǔ)言 描述
Ada 以Ada Lovelace(她研究機(jī)械式的通用型計(jì)算機(jī))命名。Ada是為美國(guó)國(guó)防部開發(fā)的,主要用于國(guó)防項(xiàng)目
BASIC 是Beginner's All-purpose Symbolic Instruction Code(初學(xué)者通用符號(hào)指令代碼)的縮寫,是為了是初學(xué)者易學(xué)易用而設(shè)計(jì)的
C 由貝爾實(shí)驗(yàn)室開發(fā)。C語(yǔ)言具有匯編語(yǔ)言的強(qiáng)大功能以及高級(jí)語(yǔ)言的易學(xué)性和可移植性
C++ 基于C語(yǔ)言開發(fā),是一種面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言
C# 讀為“C Sharp”,是由Microsoft公司開發(fā)的面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言
COBOL 是COmmon Business Oriented Language(面向通用商業(yè)的語(yǔ)言)的縮寫,是為商業(yè)應(yīng)用而設(shè)計(jì)的
FORTRAN 是FORmula TRANslation(公式翻譯)的縮寫,廣泛應(yīng)用于科學(xué)和數(shù)學(xué)應(yīng)用
Java 由Sun公司(現(xiàn)在屬于Oracle)開發(fā),是面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言,廣泛應(yīng)用于開發(fā)平臺(tái)獨(dú)立的互聯(lián)網(wǎng)應(yīng)用程序
JavaScript 是由Netscape公司開發(fā)的Web編程語(yǔ)言
Pascal 以Blaise Pascal(Blaise Pascal是17世紀(jì)計(jì)算機(jī)器的先驅(qū))命名,Pascal是一個(gè)簡(jiǎn)單的、結(jié)構(gòu)化的、通用目的的語(yǔ)言,主要用于編程教學(xué)
Python 是一種簡(jiǎn)單的通用目的的腳本語(yǔ)言,適合編寫小程序
Visual Basic 又Microsoft公司開發(fā),方便編程人員快速開發(fā)基于Windows的應(yīng)用
  • 1.4 操作系統(tǒng)
    • 操作系統(tǒng)的主要任務(wù):
      • 控制和監(jiān)視系統(tǒng)活動(dòng)
      • 分配和調(diào)配系統(tǒng)資源
      • 調(diào)度操作
    • 1.4.1 控制和見識(shí)系統(tǒng)活動(dòng)
      • 操作系統(tǒng)跟蹤存儲(chǔ)設(shè)備中文件和文件夾的動(dòng)態(tài),還要確保不同的程序和用戶同時(shí)使用計(jì)算機(jī)時(shí)不會(huì)互相干擾,另外,操作系統(tǒng)還負(fù)責(zé)安全處理,以確保未經(jīng)授權(quán)的用戶和程序無(wú)權(quán)訪問(wèn)系統(tǒng)。
    • 1.4.2 分配和調(diào)配系統(tǒng)資源
      • 操作系統(tǒng)負(fù)責(zé)確保一個(gè)程序需要使用哪些計(jì)算機(jī)資源,并進(jìn)行資源分配和調(diào)配以運(yùn)行程序。
    • 1.4.3 調(diào)度操作
      • 操作系統(tǒng)負(fù)責(zé)調(diào)度程序的活動(dòng),以便有效的利用系統(tǒng)資源。
      • 多道程序設(shè)計(jì)允許多個(gè)程序通過(guò)共享一個(gè)CPU同時(shí)運(yùn)行。
      • 多線程允許單個(gè)程序同時(shí)執(zhí)行多個(gè)任務(wù)。
      • 多處理類似于多線程,區(qū)別在于多線程是在單個(gè)程序中并行運(yùn)行多個(gè)線程,而多處理是采用多個(gè)處理器來(lái)并行運(yùn)行多個(gè)程序。
  • 1.5 Java、萬(wàn)維網(wǎng)以及其他
    • Java是由James Gosling在Sun公司領(lǐng)導(dǎo)的小組開發(fā)的。(2010年Sun公司被Oracle收購(gòu))
    • 這種能在Web瀏覽器中運(yùn)行的Java程序稱為Java小程序(applet)。
    • 用于安卓手機(jī)的軟件也是采用Java進(jìn)行開發(fā)的。
  • 1.6 Java語(yǔ)言規(guī)范、API、JDK、JRE和IDE
    • Java語(yǔ)言規(guī)范定義了Java的語(yǔ)法,完整的Java語(yǔ)言規(guī)范可以在docs.oracle.com/javase/specs上找到。
    • Java庫(kù)則在Java應(yīng)用程序接口(API)中定義。
    • JDK適用于開發(fā)和運(yùn)行Java程序的軟件。
    • IDE是快速開發(fā)程序的集成開發(fā)環(huán)境。
  • 1.7 一個(gè)簡(jiǎn)單的Java程序
    • Java是從類中的main方法開始執(zhí)行的。
    • 類名都是以大寫字母開頭的。
    • 一個(gè)字符串必須放入雙引號(hào)中。Java中的每條語(yǔ)句都是以分好(;)結(jié)束,也稱為語(yǔ)句結(jié)束符。
    • Java源程序是區(qū)分大小寫的。如果在程序中獎(jiǎng)main替換成Main,就會(huì)報(bào)錯(cuò)的。
    • print方法和println方法幾乎一樣,除了println方法在線上一個(gè)字符串后將移到下一行開始處,而print方法在完成顯示后不會(huì)前進(jìn)到下一行。
字符 名稱 描述
{} 左花括號(hào)和右花括號(hào) 表示一個(gè)包含語(yǔ)句的塊
() 左圓括號(hào)和右圓括號(hào) 和方法一起使用
[] 左方括號(hào)和右方括號(hào) 表示一個(gè)數(shù)組
// 雙斜杠 表示后面是一行注釋
"" 左引號(hào)和右引號(hào) 包含一個(gè)字符串(即一系列的字符)
; 分號(hào) 標(biāo)識(shí)一個(gè)語(yǔ)句的結(jié)束
  • 1.8 創(chuàng)建、編譯和執(zhí)行Java程序

    • Java源程序保存為.java文件,編譯為.class文件。.class文件由虛擬機(jī)(JVM)執(zhí)行。

    • 源文件的擴(kuò)展名必須是.java,而且文件名必須與公共類名完全相同。(如下圖)


      在這里插入圖片描述
    • 使用命令行執(zhí)行程序時(shí),不要使用擴(kuò)展名.class。使用java ClassName來(lái)運(yùn)行程序。如果在命令行使用java ClassName.class,系統(tǒng)就會(huì)嘗試讀取ClassName.Class。

    • 如果運(yùn)行一個(gè)不存在的類文件,就會(huì)出現(xiàn)NoClassDefFoundError的錯(cuò)誤。如果執(zhí)行的類文件中沒(méi)有main方法或敲錯(cuò)了main方法(例如,將main錯(cuò)敲成Main),則會(huì)出現(xiàn)提示NoSuchMethodError。


      在這里插入圖片描述
  • 1.9 程序設(shè)計(jì)風(fēng)格和文檔

    • 1.9.1 正確的注釋和注釋風(fēng)格
      • 除了行注釋(以//開始)和塊注釋(以/開始)之外,Java還支持一種稱為Java文檔注釋(javadoc comment)的特殊注釋形式,該注釋以//開始,以*/結(jié)尾。
      • 使用javadoc注釋(/*.../)來(lái)對(duì)整個(gè)類或整個(gè)方法進(jìn)行注釋。
    ```python
    package chapter01;
    
    public class Try {
        public static void main(String[] args){
            //累加的一個(gè)變量
            /*
            這里只是為了掩飾注釋的
                    這一行同樣也是*/
            int result=0;
            for(int i=0;i<args.length;i++){
                result+=Integer.parseInt(args[i]);
                System.out.println(result);
            }
        }
    }
    
    ```
    
- 1.9.2 正確的縮進(jìn)和空白
    - 縮進(jìn)用于展示程序中組成部分或語(yǔ)句之間的結(jié)構(gòu)性關(guān)系。二院操作符的兩遍應(yīng)該各加一個(gè)空格。
- 1.9.3 塊的風(fēng)格
    - 次行風(fēng)格和行尾風(fēng)格
    
    
    ```python
    package chapter01;
    
    public class BlockStyle {
        public static void main(String[] args){
            System.out.println("這個(gè)是行尾風(fēng)格");
        }
    }
    
    ```
    
    ```python
    package chapter01;
    
    public class BlockStyle2
    {
        public static void main(String[] args)
        {
            System.out.println("這個(gè)是次行風(fēng)格");
        }
    }
    
    ```
  • 1.10 程序設(shè)計(jì)錯(cuò)誤

    • 1.10.1 語(yǔ)法錯(cuò)誤

      • 語(yǔ)法錯(cuò)誤是由創(chuàng)建代碼時(shí)的錯(cuò)誤引起的。


        在這里插入圖片描述
    • 1.10.2 運(yùn)行時(shí)錯(cuò)誤

      • 運(yùn)行時(shí)錯(cuò)誤是引起程序非正常終止的錯(cuò)誤。(比如將0作為除數(shù))
    • 1.10.3 邏輯錯(cuò)誤

      • 當(dāng)程序沒(méi)有按照預(yù)期的方式執(zhí)行時(shí)就會(huì)發(fā)生邏輯錯(cuò)誤。
    • 1.10.4 常見錯(cuò)誤

      • 1、遺漏右括號(hào)
      • 2、遺漏分號(hào)
      • 3、遺漏引號(hào)
      • 4、名稱拼寫錯(cuò)誤
  • 1.11 使用NetBeans開發(fā)Java程序

    • 1.11.1 創(chuàng)建Java工程
    • 1.11.2 創(chuàng)建Java類
    • 1.11.3 編譯和運(yùn)行類


      在這里插入圖片描述

      在這里插入圖片描述
  • 1.12使用Eclipse開發(fā)Java程序

    • 1.12.1 創(chuàng)建Java工程
    • 1.12.2 創(chuàng)建Java類
    • 1.12.3 編譯和運(yùn)行類


      在這里插入圖片描述

      在這里插入圖片描述

      在這里插入圖片描述
  • 1.13使用 IntelliJ IDEA開發(fā)Java程序

    • 1.13.1 創(chuàng)建Java工程
    • 1.13.2 創(chuàng)建Java類
    • 1.13.3 編譯和運(yùn)行類
      我自己使用的就是這個(gè)開發(fā)工具,更加的現(xiàn)代智能化一些。
      IntelliJ IDEA創(chuàng)建Java項(xiàng)目
  • 復(fù)習(xí)題

    • 1、內(nèi)存和永久存儲(chǔ)設(shè)備的主要不同是什么
      • 內(nèi)存一般是ram內(nèi)存,也就是運(yùn)行內(nèi)存,是在程序運(yùn)行的時(shí)候使用的內(nèi)存
      • 永久存儲(chǔ)大多指ROM內(nèi)存,是可以存儲(chǔ)數(shù)據(jù)的,如果不刪除,一般是不會(huì)丟失數(shù)據(jù)的
    • 2、編譯器和解釋器的區(qū)別(編譯器和解釋器的區(qū)別
  • 編程練習(xí)(這里只提供部分題目,其實(shí)本質(zhì)都是差不多的,會(huì)了這些其實(shí)這一章的內(nèi)容也就是知道的)

    • 1、編寫程序,顯示W(wǎng)elcome to Java、Welcome to computer science和Programming is fun。
    ```java
    package chapter01;
    
    public class Code_01 {
        public static void main(String[] args){
            System.out.println("Welcome to Java");
            System.out.println("Welcome to Computer Science");
            System.out.println("Programming is fun");
        }
    }
    ```
- 2、編寫程序,顯示W(wǎng)elcome to Java五次。

    
    ```java
    package chapter01;
    
    public class Code_02 {
        public static void main(String[] args){
            for(int i=0;i<5;i++){
                System.out.println("Welcome to Java");
            }
        }
    }
    
    ```
- 3、編寫程序,顯示Java的圖案。


    ```java
    package chapter01;
    
    public class Code_03 {
        public static void main(String[] args){
            char[][] java=new char[4][29];
            java[0][4]='J';
            java[1][4]='J';
            java[2][0]='J';
            java[2][4]='J';
            java[3][1]='J';
            java[3][3]='J';
    
            java[0][9]='A';
            java[1][8]='A';
            java[1][10]='A';
            java[2][7]='A';
            java[2][8]='A';
            java[2][9]='A';
            java[2][10]='A';
            java[2][11]='A';
            java[3][6]='A';
            java[3][12]='A';
    
            java[0][14]='V';
            java[0][20]='V';
            java[1][15]='V';
            java[1][19]='V';
            java[2][16]='V';
            java[2][18]='V';
            java[3][17]='V';
    
            java[0][25]='A';
            java[1][24]='A';
            java[1][26]='A';
            java[2][23]='A';
            java[2][24]='A';
            java[2][25]='A';
            java[2][26]='A';
            java[2][27]='A';
            java[3][22]='A';
            java[3][28]='A';
            for(int i=0;i<4;i++){
                for (int j=0;j<29;j++){
                    if (java[i][j]!='J'&&java[i][j]!='V'&&java[i][j]!='A')System.out.print(" ");
                    else System.out.print(java[i][j]);
                }
                System.out.println("");
            }
        }
    }
    
    ```
    結(jié)果顯示:
    
    ```java
        J    A    V     V    A   
        J   A A    V   V    A A  
    J   J  AAAAA    V V    AAAAA 
     J J  A     A    V    A     A
    
    Process finished with exit code 0
    
    ```
- 4、編寫程序,顯示以下表格。


    ```java
    package chapter01;
    
    public class Code_04 {
        public  static  void main(String[] args){
    
            int[][] numbers={
                    {1,1,1},
                    {2,4,6},
                    {3,9,27},
                    {4,16,64}
            };
            System.out.println("a     a^2   a^3");
            for (int i=0;i<4;i++){
                for(int j=0;j<3;j++){
                    System.out.format("%-6d",numbers[i][j]);
                }
                System.out.println(" ");
            }
        }
    }
    
    ```
    結(jié)果顯示:
    
    ```java
    a     a^2   a^3
    1     1     1      
    2     4     6      
    3     9     27     
    4     16    64     
    
    Process finished with exit code 0
    
    ```
- 5、編寫程序,顯示1+2+3+4+5+6+7+8+9的結(jié)果。

    
    ```java
    package chapter01;
    
    public class Code_06 {
        public static void main(String[] args){
            int result=0;
            for (int i=1;i<=9;i++){
                result+=i;
            }
            System.out.print(result);
        }
    }
    
    ```
- 6、編寫程序,使用以下公式計(jì)算并顯示半徑為5.5的圓的面積和周長(zhǎng)。
周長(zhǎng)=2 x 半徑 x π
面積=半徑 x 半徑 x π

    
    ```java
    package chapter01;
    
    public class Code_08 {
        public static void main(String[] args){
            zhouChang(5.5);
            mianJi(5.5);
        }
        static void zhouChang(double radius){
            System.out.println(2*radius*Math.PI);
        }
        static void mianJi(double radius){
            System.out.println(Math.PI*radius*radius);
        }
    }
    
    ```
第一章呢,就是一些基本情況的了解,下面才會(huì)真正的進(jìn)入到Java的學(xué)習(xí)當(dāng)中,那就期待下一期吧!
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容