2021.9.15
三大開發工具
JDK(包含jre和jvm,還有自己工具java和javac等等)
JRE(運作時環境,包含虛拟機,和一些簡單的函數、庫、檔案等等)
JVM(java虛拟機,模拟了一個小巧的cup運作java)
HelloWold
1.建立檔案夾,存放代碼
2.建立一個Java檔案
3.編寫代碼
public class Hello{
public static void main(String[] args){
System.out.println("Hello,World!");
}
}
4.編譯檔案javac java檔案(在檔案所在目錄下編譯)
5.運作class檔案,java 檔案名
Java運作機制
編譯型:負責翻譯程式,将進階語言變成機器語言
解釋型:邊寫邊翻譯
IDEA入門
psvm快速打出public static void main(String[] args){ }
sout快速打出System.out.println();
注釋
//這是一個注釋(單行注釋)
/* 這是一個注釋*/(多行注釋)
//JavaDos:文檔注釋
/**
*@Description
*/
辨別符
Java所有的組成部分都需要名字,類名、變量名以及方法名都被稱為辨別符
辨別符隻能以字母,$,下劃線_開頭
不能使用關鍵字作為變量名或者方法名
辨別符是大小寫敏感的
編寫代碼最好使用英文
資料類型
強類型語言:要求變量十分規範,所有變量必須定義再使用(安全性高,但是速度慢)
基本類型
- 整數
- 浮點數(小數)float4個位元組,double占8個
-
字元類型char占2個位元組
Boolean類型占一位
public class demo02 { public static void main(String[] args) { //八大基本資料類型 //整數 int num1 = 102222; //最常用 byte num2 = 20; short num3 = 30; long num4 = 30L; //Long類型要在後面加一個L //小數:浮點數 float num5 = 50.1F;//Float類型要在數字後面加個F double num6 =3.14159265358; //字元型 char name0 = \'a\'; //字元串,String不是關鍵字,類 String name1 = "龍玉芹"; //布爾值 boolean flag1 = true; boolean flag2 = false; } }
public class demo03 { public static void main(String[] args) { //整數拓展: 進制 二進制0b 十進制 八進制0 十六進制0x // int i = 10; int i2 = 010; //八進制 int i3 = 0x10; //十六進制0x 0~9 A~F 16 System.out.println(i); System.out.println(i2); System.out.println(i3); System.out.println("-----------------------------------------------------"); //-------------------------------------------------------------------------- //浮點數拓展 //float 有限 離散 含有誤差 大約 接近但不等于 //double //最好完全避免使用浮點數進行比較 //最好完全避免使用浮點數進行比較 //最好完全避免使用浮點數進行比較 float f = 0.1f; double d = 1.0 / 10; System.out.println(f == d); System.out.println(f); System.out.println(d); float d1 = 232323234324324f; float d2 = d1 + 1; System.out.println(d1 == d2); //----------------------------------------------- //字元串擴充 System.out.println("------------------------------------------------------"); char c1 = \'a\'; char c2 = \'中\'; System.out.println(c1); System.out.println((int) c1);//強制轉換 System.out.println(c2); System.out.println((int) c2); //所有的字元本質還是數字 //編碼 Unicode 2位元組 65536 Excel //轉義字元 // \t 制表符 // \n 換行 System.out.println("HEllo\tWorld"); System.out.println("Hello \nWorld"); //----------------------------------------------------------------------- //布爾值擴充 boolean flag = true; if (flag == true) {} //新手 if (true) {} //老手 //兩者一樣,代碼應該更為精簡一些 } }
引用類型
類,接口,數組
類型轉換
由于Java是強類型語言,是以要進行運算的時候,有時需要用到類型轉換。
低--------------------------------------------------------高
byte,short,char->int->long->float->double
(小數的優先級一定大于整數)
運算中,不同類型的資料先轉換為同一類型,再進行運算。
強制類型轉換
自動類型轉換
public class demo04 {
public static void main(String[] args) {
int i =128;
/*byte b = (byte)i;*/ //記憶體溢出
double b = i;
//強制轉換 (類型)變量名 高--低
// 自動轉換 低--高
System.out.println(i);
System.out.println(b);
/*
注意點:
1. 不能對布爾值進行轉換
2.不能把對象類型轉換為不相幹的類型
3.把高容量轉到低容量時 ,強制轉換
4.轉換時可能存在溢出,或者精度問題
*/
System.out.println("----------------------");
System.out.println((int)23.7);
System.out.println((int)-45.89f);
System.out.println("----------------------");
char c = \'a\';
int d = c + 1;
System.out.println(d);
System.out.println((char) d);
}
}
public class demo05 {
public static void main(String[] args) {
//操作比較大的數字,注意溢出問題
//JDK7新特性,數字之間可以用下劃線分割
int money = 100_0000_000;
int years = 20;
int total1 = money * years; //溢出
long total2 = money * years; //預設是int,轉換之前已經存在問題
long total3 = money * ((long)years); //把其中一個數轉換成long類型
System.out.println(total3);
}
}