java基礎案例教程前4章知識點_java學習記錄4 Java基礎知識點

java學習記錄4 Java基礎知識點

1. 注釋

單行注釋

使用“//”開頭,后面是注釋的內容

一般在要注釋的語句的上面加注釋

多行注釋

以“/*”開頭,以“*/”結尾

可以做行內注釋

不可嵌套使用

文檔注釋

以“/**”開頭,以“*/”結尾

用來給類和方法做注釋,用以說明類的功能和作者等信息

包含一些說明行文字及一些JavaDoc標簽,可以在寫項目是生成項目的API

注意

注釋不會出現在字節碼文件中,即Java編譯器編譯時會跳過注釋語句

2. 標識符規則-駝峰規則

定義

是用來給變量、類、方法以及包進行命名的

規則

必須以字母、下劃線_、美元符$開頭

其它部分可以是字母、下劃線,美元符和數字的任意組合

大小敏感,長度無限制

不可以是Java的關鍵字

規范

給類起名,首字母要大寫,如Man,GoodMan.

給方法和變量起名,第一個單詞小寫,從第二個單詞開始首字母大寫,遵從“駝峰原則”,如:eat(),eatFood().

Java采用Unicode標準國際字符集,因此變量名可以是英文的,也可以是中文的,但盡量不要用中文。

3. 變量

本質

本質上是一個“可操作的存儲空間”,空間的位置是確定的,但是里面放置什么值是不確定的。我們可通過變量名來訪問“對應的存儲空間”,從而操縱這個“存儲空間”存儲的值。

Java是強類型語言,每個變量都必須聲明其數據類型。

是最基本的存儲單元,其要素包括變量名、變量類型和作用域。變量在使用前必須對其聲明,只有變量聲明以后,才能為其分配相應長度的存儲空間。

包括基本類型和引用類型兩種類型的變量。

不提倡“一行聲明多個變量”

局部變量必須聲明并且初始化之后才能使用

分類

局部變量(local variable)

含義:方法或語句塊內部定義的變量。

周期:從聲明的位置開始到方法和語句塊執行完畢為止。

局部變量使用之前必須初始化。

成員變量(member variable)

也叫實例變量。

定義在方法的外部、類的內部的變量,沒有被static修飾。

從屬于對象。

生命周期伴隨對象始終。

會自行初始化成該類型的默認出始值。

出始值:int - 0,double - 0.0,char - '\u0000',boolean - false

靜態變量(static variable)

定義在類內部,使用static定義。

從屬于類。

生命周期伴隨類始終,從類加載到類卸載。生命周期最長。

4. 常量(Constant)

定義

通常指的是一個固定的值。

主要利用關鍵字final類定義一個常量。

常量一旦被初始化之后不能再更改其值。

聲明格式:

final type varName = value;

1、2等是字面常量,被final修飾的是符號常量

規范

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

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

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

方法名:首字母小寫和駝峰原則

5. 基本數據類型(primitive data type)

數值型

byte:整數類型,占1個字節

short:整數類型,2個字節

int:整數類型,4個字節

long:整數類型,8個字節

float:浮點類型,4個字節

double:浮點類型,8個字節

字符型

char:2個字節

布爾型

boolean:1位

注意

引用數據類型占4個字節

包括類(class)、接口(interface)、數組

1個字節=8位

6. 整型變量和常量

整型數據類型

byte:1字節 ,8次方,-2的7次方到2的7次方-1,-128到127,其中有0

short:2字節,16次方,-32768到32767

int:4字節,32次方,范圍-2三十一次方到2的三十一次方-1,約21億

long:8字節,2的64次方

注:其中一位表示正負。

各種進制的表示方法

十進制:如:99,-10等

八進制:以0開頭

十六進制:以0x或0X開頭

二進制:以0b或0B開頭

注:整型常量默認是int類型

注:后面加L表示這是一個long類型的常量,L大小寫都行。

7. 浮點型變量和BigDecimal的使用

數據類型

float

占4字節,-3.403E38~3.403E38

但精度類型,尾數可精確7位有效數字

float類型的數值有一個后綴F或f

double

占8字節,-1.798E308~1.798E308

雙精度類型,精度約為float類型的兩倍,浮點型常量默認double類型

表示形式

十進制數形式:3.14 ,314.0,0.314

科學計數法形式:314e2或314E2表示314乘以10的二次方,等于31400.0, 314E-2表示314乘以10的-2次方,等于3.14

float和int占得字節一樣,但表示的范圍更廣,因為float有效數

浮點數是不精確的。不要用于比較

比較的話用BigInteger和BigDecimal,在java.math包下,這兩個類可以處理任意長度的數值。BigInteger可以實現任意精度的整數運算。BigDecimal可以實現任意精度的浮點運算。可用于金融領域。

