【Java伴學筆記】Day-02 變量|計算機的存儲方式|數據類型|標識符|鍵盤輸入流

一、變量

在Java中,變量用于存儲數據值,可以是數字、文本或其他類型的信息。Java中的變量必須聲明后才能使用,并且每個變量都有特定的類型。下面是一些基本的變量使用示例:

  1. 聲明一個整型變量并賦值
int myNumber;
myNumber = 10;

或者可以在一行中完成聲明和賦值:

int myNumber = 10;
  1. 聲明一個浮點型變量并賦值
double myDouble = 10.5;
  1. 聲明一個字符串變量并賦值
String myString = "Hello, world!";
  1. 聲明一個布爾型變量并賦值
boolean myBoolean = true;
  1. 使用變量進行計算
int a = 5;
int b = 10;
int sum = a + b;
System.out.println("The sum is: " + sum);
  1. 變量的作用域
public class Main {public static void main(String[] args) {int x = 10; // x可以在main方法內部訪問System.out.println("Value of x is: " + x);}public static void someMethod() {// System.out.println("Value of x is: " + x); // 這行代碼會報錯,因為x的作用域僅限于main方法}
}

在上面的例子中,變量x只能在main方法內部訪問,它不屬于someMethod方法的作用域。
7. 常量
在Java中,使用final關鍵字可以聲明一個常量,表示這個變量的值在初始化之后不能更改。

final double PI = 3.14159;
  1. 靜態變量
    靜態變量屬于類,而不是類的某個具體實例。它們可以在類的所有實例之間共享。
public class MyClass {public static int staticVariable = 10;public static void main(String[] args) {System.out.println("Value of staticVariable is: " + MyClass.staticVariable);}
}

這些例子展示了在Java中如何聲明、初始化和修改變量。根據您的具體需求,您可以選擇不同的變量類型和作用域。

變量相關的注意事項

  1. 只能存儲一個值。
  2. 變量名不允許重復定義。
  3. 一條語句可以定義多個變量。
  4. 變量在使用前一定要賦值。
  5. 變量的作用域范圍。

二、計算機的存儲方式

關于進制

二進制:Binary
十進制:Decimal
八進制:Octal
十六進制:Hexadecimal

請添加圖片描述

十進制轉為其他進制的方法

請添加圖片描述

編碼

請添加圖片描述

圖片的存儲

請添加圖片描述

聲音數據

請添加圖片描述

三、數據類型

在 Java 中,數據類型分為兩大類:基本數據類型(Primitive Data Types)和引用數據類型(Reference Data Types)。

基本數據類型

Java 有 8 種基本數據類型,它們分別是:

  1. byte:8 位有符號整數,取值范圍從 -128 到 127。
  2. short:16 位有符號整數,取值范圍從 -32,768 到 32,767。
  3. int:32 位有符號整數,取值范圍從 -2^31 到 2^31-1。
  4. long:64 位有符號整數,取值范圍從 -2^63 到 2^63-1。
  5. float:32 位 IEEE 754 浮點數。
  6. double:64 位 IEEE 754 浮點數。
  7. char:16 位 Unicode 字符,取值范圍從 ‘\u0000’(即為 0)到 ‘\uffff’(即為 65,535)。
  8. boolean:表示邏輯值 true 和 false。

示例代碼

public class Main {  public static void main(String[] args) {  // byte  byte b = 10;  System.out.println(b);  // short  short s = 20;  System.out.println(s);  // int  int i = 30;  System.out.println(i);  // long  long l = 999999999999999999L;  System.out.println(l);  // float  float f = 3.14f;  System.out.println(f);  // double  double d = 3.14;  System.out.println(d);;  // char  char c = 'a';  System.out.println(c);  }  
}

在 Java 中,當你定義一個 long 類型的變量并賦值時,如果該整數的值超出了 int 類型的范圍(-2^31 到 2^31-1),那么你需要明確地告訴編譯器這是一個 long 類型的值。這是因為整數常量在 Java 中默認是 int 類型的,除非你用某種方式指示編譯器將其視為 long 類型。

為了指示一個整數是 long 類型,你可以在整數值后面加上字母 L(大小寫均可,Ll),這樣做是為了避免整數溢出并提供清晰的代碼可讀性。例如:

long num = 123456789012345L; // 正確,指定為 long 類型

如果你不加上 L,并且數值超出了 int 的范圍,編譯器會報錯,因為它無法將大數值直接賦值給 int 類型的變量。例如:

int num = 123456789012345; // 錯誤,數值超出 int 范圍

在上面的例子中,你需要將數值后面的 L 添加到整數值來修正錯誤:

long num = 123456789012345L; // 正確,指定為 long 類型

需要注意的是,雖然 long 類型也可以接受小數,但是在這種情況下,小數會被視為 double 類型,而不是 long 類型。如果你想要將一個精確的小數賦值給 long 類型變量,你需要對其進行類型轉換。

引用數據類型

引用數據類型指向一個對象,它們包括:

