1. 程式人生 > 其它 >Linux下安裝Apache

Linux下安裝Apache

技術標籤:java

註釋

  • 平時編寫程式碼比較少的時候,還是可以看懂自己寫的,但是專案結構一旦複雜就需要用到註釋。

  • 註釋並不會被執行,是給寫程式碼的人看的

  • 書寫註釋是一個非常好的習慣 BAT(百度阿里騰訊)

  • Java中的註釋有三種:

    1. 單行註釋://

    2. 多行註釋:/ * 註釋內容 * /

    3. 文件註釋:/ * * 註釋內容* / 可以設定一些引數,例如:@Description(描述)@Author(作者)

  • 平時寫程式碼要注意註釋規範

  • 有趣程式碼註釋:百度

識別符號

  • 關鍵字
abstractassertbooleanbreakbyte
casecatchcharclassconst
continuedefaultdodoubleelse
enumextendsfinalfinallyfloat
forgotoifimplementsimport
instanceofintinterfacelongnative
newpackageprivateprotectedpublic
returnstrictfpshortstaticsuper
switchsynchronizedthisthrowthrows
transienttryvoidvolatilewhile
  • Java所有的組成部分都需要名字。類名、變數名以及方法名都被稱為識別符號。

識別符號注意點

  • 所有的識別符號都只能以字母(A-Z或者a-z),美元符($)、或者下劃線(_)開始

  • 首字元之後可以是字母A-Z或者a-z),美元符($)、或者下劃線(_)、或者任何字元組合

  • 不能使用關鍵字作為變數名或方法名

  • 識別符號是大小寫敏感的

  • 合法識別符號舉例:age、$salary、_value、__1_value

  • 非法識別符號舉例:123abc、-salary、#abc

  • 可以使用中文命名,但是一般不建議這樣去使用,也不建議拼音

資料型別

  • 強型別語言

    要求變數的使用要嚴格符合規定,所有變數都必須先定義後才能使用

  • 弱型別語言

  • Java的資料型別分為兩大類

    1. 基本型別(primitive type)

      基本資料型別: a.數值型別:1. 整數型別:①byte佔1個字元範圍:-128-127

      ​ ②short佔2個字元範圍:-32768-32767

      ​ ③int佔4個字元範圍:-2147483648-2147483647(最常用)

      ​ ④long佔8個位元組範圍:-9223372036854775808-9223372036854775807( 寫long會在字數後面加L)

      ​ 2. 浮點型別:①float佔4個位元組(float後面要加F)——float不是連續的,他不能表示範圍內的所有數,float是有限、離散、舍入誤差、大約、接近但不等於的

      ​ ②double佔8個位元組

      ​ ③浮點就是小數的意思,浮點數不能表示精確的數值,不能用於比較和表示貨幣,像銀行這些一般用BigDecimal數學工具類表示,最好完全避免使用浮點數進行比較

      ​ 3.字元型別char佔2個位元組(字元用單引號,字串用雙引號,String不是關鍵字是類)

      ​ b. boolean型別(布林值):佔1位其值只有true(正確)和false(錯誤)兩個

    2. 引用型別(reference type):①類②介面③陣列

什麼是位元組

  • 位(bit):是計算機內部資料儲存的最小單位,11001100是一個八位二進位制數

  • 位元組(byte):是計算機中資料處理的基本單位,習慣上用大寫B來表示

  • 1B(byte,位元組)=8bit

  • 字元:是指計算機中使用的字母,數字,字和符號

  • 1bit表示1位

  • 1Byte表示一個位元組1B=8b

  • 1024B=1KB

  • 1024KB=1M

  • 1024M=1G

  • 1024G=1TB

資料型別擴充套件

  • 整數擴充套件、進位制、二進位制0b、十進位制、八進位制0、十六進位制0x

  • 所有的字元本質還是數字

  • 編碼Unicode :表 、 2個位元組(65536)、是從U0000到UFFFF

  • 轉義字元:\t製表符,\n換行

  • 輸出裡用號可以比較兩個是否相等,只用一堆==可以當分割線

  • 布林值擴充套件:if 可以用與if (xx=true正確的)

    boolean flag = true;

    if (flag==true){} //新手

    if (flag){} //老手

    //Less is More! 程式碼要精簡易讀