代碼示例:

double d = 0.1;

double e = 1.0/10;

System.out.println(d == e);//類型一樣true

float f = 0.1f;

double g = 1.0/10;

System.out.println(f == g);//類型不一樣false

8. 字符型類型-轉義字符

字符型變量/常量

char,占兩個字節

用單引號表示,可允許有65536的字符,包含世界上所有的符號

通常用從'\u0000'到‘\uFFFF’之間的十六進制值來表示(u代表Unicode)

代碼示例:

char a = 'T';

char b = '尚';

char c = '\u0061';

System.out.println(a);

System.out.println(b);

System.out.println(c);//結果為a

?

System.out.println('a'+'b');//結果為195

System.out.println(" "+'a'+'b');//結果為ab

9. 布爾類型

內存只占1位

只有兩個值,true或false

不可以使用0或非0的整數代替true和false,這點與c不同

Boolean類型用來判斷邏輯條件,一般用于程序流程控制

10. 運算符(operator)

算數運算符

二元運算符

規則

整數運算

如果兩個操作數有一個為Long,則結果為Long。

沒有Long時,結果為int。即使操作數全為short,byte,結果也是int。

浮點運算

如果兩個操作數有一個為double,則結果為double。

只有兩個操作數都是float,則結果為float。

運算中有一個浮點數,結果為浮點數。

取模運算

其操作數可以為浮點數,一般是整數,結果是余數

余數符號和左邊操作數相同,7%3=1,-7%2=-1,7%-3=1。

自增自減

//自增,自減

int c = 4;

int d = c++;

System.out.println("c="+c+"\nd="+d);//c=5,d=4,先把c的值賦給d,c再加1

c = 4;

d = ++c;

System.out.println("c="+c+"\nd="+d);//c=5,d=5,c先加1,再把c的值賦給d

賦值運算符

實例

int e = 3;

int f = 4;

f *= e + 3;//等于f*(e+3)=24,始終先計算符號后面

System.out.println(f);

關系運算符

結果是布爾值:true/false

邏輯運算符

邏輯與 &,兩邊都要查看

邏輯或 |,兩邊都要查看

短路與 && ,如果第一個是false,就不看第二個條件,就是false,否則會查看第二條件

短路或 ||,如果第一個是true,就不看第二個條件,就是true,否則會查看第二條件

異或 ^,兩邊相同false,兩邊不同true

位運算符

移位算法,左移<>,相當于除以2

字符串連接符

“+”是連接符

當“+”兩邊,有一邊是字符串,得到的結果就是字符串

示例代碼

String a = "3";

int b = 4;

int c = 5;

char d = 'a';

System.out.println(a+b+c); ?//345

System.out.println(b+c+a); ?//93

System.out.println(d); ? ? ?//a

System.out.println(d+4); ? ?//101

條件運算符

三目運算符

11. 自動類型轉換

指的是容量小數據類型的自動轉換成容量大的數據類型

13. 基本數據類型溢出

注意計算結果可能會溢出

表達是中兩個變量是int,結果是變量,如果溢出,就讓其中一個做變量提升成long類型

14. 使用Scanner獲取鍵盤輸入

要導入包:import java.util.*;

Scanner scanner = new Scanner(System.in);

System.out.println("姓名:");

String name = scanner.nextLine();

System.out.println("愛好:");

String favor = scanner.nextLine();

System.out.println("年齡:");

int age = scanner.nextInt();

System.out.println(name);

System.out.println(favor);

System.out.println(age);

15. 流程控制語句

switch多選擇結構

switch(month)

{

case 1:

System.out.println("一月");

break;

case 2:

System.out.println("二月");

break;

default:

System.out.println("其他月");

break;

}

switch(month)

{

case 1:

case 2:

System.out.println("第一節度");//條件1,2,都會打印“第一季度”

break;

default:

System.out.println("其他季度");

break;

}

注:

遇到break,就終止,沒有break會接著判斷。

while循環詳解

循環結構分為當型和直到型

for 死循環

for(;;)

{}

break 和continue語句

break

用于強行退出循環,不執行循環中剩余的語句。

continue

用于退出本次循環,繼續執行下次循環。

由內循環跳外循環用帶標簽的continue,

格式 標簽名:語句;continue 標簽名;

16. 方法

定義:方法就是一段用來完成特定功能的代碼片段,類似于其他語言的函數。

形參:在方法聲明時用于接收外界傳入的數據。

實參:調用方法時實際傳給方法的數據,傳遞的是數據副本

返回值:方法在執行完畢后返還給調用它的環境數據,如果沒有,就是void類型

方法通過對象調用,一個類調用自己的方法時也要實例化對象

