日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

一個月的JAVA總結(jié)

 印度阿三17 2019-09-02

初遇java

首次接觸java是在大二上學(xué)期的時候,在學(xué)校老師講的很快,再加上本來也沒好好聽講,所以基本也沒學(xué)到什么,為了應(yīng)付考試和項目自己看過一些書,知道一些很少很少的用法。

一、 開始學(xué)習(xí)

  1. 什么是java?
    java是一種編程語言

  2. java的優(yōu)勢是什么?
    我覺得java的應(yīng)用范圍很廣,基本上方方面面都能涉及到,不過目前我學(xué)習(xí)的是面向網(wǎng)站的javaEE。

  3. JDK版本的選擇和安裝
    越高的版本的JDK功能是越多的,但是對于生產(chǎn)開發(fā),很多應(yīng)用還用的是舊版的JDK,類似于1.6,1.7,所以在學(xué)習(xí)時,使用的是JDK1.8.。

  4. 環(huán)境變量的配置
    百度經(jīng)驗描述還是比較詳細的

  5. IDE的選擇
    我選擇的是myeclipse2019.4.0,老實說我覺得這個版本的界面比我之前上學(xué)用的2014好看太多了,所以下下來的時候還是很開心的(不過還是需要吐槽一下,myeclipse啟動的太慢了…隔壁朋友的eclipse每次秒啟動,我要等好久或者重來好多次)

  6. Java的運行原理
    Java源文件(.java)—>(經(jīng)過編譯)—>Java字節(jié)碼文件(.class)—>交給JVM虛擬機執(zhí)行,然后交給操作系統(tǒng)執(zhí)行;正因如此java可以在多種平臺上使用。

二、 變量與運算符

變量和運算符的內(nèi)容很基礎(chǔ),但要牢記

1.命名規(guī)則

類名:首字母大寫,如:Student,Test
變量名,方法名:首字母小寫,后續(xù)字母大寫(駝峰命名法),如:stuName,age;getName,getId
包名全部小寫
常量名全部大寫
不能用關(guān)鍵字和保留字命名
在這里插入圖片描述
在這里插入圖片描述

2.變量

常量是一直不變的量;而變量就是在程序運行過程中可變的量。

變量的聲明與賦值方法:

數(shù)據(jù)類型 變量名 = 值 | 表達式 |方法; 

兩個概念:
a.成員變量:成員變量是在類的下一級定義的變量,可以不用賦初值。
b.局部變量:在類的方法中定義的變量,使用前必須賦初值,作用于只能在本方法中。

3.數(shù)據(jù)類型

8種基本數(shù)據(jù)類型:byte字節(jié)型,short短整型,int整型,long長整型,float double char boolean
引用類型:類,接口,字符換,數(shù)組等…

數(shù)據(jù)類型轉(zhuǎn)換
a.隱式轉(zhuǎn)換:由系統(tǒng)自動轉(zhuǎn)換,類型要相互兼容,小轉(zhuǎn)大;
b.強制轉(zhuǎn)化:當(dāng)類型不兼容或大轉(zhuǎn)小時,需要由我們自己強制轉(zhuǎn)換

double d =12.3;
int t=(int) d;

注意:強制類型轉(zhuǎn)換會有精度損失

4.關(guān)系運算符

區(qū)分=和==的區(qū)別
其他運算符: !,& ,|, ,/(取模),*,%(取余)等
三元表達式

boolean n = (4 < 3) ? true : false;

?前面的為真,則執(zhí)行:左邊;為假,執(zhí)行:右邊。

三、流程控制語句

這里主要學(xué)習(xí)了一些流程控制語句

if語句

if(條件){
}

switch

switch(n){
case  1:
break;
default:
}

這里要說明的是,case具有貫穿性,所以在使用時,可以根據(jù)需求,來判斷是否需要些break
能打破switch結(jié)構(gòu)的,只有break和}。

for

for(迭代變量;循環(huán)條件;控制循環(huán)次數(shù)的操作){
}

while

while(){
}

while是先判斷條件是否成立,再執(zhí)行的

do…while

do{
}while()

do…while必定會執(zhí)行一次,先執(zhí)行,后判斷(先斬后奏)

每個流程控制語句可以相互嵌套,但是不要嵌套過多,以免代碼雜亂,邏輯難以理清。
while和do…while常用于次數(shù)不明確的循環(huán),for常用語次數(shù)明確的循環(huán)

死循環(huán)并不一定是錯的,當(dāng)要完成某些需求時,可以用到死循環(huán)

四、數(shù)組

這里學(xué)習(xí)了數(shù)組的使用
數(shù)組是引用類型,使用數(shù)組前必須實例化

