1. 程式人生 > >Java初級入門之 Two 程式設計中的基本概念

Java初級入門之 Two 程式設計中的基本概念

本章介紹一些程式設計中的基本概念,比如:變數、常量、運算子、識別符號等。這些是程式設計中的“磚塊”,是程式設計的基礎。 要想開始正式程式設計,還需要再學“控制語句”,控制語句就像“水泥”,可以把“磚塊”粘到一起,最終形成“一座大廈”。

註釋

   為了方便程式的閱讀,Java語言允許程式設計師在程式中寫上一些說明性的文字,用來提高程式的可讀性,這些文字性的說明就稱為註釋。

   註釋不會出現在位元組碼檔案中,即Java編譯器編譯時會跳過註釋語句。

   在Java中根據註釋的功能不同,主要分為單行註釋、多行註釋和文件註釋

單行註釋

   單行註釋使用“//”開頭,“//”後面的內容均為註釋。

多行註釋

    多行註釋以“/*”開頭以“*/”結尾,在“/*”和“*/”之間的內容為註釋,在使用多行註釋時注意,註釋不能巢狀。

文件註釋

   文件註釋以“/**”開頭以“*/”結尾,註釋中包含一些說明性的文字及一些JavaDoc標籤(後期再寫專案時,可以生成專案的API)

【示例 1】註釋

/**
* Welcome類(我是文件註釋)
* @author admin
* @version 1.0
*/
public class Welcome {
      //我是單行註釋
     public static void main(String[] args/*我是行內註釋 */) {
          System.out.println("Hello World!");
       }
       /*
       我是多行註釋!
       我是多行註釋!
       */
}
____________________________________________________________________________

識別符號

         識別符號是用來來給變數、類和方法進行命名的,如age、name、gender等。識別符號需要遵守一定的規則:

         識別符號必須以字母、下劃線_、美元符號$開頭。

         識別符號其它部分可以是字母、下劃線“_”、美元符“$”和數字的任意組合。

         Java 識別符號大小寫敏感,且長度無限制。

         識別符號不可以是Java的關鍵字。

*識別符號的使用規範

      表示類名的識別符號用大寫字母開始。如:Man, GoodMan

      表示方法和變數的識別符號用小寫字母開始,後面的描述性詞以大寫開始。我們稱之為“駝峰原則”,比如:eat(),eatFood()

Java不採用通常語言使用的ASCII字符集,而是採用unicode這樣的標準的國際字符集。因此,這裡的字母的含義不僅僅是英文,還包括漢字等等。但是不建議大家使用漢字來定義識別符號!

【示例 2】合法的識別符號
  int a = 3;
  int _123 = 3;
  int $12aa = 3;
  int 變數1 = 55;


【示例 3】不合法的識別符號

  int 1a = 3; //不能用數字開頭
  int a# = 3; //不能包含#這樣的特殊字元
  int int = 3; //不能使用關鍵字

____________________________________________________________________________

變數(variable)

變數的本質

  變數的本質,就是代表一個”可操作的儲存空間”,空間位置是確定的,但是裡面放置什麼值不確定。 我們可以通過變數名來訪問“對應的儲存空間”,從而操縱這個“儲存空間”儲存的值。
  Java是一種強型別語言,每個變數都必須宣告其資料型別。變數的資料型別決定了變數佔據儲存空間的大小。 比如,int a=3; 表示a變數的空間大小為4個位元組。
 
  變數作為程式中最基本的儲存單元,其要素包括變數名,變數型別和作用域。變數在使用前必須對其宣告, 只有在變數宣告以後,才能為其分配相應長度的儲存空間。
·變數的宣告
 格式為:
  type  varName  [=value][,varName[=value]...]; //[]中的內容為可選項,即可有可無
  資料型別  變數名  [=初始值] [,變數名  [=初始值]…];

【示例 4】 宣告變數

double salary ;
long earthPopulation ;
int age ;

int i ,j; // 兩個變數的資料型別都是int  並不推薦,逐一宣告每一個變數可以提高程式可讀性

     不同資料型別的常量會在記憶體中分配不同的空間,如圖1所示。

1宣告變數的記憶體示意圖

*注意事項
   每個變數都有型別,型別可以是基本型別,也可以是引用型別。
   變數名必須是合法的識別符號
   變數宣告是一條完整的語句,因此每一個宣告都必須以分號結束


變數的分類

  從整體上可將變數劃分為區域性變數、成員變數(也稱為例項變數)和靜態變數。