return:1.結束方法的運行。2.返回值

方法從屬于對象和類

基本類型傳遞的是值的copy,引用類型傳的是對象引用的copy值,但指向的是同一個對象。

方法的重載(overload)

定義:一個類中有多個方法的名稱重復,但是完全不同的方法。

不同的含義是:形參類型、形參個數、形參順序不同

只有返回值不同不構成方法的重載

只有形參的名稱不同、不構成方法的重載

方法調用,方法加static修飾,就不用了new 對象,就可以調用方法,否則,必須要new對象才行。

17. 遞歸結構

基本思想:自己調自己。

遞歸結構有兩部分:遞歸頭和遞歸體。

定義遞歸頭,:什么時候不調用自身方法。如果沒有頭,將陷入死循環,也就是遞歸的結束條件。

遞歸體:什么時候需要調用自身方法。

爬蟲-遞歸

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

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

相關文章

打印狗的健康值Java_嵌入式狗的JAVA之路 HTML 補課

學了JAVA WEB應用&#xff0c;補充一下HTML的標簽&#xff0c;常用的&#xff0c;不然頁面都畫不出來了~~test 標題&#xff0c;h1h2h3 3個字號test 段落link 鏈接 使用 Target 屬性&#xff0c;你可以定義被鏈接的文檔在何處顯示。下面的這行會在新窗口打開文檔&#xff1a;Vi…

mysql 表2符合表1_MYSQL-表1和表2中所有可能性的所有行

表用戶id, name1, Jay Bob2, An Other表格頁id, name, html1, Welcome, Welcome to this page2, Goodbye, Thanks for visiting表user_pages **存儲頁面的用戶特定版本**user_id, page_id, html1, 1, User id 1 Welcome page我基本上需要一個查詢,該查詢將為我返回以下數據集-即…

java引擎組件_Java 腳本引擎入門

Java Script EngineJava 腳本引擎可以將腳本嵌入Java代碼中&#xff0c;可以自定義和擴展Java應用程序&#xff0c;自JDK1.6被引入&#xff0c;基于Rhino引擎&#xff0c;JDK1.8后使用Nashorn引擎&#xff0c;支持ECMAScript 5&#xff0c;但后期還可能會換。腳本引擎包位于jav…

python 角度傳感器模擬_python樹莓派紅外反射傳感器

本文實例為大家分享了python樹莓派紅外反射傳感器的程序&#xff0c;供大家參考&#xff0c;具體內容如下1、工具rpi3&#xff0c;微雪ARPI600&#xff0c;Infrared Reflective Sensor2、基本原理Infrared Reflective Sensor 輸出數字和模擬信號模擬信號通過ARPI600上的AD轉換芯…

JAVA awt eventqueue_線程“AWT-EventQueue-1”中的異常java.lang.NullPointerException

嗨&#xff0c;我收到錯誤Exception in thread "AWT-EventQueue-1" java.lang.NullPointerExceptionat P6.itemStateChanged(P6.java:215)at javax.swing.AbstractButton.fireItemStateChanged(AbstractButton.java:2023)at javax.swing.AbstractButton$Handler.item…

java構造方法賦值內存圖_java 面向對象(九):類的結構:構造器(一)簡介;屬性賦值順序;JavaBean的概念...

1.構造器(或構造方法)&#xff1a;Constructor構造器的作用&#xff1a;* 1.創建對象* 2.初始化對象的信息2.使用說明&#xff1a;* 1.如果沒顯式的定義類的構造器的話&#xff0c;則系統默認提供一個空參的構造器* 2.定義構造器的格式&#xff1a;權限修飾符 類名(形參列表){}…

java 集合modcount_源碼|jdk源碼之LinkedList與modCount字段

鏈表是對上一篇博文所說的順序表的一種實現。與ArrayList思路截然不同&#xff0c;鏈表的實現思路是&#xff1a;不同元素實際上是存儲在離散的內存空間中的。每一個元素都有一個指針指向下一個元素&#xff0c;這樣整個離散的空間就被“串”成了一個有順序的表。從鏈表的概念來…

idea 新建ssm java ee_IDEA搭建SSM項目實現增刪改查

首先打開IDEA&#xff0c;File—>New—>Project創建項目選擇左側導航欄里的Maven&#xff0c;勾上勾&#xff0c;選擇webapp按如下圖進行填寫創建完成后進入項目&#xff0c;右下角彈出的提示點擊右邊的Enable Auto-Import&#xff0c;自動配置連接數據庫&#xff0c;我用…

php mail centos_centos怎么發送郵件

