1. 程式人生 > 其它 >pytorch requires_grad = True的意思

pytorch requires_grad = True的意思

Java基礎語法

註釋

  • 平時我們編寫程式碼,在程式碼量較少的時候,我們還是可以看懂自己寫的,但是當專案結構一旦複雜起來,我們就需要註釋了!

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

  • 養成寫註釋的習慣!

java中的註釋有三種:

  • 單行註釋

  • //我是單行註釋
  • 多行註釋

  • /*
    我是多行註釋
    */
  • 文件註釋

  • /**
    * 我是文件註釋
    * @Description Helloworld
    * @Author 周某某
    */

識別符號

Java所有的組成部分都需要名字。類名、變數名以及方法名都被稱為識別符號。

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

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

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

  • 常量的定義:全大寫且可以用美元符($)、或者下劃線(_)

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

  • 可以使用中文命名,但一般不建議! 也不使用拼音,很Low!

訪問控制修飾符

  • public:公共的 誰都可以訪問

  • default:預設的,同一個包類可以訪問

  • protected:受保護的 同一個包類,以及子類可以訪問

  • private:私有的,只有自己本類可以訪問

關鍵字

不能用關鍵字作為包名!

資料型別

  • 強型別語言:要求變數的使用嚴格符合規定,所有變數都必須先定義後才能使用

  • 弱型別語言

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

    • 基本型別

      • 數值型別

        • 整數型別:二進位制 0b表示 八進位制 0表示 十六進位制 0x表示

          • byte : 佔一個位元組 範圍:-128~127 2的七次方

          • short佔兩個位元組範圍:-32768~32767 2的15次方

          • int 佔四個位元組範圍:-21億~21億 2的31次方

          • long佔八個位元組 2的63次方

        • 浮點型別:最好完全避免使用浮點數進行比較 可以使用BigDecimal的數學工具類

          • float 佔四個位元組

          • double 佔八個位元組

      • 字元型別 char 佔兩個位元組

      • boolean型別 佔一位 其值只有 true 和false

    • 引用型別

      • 介面

      • 陣列

    • 八大基本型別的預設值

    • boolean false
      char /uoooo’(null)
      byte (byte)0
      short (short)0
      int 0
      long 0L
      float 0.0f
      double 0.0d
    •  

什麼是位元組

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

  • 位元組 byte : 是計算機中資料處理的基本單位,一般用大寫B來表示

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

  • 1024B = 1KB

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

型別轉換

  • 由於Java是強型別語言,所以要進行有些運算的時候,需要用到型別轉換,由低到高,小數的優先順序高於整數

    • byte,short,char->int->long->float->double

  • 運算中,不同型別的資料先轉化為同一型別,然後再進行運算。

  • 強制型別轉換

  • 自動型別轉換

注意點:
1.不能對布林值進行轉換
2.不能把物件型別轉換為不相干的型別
3.在把高容量轉換到低容量的時候,強制轉換
4.轉換的時候可能存在記憶體溢位,或者精度問題!

變數

  • 變數是什麼:就是可以變化的量!

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

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

  • type varName [= value] [{,varName [= value]}];
    資料型別  變數名 = 值; 可以使用,隔開來宣告多個同類型變數
  • 注意事項

    • 每個變數都有型別,型別可以是基本型別,也可以是引用型別。

    • 變數名必須是合法的識別符號。

    • 變數宣告是一條完整的語句,因此每一個宣告都必須以分號結束

變數作用域

  • 類變數 寫在類裡的變數 需要加個關鍵字 static 可以通過類名.變數名

  • 例項變數 在類裡面例項化的變數 通過例項化才能呼叫

  • 區域性變數 寫在類下面的方法裡的變數

變數的命名規範

  • 所有變數、方法、類名:見名知意

  • 類成員變數:首字母小寫和駝峰原則:monthSalary

  • 區域性變數:首字母小寫和駝峰原則

  • 常量:大寫字母和下劃線:MAX_VALUE

  • 類名:首字母大寫和駝峰原則:Man , GoodMan

  • 方法名:首字母小寫和駝峰原則:run() , runRun()

//類變數 static  屬於類的 跟隨類生成 消失
//例項變數:從屬於物件;如果不自行初始化,則會使用這個型別的預設值
//布林值的預設值 是 :false
//除了基本型別 其餘的預設值都是 null
//區域性變數 必須宣告和初始化值
// 是在方法裡的;生命週期:從方法的括號開始 對應的括號結束
//常量 需要加上修飾符final 修飾符 不存在先後順序

