【Java從入門到頭禿專欄 】(二) 注釋 數據類型 變量 常量 關鍵字 標識符 運算符 輸入輸出

???目錄

?1 注釋

?2 數據類型

?3 變量與常量

?4 關鍵字、標識符

?5 運算符

?6 鍵入值、輸出值


?1 注釋

????????注釋就是寫在程序中對代碼進行解釋說明的文字,方便自己和其他人查看,以便大家更加容易理解程序。注釋雖然寫在程序中,但是并不參與程序的執行,javac.exe程序在將.java文件編譯成.class文件時將不再保留注釋。

注釋的三種格式:

  • 單行注釋:// 注釋內容
  • 多行注釋:/*? 注釋內容 */
  • 文檔注釋:/**? ?注釋內容? ?*/

IDEA中相關的快捷鍵:

  • 對選中的代碼行進行單行注釋,默認為光標所在代碼行進行單行注釋:Ctrl + /
  • 對選中的代碼行進行多行注釋,默認在光標處添加一個多行注釋:Ctrl + Shift + /

上述快捷鍵按單數次是加注釋,雙數次是解開注釋。

?2 數據類型

? ? ? ? Java是一種強類型語言,這就意味著必須為每一個變量聲明一種類型。數據類型分為基本數據類型和引用數據類型,基本數據類型又分為4類8種。

2.1 基本數據類型

?????2.1.1?整型

類型

占用字節數

取值范圍
byte1-128 ~ 127
short2-32768 ~ 32767
int4-2147483648 ~?2147483648
long8-9223372036854775808 ~?9223372036854775808

整型數默認為int型,所以在變量初始化的時候,長整型數值要有一個后綴L或者l表示該數值是長整型,eg:4000000L即是一個長整型數值。

????????在Java中不同進制整型數據的書寫格式不同,二進制以0B或者0b開頭,八進制以0開頭,十六進制以0X或者0x開頭,eg:97的二進制寫法0B01100001、八進制寫法0141、十六進制寫法0x61

??????2.2.2 浮點類型

類型占用字節數精度
float46 ~ 7位有效數字
double815位有效數字

浮點型數據默認為double型,所以在變量初始化的時候,單精度數值要有一個后綴F或者f表示該數值是單精度的,eg:99.99F。?

? ? ? ? 浮點類型用于表示有小數部分的數值,double的精度大概是float的兩倍,所以稱float為單精度數double為雙精度數。實際上,只有很少的情況適合使用float類型,eg:需要一個單精度的庫,或者存儲的數據量很大的時候。

??????2.3.3 字符型

類型占用字節數取值范圍
char20 ~ 65535

? ? ? ? char型的數據使用時都要用單引號括起來,eg:'A'。除了常見的char型數據,還有一些特殊的轉義字符,比如:\b表示退格、\t表示鍵盤的tab鍵、\n表示換行操作、\r表示鍵盤的enter鍵、\u加4個十六進制數表示一個Unicode編碼值、\'表示一個單引號、\"表示一個雙引號、\\表示反轉義

??

??????2.4.4 布爾類型

類型占用字節數取值范圍
boolean1true 、 false

? ? ? ? boolean型只有兩個取值范圍用于判斷邏輯條件,那就是true和false。整型值和boolean值之間不能進行相互轉換。在C或者其他一些程序語言中,非0的值表示true即真,0表示false即假,但是在Java中boolean只有true和false兩種取值表示真假。

? ?

2.2 類型轉換

? ? 2.2.1 自動類型轉換

????????類型范圍小的變量可以直接賦值給類型范圍大的變量,char轉換成int是將其對應的ASCII碼賦給int型變量。實線箭頭表示無損失轉換,虛線箭頭的轉換可能伴隨有精度損失,不管是什么箭頭都具有傳遞性,即不管通過幾個箭頭能指向的地方都可以進行自動類型轉換。

? ?

??????2.2.2 表達式中的自動類型轉換

????????在表達式(用一個二元運算符連接兩個值)中,小范圍的變量會自動轉換成較大范圍的類型進行計算。

????????😏表達式的最終結果由表達式中的最高類型決定,比如說int + long = long、long + float = float……

????????😣byte、short、char都是直接轉換成int進行運算,也就是說byte + byte = int、short + short = int……

? ??

? ? 2.2.3 強制類型轉換(cast)

? ? ? ??類型范圍小的變量不可以直接賦值給類型范圍大的變量,除非使用強制類型轉換,否則會報錯。強制類型轉換的格式如下:

