Java 基礎
註釋
-
註釋可以方便我們更好的讀程式碼,必要的註釋可以提高差錯效率
-
註釋有三種
//單行註釋 /* 多行註釋 */ /**文件註釋 * */
識別符號
類名,方法名以及變數名都可以叫做識別符號
命名有規則,不可以亂命名,一些特殊符號如& % 等不可以出現。一般由大小寫字母,數字_和$組成可以,但是數字不可以放在開頭。
資料型別
基本資料型別
byte 1b
short 2b
int 4b
long 8b 100L(末尾加L)
char 2b
float 4b 1.0F(末尾加F)
double 8b
boolean 1bit
引用資料型別
類
介面
陣列
資料型別擴充套件
//=======整數=======
int a1 = 10; //十進位制
int a2 = 0b10;//二進位制
int a3 = 010; //八進位制
int a4 = 0x10;//十六進位制
//=======浮點數=======
float b1 = 0.1f;
double b2 = 1.0 / 10;
System.out.println(b1 == b2);//false
double b3 = 0.1;
System.out.println(b1 == b3);//false
double b4 = 123123123;
double b5 = b4 + 1;
System.out.println(b4 == b5);//但是有時候會相等
//不要完全使用浮點數
//=======字元=======
char c1 = 'a';
char c2 = '中';
System.out.println(c1);
System.out.println(c2);
System.out.println((int)c1);//97
System.out.println((int)c2);//20013
char c3 = '\u0061';//代表了a在unicode碼的編號
System.out.println(c3);//a
//=======跳脫字元=======
//不全
型別轉換
低-------------------------------------------->高
byte,short,char->int->long->float->double
-
強制型別轉化:高到低
-
自動型別轉化:低到高
public class Day2 { public static void main(String[] args) { int a = 128; byte b = (byte)a;//記憶體溢位 System.out.println(a); System.out.println(b);//byte 有符號型別 -128 -> 127 int c = 123; double d = c;//自動型別轉化 低到高 System.out.println(c); System.out.println(d); //=====注意===== /* 1. 低到高自動型別轉化,高到低強制型別轉化 2. 轉化過程注意記憶體溢位和精度丟失 3. 不可以對布林型別進行轉化(boolean) */ //擴充套件 int e = 10_0000_0000; //可以用下滑線表示,易讀jdk7 add int g = 20; System.out.println(e*g); long f = (long)e*g; long h = e*g;//自動轉化 System.out.println(f);//20000000000 System.out.println(h);//-1474836480 //h:e,g先相乘,但還是int,在轉化前就已經溢位了 //f:e先轉化為long,再相乘,得到的是long } }
變數.常量.作用域
- 變數
//資料型別 資料名 值
變數要具有可讀形,方便閱讀
-
變數作用域
根據作用域的不同:
類變數 例項變數 區域性變數
public class Day3 { //常量 修飾符不分前後的,變數前的都叫修飾詞(現在我這麼認為) static final double PI = 3.14; //類變數 可以直接用,可以不用初始化,有點像c語言的全域性變數,不用像例項一樣麻煩 static double age; //例項變數 可以不用初始化,會自己賦初始值:基本變數為0,其他為NULL //物件導向 布林值預設為false int name; public static void main(String[] args) { int a = 1; System.out.println(a); Day3 day3 = new Day3();//將Day3這樣寫才可以用裡面的值 System.out.println(day3.name); System.out.println(age); } public void add()//應該是不可以亂取的 { // System.out.println(a);//不可以識別a error Day3 day3 = new Day3(); } }
-
命名規則
所有方法,變數見名知意
類變數:首字母小寫駝峰 monthSalary
區域性變數:首字母小寫駝峰 monthSalary
方法名:首字母小寫駝峰 monthSalary
類名:首字母大寫駝峰 MonthSalary
常量:大寫字母加下劃線 MAX_VALUE
運算子
package Basic_of_Java;
public class Day4 {
public static void main(String[] args) {
//算數運算子
//Crtl+D 可以是當前所在的行復制到下一行
int a = 10;
int b = 20;
int c = 21;
System.out.println(a+b);
System.out.println(a*b);
System.out.println(a-b);
System.out.println(a/(double)b);
System.out.println(c%b);
//賦值運算子
System.out.println("----------");
int a1 = 10;
int a2 = 20;
System.out.println(a1);
a1 = a2;
System.out.println(a1);
//關係運算子 返回布林值boolean
int b1 = 13;
int b2 = 14;
System.out.println("----------");
System.out.println(b1 > b2);
System.out.println(b1 < b2);
System.out.println(b1 >= b2);
System.out.println(b1 <= b2);
System.out.println(b1 == b2);
System.out.println(b1 != b2);
//還有instance of
//自動轉化 低向高
byte c1 = 10;
short c2 = 125;
int c3 = 1234;
long c4 = 12345678;
double c5 = 0.1;
System.out.println("----------");
System.out.println(c1+c2+c3);
System.out.println(c4+c5);//小數+整數->科學計數法表示
System.out.println(c2+c5);//太長才會
}
}
package Basic_of_Java;
public class Day5 {
public static void main(String[] args) {
//自增++ 自減--
int a = 2;
int b = a++;
//a = a + 1 先賦值再自增
System.out.println(b);
System.out.println(a);
//a = a + 1 先自增再賦值
int c = ++a;
System.out.println(c);
System.out.println(a);
//Math 運用
//Math.pow 型別是 double double -> int 需要強制轉化(高到低)
double d = Math.pow(2,3);
System.out.println(d);
}
}
package Basic_of_Java;
public class Day6 {
public static void main(String[] args) {
//邏輯與&& 邏輯或|| 邏輯非!
boolean a = true;
boolean b = false;
//字串+執行語句 實現拼接
System.out.println("a && b :"+(a && b));//&& 只能用於布林值
System.out.println("a || b :"+(a || b));//&& 只能用於布林值
System.out.println("!(a && b) :"+!(a && b));//&& 只能用於布林值
//短路與,短路或
int c1 = 2;
boolean a1 = (c1 < 4) && ((c1++) < 4);
System.out.println("----------");
System.out.println(a1);
System.out.println(c1);//3
int c2 = 5;
boolean a2 = (c2 < 4) && ((c2++) < 4);
System.out.println("----------");
System.out.println(a1);
System.out.println(c2);//5
//總結:當與運算在第一個就遇到false時候不會在在執行&&後面的,叫做短路運算
//位運算
/*
A 0011 0101
B 1110 0001
------------
A & B 0010 0001
A | B 1111 0101
A ^ B 1101 0100 //相同取0 不同取1
~B 0001 1110
------------
>> *2 << /2
面試題
2*8 高效運算 運用底層算更快
2*(2<<2)
*/
}
}
package Basic_of_Java;
public class Day7 {
public static void main(String[] args) {
//字元連結符 +
int a = 16;
int b = 14;
//string在後面,a+b先運算再轉化成字串後拼接
System.out.println(a+b+"");
//string在前面,全部轉化成字串後直接拼接:""+16 = "16"+14= "1614"
System.out.println(""+a+b);
//條件運算子
//x?y:z x是否為true,是返回y,不是返回z
int core = 50;
String isPass = (core > 60)? "及格":"不及格";
System.out.println("----------");
System.out.println(isPass);
}
}
包機制
package com.Adomi.www (舉例)
一般為公司域名的倒置
import -------- 匯入包(類似c語言的標頭檔案)
要匯入的包太多,可以使用萬用字元*
import com.*;
JavaDoc
package com.Adomi.basic;
/**
* @author Adomi
* @version 1.0
* @since 1.8
*/
public class Doc {
/**
* @author Adomi
* @param name
* @return
*/
public String test(String name) {
return name;
}
}
與註釋的區別:可以生成樹,html網頁
透過命令列 javadoc -encoding UTF-8 -charset UTF-8 Doc.java
javaDoc (引數) java檔名
看開發文件
筆記來源於此影片:狂神說Java