常量

  • 常量:初始化後不能在改變值!不會變動的值

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

  • final 常量名 = 值;
    final double PI = 3.14 ;
  • 常量名一般使用大寫字元

運算子

  • 算術運算子:+,-,*,/,%,++,--

  • 賦值運算子:=

  • 關係運算符:>,<,>=,<=,==,!=,instance of

  • 邏輯運算子:&&,||,!

  • 位運算子:&,|,^,~,>>,<<,>>>

  • 條件運算子:?:

  • 擴充套件賦值運算子:+=,-=,*=,/=,%=,<<=,>>=,&=,^=,|=

注意點

  • 整數運算 結果也是整數 只能取到整數部分 涉及到小數 需要轉換為double

  • 有long型別的資料參與運算則返回的結果都是long型別的 如果沒有則返回的一定是int

  • 關係運算符返回的結果: 正確 或者 錯誤 只能返回布林值

  • a++ 是先參與運算 再 自增

  • ++a 是先自增 在參與運算

邏輯運算子位運算子

// 與(and) 或 (or )  非 (!)
boolean a = true ;
boolean b = false ;
// 短路:若a 一開始就是假 則 會直接返回結果 不會執行後面的b邏輯
System.out.println("a && b "+(a && b));//邏輯與(&&)運算 兩個變數都為真 結果才為真
System.out.println("a || b "+(a || b)); //邏輯或(||)運算 兩個變數有一個為真 , 則結果采薇真
System.out.println("!(a && b) "+!(a && b));//如果是真 結果則為假 如果是假 結果為真
 /*
          A = 0011 1100
          B = 0000 1101
          0000 0001
          0001 0000
			0000 1010
			0000 1000
			x = 0110 0100 100
			y = 0011 0010 50
		c = x&y = 0010 0000 32
         d=  x|y = 0111 0110 118
         d=  x^y = 0101 0110 86
         d=  c|y = 0011 0010 50
         d=  c^y = 0001 0010 18
           補碼:1101 1111  取反+1
           原始碼  1010 0001
         d=  ~c  = 1010 0001 -33
           cc = ((x&y) > (x|y)) false
           dd = ((c|d)>(~d)) 1010 0001 -33 > 32 false
           dd&&cc false
           dd&&cc||!cc true
		
			
			1111 0101 這是原碼
			1000 1011 取反 加1

        A&B = 0000 1100  只有當兩個數都為1 的時候才為1
        A|B = 0011 1101  只要有一個數為1 則為1
        A^B = 0011 0001  ^(異或) 兩個數相同則為0 不同則為1
        ~B  = 1111 0010  ~ 取反 1取0 0取1

        2*8怎麼運算最快 》》2 * 2 * 2 * 2
        << 左移   相當於把數乘以*2
        >> 右移   相當於把數除以/2
        0000 0000       0
        0000 0001       1
        0000 0010       2
        0000 0100       4
        0000 1000       8
        0001 0000       16
        
        0000 1010
        0000 0010 2
        
        0000 1110
        0000 0011
        0000 1101
        
         */

         int a = 0b1010101;
         int b = 0b1111111;

        System.out.println(a&b);

        System.out.println(2<<3);

擴充套件賦值運算子 三元運算子

int a = 10;
int b = 20;
a+=b; //a= a+b;
a-=b; //a= a-b;
System.out.println(a);
//字串連線符 + 加號兩邊只要有一方出現了字串String型別的,就會把資料都變成String型別的
System.out.println(a+b);
System.out.println(""+a+b);//1020
System.out.println(a+b+"");//30 說明運算是從左到右


//x?y:z x為真 輸出y 否則輸出z
       int score = 50;
       String type = score < 60 ? "不及格" : "及格";
       System.out.println(type);

包機制

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

  • 包語句的語法格式為:

  • package pkg1[.pkg2[.pkg3……]]
  • 一般利用公司域名倒置作為包名

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

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

Java Doc

  • JavaDoc命令是用來生成自己的API文件

  • 引數資訊

    • @author 作者名

    • @version 版本號

    • @since 指明需要最早使用的jdk版本

    • param 引數名

    • return 返回值情況

    • throws 異常丟擲情況

    •