大數據類型 變量1 = (小數據類型) 變量2或者是數據;

? ? ? ? 🤐如果在強制轉換的過程中,數值大小超過小數據類型的取值范圍的話,結果將會被截斷成兩個完全不同的值,eg:(byte)1500 = -36,原理如下:

? ? ? ? ?🥱浮點型強轉為整型,直接丟掉小數部分,只保留整數部分,而并不是結果四舍五入。

?3 變量與常量

????????變量就是一個用來存儲數據的內存區域,且里面存儲的數據可以發生改變,常量就是存儲的數據不能發生改變的變量。

變量統一使用 lowerCamelCase 風格,也就是常說的駝峰命名中的小駝峰,eg:femaleNum。

常量名全部大寫,單詞間用下劃線隔開,力求語義表達完整清楚,不要嫌名字長,eg:MAX_STOCK_COUNT。

??3.1 變量的聲明與賦值

聲明并初始化一個變量

數據類型 變量名 = 初始值;?

當然在還沒想好一個變量的初始值大小的時候,可以先聲明變量再對變量進行賦值操作。在Java中,變量的聲明要盡可能的靠近變量的第一次使用或者賦值的地方。

數據類型 變量名;

變量名 = 變量值;

Java中允許一次聲明多個變量,但是不提倡這么使用,逐一聲明更能提高程序的可讀性

數據類型 變量名,變量名,變量名……;

變量使用的注意事項:

  • 變量必須先聲明才能使用
  • 變量聲明后只能存儲聲明時的數據類型,其他不行
  • 變量的有效范圍是從定義的位置開始到“}”截止,在同一個范圍內定義的變量命名不能相同。
  • 定義變量的時候可以沒有初始值,但是使用時變量必須是已經初始化過的,也就是說使用時的變量必須是有值的

??

? ?3.2 常量

? ? ? ? 常量在main方法的外部定義,因此在同一個類的其他地方中也可以使用這個常量,如果這個常量還被聲明為public的話,其他類的方法也能使用它。

常量的聲明并初始化一般采用下列格式:

public static final 數據類型 常量名 = 初始值;?

?4 關鍵字、標識符

? ? ? ? 關鍵字是Java中自己保留的一些單詞,作為特殊功能使用,比如數據類型的int、short、long、byte、double……一些特殊含義的單詞class、const、if、for、else……保留字有很多,但是不需要刻意去記,隨著學習的深入就可以自己總結一堆的關鍵字。

? ? ? ? 標識符就是有一些字符、符號組合起來的名稱,用于給類、方法、變量等起名的規則。標識符規則如下:

  1. Java變量命名只能使用字母數字下劃線(_)美元符號($)組成。
  2. 變量名不能以數字開頭,而且使用$開頭雖然沒錯但是不推薦使用。
  3. 變量名可以和java關鍵字一樣,但是可以包含關鍵字。
  4. 區分大小寫(大小寫不同代表不同的標識符)

??

計算機中的數據存儲形式:

數字變量在計算機中的存儲形式:二進制

字符變量在計算機中存儲的形式:ASCII碼

圖片、音視頻在計算機中的存儲:二進制文件?

5 運算符

? ? 5.1? 算術運算符

符號作用
+
-
*
/除(在Java中兩個整數相處的結果還是整數)
%求余數(又叫取模運算)

?????????“+”符號不止可以作加法運算符,在一定條件下還可以作字符串的連接符號,當“+”兩邊都是數值的時候就是加起來得到一個值,“+”兩邊無法運算的時候就連接字符串。其運算如下:?

? ?

? ? 5.2 自增自減運算符

? ? ? ? 自增自減運算符是對變量而言的一種運算符,其他像字面量和常量就不能使用自增自減運算符。自增符號就是++,自減符號就是--?,并且符號放在變量左右的位置不同其運算結果也會不同。符號在變量左面表示先加減1再用,符號在變量右面表示先用再加減1

? ?

? ? 5.3 賦值運算符

賦值運算符默認包含了一步強制轉換,并不會像普通的表達式一樣運算結果由最大的類型決定。

算式等價
a = ba = b
a += ba = (a的數據類型)a + b
a -= ba = (a的數據類型)a - b
a *= ba = (a的數據類型)a * b
a /= ba = (a的數據類型)a / b
a %= ba = (a的數據類型)a % b

? ?5.4 條件運算符