數(shù)組的聲明

a.
1、聲明數(shù)組 2、實例化數(shù)組

int[] nums;
nums= new int [5];

b.
聲明同時實例化

int [] numbers =new int[5];
int [] bym2s ={1,2,3,4};
int [] vya3s=new int[ ] {1,2,3,4};

內(nèi)存:棧 堆 池
程序和變量都在棧中
基本數(shù)據(jù)類型都放在棧中

數(shù)組使用時,先在棧中分配一塊空間,用來存儲數(shù)組元素在堆中存儲的地址。

數(shù)組的索引都是從0開始的
比如我創(chuàng)建了一個length為5的數(shù)組,但是a[5]是取不到的,如果這樣寫,會提示數(shù)組越界。

foreach

for(數(shù)組元素類型  變量名 :   數(shù)組名){
         語句;
}

多維數(shù)組

多維數(shù)組我的理解就是在一維數(shù)組中,將他的元素也變?yōu)閿?shù)組,就成了多維數(shù)組

多維數(shù)組的創(chuàng)建

數(shù)據(jù)類型 數(shù)組名 =new 數(shù)據(jù)元素類型[行數(shù)] [列數(shù)];
//列數(shù)可以不寫
ex:
int[][] a=new int[3][];
int[][] a=new int[3][4];

數(shù)組的操作

a.取數(shù)
a[索引] 就可以取出其中的數(shù)
b.取數(shù)組長
a.length
c.數(shù)組的遍歷

int [] numbers =new int[5];
for(i=0;i<numbers.length;i  ){
       syso(“number[i]”);
}

//foreach
for(int  i :   number){
    syso(“number[i]”);
    }

冒泡排序在這里插入圖片描述

for(i = 1; i < n; i  )
   {
      for(j = 0; j < n-i; j  )
       {
           if(a[ j ] > a[ j  1 ]) 
            {
                t = a[ j ]; 
	            a[ j ] = a[ j  1 ]; 
	            a[ j  1 ] = t;  
            }
       }
  }

擴展:
直接插入排序
在這里插入圖片描述
希爾排序
在這里插入圖片描述
簡單選擇排序
在這里插入圖片描述

方法

方法是可以說是程序里非常重要的一環(huán)了,所以在學(xué)習(xí)中要重點理解,多練習(xí)。

什么是方法?
方法是完成某個功能的一組語句,通常將常用的功能寫成一個方法。

方法的聲明或者定義——方法五要素

訪問修飾符,返回值類型,方法名 , 參數(shù)列表,方法體

[訪問控制符] [修飾符] 返回值類型 方法名(參數(shù)類型 形式參數(shù),參數(shù)類型 形式參數(shù),…){
   					 方法體
}
public void  getType(){
}

void 可以寫也可以不寫 return,寫return可以用來結(jié)束方法,類似于break

非void必須寫返回值,方法的每條分支必須要有return

參數(shù) 可以一個可以多個,多個的時候用逗號隔開

參數(shù)傳遞時要注意的問題
在這里插入圖片描述

值類型參數(shù)傳遞,傳遞的是值的副本(類似于復(fù)制一份傳遞過去)。

引用類型參數(shù)傳遞, 傳遞的是對象的地址的副本 所以方法內(nèi)或方法外操作的都是同一個堆中內(nèi)容,所以值會改變。

方法的調(diào)用
a.實例化類對象

類  對象名 =new 類();

b.調(diào)用方法

對象名.方法名(有參帶參,無參不寫);

方法的重載
即相同的事,不同的做法
a.在同一個類中
b.方法名相同
c.參數(shù)列表不同(類型,個數(shù)。即有一個獨一無二的參數(shù)列表)
d.和訪問修飾符、返回值類型無關(guān)(可以相同,也可以不同)

面向?qū)ο?/h2>

面向?qū)ο笫且粋€抽象的概念,java就是屬于面向?qū)ο笳Z言

**抽象:**從事物中舍棄個別的非本質(zhì)特征,抽取共同的本質(zhì)特征只考慮與問題域相關(guān)的信息,而忽略與問題域不相關(guān)的部分

**對象:**萬物皆對象,對象有自己的屬性和行為(方法)

**類:**對對象的抽象

生活中先有對象再有類,而程序中先有類,類的作用是創(chuàng)建對象,類是生成對象的模板。

如何寫一個類?

寫類三步走:
1.發(fā)現(xiàn)類
2.發(fā)現(xiàn)類的屬性
3.發(fā)現(xiàn)類的方法

//1.發(fā)現(xiàn)類
public  class  類名{
     //2.發(fā)現(xiàn)屬性
       訪問修飾符  數(shù)據(jù)類型  屬性名 ;
     //3.發(fā)現(xiàn)方法
       訪問修飾符  返回值類型  方法名(參數(shù)列表){方法體;}
}

