pytorch requires_grad = True的意思
註釋
-
平時我們編寫程式碼,在程式碼量較少的時候,我們還是可以看懂自己寫的,但是當專案結構一旦複雜起來,我們就需要註釋了!
-
註釋不會被執行,是給寫程式碼的人看的
-
養成寫註釋的習慣!
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
-
-
引數資訊
-
@author 作者名
-
@version 版本號
-
@since 指明需要最早使用的jdk版本
-
param 引數名
-
return 返回值情況
-
throws 異常丟擲情況
-
-