型別轉換

  • 由於Java是強型別語言,所以要進行有些運算的時候,需要用到型別轉換

​ 低-------------------------------------------------------------------高

​ byte,short,char—>int—>long—>float—>double

public class Demo01{
    public static Void main(String[]args){
        int i = 128;
        byte b = (byte)i;
        
        System.out.println(i);
        System.out.println(b);
    }
}
//執行結果i=128,b=-128,因為byte對應的類:Byte(大寫B)裡最大值127.這叫記憶體溢位
  • 運算中,不同型別的資料先轉化為同一型別,然後進行運算。小數的優先順序大於整數。

  • 強制型別轉換

    強制轉換:(型別)變數名。強制轉化是從高到低

  • 自動型別轉換

    從低到高

  • 注意點:

    1. 不能對布林值進行轉換
    2. 不能把物件型別轉換為不相干的型別
    3. 在把高容量轉換到低容量的時候,強制轉換,反之自動轉換
    4. 轉換的時候可能存在記憶體溢位,或者精度問題
public class Demo02{
   public static Void main(String[]args){
       System.out.println((int)23.7);
       System.out.println((int)45.89f);
   }
}
//執行結果23和45會丟失小數點部分
  • JDK7新特性

    數字可以用下劃線分割

    原本:int money = 1000000000;

    分割:int money = 10_0000_0000;

  • 問題展示

    public class Demo03{
        public static void main(String[]args){
            //操作比較大的數的時候,注意溢位問題
            //JDK新特性,數字可以用下劃線分割
            int money = 10_0000_0000L;
            int years = 20;
            int total = money*years;//這樣執行出來的是負數(-1474836480),計算的時候溢位了
            long tata12 = money*years;//這樣執行出來的也是負數,因為預設是int,轉換之前已經存在問題了
            long tata123 =money*((long)years);//先把一個數轉換為long   
        }
    }
    

變數

  • 變數是什麼:就是可以變換的量!(可以理解為一個空間,一個固定的空間,裡面還不知道放了什麼,例如你有個衣櫃,有三個櫃子,你給每個櫃子起了一個名字)

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

  • Java變數是程式中最基本的儲存單元,其要素包括變數名,變數型別和作用域。

    type varName [=value] [{,varName[=value]}];

    int a=1,b=2,c=3; //基本型別

    String name = “hello” //引用型別

    char X = ‘X’;

    double pi = 3.14;

    //變數型別 名字 = 值 ;

    //資料型別 變數名=值;可以使用逗號隔開來宣告多個同類型變數。

    //不建議在一行裡定義多個值,程式可讀性。

  • 注意事項:

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

變數作用域

public class Demo{
    static int allClicks=0;   //類變數(需要加靜態static關鍵詞)
    string str = "hello world";   //例項變數(寫在類中間)
    public void method(){
        int i = 0;   //區域性變數(寫在方法裡面的)
    }
}
  • 類變數
  • 例項變數
  • 區域性變數
public class Demo04{  //類
   //類變數:static
   static double salary = 2500//salary是工資的意思
    
   //屬性:變數
    
   //例項變數:從屬於物件(從屬於這個類);如果不自行初始化,會變成這個型別的預設值(所有預設初始值基本都是0貨0.0);
   //布林值:預設是false;
   //除了基本型別。其餘的預設值都是null(空的);  
   //main方法
   public ststic void main(String[]args){
       //區域性變數;必須宣告和初始化值,而且只在它的上下{}裡有用
       int i;//這樣不能輸入要設定值
       int i = 10;
       
       //例項變數:變數型別 變數名字 = new Demo04();
       new Demo04 = new Demo04();
       
       //類變數:static
   }
}
//其他方法
public void add(){
    
}

常量

  • 常量(Constant):初始化(initialize)後不能再改變值!不會變動的值。

  • 所謂常量可以理解成一種特殊的變數,它的值被設定後,在程式執行過程中不允許被改變。

    final 常量名 = 值;

    final double PI = 3.14;

  • 常量名一般使用大寫字元。