對象

a.對象實例化

類名 對象名  = new  類名();

b.給對象的屬性賦值

對象名.屬性=值

c.調(diào)用對象方法

對象名.方法名(參數(shù));

d.對象在內(nèi)存中的存儲
在這里插入圖片描述
棧內(nèi)保存了對象的首地址,即引用;
在堆內(nèi)存中保存了對象的屬性。
方法不能被保存
方法是在cpu中運行計算,然后將所得到的的結(jié)果存入內(nèi)存。

棧:先進后出、后進先出。
棧中保存基本數(shù)據(jù)類型的局部變量和對象調(diào)用引用值。

堆:堆可以保存那些對空間要求較大的變量。
new空間分配存儲符

構(gòu)造函數(shù)

作用:
創(chuàng)建對象,初始化對象
特點:
a.方法名必須與類同名
b.無返回值(只進不出;與普通方法區(qū)分)
c.普通方法可以與構(gòu)造函數(shù)同名,但必須要有返回值
d.構(gòu)造函數(shù)不能被直接調(diào)用,在new時會自動調(diào)用
e.如果不創(chuàng)建構(gòu)造函數(shù),編譯器會提供一個默認不帶參數(shù)的構(gòu)造函數(shù)。寫了構(gòu)造函數(shù)就不提供默認的了
f.構(gòu)造函數(shù)可以帶參數(shù)。
g.一個類可以定義多個構(gòu)造函數(shù)。
h.構(gòu)造函數(shù)可以相互調(diào)用,必須在第一行。this(屬性名)

java具有垃圾回收機制,不必專門去寫方法處理

常用的包
java.lang
java.io

同一包中的類可以直接訪問并使用

訪問不同包中的類
import
import可以多次使用
*通配符 導(dǎo)入全部

封裝

面向?qū)ο笕筇卣髦弧?strong>封裝

封裝無處不在

封裝就是將不想或不該告訴他人的東西隱藏起來,將可以告訴他人的內(nèi)容公開( 隱藏對象的屬性和方法的細節(jié),只公開對外接口 )

封裝的好處:
a.隱藏實現(xiàn)的細節(jié)
b.方便修改的實現(xiàn)
c.只能通過規(guī)定方法訪問

權(quán)限

在這里插入圖片描述
訪問修飾符:
private 私有的 ,不對外公開 最小權(quán)限
default 默認的 不使用訪問修飾符時
public 公共的 所以的類都能訪問
protected 受保護的

靜態(tài) static

static在初次加載時被實例化,至始至終只有一個對象

a.屬性
類的屬性
適用范圍:靜態(tài)方法和非靜態(tài)方法都可以調(diào)用
訪問修飾符 static 數(shù)據(jù)類型 變量名=值;

public static String context=“hello”

b.方法
類的方法
適用范圍:靜態(tài)方法和非靜態(tài)方法都可以調(diào)用
在靜態(tài)方法中,只能調(diào)用靜態(tài)屬性和靜態(tài)方法
訪問修飾符 static 返回值類型 方法名(參數(shù)列表){ 方法體 }

public static void fun(){
 syso
}

c.代碼塊
初始化static修飾的變量

static{             }

單例模式

讓類只有一個實例對象
a.私有化構(gòu)造函數(shù)
b.提供私有類的靜態(tài)屬性
c.提供靜態(tài)方法返回實例對象
i.判斷是否實例化過對象

取的單例對象:
類名.返回實例的靜態(tài)方法

對象數(shù)組

實例化對象數(shù)組

Cat[] cats = new Cat[10];

向數(shù)組內(nèi)填充對象

數(shù)組名[ 索引 ]=對象名;//此對象名應(yīng)提前實例化
數(shù)組名[ 索引]=new  數(shù)據(jù)類型();
cats[0]=cat;
cats[1]=tom;

數(shù)據(jù)類型[]  數(shù)組名 = new  數(shù)據(jù)類型[長度]

操作數(shù)組內(nèi)的對象

數(shù)組名[ 索引].屬性;
數(shù)組名[ 索引].方法名

繼承

關(guān)系傳遞 ,體現(xiàn)類之間的層次結(jié)構(gòu)
object 所有類的父類