條件運算符是對數據進行條件判斷的符號,最終會返回一個比較的布爾值結果也就是true或者false

符號說明
==判斷是否左右相等
!=判斷是否左右不相等
>判斷是否左大于右
>=判斷是否左大于等于右
<判斷是否左小于右
<=判斷是否左小于等于右

? ?

? 5.5 位運算符

? ? ? ?5.5.1 邏輯運算符

符號名稱說明
&邏輯與(并且)全真為真,有假則假
|邏輯或(或者)全假為假,有真則真
!邏輯非取反操作,非真為假,非假為真
^邏輯異或相同為假,不同為真

除以上邏輯運算符外,還有兩種短路邏輯運算符&&(短路與)和||(短路或),它們倆的運算結果和邏輯與、邏輯或的結果一樣,區別在于:邏輯與、邏輯或無論左邊是true還是false都要執行右邊的表達式,短路與左邊為false不執行右邊,短路或左邊是true不執行右邊。

? ? 5.5.2 移位運算符?

移位運算符在進行運算之前都要轉換成二進制形式,移位操作是對二進制數的操作。

符號說明
>>向右移相應位數,低位舍去,高位補符號位
<<向左移相應位數,高位舍去,低位補0
>>>向右移相應位數,低位舍去,高位補0

??? 移位運算符的右操作數需要完成模32運算(除非左操作數是long型,long型進行模64運算),eg:1 >> 35? ?<==> 1 >> 3

? ?

? ??5.6 三元運算符

三元運算符是?:,其使用格式如下:

數據類型 變量名 = 條件表達式 ? 值1 : 值2;

條件表達式的結果為true時變量賦值為值1,反之變量的值為值2

? ? 5.7 運算符優先級

6 鍵入值、輸出值

? ? 6.1 鍵入

????????無論是鍵入值還是輸出值都需要使用到System類,但是由于System和String等類在java.lang包下,所以不需要導包,Java默認導入。

鼠標鍵入值需要三到四個步驟

導包:import java.util.Scanner;

創建掃描器對象:

Scaaner sc = new Scanner(System.in);

輸出提醒語句:

System.out.println("提醒語句");

等待用戶輸入數據:

數據類型 變量名= sc.掃描方法;

掃描方法有很多種,具體使用哪一個由前面定義變量的數據類型決定,常用的有接收整型nextInt() 、接收鍵入的一行字符串nextLine()、接收鍵入字符串以空格為分界的一個單詞next()、接收單精度數值nextFolat()、接收雙精度數值nextDouble()……

??

? ? 6.2 格式化輸出

????????從前面我們就可以知道,Java的輸出要比輸入簡單得多,僅需一句System.out.println();就可以完成輸出,但是如何進行格式化輸出就有點困難了,加下來介紹一種格式化輸出的方法:使用靜態的String.format方法進行格式化,可以輸出也可以用字符串變量接收不輸出。由于Java中使用其對小數進行保留位數的操作最多,故下面主要介紹保留小數的用法(保留兩位小數)當然在格式不錯的情況下保留的位數是可以改變的

String num = String.format("%.2f",c);System.out.println(String.format("%.2f",c));

上一篇:【Java從入門到頭禿專欄 1】學在Java語法之前

下一篇:?【Java從入門到頭禿專欄 3】語法篇(二)

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

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

相關文章

【Java從入門到頭禿專欄 】(三) 控制流程 Math Date DateFormat Calendar System BigDecimal Random

目錄 1 控制流程 2 Math類 3 Date類 4 DateFormat類 5 Calendar類(日歷類) 6 System類 7 BigDecimal類 8 Random類(隨機數) 1 控制流程 1.1 塊作用域 塊(即復合語句)就是指由若干條Java語句組成的語句&#xff0c;并用一條大括號括起來&#xff0c;并借此形式確定了變量…

IntelliJ IDEA最常用的一些快捷鍵,學會了室友還以為你在祖安對線

目錄 1 快速生成語句 1.1 main語句 1.2 輸出語句 1.3 流程控制語句 1.3.1 if判斷語句 1.3.2 while循環 1.3.3 for循環 1.3.4 數組、集合的循環操作 1.3.5 迭代器循環操作 1.4 對象實例化、定義變量 1.5 try-catch異常 2 快捷鍵 2.1 Ctrl系列 2.2 alt系列 2.2.1…

【Java從入門到頭禿專欄 6】語法篇(五) :多線程 線程池 可見、原子性 并發包 Lambda表達式