public class Demo05{
    static final double PT = 3.14//static final修飾符,不存在先後順序
    public static void main(String[]arge){
    }
}

變數的命名規範

  • 所有變數、方法、類名:見名知意
  • 類成員變數:首字母小寫和駝峰原則:monthSalary(除了第一個單詞以外,後面的單詞首字母大寫)
  • 區域性變數:首字母小寫和駝峰原則
  • 常量:大寫字母和下劃線:MAX_VALUE
  • 型別:首字母大寫和駝峰原則:Man,GoodMan
  • 方法名:首字母小寫和駝峰原則:run(),runRun()

運算子

  • java語言支援如下運算子: 優先順序()
    1. 算數運算子:+,-,*,/,%,++,–
    2. 賦值運算子=:例如 int a = 10就是把10賦值給a
    3. 關係運算符:>,<,>=,<=,==,!=,instanceof(==就是等於的意思,!=就是不等於)
    4. 邏輯運算子:&&,||,!(與或非)
    5. 位運算子:&,|,^,~,>>,<<,>>>(瞭解!!!)
    6. 條件運算子: ? , :
    7. 擴充套件賦值運算子:+=,-=,*=,/=

新建包:在idea裡點選New—package(包的意思就是資料夾)

  • 算數運算子(不包括++、–)
package operator;  //不能刪掉,就是表示是個包
public class Dmeo06 {
    public static void main(String[]arge){
        //二元運算子
        //Ctrl+D:複製當前行到下一行(idea快捷鍵)
        int a = 10;
        int a = 20;
        int a = 25;
        int a = 25;
        
        System.out.println(a+b);
        System.out.println(a-b);
        System.out.println(a*b);
        System.out.println(a/b);//執行結果是0,實際0.5,被四捨五入了,所以需要強制轉換,轉其中一個為double
        System.out.println(a/(double)b);//執行結果正常
    }
}   
  • 賦值運算子
package operator; 
public class Dmeo07 {
    public static viod main(String[]args) {
        long a = 12312312312313L;
        int b = 123;
        short c =10;
        byte d =8;
        
        System.out.println(a+b+c+d);//執行結果是long型別
        System.out.println(b+c+d);//執行結果是int型別
        System.out.println(c+d);//執行結果是int型別
        //如果兩個操作或多個操作中有一個數為long,那麼結果型別也為long
        //如果沒有long,結果都為int型別,不論是不是有int型別
    }
}
  • 關係運算符
package operator; 
public class Dmeo08 {
     public static viod main(String[]args) {
         //關係運算符返回的結果:正確,錯誤  用布林值表示,所以結果一定是個布林值
         int a = 10;
         int b = 20;
         int c = 21;
         
         System.out.println(a>b);//執行結果:false(錯誤),這結果是對的
         System.out.println(a<b);//執行結果:true(正確),這結果是對的
         System.out.println(a==b);
         System.out.println(a!=b);
         System.out.println(c%a);//取餘,模運算;計算過程:c/a    21/10=2.....1
     }
}
  • 算數運算子(裡的++、–)
package operator; 
public class Dmeo09 {
     public static viod main(String[]args) {
         //++ --  自增,自減,一元運算子
         int a = 3;
         
         int b = a++;//執行完這行程式碼後,先給b賦值,再自增
         //a++  a=a+1;
         System.out.println(a);
         int c = ++a;//執行完這行程式碼後,先自增,再給c賦值
         
         //冪運算 2^3  2*2*2=8  很多運算會使用一些工具來操作!
         doule pow = Math.pow(3,2);
         System.out.println(pow);
     }
}
  • 邏輯運算子
package operator; 
public class Dmeo10 {
     public static viod main(String[]args) {
         //&&:與(and)就是兩個都要我、你
         //||:或(or)選擇其中一個,我或者你
         //!:非(取反)非你即我,不是你就是我
         boolean a = true;
         boolean b = false;
         
         System.out.println("a && b:"+(a&&b));//邏輯與運算:兩個變數都為真,結果才為真(true)
         System.out.println("a || b:"+(a||b));//邏輯與運算:兩個變數有一個為真,則結果才為真(true)
         System.out.println("! (a && b) :"+!(a&&b));//如果是真,則變為假,如果是假則變為真
         
         //短路運算
         int c = 5 ;
         boolean d = (c<4)&&(c++<4);//執行結果為5,c<4沒有被執行是錯的,所以後面的也不會執行
     }
}
  • 位運算子