特點:
a.單繼承,一個類只能有一個父類
b.一個類可以被多個類繼承
c.可以有多層繼承,A被B繼承,B被C繼承
d.子類繼承父類所有的成員變量和成員方法。(除private外)
e.子類可以繼承父類的方法,并且可以重寫父親的方法
f.父類構(gòu)造函數(shù)不能被繼承??梢允褂胹uper調(diào)用父親的構(gòu)造函數(shù)
g.如果子類的構(gòu)造方法中沒有顯示地調(diào)用父類構(gòu)造方法,也有用this關(guān)鍵字,則在產(chǎn)生子類的實例對象時,系統(tǒng)默認調(diào)用父類無參數(shù)的構(gòu)造方法

super()父類對象
this()本類(當(dāng)前)對像

重寫:
重寫父類方法
@Override
1.在子類中
2.方法名,參數(shù)列表,返回值類型相同
3.訪問修飾符不能比父類更嚴格,即子類方法的
訪問修飾符要大于等于父類的訪問修飾符

抽象類

不具體的類
主要用于做父類
如動物類 蔬菜類 水果類
abstract定義抽象類

public abstract class 類名{ }

抽象類不能被實例化
允許(但不要求)抽象類包含抽象成員
含有抽象方法的類稱為抽象類
抽象方法必須在子類中被實現(xiàn),子類是抽象類除外

抽象方法

不具體的方法
用于被子類實現(xiàn),子類完成方法體

訪問修飾符 abstract 返回值類型  方法名(參數(shù)列表);

final

final 修飾

  1. 變量 或常量

    訪問修飾符 final 數(shù)據(jù)類型 變量名=值;

2.方法 不能被重寫的方法

訪問修飾符  final 返回值類型  方法名(參數(shù)列表){ };
  1. 類 不能被繼承的類

    訪問修飾符 final class 類名{ };

接口

接口 interface
完全抽象
接口內(nèi):靜態(tài)常量 和 抽象方法
常量默認有 public static final
方法默認有 public abstract

接口是一種規(guī)范、約定
遵循抽象類所有原則
一個類可以實現(xiàn)多個接口
接口沒有構(gòu)造函數(shù)

實際對象要看new的是什么
使用父類作為引用 實例化子類對象
父類引用但只引用到子類繼承父類的成員

instanceof
判讀對象是否是什么類型
對象名 instanceof 類型
返回 ture 或 false

使用接口引用實例對象
能引用到的是該類實現(xiàn)接口的方法

接口:
設(shè)計
規(guī)范
約定
擴展
能力

接口可以作為參數(shù),也可以作為屬性,還可以被類直接調(diào)用

簡單工廠模式:
1.構(gòu)建父類對象
2.子類繼承父類
3.創(chuàng)建工廠類,提供實例化對象的方法.

在這里插入圖片描述

異常處理

try{
}catch(異常類型 e){
}
2.
try{
}catch(異常類型 e){
}catch(異常類型 e){
}catch(異常類型 e){
}catch(異常類型 e){
}
catch的順序要先子類后父類

try{
}finally{
}
4.
try{
}catch{
}finally{
}
5.
try{
}catch{
}catch{
}

finally{
}
finally無論是否有異常,無論是否處理,finally都要執(zhí)行 (system。exit(0)時不執(zhí)行)

throw 拋出異常
throws在方法中聲明異常

工具類

object是所有類的父類

equals主要比較的是內(nèi)容
==比的是對象的地址

值類型與引用類型的轉(zhuǎn)換
裝箱和拆箱 消耗性能

int t=5;
//裝箱是將值類型轉(zhuǎn)換成引用類型
引用類型 =值類型
integer tt=t;

//拆箱是將引用類型轉(zhuǎn)換成值類型
值類型=(值類型)引用類型
int i=(int) tt

集合

長度固定 隊形連續(xù)
集合
長度可變 隊形多樣

set接口
無序 - 是指元素存入順序和集合內(nèi)存儲的順序不同
無重復(fù) - 兩個對象e1和e2,如果e1.equals(e2)返回true,則認為e1和e2重復(fù),在set中只保留一個

arraylist用于常查少改
linkedlist用于常改少查

在這里插入圖片描述

文件與流



數(shù)據(jù)的流動
數(shù)據(jù)傳輸?shù)倪^程,有開始有結(jié)束

字節(jié) byte
1byte=8位
計算機的存儲單位

字符
文字表達的內(nèi)容

除文本文件外,其他文件均勻標準單位(字節(jié))去輸入輸出讀取

序列化
保存對象的瞬時狀態(tài)
反序列化
就是把對象取出來

在這里插入圖片描述
1個進程 可以包含一個或多個線程,其中必須要有一個主線程。

繼承式適用于多個對象,每個都是獨立線程
接口式適用于一個對象,多個線程同時操作

這里只是把平時上課的一些筆記轉(zhuǎn)移了上來,并不夠細致,還需要更多的總結(jié)與學(xué)習(xí)

來源:https://www./content-1-435201.html

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多