【表1】區域性變數、成員變數、靜態變數的區別

型別

宣告位置

從屬於

生命週期

區域性變數

方法或語句塊內部

方法/語句塊

宣告位置開始,直到方法或語句塊執行完畢,區域性變數消失

成員變數

(例項變數)

類內部,方法外部

物件

物件建立,成員變數也跟著建立。物件消失,成員變數也跟著消失;

靜態變數

(類變數)

類內部,static修飾

被載入靜態變數就有效;類被解除安裝,靜態變數消失。


· 區域性變數(lacal variable)
  方法或語句塊內部定義的變數。生命週期是從宣告位置開始到”}”為止。區域性變數在使用前必須先宣告、初始化(賦初值)再使用。
【示例 7】區域性變數
public void test() {
   int i;
    int j = i+5 ; // 編譯出錯,變數i還未被初始化
}
public  void   test() {
           int i;
           i=10;
           int j = i+5 ; // 編譯正確
}
· 成員變數(也叫例項變數 member variable)
  方法外部、類的內部定義的變數。從屬於物件,生命週期伴隨物件始終。如果不自行初始化,他會自動初始化成該型別的預設初始值。
表2 例項變數的預設初始值
資料型別 實始值
int 0
double 0.0
char ‘\u0000’
boolean false 

【示例 8】例項變數的宣告

public class Test {
int i;
}

· 靜態變數(類變數 static variable)
  使用static定義。 從屬於類,生命週期伴隨類始終,從類載入到解除安裝。 (注:講完記憶體分析後我們再深入!先放一放這個概念!)如果不自行初始化,他與成員變數相同會自動初始化成該型別的預設初始值,如表2所示。

常量(Constant)

  常量通常指的是一個固定的值,例如:1、2、3、’a’、’b’、’c’true,false,”helloWorld”等等。

  在Java語言中,主要是利用關鍵字final來定義一個常量。 常量一旦被初始化後不能再更改其值。
  宣告格式為:final type varName =value ;

【示例 9】常量的宣告及使用

public class TestConstants {
  public static void main(String[] args) {
    final double PI = 3.14;
    // PI = 3.15;    //編輯錯誤,不能再被賦值!
    double r = 4;
    double area = PI * r * r;
    double circle = 2 * PI * r;
    System.out.println("area = " + area);
    System.out.println("circle = " + circle);
  }
}



變數和常量命名規範
   所有變數、方法、類名:見名知意
   類成員變數:首字母小寫和駝峰原則  :  monthSalary
   區域性變數:首字母小寫和駝峰原則
   常量:大寫字母和下劃線:MAX_VALUE
   類名:首字母大寫和駝峰原則:  Man, GoodMan
   方法名:首字母小寫和駝峰原則: run(), runRun()
 

____________________________________________________________________________

基本資料型別(primitive data type)

  •Java是一種強型別語言,每個變數都必須宣告其型別。

  •Java的資料型別分為兩大類:基本型別(primitive type)和引用型別(reference type)

  •Java中定義了3類8種基本資料型別

  •邏輯型-boolean

  •文字型-char

  •數值型-byte, short, int, long, float, double

*注意事項
    ·引用資料型別的大小統一為4個位元組,記錄的是其引用物件的地址!

整型變數/整形變數

  整型用於表示沒有小數部分的數值,它允許是負數。
  整型的範圍與執行Java程式碼的機器無關,這正是Java程式具有很強移植能力的原因之一。於此相反,C和C++程式需要針對不同的處理器選擇最有效的整形。 

型別 佔用儲存空間

表數範圍

Byte 1位元組 -128~127
Short 2位元組 -215 ~ 215-1 (-32768~32767)
Int 4位元組 (-2147483648~2147483647) 約21億
Long 8位元組 -263 ~ 263-1

 • Java語言整型常數的三種表示形式:
        • 十進位制整數,如:99, -500, 0。
        • 八進位制整數,要求以 0 開頭,如:015。
        • 十六進位制數,要求 0x 或 0X 開頭,如:0x15 。
        • 二進位制數,要求0b或0B開頭,如:0b01110011 。
     • Java語言的整型常數預設為int型,宣告long型常量可以後加‘ l ’或‘ L ’ ,
如:

  【示例10】長整型常數的宣告

longa = 55555555;  //編譯成功,在int表示的範圍內(21億內)。
longb = 55555555555;//不加L編譯錯誤,已經超過int表示的範圍。
  報錯:The literal 55555555555 of type int is out of range,所以我們需要修改程式碼為:
