一.注釋、識別符號、關鍵字
1.注釋(comments)
-
平時我們撰寫代碼,在代碼量比較少的時候,我們還可以看懂自己撰寫的代碼,但是當專案結構一旦復雜起來,我們就需要用到注釋了!
-
注釋并不會被程式執行,是給我們自己寫代碼的人看的,方便理解
-
書寫注釋是一個非常好的習慣
-
Java中注釋有三種:
- 單行注釋(Line comment)
- 多行注釋(block comment)
- 檔案注釋(JavaDoc)
-
找好看的注釋:搜索有趣的代碼注釋
-
三種注釋的代碼
-
單行注釋:只能注釋一行,//
public class Hello { public static void main(String[] args) { //單行注釋 //輸出hello一句話! System.out.println("hello"); } } -
多行注釋:可以注釋一段文字,/* */
public class Hello { public static void main(String[] args) { //單行注釋 //輸出hello一句話! //多行注釋 /* 這是多行注釋 這是多行注釋 這是多行注釋 */ System.out.println("hello"); -
JavaDoc:檔案注釋,/** */
public class Hello { public static void main(String[] args) { //檔案注釋 /** * @descroption hello * @Author zhang */ System.out.println("hello"); } }
-
comments:注釋
Annotations:注解
Bold:粗體
italic:斜體
description:描述
Author:作者
2.識別符號
- Java里面的關鍵字

- Java所有的組成成分都需要名字,類名、變數名以及方法名都被稱作識別符號,(每個人都有自己的名字,程式也是如此,作為程式員,我們就是上帝造物主,我們要給自己創造的程式命名,這也體現了程式來源于生活!)
- 識別符號注意事項
- 所有的識別符號首字符都應該以字母(A-Z或者a-z)、美元符($)、或者下劃線(_)開始
- 首字符之后可以是字母(A-Z或者a-z)、美元符($)、下劃線(_)或者數字的任意字符組合
- 不能使用關鍵字作為變數名或者方法名
- 識別符號是大小寫敏感的
- 合法識別符號例子:age、$salary、_value、__1_value
- 不合法識別符號例子:123abc,-salary、#abc
- 可以使用中文命名,但是一般不推薦怎樣去使用,也不建議使用拼音,原則上命名要見名知意
- 檔案名與類名保持一致,并且類名首字母大寫(默認規范)
二.資料型別
1.語言型別(安全性與性能)
- 強型別語言:要求變數的使用要嚴格符合規定,所有的變數都必須先定義后才能使用(安全性高,性能低)
- 弱型別語言:要求變數的使用不需要嚴格符合規定,所有的變數不需要先定義后才能使用(安全性低,性能高)
2.Java的資料型別分為兩大類
-
基本型別(Primitive type)

-
單引號與雙引號:‘ 中 ’(只能為一個字符或一個字,‘中’或者‘A’等);” zahng “(可以有多個字符)
-
判斷數值型別大小

-
八大基本型別代碼:
public class Demo2 { //八大基本型別 //整數 byte b1 = 10; short b2 = 100; int b3 = 1000; long b4 = 1000000L;//Long 型別要在后面加一個L,以示區分與上面不同, //浮點數 float c1 = 1.1665F;//float 型別要在后面加一個F,以示區分與double不同, double c2 = 1.45466456; //字符型別 char d1 = 'A';//只能寫一個字或一個字符 //String不是基本型別,屬于參考型別 String e1 = "zhang";//可以寫多個字符 //boolean:布林值,其值只有true與false boolean f1 = true; }
-
-
參考型別(reference type):除了基本資料型別,都是參考型別!

3.變數
-
變數是什么:就是可以變化的量
-
java是一種強型別語言,每個變數都必須宣告其型別
-
Java變數是程式中最基本的存盤單元,其3要素包括:變數名、型別變數和、作用域
type varName = value //資料型別 變數名 = 值;可以使用逗號隔開來宣告多個同型別的變數! -
注意事項:
- 每個變數都有型別,型別可以是基本資料型別,也可以是參考型別(String 是參考型別)
- 變數名必須是合法的識別符號
- 變數宣告是一條完整的陳述句,因此每一個宣告都必須以分號(;)結束
4.什么是位元組
- 位(bit):是計算機內部資料存盤的最小單位,11101110就是一個八位二進制數,習慣上用小寫的b表示,
- 位元組(byte):是計算機中資料處理的基本單位,習慣上用大寫B來表示
- 1B(byte,位元組)= 8 bit(位),也就是說,如果用二進制表示的話,1位元組=2的(8-1)次方 bit(位)
- 字符:是指計算機中使用的字母、數字、字、和字符
- 單位換算
- 1bit表示1位
- 1byte 表示1個位元組 1B = 8b(二進制的8次方)【8-1的次方】
- 1024B = 1KB
- 1024KB = 1M
- 1024 M = 1G
- 電腦32位于64位的區別
- 向下兼容,64位的電腦既可以裝64位作業系統也可以裝32位作業系統,反之不行!
- 位數越高,電腦記憶體尋址越強,電腦運行速度越快
- 同時,64位電腦,最多可以支持128G記憶體,32位電腦,最多支持4G記憶體,所以如果你想加記憶體條,64位的理論上最多可以加到128G
三.型別轉換
- 由于Java是強型別語言,所以要進行某些運算時,需要用到型別轉換,
低---------------------------------->高
byte,short,char->int-->long-->float-->double
- 小數優先級大于整數
- 運算中,不同型別的資料先轉換為同一型別,然后在進行運算
- 高轉低需要強制轉換,低轉高不需要
強制型別轉換:
高-----低 int-----byte
自動轉換:
低------高 int-------double
- 強制型別轉換(括號里面加上轉換型別)【格式:(型別)變數名】
public class Demo9 {
public static void main(String[] args) {
int s1 = 128;
byte s2 = (byte)s1;//記憶體溢位
System.out.println(s2);
}
}
結果為:
-128
- 自動型別轉換(隱式型別轉換)
public class Demo10 {
public static void main(String[] args) {
int s1 = 128;
double s2 = s1;
System.out.println(s2);
}
}
結果為:
128.0
- 常見錯誤
- 1.轉換的結果為負數,原因為超出byte的最大正范圍,避免記憶體溢位
public class Demo9 {
public static void main(String[] args) {
int s1 = 128;
byte s2 = (byte)s1;//記憶體溢位
System.out.println(s2);
}
}
結果為:
-128
-
-
2.不能對boolean值進行轉換,boolean是按位來計算大寫的,而其他的資料型別單位為位元組!!!
-
3.不能把物件型別轉換為不相干的型別(人不能轉換為一本書)
-
4.在把高容量轉換為低容量的時候,強制轉換
-
轉換的時候可能存在記憶體溢位,或者精度問題!(浮點數轉int時,例如23.7變為23、-4.6變為-4,丟失精度)
-
char型別
public class Demo11 { public static void main(String[] args) { //字符轉換 char s1 = 'a'; int s2 = s1 +1; System.out.println(s2);//自動轉換 System.out.println((char) s2);//強制轉換 } } 結果為 98 b -
操作比較大的數的時候,注意溢位問題,JDK7新特性,數字之間可以用下劃線分割
public class Demo12 { public static void main(String[] args) { //數字比較大的時候,注意溢位問題 //JDK7新特性,數字可以用下劃線分割表示 int s1 = 1_0000_0000; int s2 = 100; int s3 = s1 * s2;//計算時溢位了 long s4 = s1 * s2;//計算時按默認的int計算,轉換為long型別之前就已經錯誤了 System.out.println(s3); System.out.println(s4); } } 結果為: 451611456564151 451611456564151 -
解決上面問題
public class Demo12 { public static void main(String[] args) { //數字比較大的時候,注意溢位問題 //JDK7新特性,數字可以用下劃線分割表示 int s1 = 1_0000_0000; int s2 = 100; int s3 = s1 * s2;//計算時溢位了 long s4 = s1 * s2;//計算時按默認的int計算,轉換為long型別之前就已經錯誤了 long s5 = s1 * (long)s2;//計算時,先將s2從int轉換為long在進行計算,結果就不會出現問題 System.out.println(s3); System.out.println(s4); System.out.println(s5); } }
-
四.變數、常量
1.變數
-
變數是什么:就是可以變化的量
-
java是一種強型別語言,每個變數都必須宣告其型別
-
Java變數是程式中最基本的存盤單元,其3要素包括:變數名、型別變數和、作用域
type varName = value //資料型別 變數名 = 值;可以使用逗號隔開來宣告多個同型別的變數! -
注意事項:
- 每個變數都有型別,型別可以是基本資料型別,也可以是參考型別(String 是參考型別)
- 變數名必須是合法的識別符號
- 變數宣告是一條完整的陳述句,因此每一個宣告都必須以分號(;)結束
2.變數作用域
-
類變數
-
實體變數
-
區域變數
public class Demo13 { //類變數 static int s1 = 10;//類變數必須要以static修飾 //實體變數 int s2 = 123;//沒有static修飾為實體變數 //main方法 public static void main(String[] args) { //區域變數 int s3 = 4546;//定義在方法里的變數,區域變數 } } -
詳解變數
public class Demo14 {
//類變數
static int s3 = 464;
static {
//代碼塊,定義屬性,在類加載的時候就加載了
}
//實體變數:從屬于物件(當前這個類)
//如果不自行初始化,有默認值
//基本資料型別:整數默認值為:0,浮點數為:0.0,字符為:U0000(不顯示),boolean為:false
//除了基本資料型別,其余的默認值為null
int age;
String name;
char address;
double cat;
boolean pet;
//main方法
public static void main(String[] args) {
//區域變數:在當前方法有效,作用域為當前main方法
//必須宣告和初始值
int s1 = 11;
System.out.println(s1);
//實體變數的呼叫
Demo14 s2 = new Demo14();
System.out.println(s2.age);
System.out.println(s2.name);
System.out.println(s2.cat);
System.out.println(s2.address);
System.out.println(s2.pet);
//類變數
System.out.println(s3);//可以直接呼叫
}
//add方法
public void add(){
}
}
結果為:
11
0
null
0.0
//char的默認值
false
3.常量
- 常量(constant):初始化(initialize)后不能在改變值!!不會改動的值,
- 所謂的常量可以理解為一種特殊的變數,它的值被設定后,在程式運行程序中不允許被修改
- 格式:final 常量名 = 值;final double PI = 3.1415926,變數名默認大寫
- 常量名一般使用1大寫字符!!
- 修飾符,不存在先后順序
public class Demo15 {
static public int S = 14;
public static void main(String[] args) {
System.out.println(S);
}
}
輸出結果為:
14
4.變數的命名規范
- 所有的變數、方法、類名:見名知意
- 類成員變數:首字母小寫和駝峰原則:timeLate
- 區域變數:首字母小寫和駝峰原則
- 常量:大寫字母和下劃線:MAX_VALUE
- 類名:首字母大寫和駝峰原則:Demo,Hello
- 方法名:首字母小寫和駝峰原則:add()、run()
五.運算子
- 運算子

- cast:轉換
- 自增、自減,一元運算子++,--
public class Demo1 {
public static void main(String[] args) {
//自增自減,++ --
int s1 = 2;
int s2 = s1++;//先賦值再加
int s3 = ++s1;//先加后賦值
System.out.println(s1);
System.out.println(s2);
System.out.println(s3);
}
}
結果為:
4
2
4
- 邏輯運算
public class Demo2 {
public static void main(String[] args) {
//邏輯運算
//短路運算
int s1 = 6;
boolean s2 = (s1<5)&&(s1++<5);//前面為false,后面的s1++就不會執行!!
System.out.println(s2);
System.out.println(s1);
}
}
結果為:
false
6
- 位運算
public class Demo3 {
public static void main(String[] args) {
//位運算 0 1
/*
A =0011 1100
B =0000 1101
A&B:0000 1100 兩者都為1,才為1
A|B:0011 1101 兩者只要有一個為1,就為1
A^B(異或);0011 0001 兩個數字一樣為0,不同為1
~B:1111 0010 取反
2*8 = 16 2*2*2*2
<< 左移
>> 右移
0000 0001 1
0001 0000 16
*/
System.out.println(2<<3);//上面的例子
System.out.println(256>>2);
System.out.println(256>>>2);//與>>結果一樣
}
}
結果為:
16
64
64
- 三元運算子
public class Demo4 {
public static void main(String[] args) {
//三元運算子
//x(陳述句) ? y : s
//如果x==true,則回傳y,否則結果為s
int s1 = 1;
int s2 = 1<2 ? 10 : 5;
System.out.println(s2);
}
}
結果為:
10
- 優先級:()優先級高,建議多使用!!!
六.包機制、javaDoc
1.包
- 為了更好地組織類,Java提供了包機制,用于區別類名的命名空間
- 包陳述句的格式為:package pkg1;
package java.lang
- 一般利用公司域名倒置作為包名;www.baidu.com com.baidu.www
- 為了能夠使用某一個包的成員,我們需要在Java程式里面匯入該包,使用“import”陳述句即可完成此功能!
- import package
import base.Demo14;
import base.* //匯入全部 *表示通配符
- 單詞:refactor 重構
2.JavaDoc
- JavaDoc命令是用來聲稱自己的API檔案的
- 可以加在類上,也可以加在方法上(自動生成一些東西)
package operator;
/**
* @author zhang
* @version 1.0
*/
public class Demo4 {
String name;
/**
*
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception{
//三元運算子
//x(陳述句) ? y : s
//如果x==true,則回傳y,否則結果為s
int s1 = 1;
int s2 = 1<2 ? 10 : 5;
System.out.println(s2);
}
}
-
引數資訊
- @author 作者名
- @version 版本號
- @since 指明最早使用的JDK版本
- @param 引數名
- @return 回傳值情況
- @throws 例外拋出情況
-
生成JavaDoc檔案

-
javadoc -encoding UTF-8 -charset UTF-8 Demo4.java -

-
生成檔案
-

-

-
IDEA生成幫助檔案
-

zh_CN //生成中文檔案 -encoding UTF-8 -charset UTF-8 //設定編碼集

生成JavaDoc幫助檔案!

?

本文來自博客園,作者:Elloe,轉載請注明原文鏈接:https://www.cnblogs.com/ElloeStudy/p/15407244.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/315866.html
標籤:Java