  1. 類(Class):例如 String、Integer、System 等。
  2. 接口(Interface):一種只含有抽象方法和靜態常量的引用類型。
  3. 數組(Array):一種可以存儲多個同類數據項的容器。
  4. 枚舉(Enum):在 Java 5 中引入,用于定義一組固定的常量值。
    引用數據類型默認值為 null,表示沒有引用任何對象。
    基本數據類型和引用數據類型的主要區別在于:
  • 基本數據類型的變量直接存儲值,而引用數據類型的變量存儲的是對象的引用(內存地址)。
  • 基本數據類型在棧內存中分配空間,而引用數據類型的對象在堆內存中分配空間,引用(引用變量的值)在棧內存中。
  • 基本數據類型的賦值是值的復制,而引用數據類型的賦值是引用的復制。
  • 基本數據類型參與運算時是值參與,而引用數據類型參與運算時通常是對對象的引用參與。

四、標識符

什么是標識符?

在編程語言中,標識符(Identifier)是程序員定義的用來標識變量、函數、類、模塊或其他用戶定義的項目名稱的字符串。

命名規則

  1. 標識符必須以字母(A-Z,不區分大小寫)或下劃線開頭。
  2. 標識符不能是保留字或關鍵字。
  3. 標識符通常是大小寫敏感的(如 Java、C++、C# 等)。
  4. 標識符不能包含空格或其他標點符號(除下劃線和美元符號外)。
  5. 標識符的長度通常有限制,但這個限制因語言而異。

常用命名法

在編程中,常用的命名法有幾種,它們旨在提高代碼的可讀性和一致性。以下是一些常見的命名法:

  1. 駝峰命名法(CamelCase)
    • 小駝峰命名法(lowerCamelCase):第一個單詞以小寫字母開始,后續單詞的首字母大寫。常用于變量名、函數名和對象屬性。
      示例:firstName, lastName, calculateAge
    • 大駝峰命名法(UpperCamelCase):第一個單詞以大寫字母開始,后續單詞的首字母大寫。常用于類名、接口名和枚舉名。
      示例:Person, LinkedList, HttpRequest
  2. 蛇形命名法(Snake Case)
    • 所有單詞都用下劃線分隔,并且所有字母都是小寫。常用于Python和一些系統級別的編程語言。
      示例:first_name, last_name, calculate_age
  3. 帕斯卡命名法(Pascal Case)
    • 與大駝峰命名法相同,所有單詞的首字母都大寫。
      示例:Person, LinkedList, HttpRequest
  4. 匈牙利命名法(Hungarian Notation)
    • 在變量名前加上一個或多個前綴,以指示變量的類型或用途。這種命名法在現代編程中已經不太常見。
      示例:szName(字符串名稱),nAge(整型年齡)
  5. 下劃線命名法(Underscore Case)
    • 類似于蛇形命名法,但是使用單個下劃線來分隔單詞,并且通常用于私有變量或函數。
      示例:_first_name, _last_name, _calculate_age
  6. 大寫下劃線命名法(SCREAMING_SNAKE_CASE)
    • 所有單詞都用下劃線分隔,并且所有字母都是大寫。常用于常量名。
      示例:MAX_VALUE, TOTAL_COUNT
      不同的編程語言和開發社區可能會偏好不同的命名法。在選擇命名法時,最重要的是保持一致性,并遵循你所使用的編程語言或項目的標準約定。

五、鍵盤輸入流

在Java中,實現鍵盤輸入有多種方式,以下是一些常見的方法:

使用 Scanner

Scanner 類是Java標準庫中用于獲取用戶輸入的常用類。以下是一個簡單的例子:

// 導包 -- 尋找 Scanner 類
import java.util.Scanner;
public class Main {public static void main(String[] args) {// 創建對象 使用類 Scanner 實例化 對象 scannerScanner scanner = new Scanner(System.in);System.out.print("請輸入一個數字:");// 接收數據int num = scanner.nextInt();System.out.println("您輸入的數字是:" + num);scanner.close();}
}

補充知識

Java學習九—常用包(類)之java.util包 http://t.csdnimg.cn/Kg0BA

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/45016.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/45016.shtml
英文地址,請注明出處:http://en.pswp.cn/web/45016.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

企業如何選擇渲染農場?渲染100邀請碼1a12

渲染農場能降低企業成本,幫助企業更好的服務客戶,那么如何選擇渲染農場呢?又有什么標準?這次我們就來看下。 1、渲染性能 渲染性能是衡量農場優劣的重要指標,性能越好農場越優質,性能主要包括渲染速度、穩…

一文快速接入銀行卡識別API

銀行卡識別API 能通過機器學習和圖像識別技術來解析銀行卡相關信息,根據用戶上傳卡片自動識別內容,返回該卡的卡號、所屬銀行及銀行類型等信息。可以在用戶需要輸入銀行卡等相關信息時使用該功能,幫助用戶快速輸入正確信息,簡化用…

VPX3U架構+GPU景嘉微:基于飛騰處理器的全國產化刀片式板卡

近期承接了客戶一個全國產的VPX3U的項目。搭載的飛騰FT2000系列處理器的VPX3U板卡。服務于某某部門。這款產品擁有全國產化及自主可控的硬件技術。以下是基于飛騰FT2000處理器的VPX3U主板的一些特點: ①飛騰FT2000系列處理器 處理器:板卡兼容飛騰FT2000…

【觸摸屏】【紅十字會學習系統】功能模塊:視頻 + AI拍照合成

項目背景 提升公眾急救能力:確保每個人都能在緊急情況下采取正確的急救措施,減少傷害,挽救生命。培養人道主義價值觀:通過教育和培訓,傳播紅十字精神,促進社會對弱勢群體的關注與支持。建立社區響應網絡&a…

java同步塊介紹

在多線程編程中,同步塊(synchronized block)用于保護代碼塊,使得同一時間只有一個線程能夠執行該代碼塊,從而避免并發問題。同步塊使用一個對象作為鎖,確保在同步塊內對共享資源的訪問是線程安全的。 1. 什么是同步塊? 同步塊是 Java 中的一種同步機制,用于保護代碼塊…

【Linux】進程間通信(IPC)——匿名管道

目錄 為什么要進行進程間通信? 匿名管道的具體實現 pipe創建內存級文件形成管道 pipe的簡單使用 匿名管道的四種情況和五種特性 四種情況 五種特性 PIPE_BUF 命令行管道 | 功能代碼:創建進程池 為什么要進行進程間通信? 1.數據傳輸&…

第五天安全筆記(持續更新)

第五天防御筆記 NAT種類: 靜態NAT動態NATNapt 特點: 一對多----easy ip 多對多的napt 服務器的映射關系: 1.源NAT----基于IP地址進行轉換,包括靜態NAT,動態NAT,以及NAPT 2.目標NAT---基于目標IP地址進行轉換&a…

[筆記.AI]AI Agent理解(LLM AI Agent)

前幾天看到一個圖,感覺能幫助理解 AI Agent 的基本思想和原理,特摘過來備忘。順道加上自己目前對相關部分的理解,不一定對,權當做個記錄。 另外,專門查了下圖的來源,應該是源自 Lilian Weng 的博客文章《…

Android Studio啟動報錯:The emulator process for AVD Pixel_5_API_30 has terminated

Android Studio啟動AVD報錯: The emulator process for AVD Pixel_5_API_30 has terminated. 原因:安裝時使用自定義安裝后,修改了默認安裝目錄。 而avd文件默認在 C:\Users\用戶名\.android 目錄下。所以導致打開AVD時報錯。 解決方法&am…

SadTalker數字人服務器部署

一、單獨SadTalker部署 git clone https://github.com/OpenTalker/SadTalker.gitcd SadTalker conda create -n sadtalker python3.8conda activate sadtalkerpip install torch1.12.1cu113 torchvision0.13.1cu113 torchaudio0.12.1 --extra-index-url https://download.pyto…

切換node版本

一、在Linux上切換Node.js版本有多種實現方法: 1.使用nvm(Node Version Manager): 安裝nvm:可以通過curl或wget來安裝nvm,具體請參考nvm的官方文檔。 安裝不同版本的Node.js:使用nvm可以輕松…

快速上手綠聯私有云UGOS Pro系統Docker | 安裝/部署/管理/docker-compose一網打盡

快速上手綠聯私有云UGOS Pro系統Docker | 安裝/部署/管理/docker-compose一網打盡 哈嘍小伙伴們好,我是Stark-C~ 因為眾所周知的原因,關于最新發布的綠聯私有云UGOS Pro系統咱這里也不過多說,不過有一點不可否認:新系統專業性更…

用python寫一個基于ai agent協同供應鏈管理流程的案例

要實現一個基于AI Agent的協同供應鏈管理流程,我們可以參考以下步驟: 1. 首先,定義一個類SupplyChainManager,用于模擬供應鏈管理系統的功能。 python class SupplyChainManager: def __init__(self): self.warehouse Warehous…

代碼隨想錄第51天|單調棧

42. 接雨水 參考 思路1: 暴力解法 找每個柱子的左右高度超時 O(N^2) 思路2: 雙指針優化 class Solution { public:int trap(vector<int>& height) {vector<int> lheight(height.size(), 0);vector<int> rheight(height.size(), 0);lheight[0] hei…

nginx的正向與反向代理

正向代理與反向代理的區別 雖然正向代理和反向代理都涉及代理服務器接收客戶端請求并向服務端轉發請求&#xff0c;但它們之間存在一些關鍵的區別&#xff1a; 正向代理&#xff1a; 在正向代理中&#xff0c;代理服務器代表客戶端向服務器發送請求&#xff0c;并將服務…

ctfshow-web入門-php特性(web104-web108)

目錄 1、web104 2、web105 3、web106 4、web107 5、web108 1、web104 需要傳入的 v1 和 v2 進行 sha1 加密后相等。 解法1&#xff1a; 這里都沒有判斷 v1 和 v2 是否相等&#xff0c;我們直接傳入同樣的內容加密后肯定也一樣。 ?v21 post&#xff1a; v11 拿到 flag…

SQL 多變關聯使用子查詢去重

不去重狀態 select a.*,b.recon_amt from free_settlement_first aleft join free_settlement_second b on a.settlement_first_id b.settlement_first_id 有2條數據出現了重復 使用子查詢去重 select a.*,b.recon_amt from free_settlement_first aleft join free_settlem…

Vue 最新動態!!!

大家好,我是CodeQi! 一位熱衷于技術分享的碼仔。 當Vue 3.4在六個月前發布時,整個前端開發社區都為之振奮。這次更新不僅帶來了許多新特性,還解決了許多開發過程中遇到的痛點。 然而,時間飛逝,隨著我在項目中不斷應用這些新特性,逐漸積累了很多寶貴的經驗和心得。 今…

一篇學通Axios

Axios 是一個基于 Promise 的 HTTP 客戶端&#xff0c;用于瀏覽器和 node.js 環境。它提供了一種簡單易用的方式來發送 HTTP 請求&#xff0c;并支持諸如請求和響應攔截、轉換數據、取消請求以及自動轉換 JSON 數據等功能。 Axios 名字的由來 Axios 的名字來源于希臘神話中的…

Linux操作系統入門(適用java軟件開發)

1.什么是操作系統? 操作系統&#xff08;Operating System&#xff0c;簡稱 OS&#xff09;是一種系統軟件&#xff0c;它管理和控制計算機硬件與軟件資源&#xff0c;為用戶和應用程序提供一個接口和環境來訪問計算機系統的服務和功能。操作系統的主要目標是提供一個方便、有…