longb = 55555555555L;


浮點型變數/常量

  帶小數的資料在Java中稱為浮點型。浮點型可分為float型別和double型別。

型別 佔用儲存空間

表數範圍

Float 4位元組 -3.403E38~3.403E38
Double 8位元組 -1.798E308~1.798E308

    • float型別又被稱作單精度型別,尾數可以精確到7位有效數字,在很多情況下,float型別的精度很難滿足需求。
    • double表示這種型別的數值精度是float型別的兩倍,又被稱作雙精度,絕大部分應用程式都採用double型別。
    • Java浮點型別常量有兩種表示形式
          • 十進位制數形式,例如:      3.14       314.0      0.314
          • 科學記數法形式,如: 314e2      314E2      314E-2

 【示例11】使用科學記數法給浮點型變數賦值

double f = 314e2;  //314*10^2-->31400.0
double f2 = 314e-2; //314*10^(-2)-->3.14
 • Float型別的數值有一個字尾F/f ,沒有後綴F/f的浮點數值預設為double型別。也可以在浮點數值後新增字尾D/d, 以明確其為double型別。

   【示例12】float型別賦值時需要新增字尾F/f

float  f = 3.14F;
double d1= 3.14;
double d2 = 3.14D;
*注意:浮點型別float,double的資料不適合在不容許舍入誤差的金融計算領域。如果需要進行不產生舍入誤差的精確數字計算,需要使用BigDecimal類。
 【示例13】浮點數的比較
float f = 0.1f;
double d = 1.0/10;
System.out.println(f==d);  //結果為false


float d1 = 423432423f;
float d2 = d1+1;
if(d1==d2){
  System.out.println("d1==d2");/輸出結果為d1==d2
}else{
  System.out.println("d1!=d2");
}


  執行以上兩個示例,發現示例13的結果是“false”,而示例14的輸出結果是“d1==d2”。這是因為由於字長有限由於字長有限,浮點數能夠精確表示的數是有限的,因而也是離散的。 浮點數一般都存在舍入誤差,很多數字無法精確表示(例如0.1),其結果只能是接近, 但不等於。二進位制浮點數不能精確的表示0.1、0.01、0.001這樣10的負次冪。並不是所有的小數都能可以精確的用二進位制浮點數表示。

  Java.Math下面的兩個有用的類:BigInteger和BigDecimal,這兩個類可以處理任意長度的數值。BigInteger實現了任意精度的整數運算。BigDecimal實現了任意精度的浮點運算。

*注意:不要使用浮點數進行比較!很多新人甚至很多理論不紮實的有工作經驗的程式設計師也會犯這個錯誤!需要比較請使用BigDecimal

 【示例14】使用BigDecimal進行浮點數的比較

import java.math.BigDecimal;