目錄 1 多線程 1.1 基本概念 1.2 創建線程的三種方式 1.4 解決線程安全問題的三種方法 1.5 線程通信 1.6 線程狀態 2 線程池 2.1線程池的概念 2.2 創建并提交任務 3 可見性 3.1 變量不可見性 3.2 變量不可見性的解決方案 4 原子性 4.1 原子性的概念 4.2 保證原…

【Java從入門到頭禿專欄 7】語法篇(六) :Lambda表達式(->) 方法引用(::) stream流

目錄 1 Lambda表達式( -> ) ? 2 方法引用( :: ) 3 Stream流 接下來介紹的三種語法叫&#xff1a;Lambda表達式 方法引用 stream流&#xff0c;這三種語法的使用要有特定條件&#xff0c;在一定條件下借助這三種語法可以使代碼十分簡單且優雅&#xff0c;但是不要舍本逐末…

【Java從入門到頭禿專欄 4】語法篇(三) :字符串 數組

目錄 1 String字符串 2 數組 1 String字符串 Java沒有內置的字符串類型&#xff0c;而是在Java類庫中提供了一個預定義類--String。 在Java中把每一個使用雙引號括起來的字符串都看做是String類的一個實例化對象。 String常被稱作是不可變字符串類型&#xff0c;那么有人就有…

【Java從入門到頭禿專欄 8】語法篇(七) :反射 動態代理 注解

目錄 1 反射機制 2 反射的應用&#xff1a;動態代理 3 注解 1 反射機制 反射機制(Reflect Machanism)&#xff0c;是指在程序運行期間借助Reflect API獲取任何類的內部信息&#xff0c;并能直接操作對象的內部屬性以及方法&#xff0c;Java本身而言是靜態語言但是由于Java反…

【SSM面向CRUD編程專欄 1】Spring簡介 xml配置文件 依賴注入 數據注入

&#x1f6eb;更多ssm知識見SSM_面向CRUD編程專欄 &#x1f695;本博客總結自黑馬程序員的ssm框架視頻 &#x1f692;博主對于該知識尚在學習階段 &#x1f684;如果發現存在問題請毫不吝嗇的指出 &#x1f680;&#x1f680;扎哇太棗糕的博客主頁&#x1f680;&#x1f680; 目…

【SSM面向CRUD編程專欄 2】Spring相關API 數據源(連接池)的配置 注解開發 整合junit

&#x1f6eb;更多ssm知識見SSM_面向CRUD編程專欄 &#x1f695;本博客總結自黑馬程序員的ssm框架視頻 &#x1f692;博主對于該知識尚在學習階段 &#x1f684;如果發現存在問題請毫不吝嗇的指出 &#x1f680;&#x1f680;扎哇太棗糕的博客主頁&#x1f680;&#x1f680; 目…

【SSM面向CRUD編程專欄 4】 Spring集成web環境 SpringMVC初識

&#x1f6eb;更多ssm知識見SSM_面向CRUD編程專欄 &#x1f695;本博客總結自黑馬程序員的ssm框架視頻 &#x1f692;博主對于該知識尚在學習階段 &#x1f684;如果發現存在問題請毫不吝嗇的指出 &#x1f680;&#x1f680;扎哇太棗糕的博客主頁&#x1f680;&#x1f680; ?…

IntelliJ IDEA里的項目搞崩了怎么辦,本地歷史版本回退拯救你崩潰的心靈

&#x1f4a5;寫在前面&#xff1a; 如果你還沒有讀過雨果的悲慘世界也沒有讀過余華的活著&#xff0c;那你可以看看我今天早上的經歷&#xff0c;如果不想聽我胡侃的話&#xff0c;直接進入正題&#xff1a; 目錄 本地歷史的強大 今天早上打開IntelliJ IDEA繼續ssm模塊的代碼練…

【SSM面向CRUD編程專欄 5】使用SpringMVC進行數據響應以及獲取請求數據

&#x1f6eb;更多ssm知識見SSM_面向CRUD編程專欄 &#x1f695;本博客總結自黑馬程序員的ssm框架視頻 &#x1f692;博主對于該知識尚在學習階段 &#x1f684;如果發現存在問題請毫不吝嗇的指出 &#x1f680;&#x1f680;扎哇太棗糕的博客主頁&#x1f680;&#x1f680; 目…

