文章目錄
- 變量:就是一個數據儲存空間的表示
- 變量圖:
- 在線畫圖工具,點擊註冊即可使用(推薦使用)
- 變量的使用步驟:
- 變量的規則:
- java常用的數據類型:
- 數據類型說明
- 數據類型的取值範圍,很不容易記,但用思維記憶方式就很給力,該類型的位數減1就是2的次方數
- "字節" 和 "位" 的小知識:
- 變量的使用案例演示
- java中float和double的取值範圍是什麼?(瞭解)
- 練習
- 設置個人的文檔註釋
- 變量和常量的應用演示案例1:
- 變量和常量的應用演示案例2:
- 設置項目編碼:
- 設置全局編碼:
- Scanner對象的使用
- Scanner演示案例1:
- Scanner演示案例2:
- 自動轉換的規則:
- 自動轉換演示案例1:
- 自動轉換演示案例2:
- 案例沒有強轉,會報錯:
- 賦值運算符
- 兩個數據的交換演示案例1:
- 兩個數據的交換演示案例2:
- 算術運算符
- / % ++ --算術運算的演示案例1:
- / % ++ -- + - *算術運算的演示案例2:
- 求四位會員卡號之和演示案例:
- 關係運算符
- 邏輯運算符
- 邏輯運算符演示案例:
- 思考題
- 條件(三目)運算符
- 條件(三目)運算符演示案例:
- 經驗:
- 練習:
變量:就是一個數據儲存空間的表示
變量圖:
在線畫圖工具,點擊註冊即可使用(推薦使用)
變量的使用步驟:
-
第一步: 聲明變量,根據數據類型在內存申請空間
- 如:int num;
-
第二步:賦值,即“將數據存儲至對應的內存空間”
- 如: num=10;
注意: 第一步和第二步可以合併爲: 聲明賦值 int num=10;
- 第三步:使用變量,即“取出數據使用”
變量的規則:
- 字下美人數駱駝
- 不能用關鍵字: 如: public class int double
java常用的數據類型:
-
八大基本數據類型: char byte short int long float double boolean
-
引用數據類型: 數組 類(String) 接口
-
數值 : byte short int long float double
-
非數值: boolean String char
數據類型說明
數據類型的取值範圍,很不容易記,但用思維記憶方式就很給力,該類型的位數減1就是2的次方數
- case:int 的位數是32,那麼它的取值範圍爲(-232-1~~232-1-1),即該類型的取值範圍。
- 如圖:
“字節” 和 “位” 的小知識:
- 例如: int 爲 4 個字節 32 位
“1位”表示爲 1 bit
“1個字節”表示爲 1 Byte
“1個字節”=“8位” 即 1 Bytes=8 bit
因此“4個字節”=4*8位=32位
此外,字母使用1個字節(即8位)進行表示和存儲,而一個漢字則使用兩個字節(即16位,請看後面說明)進行表示和存儲。
說明:
一個漢字佔用的存儲空間大小取決於使用的編碼,一個漢字佔2字節,是在說國內的中文編碼標準GB2312、GBK、BG18030。
變量的使用案例演示
package org.gyun.test;
/**
* 輸出變量名
*
* @author DongGaoYun
*
*/
public class variableTest {
/**
* 主方法 實現需求:
*/
public static void main(String[] args) {
//使用變量分二步:
// 1.聲明賦值
String name = "張卓";
String sex = "男";
char sex1 = '女';
double score = 98.5;
// 2.使用變量
System.out.println("輸出Java課考試最高分:" + score);
System.out.println("輸出最高分學員姓名:" + name);
System.out.println("輸出最高分學員性別:" + sex1);
}
}
java中float和double的取值範圍是什麼?(瞭解)
一、兩者的取值範圍如下:
1、float:
最小值:Float.MIN_VALUE=1.4E-45 (2的-149次方)。
最大值:Float.MAX_VALUE=3.4028235E38 (2的128次方-1)。
2、double:
最小值:Double.MIN_VALUE=4.9E-324 (2的-1074次方)。
最大值:Double.MAX_VALUE=1.7976931348623157E308 (2的1024次方-1)。
二、IEEE754不是一個具體值,是IEEE二進位浮點數算術標準(IEEE Standard for Floating-Point Arithmetic)的標準編號,它規定了浮點數在計算機當中的存儲方式以及算術標準等。
(一)IEEE754的規定:
1、單精度浮點數字長32位,尾數長度23,指數長度8,指數偏移量127;雙精度浮點數字長64位,尾數長度52,指數長度11,指數偏移量1023。
2、約定小數點左邊隱含有一位,通常這位數是1,所以上述單精度尾數長度實際爲24(默認省略小數點左邊的1則爲23),雙精度尾數長度實際爲53(默認省略小數點左邊的1則問53)。
(二)IEEE754有三部分組成:
符號位、指數位、尾數位。三種精度的浮點數各個部分位數如下:
擴展資料:
IEEE754標準的特殊值:
標準規定了一些特殊值(零,無窮,非數字)的存儲方式 :
1、如果 指數 是0 並且 小數部分 是0, 這個數±0 (和符號位相關,這就是上文說的原因) 。
2、如果 指數 = 2^e - 1並且 小數部分 是0, 這個數是 ±無窮大 (同樣和符號位相關) 。
3、如果 指數 = 2^e - 1並且 小數部分 非0, 這個數表示爲不是一個數(NaN)。
具體如下:
練習
設置個人的文檔註釋
- 設置個人文檔註釋的步驟:
- 註釋信息:
/**
- @Description:描述信息
- @Author:DongGaoYun
- @Date:${date} ${time}
- */
變量和常量的應用演示案例1:
package org.gyun.type_variable;
/**
* @ClassName:FinalVariable.java
* @Description:使用變量和常量
* @Author:DongGaoYun
* @URL: www.gyun.org
* @Email:[email protected]
* @QQ:1050968899
* @WeiXin:QingYunJiao
* @Date:2019-8-29 上午9:54:29
* @Version:1.0
*/
public class FinalVariable {
/**
* 主方法
*/
public static void main(String[] args) {
//variableTest();
//常量
// 1.聲明賦值
//變量 字下美人數駱駝
final String NAME_DONG_GAO_YUN = "董老師";
// 2.使用
System.out.println(NAME_DONG_GAO_YUN);
}
private static void variableTest() {
// 變量
// 1.聲明賦值
int num = 10;
// 2.使用
System.out.println(num);
}
}
變量和常量的應用演示案例2:
package org.gyun.test;
/**
* @ClassName:Test5.java
* @Description:常量用法
* @Author:DongGaoYun
* @URL: www.gyun.org
* @Email:[email protected]
* @QQ:1050968899
* @WeiXin:QingYunJiao
* @Date:2019-9-3 下午2:13:58
* @Version:1.0
*/
public class Test5 {
//主方法
public static void main(String[] args) {
//常量有什麼規則
/*
* 1.常量名都是大寫
* 2.多個單詞之間用下劃線。DONG_GAO_YUN
* 3.final關鍵字
* 4.還能賦值嗎?不能 final:最終的
*/
final int I=1;
//I=2;
System.out.println(I);
}
}
設置項目編碼:
設置全局編碼:
- Scanner對象 最好使用GBK
Scanner對象的使用
Scanner演示案例1:
package org.gyun.scanner;
import java.util.*;
/**
* @ClassName:ScannerTest.java
* @Description:Scanner的應用
* @Author:DongGaoYun
* @URL: www.gyun.org
* @Email:[email protected]
* @QQ:1050968899
* @WeiXin:QingYunJiao
* @Date:2019-8-29 上午10:11:00
* @Version:1.0
*/
public class ScannerTest {
/**
* 分析需求: 1. 導入包 2.聲明(創建)對象 3.使用
*/
public static void main(String[] args) {
// 使用Scanner 1.導包 2.創建對象 3.使用
Scanner input = new Scanner(System.in);
System.out.println("請輸入一個數字: ");
int num = input.nextInt();
System.out.println("請輸入您的姓名: ");
String name=input.next();
// 打印
System.out.println("輸入的數字爲: " + num);
System.out.println("輸入的姓名爲: " + name);
}
}
Scanner演示案例2:
package org.gyun.test;
import java.util.Scanner;
/**
* @ClassName:Test2.java
* @Description:Scanner的應用
* @Author:DongGaoYun
* @URL: www.gyun.org
* @Email:[email protected]
* @QQ:1050968899
* @WeiXin:QingYunJiao
* @Date:2019-9-2 下午4:57:36
* @Version:1.0
*/
public class Test2 {
// 主方法,完成需求:
// 分析需求:輸入字符串用Scanner對象,輸出用System.out.println("")打印
// 1.引包
public static void main(String[] args) {
// 2.創建對象
Scanner input = new Scanner(System.in);
System.out.println("請輸入一個字符串:");
// 打印一行字符串
String str = input.nextLine();
// 使用對象
System.out.println("輸入的字符串爲:" + str);
}
}
自動轉換的規則:
自動轉換演示案例1:
package org.gyun.scanner;
import java.util.*;
/**
* @ClassName:ScannerTest.java
* @Description:Scanner的應用
* @Author:DongGaoYun
* @URL: www.gyun.org
* @Email:[email protected]
* @QQ:1050968899
* @WeiXin:QingYunJiao
* @Date:2019-8-29 上午10:11:00
* @Version:1.0
*/
//@SuppressWarnings("all")
public class ScannerTest {
/**
* 分析需求: 1. 導入包 2.聲明(創建)對象 3.使用
*/
public static void main(String[] args) {
//scannerTest();
//自動轉換有兩個條件:
//1.都是數據類型,可以相互兼容
//2.目標類型必須大於等於源類型
int a=10;
short b=(short) a;//強轉
double c=a;//自動轉換
}
private static void scannerTest() {
// 使用Scanner 1.導包 2.創建對象 3.使用
Scanner input = new Scanner(System.in);
System.out.println("請輸入您的姓名: ");
String names=input.nextLine();
System.out.println("請輸入您的姓名: ");
String name=input.next();
System.out.println("請輸入一個數字: ");
int num= input.nextInt();
// 打印
System.out.println("輸入的數字爲: " + num);
System.out.println("輸入的姓名爲: " + name);
System.out.println("輸入的姓名爲: " + names);
}
}
自動轉換演示案例2:
package org.gyun.test;
/**
*
* @ClassName:Test1.java
* @Description:測試float double的區別
* @Author:DongGaoYun
* @URL: www.gyun.org
* @Email:[email protected]
* @QQ:1050968899
* @WeiXin:QingYunJiao
* @Date:2019-9-2 下午4:39:32
* @Version:1.0
*/
public class Test1 {
//主方法
public static void main(String[] args) {
//float和long使用時要注意加相應的字母。如float要加f,long要加l
float f=2.23f;
double d=2.23;
int num=23;
long l=23l;
short s=90;
//自動轉換:
short s2=10;
int i2=s2;
//強轉
byte b2=(byte) s2;
int i3=10;
double d3=i3;
//自動轉換有兩個條件:
//1.都是數據類型,可以相互兼容
//2.目標類型必須大於等於源類型,否則強轉
i3=(int) d3;
}
}
案例沒有強轉,會報錯:
-
bug原因:
- 目標類型小於源類型
-
自動轉換有兩個條件:
- 都是數據類型,可以相互兼容
- 目標類型必須大於等於源類型
賦值運算符
- “=” java賦值號
兩個數據的交換演示案例1:
package org.gyun.num;
/**
* @ClassName:NumTest.java
* @Description:兩個數據的交換
* @Author:DongGaoYun
* @URL: www.gyun.org
* @Email:[email protected]
* @QQ:1050968899
* @WeiXin:QingYunJiao
* @Date:2019-8-29 上午11:22:41
* @Version:1.0
*/
public class NumTest {
/**
* 主方法 分析需求:
* 1.已知條件num1=6; num2=8;源
* 2.交換成num1=8; num2=6;
* 目標 我怎麼去做?
* 學會借力:借一個容器
* 3.聲明 num3=0; 賦值運算符 num3=num1; //num3=6 num1=num2; //num1=8
* num2=num3; //num2=6;
*
*/
public static void main(String[] args) {
// 聲明賦值
int num1 = 6;
int num2 = 8;
// 聲明臨時容器
int temp = 0;
// 使用
temp = num1; // num3=6
num1 = num2; // num1=8
num2 = temp; // num2=6;
//打印
System.out.println("num1=" + num1);
System.out.println("num2=" + num2);
}
}
兩個數據的交換演示案例2:
package org.gyun.test;
/**
* @ClassName:Test3.java
* @Description:兩個整數的互換
* @Author:DongGaoYun
* @URL: www.gyun.org
* @Email:[email protected]
* @QQ:1050968899
* @WeiXin:QingYunJiao
* @Date:2019-9-2 下午5:11:51
* @Version:1.0
* 實現需求分析:
* 已知條件:1.int num1=1; 2.int num2=2;
* 得到結果: 1.int num1=2; 2.int num2=1;
* 生活中怎麼交換兩個容器的東東
* 通常借力:第三個容器
* 把其中的一個容器A的東東放到第三個容器C裏,
* 然後再把另外一個容器B的東東放在容器A裏,
* 再次把容器C的東東放在容器B裏。
* 最後達成互換。
*
*
*/
public class Test3 {
/**
*完成需求:
*/
public static void main(String[] args) {
//聲明變量
int num1=1;
int num2=2;
System.out.println("互換之前的打印:int num1="+num1+"---int num2="+num2);
//數據的互換
//藉助第三個變量
int temp;
//具體做法:
temp=num1;
num1=num2;
num2=temp;
System.out.println("————————————————————————");
System.out.println("互換之後的打印:int num1="+num1+"---int num2="+num2);
}
}
算術運算符
/ % ++ --算術運算的演示案例1:
package org.gyun.num;
/**
* @ClassName:Test3.java
* @Description:使用/ % ++ --的應用
* @Author:DongGaoYun
* @URL: www.gyun.org
* @Email:[email protected]
* @QQ:1050968899
* @WeiXin:QingYunJiao
* @Date:2019-8-29 上午11:35:48
* @Version:1.0
*/
public class Test3 {
//主方法
// ++ 自身加1
// -- 自身減1
//++i 自身先加1,再賦值
//i++ 先賦值,再加1;
//--i 自身先減1,再賦值
//i-- 先賦值,再減1;
public static void main(String[] args) {
// "/"
//取整數的商 //2
int num1=5/2;
System.out.println(num1);
// "%"
//取整數的餘
int num2=5%2;
//打印需求:
System.out.println(num2); //1
System.out.println(++num2);//2
System.out.println(num2++);//3
System.out.println(num2--);//3 2
System.out.println(num2--);//2 1
// 1 2 2 3
num1=num2++ +num2++ +--num2+ ++num2;
System.out.println(num1);
//作業
//num1= --num1+num2+++++num2+--num2+++num1;
}
}
/ % ++ – + - *算術運算的演示案例2:
package org.gyun.demo;
/**
* @ClassName:Demo1.java
* @Description:算術運算符
* @Author:DongGaoYun
* @URL: www.gyun.org
* @Email:[email protected]
* @QQ:1050968899
* @WeiXin:QingYunJiao
* @Date:2019-9-3 下午2:20:04
* @Version:1.0
*/
public class Demo1 {
// / % ++ -- + - *
// 如果不在主方法裏聲明變量,那麼全局變量必須加static(瞭解)
public static void main(String[] args) {
int i = 1;
int count = 0;
count += i;// 等價於:count=count+i;
count *= i;// 等價於:count=count*i;
count -= i;// 等價於:count=count-i;
// 面試題
short s1 = 1; // s1=1
short s2 = 2; // s2=2
// s2= s1 + s2; //兩個short值相加有可能超出short的最大範圍32767,所以會報錯
// short的最大取值範圍:
System.out.println(Short.MAX_VALUE);//32767
s2 += s1;// 等價於: s2=s2+s1; 但jvm幫你優化了右邊的表達式 s2+s1=3;所以正確 //s1=1 s2=3
// ++ --
// ++ 自增1
// -- 自減1
// 分析:
// i++ 先賦值,再自身加1
// i-- 先賦值,再自身減1
// ++i 自身加1,再賦值
// --i 自身減1,再賦值
// s1=1 s2=3
s1++; // 2
s2++; // 4
System.out.println(s1++); // 2 1 1 2 1 //s1=2; 2
System.out.println(s2++); // 4 3 3 3 3 //s2=4; 4
System.out.println(s1--); // 1 1 2 0 2 3
System.out.println(s2--); // 3 3 4 1 4 5
// s1=2 s2=4;
System.out.println(s1-- + s2++ + --s1 + ++s2 + ++s1);
// 2 + 4 0 6 1
// s1--+s2+++--s1+++s2-++s1 //課後作業
}
}
求四位會員卡號之和演示案例:
package org.gyun.scanner;
import java.util.Scanner;
/**
* @ClassName:ScannerCardTest.java
* @Description 求四位會員卡號之和
* @Author:DongGaoYun
* @URL: www.gyun.org
* @Email:[email protected]
* @QQ:1050968899
* @WeiXin:QingYunJiao
* @Date:2019-8-29 下午12:06:51
* @Version:1.0
*/
public class ScannerCardTest {
/**
* 主方法
* 分析需求:
* 1. 技術點:Scanner對象 算術運算符 / % 賦值運算符 = 打印
* 2. 變量名: ones 個位 tens 十位 hundreds 百位 thousands 千位
* 3. 細化:Scanner 1.導包 2. 創建對象 3. 使用
*
*/
public static void main(String[] args) {
//輸入四位會員卡號:
//Scanner 1.導包 2. 創建對象 3. 使用
Scanner input =new Scanner(System.in);
System.out.println("請輸入四位會員卡號: ");
int card = input.nextInt();
//得到個位:
int ones=card%10;
System.out.println("個位的數爲:"+ones);
//得到十位:
int tens=card/10%10;
System.out.println("十位的數爲:"+tens);
//得到百位:
int hundreds=card/100%10;
System.out.println("百位的數爲:"+hundreds);
//得到百位:
int thousands=card/1000;
System.out.println("千位的數爲:"+thousands);
System.out.println("四位的會員卡號之和爲: "+(ones+tens+hundreds+thousands));
}
}
關係運算符
邏輯運算符
邏輯運算符演示案例:
package org.gyun.scanner;
/**
* @ClassName:TestAnd_Or.java
* @Description:邏輯運算符 && || !
* @Author:DongGaoYun
* @URL: www.gyun.org
* @Email:[email protected]
* @QQ:1050968899
* @WeiXin:QingYunJiao
* @Date:2019-8-29 下午12:23:13
* @Version:1.0
*
* && 短路與(且) 左邊的爲true 纔去看右邊 否則不用看右邊 左邊和右邊同時成立,結果纔是true
* || 短路或 左邊爲true 右邊就不用看了,只要有一邊是true,結果就是true !
* 取非 是true取非,結果就是false 是false取非,結果就是true
*/
public class TestAnd_Or {
public static void main(String[] args) {
// 聲明賦值
int num = 5;
int num1 = 6;
int num2 = 7;
String str = "李自成";
// "!" 取非
if (!str.equals("李自成")) {
System.out.println(1);
} else {
System.out.println(2);
}
// "&&" 短路與(且)
if (num > num1 && num2 > num1) {
System.out.println(num2);
} else {
System.out.println(num1);
}
// "||" 短路或
if (num > num1 || num2 > num1) {
System.out.println(num2);
} else {
System.out.println(num1);
}
}
}
思考題
條件(三目)運算符
條件(三目)運算符演示案例:
package org.gyun.test;
import java.util.*;
/**
* @ClassName:CardTest6.java
* @Description:求中獎
* @Author:DongGaoYun
* @URL: www.gyun.org
* @Email:[email protected]
* @QQ:1050968899
* @WeiXin:QingYunJiao
* @Date:2019-9-3 下午3:25:03
* @Version:1.0
*/
public class CardTest6 {
/**
* 主方法 分析需求: 求四位會員卡號之和大於20,即中獎 1. 技術點:Scanner對象 算術運算符 / % 賦值運算符 = 打印 關係運算符
* 條件運算符 2. 變量名: ones 個位 tens 十位 hundreds 百位 thousands 千位 3.
* 細化:Scanner 1.導包 2. 創建對象 3. 使用
*
*/
public static void main(String[] args) {
// Scanner 三步走:引包 創建對象 使用
Scanner input = new Scanner(System.in);
// 打印
System.out.print("請輸入四位會員卡號:");
int card = input.nextInt();
System.out.println("您輸入四位會員卡號爲:" + card);
// 個位
int ones = card % 10; // 4567
System.out.println(ones);
// 十位
int tens = card / 10 % 10; // 4567
System.out.println(tens);
// 百位
int hundreds = card / 100 % 10; // 4567
System.out.println(hundreds);
// 百位
int thousands = card / 1000; // 4567
System.out.println(thousands);
int sum = ones + tens + hundreds + thousands;
// 關係運算符
/*
* if(sum>20){ System.out.println("恭喜你!中獎了!"); }
*/
// 三目運算符
String str = sum > 20 ? "恭喜你!中獎了!" : "沒有中獎";
System.out.println(str);
}
}
經驗:
練習:
- Java入門-Java學習路線課程第一課:初識JAVA
- Java入門-Java學習路線課程第三課:選擇結構
- Java入門-Java學習路線課程第四課:循環結構
- Java入門-Java學習路線課程第五課:一維數組
- Java入門-Java學習路線課程第六課:二維數組
- Java入門-Java學習路線課程第七課:類和對象
- Java入門-Java學習路線課程第八課:方法和方法重載
- Java入門-Java學習路線擴展課程:equals的使用
- Java入門-Java學習路線課程面試篇:取商 / 和取餘(模) % 符號的使用
- Java進階-Java學習路線課程第一課:Java集合框架-ArrayList和LinkedList的使用
- Java進階-Java學習路線課程第二課:Java集合框架-HashSet的使用及去重原理
- JavaWEB-Java學習路線課程:使用MyEclipse工具新建第一個JavaWeb項目(一)
- JavaWEB-Java學習路線課程:使用MyEclipse工具新建項目時配置Tomcat服務器的方式(二)
- Spring框架-Java學習路線課程第一課:Spring核心
- Spring框架-Java學習路線課程:Spring的擴展配置
- Springboot框架-Java學習路線課程:Springboot框架的搭建之maven的配置
- java學習:在給學生演示用Myeclipse10.7.1工具生成War時,意外報錯:SECURITY: INTEGRITY CHECK ERROR
- 使用jquery發送Ajax請求的幾種異步刷新方式
- idea Springboot啓動時內嵌tomcat報錯- An incompatible version [1.1.33] of the APR based Apache Tomcat Native
- 一個簡單的SSM框架Demo(登錄(包含攔截器)和註銷