public class Main {
  public static void main(String[] args) {
   BigDecimal bd = BigDecimal.valueOf(1.0);
   bd = bd.subtract(BigDecimal.valueOf(0.1);
   bd = bd.subtract(BigDecimal.valueOf(0.1);
   bd = bd.subtract(BigDecimal.valueOf(0.1);
   bd = bd.subtract(BigDecimal.valueOf(0.1);
   bd = bd.subtract(BigDecimal.valueOf(0.1);
   Syetem.out.println(bd);
   Syetem.out.println(1.0 - 0.1 - 0.1 - 0.1 - 0.1 - 0.1);//0.5000000000000001
  }
}

浮點數使用總結

  預設是double型別

  浮點數存在舍入誤差,數字不能精確表示。如果需要進行不產生舍入誤差的精確數字計算,需要使用BigDecimal類。

  避免比較中使用浮點數,需要比較請使用BigDecimal類

字元型變數/常量

  • 字元型在記憶體中佔有2個位元組,在Java中使用單引號來表示字元常量。例如‘A’是一個字元,它與“A”是不同的,“A”表示含有一個字元的字串。

  •char 型別用來表示在Unicode編碼表中的字元。Unicode編碼被設計用來處理各種語言的所有文字,它佔2個位元組,可允許有65536個字元。

【示例15】字元型舉例

char eChar = 'a';
char cChar ='中'; 
   Unicode具有從0到65535之間的編碼,他們通常用從’\u0000’到’\uFFFF’之間的十六進位制值來表示(字首為u表示Unicode)  

【示例16】字元型的十六進位制值表示方法

char c = '\u0061'
  Java 語言中還允許使用轉義字元 ‘\’ 來將其後的字元轉變為其它的含義。常用的轉義字元及其含義和Unicode值如下表所示。
【示例17】轉義字元
char c2 = '\n';  //代表換行符  
轉義符 含義

Unicode值

\b 退格(backspace) \u0008
\n 換行 \u000a
\r 回車 \u000d
\t 製表符(tab) \u0009
\“ 雙引號 \u0022
\‘ 單引號 \u0027
\\ 反斜槓 \u005c

注:String類,其實是字元序列(char sequence)。

bolean型別:

  • boolean型別有兩個值,true和false,在記憶體中佔一位(不是一個位元組),不可以 0 或非 0 的整數替代 true 和 false ,這點和C語言不同。
   • boolean型別用來判斷邏輯條件,一般用於程式流程控制 。

【示例18】boolean型別

boolean flag ;
flag = true;   //或者flag=false;
if(flag) {
    // true分支
} else {
    //  false分支
}   

____________________________________________________________________________

運算子(operator)

  計算機的最基本用途之一就是執行數學運算,作為一門計算機語言,Java也提供了一套豐富的運算子來操縱變數。


                              【表】運算子分類

算數運算子

二元運算子

+,-*/%

一元運算子

++,--

賦值運算子

=

擴充套件運算子

+=,-=*=/=

關係運算符

>,<>=<===!=  instanceof

邏輯運算子

&&,||!

位運算子

&,|^, >><<>>>

條件運算子

?:

字串連線符

+


二元運算子
  二元運算子指的是需要兩個運算元才能完成運算的運算子。

  二元運算子的運算規則:

整數運算:

  如果兩個運算元有一個為Long, 則結果也為long,

  沒有long時,結果為int。即使運算元全為shot,byte,結果也是int。

浮點運算:

  如果兩個運算元有一個為double, 則結果為double.

  只有兩個運算元都是float, 則結果才為float.

取模運算:

  其運算元可以為浮點數,一般使用整數,結果是“餘數”,“餘數”符號和左邊運算元相同。如:7%3=1,-7%3=-1,7%-3=1


  算術運算子中++,--屬於一元運算子,該類運算子只需要一個運算元。

【示例19】一元運算子++與--

int a = 3;
int b = a++;   //執行完後,b=3。先給b賦值,再自增。
System.out.println("a="+a+"\nb="+b);
int c = ++a;   //執行完後,c=5。a先自增,再給c賦值
System.out.println("a="+a+"\nc="+c);

賦值及其擴充套件賦值運算子:

【表】賦值及其擴充套件賦值運算子

運算子

用法舉例

等效的表示式

+=

a += b

a = a+b

-=

a -= b

a = a-b

*=

a *= b

a = a*b

/=

a /= b

a = a/b

%=

a %= b

a = a%b

 【示例20】擴充套件運算子

int a=3;
int b=4;
a+=b;//相當於a=a+b;
System.out.println("a="+a+"\nb="+b);
a=3;
a*=b+3;//相當於a=a*(b+3)
System.out.println("a="+a+"\nb="+b);

關係運算符

  關係運算符用來進行比較運算,如表所示。關係運算的結果是布林值:true/false;

                               【表】關係運算符

運算子

含義

示例

==

等於

a==b

!=

不等於

a!=b

大於

a>b

小於

a<b

>=

大於或等於

a>=b

<=

小於或等於

a<=b


*注意事項
 1. =是賦值運算子,而真正的判斷兩個運算元是否相等的運算子是==。
 2.  ==、!= 是所有(基本和引用)資料型別都可以使用
 3. > 、>=、 <、 <= 僅針對數值型別(int double  char)

邏輯運算子

    Java中的邏輯運算子如表所示。邏輯運算的運算元和運算結果都是boolean值。

【表】邏輯運算子

運算子

說明

邏輯與

&(  )

兩個運算元為true,結果才是true,否則是false

邏輯或

|()

兩個運算元有一個是true,結果就是true

短路與

&&(  )

只要有一個為false,則直接返回false

短路或

||()

只要有一個為true則直接返回true

邏輯非

!(非)

取反:!falsetrue!truefalse

邏輯異或

^(異或)

相同為false,不同為true


  短路與和短路或採用短路的方式。從左到右計算,如果只通過運算子左邊的運算元就能夠確定該邏輯表示式的值,則不會繼續計算運算子右邊的運算元,提高效率。

 【示例21】短路與和邏輯與

//1>2的結果為false,那麼整個表示式的結果即為false,將不再計算2>(3/0)
booleanc =1>2 && 2>(3/0);
System.out.println(c);
//1>2的結果為false,那麼整個表示式的結果即為false,還要計算2>(3/0),0不能做除數,//會輸出異常資訊
booleand =1>2 & 2>(3/0);
System.out.println(d);

位運算子:

  位運算指的是進行二進位制位的運算,常用的位運算子如表所示。

                                【表】位運算子

位運算子

說明

     ~

取反

    &

按位與

     |

按位或

     ^

按位異或

     <<

左移運算子,左移1位相當於乘2

     >>

右移運算子,右移1位相當於除2取商


 【示例22】左移運算和右移運算 
int a = 3*2*2;
int b = 3<<2;  //相當於:3*2*2;
int c = 12/2/2;
int d = 12>>2; //相當於12/2/2;

*注意:

 · 不要將“&&”“&”“||”“|”、“!”和“~”混為一談!這是兩個完全不同的運算子。

 ·不要^當做數學運算乘方位的異操作。

【示例23】連線符”+”

int a=12;
System.out.println("a="+a);//輸出結果:a=12

【示例24】三目條件運算子
int score = 80;
int x = -100;
String type =score<60?"不及格":"及格";
int flag = x > 0 ? 1 : (x == 0 ? 0 : -1);
System.out.println("type= " + type);
System.out.println("flag= "+ flag);

運算子優先順序的問題

【表】運算子的優先順序

優先順序

運算子

相關推薦

Java初級入門 Two 程式設計基本概念

本章介紹一些程式設計中的基本概念,比如:變數、常量、運算子、識別符號等。這些是程式設計中的“磚塊”,是程式設計的基礎。 要想開始正式程式設計,還需要再學“控制語句”,控制語句就像“水泥”,可以把“磚塊”粘到一起,最終形成“一座大廈”。 註釋    為了方便程式的閱讀,Ja

Java新手入門的三十個基本概念

在我們學習Java的過程中,掌握其中的基本概念對我們的學習無論是J2SE,J2EE,J2ME都是很重要的,J2SE是Java的基礎,所以有必要對其中的基本概念做以歸納,以便大家在以後的學習過程中更好的理解java的精髓,在此我總結了30條基本的概念。  Java概述: 

java併發程式設計執行緒的基本概念

本文為學習筆記。源自學習微信公眾號“我們都是小青蛙”。 本篇文章將記錄如何使用java中的執行緒。 main執行緒 main方法是程式入口,我們對已經編譯好的class檔案呼叫java命令時就可以執行一個java程式。這個過程中,其實系統自動為我們建立了一個程序

Labview入門二:認識基本控件

四種 定義 加粗 輸入 面板 操作 設置 http 重新 上一節簡單的介紹了如何新建一個簡單的VI,從中我們可以看到前面板上都是由控件選板上的控件添加的,這一節將會介紹這些基本的控件。打開控件選板(鼠標右鍵點擊前面板的空白處或者“查看”->"控件選板")。 1 數值控

Java入門語法基礎)

(一)入門 1、Java SE(標準版,標準版基礎核心)、Java EE(企業版,大型企業應用開發)、Java ME(嵌入式開發)  2、(1)JDK:Java Development kit(Java開發工具包),除錯、編譯原始檔,生成文件等,包含各種開發工具( 安裝完JDK

Java基礎總結網路程式設計

網路程式設計:用Java語言實現計算機間資料的資訊傳遞和資源共享。 網路模型:七層:(從上至下)分別是:應用層、表示層、會話層、傳輸層、網路層、資料鏈路層、物理層。 網路程式設計的三要素:ip、埠、協議 ip:網路中計算機的唯一標識。Ip在計算機底層是由二進位制所表示的,但是為了方便,人

JAVA---面向物件從生活抽取例項物件

public class Car{ private String brand; private int num; private String colour; private int seats; //建構函式 public Car(String brand){

Java學習筆記--------網路程式設計Socket通訊----聊天室實現

Socket通訊 網路上的兩個程式通過一個雙向的通訊連線實現資料的交換,這個連線的一端稱為一個socket。基於TCP/IP協議,建立穩定的點對點的通訊。 特點:實時、快速、安全性高、佔用系統資源多、效率低。 通常也稱作"套接字",套接字是一種程序間的資料交換機制。這些程序既可以在同一機

Java學習筆記--------網路程式設計InetAddress

java.net.InetAddress:此類表示網際網路協議 (IP) 地址。封裝計算機的IP地址和DNS,沒有埠。 getHostName():獲取此IP地址的主機名。 getHostAddress():返回IP地址字串(以文字表現形式)。 我們可以封裝埠: public cla

Java學習筆記--------網路程式設計概念

什麼是計算機網路 把分佈在不同地理區域的計算機與專門的外部裝置用通訊線路互連成一個規模大、功能強的網路系統,從而使眾多的計算機可以方便地互相傳遞資訊,共享硬體、軟體、資料資訊等資源。 計算機網路的主要功能 資源共享 資訊傳輸與集中處理 均衡負荷與分佈處理 綜合資訊服務(www

Java基礎入門jdk1.8新特性

Lamda 表示式(目標型別) 簡介 語法糖,也叫糖衣語法 指的是計算機中 新增某種語法 這種語法 ,能使程式設計師更加方便的使用語言開發程式,同時,增強了程式碼的可讀性 避免了出錯的機會,但是,這種語法對於語言的功能並且有增強 例如: 泛型 自動裝箱拆箱 增強

Java併發程式設計的藝術》筆記一——併發程式設計概念.md

0.背景 最近重溫《併發程式設計的藝術》這本書,覺得裡面有些不錯的內容,打算擷取一部分作為筆記和大家共同學習。 併發程式設計的目的是讓程式執行的更快。下面是併發程式設計的一些關鍵詞: 1 上下文切換 即使是單核處理器也支援多執行緒執行程式碼,CPU通過給每一個執行緒分配CP

golang入門環境配置和基本語法

golang作為Google的親兒子,現在關注度也越來越高,據說Android以後也會用golang代替Java開發,因為谷歌被甲骨文告了,每年都賠款十幾億美金.... Go的優勢特性在於併發性,提供

Spark程式設計指南三:RDD基本概念

RDD是什麼? RDD(Resilient Distributed Dataset),彈性分散式資料集,是Spark的核心資料結構抽象。 它是彈性的,具有容錯能力,能夠重新計算失敗結點。 它是分散式的,資料分佈在多個結點上。 它是一個數據集,可以從外部載入資料,可以是文字檔案,JSON,

Java設計模式從[遊戲的兵種狀態轉換]分析狀態(State)模式

  假設我們正在做一個即時戰略遊戲,我們設計一個兵種,他在剛剛生產出來的時候是步兵,但是他可以切換武器,第一次切換會變成弓箭手,第二次切換會變成舉著盾牌的裝甲兵,第三次切換則又變成了步兵……如何實現這個切換的機制?我們一開始會想到,在步兵這個類中加入switch語句,然而這

Java設計模式從[遊戲開啟寶箱]分析中介者(Mediator)模式

  假設我們正在設計一個遊戲房間,房間裡有兩個按鈕和一個寶箱,如果我們按下了按鈕1,則按鈕2和寶箱均不可使用;如果我們按下了按鈕2,則按鈕1和寶箱均不可使用;如果我們開啟寶箱,則按鈕1不可按下。   在上面的例子中,我們可以看到兩個按鈕和一個寶箱之間存在著依賴關係,它們之間

java工作筆記:web 程式設計關於jni和jna兩種工具操作和效能對比測試

       第一次發部落格有點緊張哈。        最近剛剛公司轉崗從底層C語言的編寫到做Java的web restful架構。其中需要呼叫底層C++程式碼庫。所以對於選擇哪種方法從Java呼叫C的程式碼做了簡單地學習和對比測試。在這裡把他們貼出了。希望能有大神出來指點

Java Web入門監聽session的銷燬

統計線上使用者數等功能需要監聽session的銷燬,有兩種方式: 1. 使用HttpSessionListener監聽session的銷燬。 2. 使用HttpSessionBindingListener監聽session的銷燬。 使用HttpSess

前端網頁入門瞭解網頁的元素鞏固版(三)

繼昨天學習在本地擷取網頁資訊之後,決心做個小練習鞏固一下自己,在練習的過程中不但回顧了一下昨天所學知識,並且發現一些小小的新知識點記錄下來~ 萌新一枚,如有不對,大神們輕噴!!! 正文開始~ 今日練習目標:沿襲昨天使用BeautifulSoup的套路,對這個網頁的圖片,標題,價格,評

c++ 入門 hello world 和基本語法

安裝 變量類型 double 自己 表示 visual gcc 理解 定義 1,linux系統上如何跑c++程序 1,vim一個hello.cpp,內容如下: #include <iostream> using namespace std; int m