一、安裝sendmail與mail1、安裝sendmail&#xff1a;1) centos下可以安裝命令&#xff1a;yum -y install sendmail2) 安裝完后啟動sendmail命令&#xff1a;service sendmail start2、安裝mail安裝命令&#xff1a;yum install -y mailx二、發送郵件1、通過文件內容發送發送命…

php文件的作用,php入口文件的作用-PHP問題

php入口文件的作用php入口文件能夠完成主動加載性能。解析PHP入口文件的主動加載性能php的主動加載&#xff1a;正在php5之前&#xff0c;咱們要用某個類或類的辦法&#xff0c;那必需include或許require&#xff0c;之后能力應用&#xff0c;每一次用一個類&#xff0c;都需求…

emacs php 配置文件,如何配置emacs進行正確的PHP開發?

我使用web模式(http://web-mode.org/)混合HTML / PHP文件和php模式為純PHP文件.最新版本的php-mode還推薦使用混合HTML / PHP文件的Web模式&#xff1a;https://github.com/ejmr/php-mode#avoid-html-template-compatibility.不同于其他模式,如mmm模式,mumamo或多網絡模式,嘗試…

php 5.3.9 漏洞,PHP-5.3.9遠程執行任意代碼漏洞(CVE-2012-0830) 詳解

這個新的修復方法初衷是好的, 但是卻帶來一個嚴重的問題(5.3.10中已經修復), 這個問題最初是由Stefan Esser發現的. 請看之前(5.3.9)最終的修復方案(php_register_variable_ex):代碼如下while (1) {if (zend_symtable_find(symtable1, escaped_index, index_len 1, (void **) …

java中隨機數邊界問題,java 簡單Dice問題(隨機數的運用)

[java]代碼庫/*** Dice Write a program that simulates rolling two dice using the following* steps: 1. Prompt the user for the number of sides for two dice. 2. “Roll” the* dice three times by generating a random number between 1 (inclusive) and the* number…

php 正則替換 ubb,php實現過濾UBB代碼的類

本文實例講述了php實現過濾UBB代碼的類。分享給大家供大家參考。具體如下&#xff1a;PHP代碼如下&#xff1a;class Day{function ubb($Text) { /// UBB代碼轉換//$Texthtmlspecialchars($Text);//$Textereg_replace("\r\n","",$Text);$Textereg_rep…

java單詞測試,java單詞 - 在線打字測試(dazi.kukuw.com)

java單詞貢獻者&#xff1a;15533470608類別&#xff1a;英文 時間&#xff1a;2018-08-04 22:32:16 收藏數&#xff1a;20 評分&#xff1a;0返回上頁舉報此文章請選擇舉報理由&#xff1a;廣告/謠言/欺詐政治敏感色情/違法信息垃圾文章其他收藏到我的文章改錯字public static…

java vector list,Java基礎之:List——ArrayList Vector

Java基礎之&#xff1a;List——ArrayList & VectorArrayList簡單介紹ArrayList實現了List接口&#xff0c;底層是一個數組&#xff0c;并實現了可變的功能。底層屬性(transient Object[] elementData;)在序列化時&#xff0c;忽略該屬性。ArrayList實現了List接口&#xf…

java建立線性表的鏈式結構,數據結構學習----線性表的鏈式表示(Java實現)

線性表接口LList&#xff1a;package com.clarck.datastructure.linked;/*** 線性表接口LList&#xff0c;描述線性表抽象數據類型&#xff0c;泛型參數T表示數據元素的數據類型** author clarck**/public interface LList {/*** 判斷線性表是否空* return*/boolean isEmpty();…

php prepare 批量,PreparedStatement批處理

PreparedStatement批量更新關鍵代碼 無 import java.sql.Connection;import java.sql.PreparedStatement; //...String sql "insert into employee (name, city, phone) values (?, ?, ?)";Connection connection new getConnection();PreparedStatement pPrepa…

釘釘 php 推送,微信模板推送,釘釘信息推送

上午的時候看到有朋友需要微信推送&#xff0c;正好我也需要&#xff0c;之前一直用 Server 醬的&#xff0c;但是最近用不了&#xff0c;想找一個替代品&#xff0c;一開始準備選擇釘釘&#xff0c;除了打卡&#xff0c;我很少使用釘釘&#xff0c;郵件提醒是備用方案&#xf…

java repaint 重畫圖形,學習筆記:WINDOWS的圖形重繪基礎

OnPaint()與OnDraw()的區別&#xff1a;OnPaint是WM_PAINT的消息響應函數&#xff0c;在MFC的基類里OnPaint函數調用了OnDraw()函數。OnPaint函數另外還調用了OnPrepareDC()函數。如果在窗口子類覆蓋了OnPaint函數&#xff0c;當MFC調用我們重寫的OnPaint函數時&#xff0c;就調…