對java基礎(chǔ)學(xué)習(xí)的入門 用思維導(dǎo)圖整理了一下
資源鏈接
視頻鏈接:http://pan.baidu.com/s/1eRZUdge 密碼:4mvc 書: http://book.boxuegu.com/java/
復(fù)記
(一)基礎(chǔ)知識
需要注意的點:
%留余數(shù)
變量類型轉(zhuǎn)換
switch break語句
變量(數(shù)據(jù)類型)
基本數(shù)據(jù)類型
數(shù)據(jù)類型
圖示示例
數(shù)值型
整數(shù)類型
byte(默認(rèn)){-128~127}
?1個字節(jié) 100為例
01100100??
基本類型:byte 二進制位數(shù):8
包裝類:java.lang.Byte
最小值:Byte.MIN_VALUE=-128
最大值:Byte.MAX_VALUE=127
初始值 0
short
2個字節(jié)
?基本類型:short 二進制位數(shù):16
包裝類:java.lang.Short
最小值:Short.MIN_VALUE=-32768
最大值:Short.MAX_VALUE=32767
初始值 0
int
4個字節(jié)
?基本類型:int 二進制位數(shù):32
包裝類:java.lang.Integer
最小值:Integer.MIN_VALUE=-2147483648
最大值:Integer.MAX_VALUE=2147483647
初始值 0
long
?默認(rèn)int 存long特殊(12345678900)+必須加小字母L
8個字節(jié)?
long l =12345678900l?
基本類型:long 二進制位數(shù):64
包裝類:java.lang.Long
最小值:Long.MIN_VALUE=-9223372036854775808
最大值:Long.MAX_VALUE=9223372036854775807
初始值 0L
浮點類型
double(默認(rèn))
8個字節(jié)
基本類型:double 二進制位數(shù):64
包裝類:java.lang.Double
最小值:Double.MIN_VALUE=4.9E-324
最大值:Double.MAX_VALUE=1.7976931348623157E308??
初始值 0.0D
float
4個字節(jié)
?基本類型:float 二進制位數(shù):32
包裝類:java.lang.Float
最小值:Float.MIN_VALUE=1.4E-45
最大值:Float.MAX_VALUE=3.4028235E38
初始值 0.0F
字符型(char)
基本類型:char 二進制位數(shù):16
包裝類:java.lang.Character
最小值:Character.MIN_VALUE=0
最大值:Character.MAX_VALUE=65535
初始值 空字符,'\u0000'
布爾型(boolean)
初始值 flase
引用數(shù)據(jù)類型
初始值 null
類(class)
接口(interface)
數(shù)組([])
枚舉(enum)
注解(annotation)
變量類型轉(zhuǎn)換
short s = 4;
兩者區(qū)別?:
s= s + 5
s+=5
自動轉(zhuǎn)換
short s = 4;
兩者區(qū)別?
s= s + 5//編譯失敗;
s+=5//編譯通過,會做自動轉(zhuǎn)換;
強制轉(zhuǎn)換
運算符
運算符優(yōu)先級
^異或
兩邊相同為false
true^true =false?
true^false =true
false^true =true
* false^false =false????
&& 短路與 &
int y =1;
y>3 & y<6
兩邊都參與運算?
y>3 && y<6??
當(dāng)左邊為false;結(jié)束運算?
||短路或
int y =1;
y>3 & y<6
兩邊都參與運算?
y>3 && y<6??
當(dāng)左邊為true;結(jié)束運算??
位運算符
位運算符圖表
圖解位運算符(二進制運算快
<<左移
二進制左移一位32(1)=6 左移兩位32(2)
.>>右移 >>>無符號右移
最高位出現(xiàn)空位需判斷原來是正數(shù)(補0)還是負(fù)數(shù)(補1)?
. >>>無符號右移 不判斷直接是正數(shù)(補0)?
.>>無符號右移 用處
二進制轉(zhuǎn)進制
與或非 取反運算
圖解 0為假 1真 (0為正 1為負(fù))
|按位或
&按位與
~取反
條件運算符
switch(js和java的區(qū)別)
switch (x) {
case 0:
day = "Sunday";
break;
case 2:
day = "Monday";
break;
case 2:
day = "Tuesday";
break;
}
支持 byte short int char 5.0 enum 7.0 String
js 執(zhí)行 并讀到第一個就停止Monday
java 不執(zhí)行 報錯
while,do while,for break continue
do while和while的區(qū)別:
do while 無論條件是否滿足循環(huán)體至少執(zhí)行一次
for 直角三角形
for(int i=1;i<=9;i++){
for(int j=i;j<=9;j++){
System.out.print("*");
};
System.out.println();
* }
break //跳出方式
outer:for(int i=0;i<3;i++){
inner:for(int j=0;j<4;j++){
System.out.println("i=" + i);
break outer;(i=0);
break||break inner?(i=0 i=1 i=2)
)
};
}
continue 回去再次循環(huán)
函數(shù)方法定義
修飾符 返回值類型
函數(shù)定義視圖
方法重載(overload參數(shù)區(qū)分)
功能相同可以名字定義相同
遞歸
(問題)遞歸經(jīng)典問題https://blog.csdn.net/isitman/article/details/61199070
遞歸求階乘
經(jīng)典兔子問題
題目:
?古典問題:3個月起每個月都生一對兔子,
?小兔子長到第三個月后每個月又生一對兔子甸饱,
?假如兔子都不死,問每個月的兔子總數(shù)為多少?
遞歸視圖
遞歸代碼
public static int getSum(int n){
if(n==1){
return(1);//遞歸出口,結(jié)束條件
}
int temp =getSum(n-1);
return temp +n ;
}
九九乘法表(overload)
默認(rèn)99乘法表
?public static void printCfB(){
printCfB(9);
};
public static void printCfB(int num ){
for(int x=1;x<=num; x++){
for(int y=1;y<=x;y++){
System.out.print(y+"*"+x+"="+y*x+"\t");
}
System.out.println();
}
}
數(shù)組
數(shù)組定義
int [] arr={1,2,3,4,5};
int[] arr=new int[3] 0;
數(shù)組示圖
數(shù)組的定義方式
比較最大值
數(shù)組最大值
數(shù)組排序 https://gitee.com/DannyDong/codes/xqrb04imukfthvd5a9l7669
二維數(shù)組
int[][] arr = new int[3][];
二維數(shù)組簡單應(yīng)用
求和
(二)面向?qū)ο?/h2>
面向?qū)ο?面向過程
圖例示例
圖例示例
面向?qū)ο蟮奶卣?/p>
封裝
隱藏實現(xiàn)細(xì)節(jié),對外提供公共的訪問方式,私有(private)僅僅是封裝的一種體現(xiàn).
繼承
多態(tài)
類
類定義
圖示
對象的創(chuàng)建
壓棧 彈棧
圖示
封裝
圖示示例
對變量訪問的操作
賦值(設(shè)置 set)setAge
判斷(保證年齡正確性)
throw new RuntimeException(a+"歲,超出人類認(rèn)知");
圖示示例
取值(獲取 get)getAge
構(gòu)造函數(shù)
構(gòu)造函數(shù)細(xì)節(jié)
圖示示例
圖示示例
重載
package object;
public class PersonDemo2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Person1 person1 =new Person1() ;
Person1 person =new Person1("list") ;
Person1 person2 =new Person1("wangwu",12);
person2.speak();
}
}
class Person1{
//屬性: 姓名,年齡
private String name;
private int age;
//一初始化,既沒有姓名,又沒有年齡.
Person1(){
};
//定義構(gòu)造函數(shù),對象一創(chuàng)建就具備姓名.
Person1(String n){
//將接收到的值賦值給對象的name
name = n;
};
Person1(String n,int a){
//將接收到的值賦值給對象的name
name = n;
age = a;
};
//行為
public void speak(){
System.out.println("name="+name+",age="+age);
}
}
this
圖示示例
垃圾回收
圖示示例
Ststem.gc()
通知虛擬機jvm立即進行垃圾回收
finalize()方法會被自動調(diào)用 用于觀察何時被回收
static 關(guān)鍵字
靜態(tài)變量
靜態(tài)方法
靜態(tài)代碼塊
知識點
命名規(guī)則
圖示
classpath
類變量地址(虛擬機用的)
配置set classpath =? C:\javaapp(為空時长已,清除classpath)
?set classpath =? C:\javaapp 不等于?set classpath =? C:\javaapp蕊连;加烘豌;代表還有當(dāng)前目錄靖榕,不加代表唯一 (一般不加标锄,如果要加classpath =? .;)
同class名下,虛擬機優(yōu)先尋找class?path文件
classpath?
?.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
C:\Program Files\Java\jdk1.8.0_91\lib;C:\Program Files\Java\jdk1.8.0_91\lib\tools.jar;?
java 注釋
/**
@author?
@version?
java獨有的文檔注釋javadoc
可以生成html的文檔說明? ??
?/
/
多行注釋?
?*/?
* // 單行注釋?
其他知識點
print 和println 的區(qū)別
前者不換行 后者換行
進制
二進制(由數(shù)字0和1組成)100舉例
1100100
?java開頭加0b或0B用以區(qū)分十進制
(0b01100100或0B01100100)??
八進制(由數(shù)字1到8組成)100的二進制舉例
二進制轉(zhuǎn)八進制←001 001 100(144)
(0144)?
十六進制(由0-9,A-F組成每4位為一段
二進制轉(zhuǎn)十六進制←0110 0100(64)
?(0x64或0X64)
轉(zhuǎn)義字符
轉(zhuǎn)義字符圖示