1. 程式人生 > 其它 >Java基礎知識第二章

Java基礎知識第二章

Java基礎04:型別轉換

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

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

public class Demo {
    public static void main(String[] args){
        int i = 128;
        byte b = i;		//此處會報錯,因為byte和int不是同一型別
    }
}

解決方法:

public class Demo {
    public static void main(String[] args){
        int i = 128;
        byte b = (byte)i;		
        
        低--------------------------------->高
        byte short char int long float double
        
        //強制轉換	(型別)變數名     高--低
        //自動轉換	               低--高
        
        System.out.println(i);
        System.out.print(b);
    }
}

執行這個程式,輸出i和b:

我們發現i和b的值並不相等,那是因為byte型別的取值範圍是-128~127,所以這裡造成了記憶體溢位的情況

注意點:

不能對布林值進行轉換

不能把物件型別轉換為不相干的型別

在把高容量轉換到低容量的時候,強制轉換

轉換的時候可能存在記憶體溢位,或者精度問題!

public class Demo{
    public static void main(String[] args){
        //操作比較大的數的時候,注意溢位問題
        //JDK7新特性,數字之間可以用下劃線分割
        int money = 10_0000_0000;
        int years = 20;
        int total = money*years;			//-1474836480,計算的時候溢位了
        long total2 = money*years;			//-1474836480,預設是int,轉換之前已經存在問題了
        
        long total3 = money*((long)years);	//200_0000_0000,先把一個數轉換為long
        System.out.println(total3);
    }
}

Java基礎05:變數、常量、作用域

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

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

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

type varName [=value][{,varName[=value]}];
//資料型別  變數名 = 值;可以使用逗號隔開來宣告多個同類型變數

注意事項:

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

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

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

變數作用域

  • 類變數
  • 例項變數
  • 區域性變數
public class Variable{
    static int allClicks = 0;		//類變數
    String str = "hello world";		//例項變數
    
    public void method(){
        int i = 0;			//區域性變數
    }
}
public class Demo{
    
    //類變數	static
    static double salary = 2500;
    
    //例項變數:從屬於物件。如果不自動初始化,預設為這個型別的預設值	0 0.0
    //布林值:預設是false
    //除了基本型別,其餘的預設值都是null
    String name;
    int age;
    
    //main方法
    public static void main(String[] args){
        //區域性變數:必須宣告和初始化值
        int i = 10;
        System.out.println(i);		//print後加ln代表輸出完後換行
        
        //變數型別 變數名字 = new Demo();
        Demo demo = new Demo();
        System.out.println(demo.age);
        System.out.println(demo.name);
        
        //類變數	static
        System.out.println(salary);
    }
    
    //其他方法
    public void add(){
        
    }
}

常量

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

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

final 常量名 = 值;
final double PI = 3.14;

常量名一般使用大寫字元

public class Demo{
    
    //修飾符,不存在先後順序
    static final double PI = 3.14;
    
    public static void main(String[] args){
        //常量	final
        System.out.println(PI);
    }
}

變數的命名規範

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

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

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

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

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

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

Java基礎06:基本運算子

Java語言支援如下運算子:

  • 算術運算子:+,-,*,/,%,++,--
  • 賦值運算子:=
  • 關係運算符:>,<,>=,<=,==,!= instanceof
  • 邏輯運算子:&&,||,!
  • 位運算子:&,|,^,~,>>,<<,>>>(瞭解!!!)
  • 條件運算子:?:
  • 擴充套件賦值運算子:+=,-=,*=,/=

Java基礎07:自增自減運算子,初識Math類

public class Demo{
    public static void main(String[] args){
        //++	--	自增,自減	一元運算子
        int a = 3;
        
        int b = a++;			//先給b賦值,再自增
        //a = a + 1;
        System.out.println(a);
        //a = a + 1;
        int c = ++a;			//先自增,再給b賦值
        
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
    }
}

程式碼執行結果如下:

使用Math類進行一些絕對值(abs),冪(pow)操作:

public class Demo{
    public static void main(String[] args){
        
        //冪運算 2^3	2*2*2 = 8	很多運算,我們會使用一些工具類來操作!
        
        double pow = Math.pow(2,3);		//這裡代表2^3,逗號前面代表底數,後面代表指數
        System.out.println(pow);
    }
}