【SSM面向CRUD編程專欄 6】springMVC攔截器、異常處理 jdbcTemplate

&#x1f6eb;更多ssm知識見SSM_面向CRUD編程專欄 &#x1f695;本博客總結自黑馬程序員的ssm框架視頻 &#x1f692;博主對于該知識尚在學習階段 &#x1f684;如果發現存在問題請毫不吝嗇的指出 &#x1f680;&#x1f680;扎哇太棗糕的博客主頁&#x1f680;&#x1f680; 目…

【SSM面向CRUD編程專欄 7】springAop 事務控制

&#x1f6eb;更多ssm知識見SSM_面向CRUD編程專欄 &#x1f695;本博客總結自黑馬程序員的ssm框架視頻 &#x1f692;博主對于該知識尚在學習階段 &#x1f684;如果發現存在問題請毫不吝嗇的指出 &#x1f680;&#x1f680;扎哇太棗糕的博客主頁&#x1f680;&#x1f680; 目…

【SSM面向CRUD編程專欄 8】一篇博客快速上手使用MyBatis進行CRUD

&#x1f6eb;更多ssm知識見SSM_面向CRUD編程專欄 &#x1f695;本博客總結自黑馬程序員的ssm框架視頻 &#x1f692;博主對于該知識尚在學習階段 &#x1f684;如果發現存在問題請毫不吝嗇的指出 &#x1f680;&#x1f680;扎哇太棗糕的博客主頁&#x1f680;&#x1f680; 目…

【SSM面向CRUD編程專欄 9】SSM框架整合

&#x1f6eb;更多ssm知識見SSM_面向CRUD編程專欄 &#x1f695;本博客總結自黑馬程序員的ssm框架視頻 &#x1f692;博主對于該知識尚在學習階段 &#x1f684;如果發現存在問題請毫不吝嗇的指出 &#x1f680;&#x1f680;扎哇太棗糕的博客主頁&#x1f680;&#x1f680; 目…

三萬字速通SSM框架入門知識點,快速上手CRUD

&#x1f6eb;更多ssm知識見SSM_面向CRUD編程專欄 &#x1f695;本博客總結自黑馬程序員的ssm框架視頻 &#x1f692;博主對于該知識尚在學習階段 &#x1f684;如果發現存在問題請毫不吝嗇的指出 &#x1f680;&#x1f680;扎哇太棗糕的博客主頁&#x1f680;&#x1f680; 目…

無法在web.xml或使用此應用程序部署的jar文件中解析絕對uri:[http://java.sun.com/jsp/jstl/core]

問題簡介 本人是在進行一個ssm框架項目的編寫的時候&#xff0c;在數據庫中查詢到所有的商品信息并返回到頁面使用EL表達式進行展現&#xff0c;但是使用tomcat 9.0.58運行的時候報錯會出現以下報錯情況。 頁面報錯&#xff1a; 控制臺報錯&#xff1a; 解決方法 首先看看是不…

check the manual that corresponds to your MySQL server version for the right syntax to use near

首先判斷自己是在什么情況下報的錯&#xff0c;如果是MyBatis的SQL報錯的話&#xff0c;建議直接點擊目錄跳轉到MyBatis時SQL報錯&#xff0c;避免浪費時間。如果本文能夠對你有所幫助的話&#xff0c;還請在評論區多多支持 目錄 &#x1f37b;運行SQL語句、SQL文件等報錯 &…

MyBatis的逆向工程工具,自動生成數據庫對應的POJO實體類、mapper接口、增刪改查mapper.xml文件

下載MyBatis的逆向工程工具&#xff0c;并解壓縮到一個不包含中文字符的文件夾下&#xff0c;我直接放到了D盤下&#xff0c;下載地址&#xff1a;MyBatis逆向工程工具下載 如何使用MyBatis的逆向工程工具 下載之后使用idea在一個新窗口中打開&#xff0c;選中工具文件之后&am…

『收藏向 期末SSM課設救急』 教你從搭建到測試運行手擼一個SSM項目實戰,附帶源碼,前端頁面、解析和一般遇到的問題(排雷)

&#x1f6eb;ssm知識學習見SSM_面向CRUD編程專欄 &#x1f695;本項目來自動力節點的【米米商城】 &#x1f692;博主對于該知識尚在學習階段 &#x1f684;如果發現存在問題請毫不吝嗇的指出 &#x1f680;&#x1f680;扎哇太棗糕的博客主頁&#x1f680;&#x1f680; 項目…