package operator; 
public class Dmeo11 {
     public static viod main(String[]args) {
         /*
         和與或非的運算是一樣的,但是它是單個的,所以叫位運算
         A = 0011 1100
         B = 0000 1101
         
         A&B :A與B 就是A與B每一位比較,例如上面的就是A的0011 1100和B的0000 1101每位對比,如果都是1就是1如果有一個是0都是0(結果0000 1100)
         A/B :A或B 也是對照比較,不同的是如果有一個是1就是1(0011 1101)
         A^B :A非B 對照比較,相同的就是0,不相同就是1(0011 0001)
         ~B :取反(1111 0010)
         
         2*8 = 16 2*2*2*2
         效率極高!!!
         <<左移  *2
         >>右移  /2
         
         二進位制裡
         0000 0000  表示0
         0000 0001  表示1
         0000 0010  表示2
         0000 0011  表示3
         0000 0100  表示4
         0000 1000  表示8
         0001 0000  表示16
         */
         System.out.println(2<<3);//執行結果16
     }
}
  • 條件運算子
package operator; 
public class Dmeo13 {
     public static viod main(String[]args) {
         //三元運算
         //X? y:z
         //如果x=true,則結果為y,否則結果為z
         //必須掌握
         
         int score = 80;
         String type = score <60 ?"不及格""及格";
         System.out.println(type);//執行結果:及格
         
         int score = 50;
         String type = score <60 ?"不及格""及格";
         System.out.println(type);//執行結果:不及格
     }
}
  • 擴充套件賦值運算子
package operator; 
public class Dmeo13 {
     public static viod main(String[]args) {
         int a = 10;
         int b = 20;
         
         a+=b;//a=a+b
         a-=b;//a=a-b
         
         System.out.println(a);
         
         //字串連線符 + String
         System.out.println(a+b);//執行結果:30
         System.out.println(""a+b);//執行結果:1020,沒有加起來只是連起來了。""是空的字串的意思
         System.out.println(""a+b);//執行結果:30
         //+號運算子兩側出現字串型別,就會把另外的或其他的都轉化為字串型別
         //注意字串在運算的前面才會產生連起來,如果在後面,那麼前面的依然會進行運算
     }
}

包機制

  • 為了更好的組織類,Java提供了包機制,用於區別類名的名稱空間

  • 包語句的語法格式為:

    package pkg1[. pkg2[. pkg3…]];

    package com.baidu.wwww;

  • 一般利用公司域名倒置作為包名:例如百度:com.baidu.www

  • 為了能夠使用某一個包的成員,我們需要在Java程式中明確匯入該包。使用"import"語句可完成此功能

    import package1[.package2…].(classname|*);

    import com.baidu.wwww.Dema01;

    import com.baidu.wwww.*; //加個星可以匯入該包下面所有類

    直接輸入想匯入的包名,idea會自動生成路徑

    這類包要在package包的下面才可以用

  • 包的本質就是資料夾

  • 百度阿里巴巴開發手冊,裡面都是基礎,可以多去看看

JavaDoc

  • javadoc命令是用來生成自己API文件的
  • 引數資訊
    1. @author作者名
    2. @version版本號
    3. @since指明需要最早使用的jdk版本
    4. @param引數名
    5. @return返回值情況
    6. @throws異常丟擲情況
  • 百度JDK幫助文件,然後進入Oracle官方網站下載

​ package com.hehe.wwww;

​ /**

​ *@author lala

​ *@version 1.0

​ *@since 1.8

​ */

​ public class Doc{

​ String name; //是一個屬性

​ public String test(String name){

​ return name; //是一個方法

​ }

}

筆記視訊連線

https://www.kuangstudy.com/course/play/1317504142650658818#1336560647022665729#1336560811632320514