欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      Linux_基礎(chǔ)經(jīng)典筆記總結(jié)

      時間:2019-05-12 02:51:06下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《Linux_基礎(chǔ)經(jīng)典筆記總結(jié)》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《Linux_基礎(chǔ)經(jīng)典筆記總結(jié)》。

      第一篇:Linux_基礎(chǔ)經(jīng)典筆記總結(jié)

      .用戶可以通過authconfig來設(shè)定是否使用shadow文件及md5加密

      shadow文件詳細

      .shadow文件的每一行中的每一項具體來說:.登錄用戶名

      .用戶密碼(一般經(jīng)md5加密)(密碼是*!表示賬號被鎖定不能被登錄).從1970年1月1日起到密碼上一次被更改的時間.密碼再過幾天可以被變更(0表示隨時可被變更).密碼再過幾天必須被變更(99999表示永不過期).密碼過期前幾天系統(tǒng)提醒用戶(默認為一周).密碼過期后幾天賬號會被取消(:wq!強行保存退出).從1970年1月1日算起,多少天后賬號失效

      組管理

      .系統(tǒng)中組的信息,記錄在/etc/group中

      .系統(tǒng)用戶可以直接修改/etc/group文件達到更改組數(shù)據(jù)的目的,也可以使用以下指令:

      .groupadd:添加一個組 例如:groupadd book.groupdel:刪除一個已存在組 例如:groupdel book.groupmod:更改組的信息

      .用戶可用newgrp指令改變當(dāng)前所再組

      組文件(etc/group)(/etc/gshadow)

      ./etc/group中的每一行代表一個組,用 :隔開不同項.group_name:組名

      .password:組密碼(一般不用)

      .GID:組身份編號(0代表root群組,1-499系統(tǒng)群組,500上代表一般群組).user_list:組成員列表

      例如:groupmod-n jack tom 更改群組名稱

      gpasswd jack 為群組設(shè)定密碼

      gpasswd-a jack boobooke把jack用戶加入群組boobooke或vi /etc/group 有效群組:一個用戶同時屬于多個組(groups第一個輸出的群組就是有效群組)[更改有效群組:newgrp tom] 初始群組:一開始默認所屬的群組

      {useradd-u 600 teacher為用戶特定指定UID useradd-g tom-G boobooke teacher為用戶指定初始群組并加入一個群組 useradd teacher-s /bin/csh讓用戶不使用bash useradd-M teacher不給用戶創(chuàng)建加目錄

      useradd-m teacher創(chuàng)建用戶的同時強制創(chuàng)建加目錄 useradd teacher-d /teach1不讓用戶加目錄放到/home下 useradd-r chen創(chuàng)建系統(tǒng)用戶

      groupadd-r groups創(chuàng)建系統(tǒng)群組}finger查看

      硬件配置與管理

      設(shè)備文件(為用戶和應(yīng)用程序提供操作應(yīng)用的接口,用戶只需要以操作普通文件的方式來控制相關(guān)硬件).Linux沿襲Unix的風(fēng)格,將所有設(shè)備認成一個文件.設(shè)備文件分為兩種

      .塊設(shè)備文件(b)通過緩沖區(qū)存放數(shù)據(jù)512-32K字節(jié)的中繼塊(硬盤、光驅(qū)).字符設(shè)備文件(c)一次只一個字節(jié),不需要緩沖區(qū)(串口、優(yōu)盤).設(shè)備文件一般放在/dev目錄下

      常用的塊設(shè)備文件 1./dev/hd[a-t]:IDE設(shè)備 2./dev/sd[a-z]:SCSI設(shè)備 3./dev/fd[0-7]:標(biāo)準(zhǔn)軟驅(qū) 4./dev/md[0-31]:軟raid設(shè)備

      5.loop[0-15]:本地回訪設(shè)備(支持本地回環(huán)請求)6.ram[0-19]:內(nèi)存

      常用的字符設(shè)備文件./dev/null:無限數(shù)據(jù)接收設(shè)備(黑洞功能)./dev/zero:無限零資源./dev/tty[0-31]:虛擬終端./dev/ttyS[0-9]:串口./dev/lp[0-3]:并口./dev/console:控制臺

      ./dev/fb[0-31]:framebuffer(顯卡數(shù)據(jù)傳輸)

      常用的符號連接設(shè)備文件./dev/cdrom→/dev/hd[a-t],sd[a-z]./dev/modem→/dev/ttyS[0-9]./dev/pilot→/dev/ttyS[0-9]

      設(shè)備文件的使用

      .用戶可以通過操作設(shè)備文件來完成對設(shè)備的操作.echo hello > /dev/tty2

      -在第二個tty終端上顯示一個'hello'.cp /dev/fd0 /dev/fd1

      -將第一個軟驅(qū)中的軟盤拷入第二個軟驅(qū)中的軟盤.dd if=/dev/hda of=/root/mdr bs=512 count=1

      -備份第一個硬盤上的mbr為/root目錄下的mbr文件

      dd.dd指令時一個功能強大的copy命令.支持在拷貝文件的過程中轉(zhuǎn)換文件格式.支持指令范圍的復(fù)制

      .常用參數(shù)

      .if=文件名:指定源文件.of=文件名:指定目標(biāo)文件.bs=xxx:指定塊的大小.count=n:指定復(fù)制塊的數(shù)量

      例如:dd if=/etc/passwd of=/root/passwd.backup(bs=512 count=3)可以不用加

      dd < /root/install.log > /root/install.log.bp

      dd < /dev/sda1 > /root/mbr bs=512 count=1--備份磁盤扇區(qū)

      mknod 1.系統(tǒng)用戶可以用mknod指令來建立所需的設(shè)備文件

      /etc/sysconfig/hwconf:使用硬件列表

      硬盤分區(qū)表/Standard Partition Table/SPT 講解:記錄每分區(qū)記錄

      +號添加、-號去除

      特殊屬性(A當(dāng)文件被修改是文件的更改時間不會被改變、a只能想文件作內(nèi)容追加,root用戶用、d做備份不會備份這文件、i文件永遠不會改變包括增刪改、j系統(tǒng)會將文件本身信息記錄ext上日志里、S文件被更改同步寫到文件系統(tǒng)里面)

      例如:給文件設(shè)定特殊屬性

      lsattr 文件名--查看特殊屬性

      chattr +i install.log--添加特殊屬性

      rm install.log--現(xiàn)在不能刪除這個文件

      chattr-i install.log--去掉特殊屬性

      ext3文件系統(tǒng)

      1.ext3文件系統(tǒng)即一個添加了日志功能的ext2,可與ext2文件系統(tǒng)無縫兼容 2.ext2文件系統(tǒng)可以通過增加日志的方式簡單地升級成為ext3文件系統(tǒng) 3.ext3文件系統(tǒng)支持三種日志模式

      寫回(只在fsck是發(fā)生)

      ext2寫數(shù)據(jù)的流程:寫(data)---緩沖區(qū)(buffer)但是要等緩沖區(qū)寫滿后才執(zhí)行下面---硬盤(disk)

      ext3寫數(shù)據(jù)的流程:寫(data)---緩沖區(qū)(buffer)緩沖區(qū)寫滿后---通知日志準(zhǔn)備寫入文件---硬盤(disk)并且硬盤最后面一塊空間是日志存放空間---通知日志文件已經(jīng)寫入磁盤 有無日志的差別:

      ext2---ext3(相對之間的性能要好些)

      檢查有

      檢查日志(時間快)效位(時間慢)

      其他常見的文件系統(tǒng).minix:古老的文件系統(tǒng)

      .msdos/fat:microsoft早年的文件系統(tǒng).vfat:win95與win98采用的文件系統(tǒng).ntfs:win2000使用的文件系統(tǒng).iso9660:光盤使用的文件系統(tǒng)

      .ReiserFS/JFS:仍然在完善的帶日志文件系統(tǒng) 查看Linux支持的文件系統(tǒng)

      ls-l /lib/modules/'uname-r(系統(tǒng)核心版本號)'/kernel/fs 查看當(dāng)前Linux啟用的文件系統(tǒng): cat /proc/filesystems

      創(chuàng)建文件系統(tǒng)

      .如果我們需要使用一個分區(qū)用于存儲文件,則我們要在這個分區(qū)上建立文件系統(tǒng)

      .常用的創(chuàng)建文件系統(tǒng)的工具:.mkfs

      創(chuàng)建ext2/3文件系統(tǒng),支持指定block大小等功能 例如:mke2fs參數(shù):

      【-b】指定塊的大小 mke2fs-b 2048 /dev/sda5(ext2/ext3上塊的大小最大是4096KB)

      【-i】更改索引節(jié)點大小 mke2fs-i 1028 /dev/sda5(索引節(jié)點大小修改等同于修改索引節(jié)點數(shù))

      【-N】指定創(chuàng)建索引節(jié)點數(shù) mke2fs-N 3000 /dev/sda5

      【-m】設(shè)定系統(tǒng)保留空間 mke2fs-m 10 /dev/sda5(保留10%)

      【-L】創(chuàng)建文件系統(tǒng)的同時設(shè)置卷標(biāo) mke2fs-L data /dev/sda5(查看卷標(biāo)dumpe2fs /dev/sda5 方便掛載是使用卷標(biāo)掛載)

      【-j】讓系統(tǒng)給分區(qū)創(chuàng)建ext3文件系統(tǒng)mke2fs-j /dev/sda5

      使用文件系統(tǒng)

      .為了使用一個文件系統(tǒng),往其中存讀文件,用戶需要先掛載該文件系統(tǒng).掛載文件系統(tǒng)的指令時mount.語法:

      .mount-t 文件系統(tǒng)類型[其他參數(shù)] 設(shè)備 掛載點

      mount參數(shù)

      1.-t 文件系統(tǒng)類型:用于指定掛載文件系統(tǒng)的類型,一般這個參數(shù)是必須的 2.-o 參數(shù):補充追加的參數(shù)

      3.ext2文件系統(tǒng)默認采用的參數(shù):rw(代表對文件系統(tǒng)有讀寫的權(quán)限)、suid(代表允許使用suid)、dev(允許文件系統(tǒng)包括設(shè)備文件)、exec(允許文件系統(tǒng)里二進制的運行)、auto(允許自動判斷文件系統(tǒng)共類型)、nouser(只允許超級用戶掛載文件系統(tǒng))、async(進行異步管理文件的改變)、user(允許一般用戶管理文件系統(tǒng))、ro(只讀)、loop(用于訪問回環(huán)設(shè)備及鏡像的掛載)、remount(重新載入)例如:mount /dev/sda5 /opt---(umount opt卸載用)

      mount-o ro /dev/sda5(讓分區(qū)變成只讀)

      mount /dev/cdrom /mnt(掛載光驅(qū))

      mount /dev/floppy /mnt(掛載軟驅(qū))

      mount-o loop,ro /var/boot.iso /mnt(掛載磁盤內(nèi)的鏡像文件)

      /etc/fstab.配置文件系統(tǒng)掛載信息

      .mount文件系統(tǒng)是若給出的參數(shù)不全,系統(tǒng)會從/etc/fstab中讀取參數(shù)補完.系統(tǒng)啟動會參考/etc/fstab中的配置項自動加載文件系統(tǒng)(vi /etc/fstab).也被fsck、dump、quotaon、swapon等程序使用

      當(dāng)前掛載系統(tǒng)

      .用戶可以通過直接鍵入mount后回車來檢查當(dāng)前掛載中的文件.用戶也可以通過查看/etc/mtab文件來查看當(dāng)前掛載中的文件系統(tǒng).cat /proc/mounts文件查看

      卷標(biāo)

      .由于設(shè)備文件名可能在硬盤結(jié)構(gòu)發(fā)生變化時更動,因此Red Hat Linux對ext2文件系統(tǒng)使用卷標(biāo)來掛載與卸載

      .卷標(biāo)記錄在ext2/ext3文件系統(tǒng)的超級塊中

      .用戶可以用e2label指令來查詢與更改ext2文件系統(tǒng)的卷標(biāo) 卷標(biāo):(dumpe2fs-h /dev/sda5)例如:e2label /dev/sda5

      創(chuàng)建卷標(biāo)

      e2label /dev/sda5 data

      mount-L data /opt 掛載文件系統(tǒng)

      卸載文件系統(tǒng)

      1.當(dāng)一個文件系統(tǒng)使用完畢,用戶應(yīng)當(dāng)卸載該文件系統(tǒng) 2.umount指令用于卸載文件系統(tǒng) 3.語法:

      umount [參數(shù)] 設(shè)備/掛載點 4.一個正在使用中的文件系統(tǒng)不能被卸載 例如:umount /dev/sda5

      umount /opt(掛載目錄)

      文件系統(tǒng)維護

      1.fsck/filesystem check:用于檢查與修復(fù)文件系統(tǒng)

      需要后臺的automount進程

      -autofs服務(wù)的開閉由/etc/init.d/autofs腳本控制 2.主要應(yīng)用于軟驅(qū)與光驅(qū)等場合

      3.如果該設(shè)備一段時間沒有被使用,autofs會自動卸載 例如:設(shè)置自動掛載

      rpm-q autofs 安裝套件才能使用自動掛載

      配置文件auto.master(設(shè)定總的自動掛載環(huán)境)/ auto.misc(設(shè)定掛載設(shè)備)

      啟動服務(wù):service autofs restart

      Linux安裝選項/;來源---------圖形方式安裝:Linux或直接回車 字符方式安裝:linux text 檢測媒體:linux mediacheck 援救模式:linux rescue 跳過硬件檢測:linux noprobe 系統(tǒng)不支持SCSI以便安裝SCSI驅(qū)動:linux dd 安裝大量linux:linux askmethod----------------.CD-ROM / DVD-ROM.FTP.NFS.HTTP.硬盤

      安裝中的窗口切換

      在安裝過程中,我們支持用Alt + Fn鍵來切換顯示窗口:

      Alt + F1:安裝對話框

      Alt + F2:一個bash

      Alt + F3:安裝日志

      Alt + F4:與系統(tǒng)、核心相關(guān)的訊息

      Alt + F5:其他訊息,諸如mke2fs,grub的標(biāo)準(zhǔn)輸出

      Alt + F7:X圖形化顯示 關(guān)閉SELinux步驟:

      >查看服務(wù)狀態(tài):sestatus | more >更改selinux配置文件:vi /etc/sysconfi/selinux >更改為disabled狀態(tài)

      計劃任務(wù) linux的計劃任務(wù)

      .linux系統(tǒng)支持一些能夠自動執(zhí)行任務(wù)的服務(wù)我們稱其為計劃任務(wù):.at命令:指定一個時間執(zhí)行一個任務(wù).cron機制:根據(jù)一個時間表自動執(zhí)行任務(wù)

      .anacron機制:在一個指定時間間隔錯過后自動執(zhí)行任務(wù)

      at命令.at命令:安排一個任務(wù)在未來執(zhí)行

      .at命令需要系統(tǒng)后臺有一個atd進程(開啟atd進程服務(wù):/etc/init.d/atd restart).指令

      .at:安排延時任務(wù).atq:查詢當(dāng)前的等待任務(wù).atrm:刪除等待任務(wù)

      .batch:以一個低優(yōu)先級延時執(zhí)行任務(wù)

      例如:chkconfig--level 2345 atd on(自動啟動進程)讓系統(tǒng)在一分鐘之后創(chuàng)建字符發(fā)送給tty2的任務(wù):at now +1 min

      >echo “helo” > /dev/tty2

      >Ctrl + d 讓系統(tǒng)發(fā)送字符給root/test.txt:at 00:55 >echo “this is test” > /root/test.txt >cat /root/test.txt(查看系統(tǒng)執(zhí)行的任務(wù))at 1:00 2011-01-10 > /sbin/shutdown-h now(關(guān)閉系統(tǒng),創(chuàng)建計劃任務(wù)時是以完整路徑來執(zhí)行的絕對路徑)> Ctrl + d cd /var/spool/at(at 任務(wù)文件放置地)atq命令講解:查詢當(dāng)前正在等待被執(zhí)行的at任務(wù):atq 以郵件形式發(fā)送at信息:切換用戶--at now +1 min >echo “hi bbk”(沒有重定向)>Ctrl + d 以郵件形式發(fā)送創(chuàng)建任務(wù)信息 命令行輸入:mail 然后輸入 1 batch命令講解:考慮到系統(tǒng)負載時用batch batch >echo “hello” > /dev/tty >Ctrl + d atq(查看任務(wù))atrm 工作號 at命令的使用控制.at命令的使用控制文件./etc/at.allow./etc/at.deny.基于用戶的使用控制 at命令的控制流程 >.用戶---有at.allow文件---用戶是否在at.allow文件中---(在)允許(反之不允許)>.用戶---無at.allow文件---有at.deny文件---用戶在at.deny文件中---拒絕(反之允許)來說 >.用戶---無at.allow文件---無at.deny文件---只有root用戶才能使用at命令

      第二篇:java基礎(chǔ)總結(jié)(筆記)

      一、基礎(chǔ)知識:

      1、JVM、JRE和JDK的區(qū)別:

      JVM(Java Virtual Machine):java虛擬機,用于保證java的跨平臺的特性。

      java語言是跨平臺,jvm不是跨平臺的。

      JRE(Java Runtime Environment):java的運行環(huán)境,包括jvm+java的核心類庫。

      JDK(Java Development Kit):java的開發(fā)工具,包括jre+開發(fā)工具

      2、環(huán)境變量path和classpath的作用是什么?

      (1)path是配置Windows可執(zhí)行文件的搜索路徑,即擴展名為.exe的程序文件所在的目錄,用于指定DOS窗口命令的路徑。

      (2)Classpath是配置class文件所在的目錄,用于指定類搜索路徑,JVM就是通過它來尋找該類的class類文件的。

      3、變量有什么用?為什么要定義變量?什么時候用?

      答:變量的作用:用來存儲數(shù)據(jù)。

      為什么要定義變量:用來不斷的存放同一類型的常量,并可以重復(fù)使用

      4、&和&&的區(qū)別? 答:(1)&&會出現(xiàn)短路,如果可以通過第一個表達式判斷出整個表達式的結(jié)果,則不繼續(xù)后面表達式的運算;

      只能操作boolean類型數(shù)據(jù);

      (2)&不會出現(xiàn)短路,將整個表達式都運算。既可以操作boolean數(shù)據(jù)還可以操作數(shù)。

      5、標(biāo)示符命名規(guī)則:

      由數(shù)字(0-9),大小寫英文字母,以及_和$組成。

      不能以數(shù)字開頭。

      不能使用關(guān)鍵字來自定義命名。

      6、數(shù)據(jù)類型:

      (1)基本數(shù)據(jù)類型(4類8種):

      整數(shù)類型:byte、short、int、long

      浮點數(shù)類型:float、double

      字符類型:char

      布爾類型:boolean(ture false)(2)引用數(shù)據(jù)類型:

      接口

      數(shù)組

      7、類型轉(zhuǎn)換

      精度從高到低

      double float long int short(char)byte

      (1)自動類型轉(zhuǎn)換

      將一個低精度---?高精度

      (2)強制類型轉(zhuǎn)換

      將一個高精度---?低精度(精度會下降)

      8、java語言的三種技術(shù)架構(gòu)

      J2EE:企業(yè)版

      是為開發(fā)企業(yè)環(huán)境下的應(yīng)用程序提供的一套解決方案。

      該技術(shù)體系中包含的技術(shù)如 Servlet、Jsp等,主要針對于Web應(yīng)用程序開發(fā)。

      J2SE:標(biāo)準(zhǔn)版 是為開發(fā)普通桌面和商務(wù)應(yīng)用程序提供的解決方案。

      該技術(shù)體系是其他兩者的基礎(chǔ),可以完成一些桌面應(yīng)用程序的開發(fā)。

      比如Java版的掃雷。

      J2ME:小型版

      是為開發(fā)電子消費產(chǎn)品和嵌入式設(shè)備提供的解決方案。

      該技術(shù)體系主要應(yīng)用于小型電子消費類產(chǎn)品,如手機中的應(yīng)用程序等。

      9、java的跨平臺性:

      通過Java語言編寫的應(yīng)用程序在不同的系統(tǒng)平臺上都可以運行。

      跨平臺的原因:

      只要在需要運行java應(yīng)用程序的操作系統(tǒng)上,先安裝一個Java虛擬機(JVM Java Virtual Machine)即可。

      由JVM來負責(zé)Java程序在該系統(tǒng)中的運行。

      10、有符號數(shù)據(jù)的表示法(次重點)原碼,反碼(原碼取反),補碼(反碼+1)。

      11、函數(shù)

      定義:函數(shù)就是定義在類中的具有特定功能的一段獨立小程序。

      特點:

      定義函數(shù)可以將功能代碼進行封裝

      便于對該功能進行復(fù)用

      函數(shù)只有被調(diào)用才會被執(zhí)行

      函數(shù)的出現(xiàn)提高了代碼的復(fù)用性

      對于函數(shù)沒有具體返回值的情況,返回值類型用關(guān)鍵字void表示,那么該函數(shù)中的return語句如果在最后一行可以省略不寫。

      函數(shù)的應(yīng)用兩個明確:

      明確要定義的功能最后的結(jié)果是什么?

      明確在定義該功能的過程中,是否需要未知內(nèi)容參與運算

      12、重載:

      概念:在同一個類中,允許存在一個以上的同名函數(shù),只要它們的參數(shù)個數(shù)或者參數(shù)類型不同即可。

      特點:與返回值類型無關(guān),只看參數(shù)列表(參數(shù)類型以及參數(shù)個數(shù))。好處:方便于閱讀,優(yōu)化了程序設(shè)計。

      13、數(shù)組:

      概念:同一種數(shù)據(jù)類型的集合。

      好處:可以自動給數(shù)組中的元素從0開始編號,方便操作這些元素。

      14、內(nèi)存結(jié)構(gòu):

      棧內(nèi)存:用于存儲局部變量,當(dāng)數(shù)據(jù)使用完,所占空間會自動釋放。

      堆內(nèi)存:數(shù)組和對象,通過new建立的實例都存放在堆內(nèi)存中。

      方法區(qū):靜態(tài)成員、構(gòu)造函數(shù)、常量池、線程池

      本地方法區(qū):window系統(tǒng)占用

      寄存器:

      二、面向?qū)ο?/p>

      1、面向?qū)ο笏枷耄?1)概述:面向?qū)ο笫窍鄬τ诿嫦蜻^程而言的,面向過程強調(diào)的是功能,面向?qū)ο髲娬{(diào)的是將功能封裝進對象,強調(diào)具備功能的對象;

      (2)思想特點:

      A:是符合人們思考習(xí)慣的一種思想;

      B:將復(fù)雜的事情簡單化了;

      C:將程序員從執(zhí)行者變成了指揮者;

      比如我要達到某種結(jié)果,我就尋找能幫我達到該結(jié)果的功能的對象,如我要洗衣服我就買洗衣機,至于怎么洗我不管。

      (3)特征:

      封裝:隱藏對象的屬性和實現(xiàn)細節(jié),僅對外提供公共訪問方式

      繼承: 多個類中存在相同屬性和行為時,將這些內(nèi)容抽取到單獨一個類中,那么多個類無需再定義

      這些屬性和行為,只要繼承那個類即可。

      多態(tài): 一個對象在程序不同運行時刻代表的多種狀態(tài),父類或者接口的引用指向子類對象

      2、類和對象:

      類:對現(xiàn)實世界中某類事物的描述,是抽象的,概念上的定義。

      對象:事物具體存在的個體。3:成員變量和局部變量的區(qū)別(重點)(1)作用域

      成員變量:針對整個類有效。

      局部變量:只在某個范圍內(nèi)有效。(一般指的就是方法,語句體內(nèi))(2)存儲位置

      成員變量:隨著對象的創(chuàng)建而存在,隨著對象的消失而消失,存儲在堆內(nèi)存中。

      局部變量:在方法被調(diào)用,或者語句被執(zhí)行的時候存在,存儲在棧內(nèi)存中。

      當(dāng)方法調(diào)用完,或者語句結(jié)束后,就自動釋放。

      (3)初始值

      成員變量:有默認初始值。

      局部變量:沒有默認初始值,使用前必須賦值。

      4、匿名對象

      (1)匿名對象就是沒有名字的對象。是對象的一種簡寫形式。

      (2)應(yīng)用場景

      A:只調(diào)用一次類中的方法。

      B:可以作為實際參數(shù)在方法傳遞中使用

      5、封裝:

      指隱藏對象的屬性和實現(xiàn)細節(jié),僅對外提供公共訪問方式;比如電腦機箱、筆記本等

      好處:

      將變化隔離;

      方便使用;

      提高復(fù)用性;

      提高安全性

      6、關(guān)鍵字private:封裝在代碼中的體現(xiàn)

      (1)私有的意思,權(quán)限修飾符

      (2)用來修飾成員變量和成員函數(shù)

      (3)用private修飾的成員只在本類中有效

      (4)私有是封裝的一種體現(xiàn)

      7、構(gòu)造方法:

      (1)特點:

      方法名與類名相同

      沒有返回類型

      沒有返回值

      (2)作用:構(gòu)造函數(shù)是用于創(chuàng)建對象,并對其進行初始化賦值,對象一建立就自動調(diào)用相對應(yīng)的構(gòu)造函數(shù),(3)構(gòu)造方法的注意事項:

      A:如果一個自定義類沒有構(gòu)造方法,系統(tǒng)會默認給出一個無參構(gòu)造方法。

      B:如果一個自定義類提供了構(gòu)造方法,那么,系統(tǒng)將不再給出無參構(gòu)造方法。

      這個時候,你可以不使用無參構(gòu)造方法。

      如果你想使用,那么,就必須手動給出無參構(gòu)造方法。

      建議:一般情況下,我們的自定義類都要手動給出無參構(gòu)造方法。

      (4)構(gòu)造方法和成員方法的區(qū)別

      A:格式區(qū)別

      構(gòu)造方法和類名相同,并且沒有返回類型,也沒有返回值。

      普通成員方法可以任意起名,必須有返回類型,可以沒有返回值。

      B:作用區(qū)別

      構(gòu)造方法用于創(chuàng)建對象,并進行初始化值。

      普通成員方法是用于完成特定功能的。

      C:調(diào)用區(qū)別

      構(gòu)造方法是在創(chuàng)建對象時被調(diào)用的,一個對象建立,只調(diào)用一次相應(yīng)構(gòu)造函數(shù)

      普通成員方法是由創(chuàng)建好的對象調(diào)用,可以調(diào)用多次

      8、構(gòu)造代碼塊:

      (1)作用:給對象進行初始化,對象一建立就執(zhí)行,而且優(yōu)先于構(gòu)造函數(shù)執(zhí)行

      (2)構(gòu)造代碼塊和構(gòu)造函數(shù)的區(qū)別:

      構(gòu)造代碼塊是給所有不同對象的共性進行統(tǒng)一初始化

      構(gòu)造函數(shù)是給對應(yīng)的對象進行初始化

      9、this關(guān)鍵字

      (1)this關(guān)鍵字代表本類對象的一個引用,誰調(diào)用this所在的方法,this就代表誰

      (2)this的使用場景

      A:用于區(qū)分同名成員變量和局部變量;

      B:在定義函數(shù)時,該函數(shù)內(nèi)部要用到調(diào)用該函數(shù)的對象時,因為此時對象還沒建立,故this代表此對象

      B:構(gòu)造函數(shù)間調(diào)用

      **這個時候,this(參數(shù))必須作為第一條語句存在。

      10、Person p = new Person();在內(nèi)存中做了哪些事情。

      (1)將Person.class文件加載進內(nèi)存中。(2)如果p定義在主方法中,那么,就會在??臻g開辟一個變量空間p。

      (3)在堆內(nèi)存給對象分配空間。

      (4)對對象中的成員進行默認初始化。

      (5)對對象中的成員進行顯示初始化。

      (6)調(diào)用構(gòu)造代碼塊對對象進行初始化。(如果沒有就不執(zhí)行)(7)調(diào)用構(gòu)造方法對對象進行初始化。對象初始化完畢。

      (8)將對象的內(nèi)存地址賦值給p變量,讓p變量指向該對象。

      11、static關(guān)鍵字:

      (1)靜態(tài)的意思,用來修飾成員變量和成員函數(shù)

      (2)靜態(tài)的特點:

      隨著類的加載而加載

      優(yōu)先于對象存在 對所有對象共享

      可以被類名直接調(diào)用

      (3)靜態(tài)的注意事項

      A:靜態(tài)方法只能訪問靜態(tài)成員

      為什么:因為靜態(tài)的內(nèi)容是隨著類的加載而加載,它是先進內(nèi)存的。

      B:靜態(tài)方法中不能使用this,super關(guān)鍵字

      C:主方法是靜態(tài)的public static void main(String[] args)

      public:公共的意思,是最大權(quán)限修飾符。

      static:由于jvm調(diào)用main方法的時候,沒有創(chuàng)建對象。

      只能通過類名調(diào)用。所以,main必須用static修飾。

      void:由于main方法是被jvm調(diào)用,不需要返回值。用void修飾。

      main:main是主要的意思,所以jvm采用了這個名字。是程序的入口。

      String[]:字符串?dāng)?shù)組

      args:數(shù)組名

      在運行的時候,通過java命令給args數(shù)組賦值。

      格式:java MainTest hello world itcast(4)靜態(tài)變量和成員變量的區(qū)別

      A:調(diào)用方式

      靜態(tài)變量也稱為類變量,可以直接通過類名調(diào)用。也可以通過對象名調(diào)用。

      這個變量屬于類。

      成員變量也稱為實例變量,只能通過對象名調(diào)用。這個變量屬于對象。

      B:存儲位置

      靜態(tài)變量存儲在方法區(qū)長中的靜態(tài)區(qū)。

      成員變量存儲在堆內(nèi)存。

      C:生命周期

      靜態(tài)變量隨著類的加載而存在,隨著類的消失而消失。生命周期長。

      成員變量隨著對象的創(chuàng)建而存在,隨著對象的消失而消失。

      D:與對象的相關(guān)性

      靜態(tài)變量是所有對象共享的數(shù)據(jù)。

      成員變量是每個對象所特有的數(shù)據(jù)。

      (5)靜態(tài)的優(yōu)點和弊端

      優(yōu)點:

      對對象的共享數(shù)據(jù)進行單獨空間的存儲,節(jié)省內(nèi)存,沒有必要每個對象都存儲一份

      可直接被類名調(diào)用

      弊端:

      生命周期過長,隨著類的消失而消失

      訪問出現(xiàn)權(quán)限,即靜態(tài)雖好但只能訪問靜態(tài)

      (6)什么使用使用靜態(tài)呢?

      A:當(dāng)所有對象共享某個數(shù)據(jù)的時候,就把這個成員變量定義為靜態(tài)修飾的。

      B:當(dāng)某個方法沒有訪問該類中的非靜態(tài)成員,就可以把這個方法定義為靜態(tài)修飾。

      靜態(tài)的生命周期比較長,所以一般不推薦使用。

      (7)靜態(tài)代碼塊

      A:它只執(zhí)行一次,它比main還先執(zhí)行。

      B:執(zhí)行順序

      靜態(tài)代碼塊--構(gòu)造代碼塊--構(gòu)造方法

      12、制作API(次重點)API(全拼):Application Program Interface 應(yīng)用程序編程接口。

      (1)類中的內(nèi)容需要用文檔注釋。

      (2)使用JDKbin目錄下的javadoc工具。

      格式:javadoc-d 目錄-author-version ArrayTool.java

      13、單例設(shè)計模式:

      (1)設(shè)計模式:

      解決某類問題行之有效的方法,是一種思想,是規(guī)律的總結(jié)

      (2)用來保證某個類在內(nèi)存中只有一個對象

      (3)保證唯一性的思想及步驟

      **為了避免其他程序建立該類對象,先禁止其他程序建立該類對象,即將構(gòu)造函數(shù)私有化

      **為了其他程序訪問到該類對象,須在本類中創(chuàng)建一個該類私有對象

      **為了方便其他程序訪問到該類對象,可對外提供一個公共訪問方式

      比如API中的Runtime類就是單例設(shè)計模式。

      (4)單例設(shè)計模式的兩種方式

      A:餓漢式 當(dāng)類加載的時候,就創(chuàng)建對象。

      class Student

      {

      private Student(){}

      private static final Student s = new Student();

      public static Student getInstance()

      {

      return s;

      }

      }

      B:懶漢式 當(dāng)使用的使用,才去創(chuàng)建對象。

      class Student

      {

      private Student(){}

      private static final Student s = null;

      public static Student getInstance()

      {

      if(s==null)

      {

      //線程1就進來了,線程2就進來了。

      s = new Student();

      }

      return s;

      }

      } 餓漢式和懶漢式的區(qū)別:

      **

      餓漢式是類一加載進內(nèi)存就創(chuàng)建好了對象;

      懶漢式則是類才加載進內(nèi)存的時候,對象還沒有存在,只有調(diào)用了getInstance()方法時,對象才開始創(chuàng)建。

      **

      懶漢式是延遲加載,如果多個線程同時操作懶漢式時就有可能出現(xiàn)線程安全問題,解決線程安全問題

      可以加同步來解決。但是加了同步之后,每一次都要比較鎖,效率就變慢了,所以可以加雙重判斷來提高程序效率。

      注:開發(fā)常用餓漢式,因為餓漢式簡單安全。懶漢式多線程的時候容易發(fā)生問題

      14、Math類的使用(重點)(1)數(shù)學(xué)操作類:該類沒有構(gòu)造函數(shù),方法均為靜態(tài)的(2)掌握內(nèi)容

      A:成員變量

      **E:比任何其他值都更接近e(即自然對數(shù)的底數(shù))的double值。

      **PI:比任何其他值都更接近pi(即圓的周長與直徑之比)的double值。

      B:成員方法

      **static double abs(double a)

      返回 double 值的絕對值。返回絕對值

      **static double ceil(double a)

      返回最小的(最接近負無窮大)double 值,該值大于等于參數(shù),并等于某個整數(shù)。

      **static double floor(double a)

      返回最大的(最接近正無窮大)double 值,該值小于等于參數(shù),并等于某個整數(shù)。

      **max:返回兩個值中較大的那個

      **min:返回兩個值中較小的那個

      **static long round(double a)返回最接近參數(shù)的 long。

      static int round(float a)返回最接近參數(shù)的 int。

      **static double random()

      返回帶正號的 double 值,該值大于等于 0.0 且小于 1.0。

      **static double pow(double a, double b)

      返回第一個參數(shù)的第二個參數(shù)次冪的值。

      **static double sqrt(double a)

      返回正確舍入的 double 值的正平方根。

      15、Random類的使用(重點)(1)產(chǎn)生隨機數(shù)的類

      (2)掌握內(nèi)容

      A:構(gòu)造方法

      **Random()創(chuàng)建一個新的隨機數(shù)生成器。

      **Random(long seed)使用單個 long 種子創(chuàng)建一個新的隨機數(shù)生成器。

      B:成員方法

      **int nextInt()返回下一個偽隨機數(shù),它是此隨機數(shù)生成器的序列中均勻分布的 int 值。

      **int nextInt(int n)返回一個偽隨機數(shù),它是取自此隨機數(shù)生成器序列的、在 0(包括)和指定值(不包括)之間均勻分布的 int 值。

      16、Scanner類的使用

      (1)可以獲取從鍵盤的輸入數(shù)據(jù)

      (2)掌握內(nèi)容

      構(gòu)造方法:

      Scanner(InputStream source)構(gòu)造一個新的 Scanner,它生成的值是從指定的輸入流掃描的。

      如:Scanner sc = new Scanner(System.in);

      方法摘要

      sc.nextInt();獲取整型數(shù)據(jù)

      sc.nextLine();獲取字符串?dāng)?shù)據(jù)

      17、繼承(重點)(1)把很多類的相同特征和行為進行抽取,用一個類來描述。讓多個類和這個類產(chǎn)生一個關(guān)系。

      這樣的話,多個類就可以省略很多代碼。這個關(guān)系就是繼承。java中用extends關(guān)鍵字表示。

      (2)繼承的體系結(jié)構(gòu)

      A:多個具體的對象,不斷的向上抽取共享的內(nèi)容,最終形成了一個體系。這個體系叫做繼承體系。

      B:繼承體系的學(xué)習(xí)和使用原則

      **學(xué)習(xí)頂層的內(nèi)容。因為他是整個體系的共性內(nèi)容。

      **創(chuàng)建子類使用。也就是使用底層的具體對象。

      (3)繼承的特點:

      A:java中只能單繼承,沒有多繼承。

      B:java可以有多重(層)繼承。

      (4)繼承的好處:

      繼承的出現(xiàn)提高了代碼的復(fù)用性。

      繼承的出現(xiàn)讓類與類之間產(chǎn)生了關(guān)系,提供了多態(tài)的前提。

      (5)子父類中的成員關(guān)系

      A:成員變量

      在子類方法中使用一個變量時:

      首先,在方法的局部變量中找這個變量,有則使用。

      否則,在本類中找成員變量,有則使用。

      否則,在父類中找成員變量,有則使用。

      否則,報錯。

      B:成員方法

      用子類對象使用一個方法時。

      首先,在子類中找這個方法,有則使用。

      否則,在父類中找這個方法,有則使用。

      否則,報錯。

      重寫和重載的區(qū)別?

      重載:在同一類中。方法名相同,參數(shù)列表不同。重載可以改變返回類型。

      重寫:在不同類中(子父類中)。

      方法聲明相同(返回類型,方法名,參數(shù)列表均相同)。

      重寫需要注意:

      **子類方法的訪問權(quán)限要大于等于父類方法的訪問權(quán)限。

      **靜態(tài)只能重寫靜態(tài)。但是這種情況一般不會出現(xiàn)。

      構(gòu)造方法

      **子類的實例化過程

      ***子類創(chuàng)建對象時,會先去創(chuàng)建父類的對象。

      默認是去調(diào)用父類的無參構(gòu)造方法。

      ***子類構(gòu)造方法中,第一行默認是super()

      ***為什么子類中第一行會默認有super()

      因為他繼承父類的成員使用,使用前這些成員必須初始化,而他們是父類的成員,所以,必須通過父類進行初始化。

      所以,會先創(chuàng)建一個父類的對象。

      **當(dāng)父類沒有無參構(gòu)造方法時

      必須使用this或者super調(diào)用其他的構(gòu)造方法。

      (6)this和super的區(qū)別

      this:代表本類對象的引用。

      super:代表父類的存儲空間。

      18、final關(guān)鍵字(重點)(1)最終的意思,可以用于修飾類,方法,變量。(2)final修飾的類不能被繼承。

      final修飾的方法不能被重寫。

      final修飾的變量是一個常量。只能被賦值一次。

      內(nèi)部類只能訪問被final修飾的局部變量。

      19、抽象類(重點)(1)多個類有相同的方法聲明,但是方法體不一樣。這個時候,我們考慮把方法聲明進行抽取。

      讓子類繼承后,自己去實現(xiàn)方法體。沒有方法體的方法,我們需要用抽象標(biāo)志下。

      抽象的關(guān)鍵字是:abstract。

      (2)抽象類:

      該方法稱為抽象方法,包含抽象方法的類就是抽象類。

      (3)抽象類的特點:

      A:抽象類和抽象方法都要用abstract進行修飾

      B:抽象類不能被實例化

      C:抽象類中不一定有抽象方法,但是,有抽象方法的類一定是抽象類。

      (4)抽象類中數(shù)據(jù)的特點

      A:成員變量

      抽象類中可以有變量,也可以有常量。

      B:成員方法

      抽象類中可以有抽象方法,也可以有非抽象方法。

      C:構(gòu)造方法

      抽象類是一個類,所以,它有構(gòu)造方法。

      雖然本身不能實例化。但是可以給子類實例化使用。

      (5)抽象類中的問題

      A:抽象類中是否有構(gòu)造方法?能不能被實例化?如果不能,為什么有構(gòu)造方法?

      抽象類有構(gòu)造方法。

      抽象類不能被實例化。

      抽象類中的構(gòu)造方法供子類實例化調(diào)用。

      B:抽象關(guān)鍵字abstract不可以和哪些關(guān)鍵字共存?

      **private:

      私有內(nèi)容子類繼承不到,所以,不能重寫。

      但是abstract修飾的方法,要求被重寫。兩者沖突。

      **final

      final修飾的方法不能被重寫。

      而abstract修飾的方法,要求被重寫。兩者沖突。

      **static

      假如一個抽象方法能通過static修飾,那么這個方法,就可以直接通過類名調(diào)用。

      而抽象方法是沒有方法體的,這樣的調(diào)用無意義。所以,不能用static修飾。

      C:抽象類中可不可以沒有抽象方法?如果可以,這樣的類有什么用嗎?

      抽象類可以沒有抽象方法。

      抽象類中沒有抽象方法的作用,只是為了不讓別的類建立該抽象類對象。這個在awt中有體現(xiàn)。20、接口interface(1)當(dāng)一個類中的方法都是抽象的時候,java提供了另一種表示方式,叫接口。

      用interface關(guān)鍵字表示。類與接口關(guān)系用implements表示。

      (2)接口的成員特點

      A:成員變量

      是常量,默認修飾 public static final

      B:成員方法

      都是抽象的,默認修飾 public abstract

      (3)關(guān)系

      A:類與類的關(guān)系

      是繼承關(guān)系。類與類只能單繼承,可以多重繼承。

      B:類和接口的關(guān)系

      是實現(xiàn)關(guān)系。類可以多實現(xiàn)接口。

      類在繼承一個類的同時,可以實現(xiàn)多個接口。

      C:接口和接口的關(guān)系

      是繼承關(guān)系。接口可以多繼承接口。

      (4)接口的特點

      A:是對外暴露的規(guī)則

      B:是功能的擴展

      C:接口的出現(xiàn)降低耦合性。

      耦合(類與類之間的關(guān)系)

      內(nèi)聚(類完成功能的能力)

      編程規(guī)范:低耦合,高內(nèi)聚。

      D:接口可以多實現(xiàn)。如:CPU和主板、筆記本的USB插口、插座

      (5)接口和抽象類的區(qū)別

      A:抽象類只能被單繼承

      接口可以多實現(xiàn),接口的出現(xiàn)避免了多繼承的局限性。

      B:抽象類中的數(shù)據(jù)特點:

      成員變量:可以是變量,也可以是常量

      成員方法:可以是抽象方法,也可以是非抽象方法

      構(gòu)造方法:有構(gòu)造方法

      接口中的數(shù)據(jù)特點:

      成員變量:是常量。默認修飾 public static final

      成員方法:都是抽象方法。都有默認修飾 public abstract

      構(gòu)造方法:沒有構(gòu)造方法

      C:抽象類中定義的是繼承體系中的共性功能。

      接口中定義的是繼承體系中的擴展功能。

      D:抽象類被繼承是“is a”關(guān)系:xx是yy的一種

      接口被實現(xiàn)是“l(fā)ike a”關(guān)系:xx像yy的一種

      21、多態(tài):

      (1)同一個對象,在程序不同時刻的多種運行狀態(tài)。舉例:動物,狗是狗,狗是動物。水(氣態(tài),液態(tài),固態(tài))(2)多態(tài)前提

      A:存在著繼承或者實現(xiàn)關(guān)系

      B:有方法的重寫

      C:父類(接口)引用指向子類(實現(xiàn))對象

      (3)多態(tài)的好處和弊端:

      好處:多態(tài)的存在提高了程序的擴展性和后期可維護性

      弊端:雖然可以預(yù)先使用,但是只能訪問父類中已有的功能,運行的是后期子類的功能內(nèi)容。

      不能預(yù)先使用子類中定義的特有功能。

      (4)多態(tài)中對象調(diào)用成員的特點

      Fu f = new Zi();

      A:成員變量

      編譯看左邊,運行看左邊

      B:成員方法

      編譯看左邊,運行看右邊

      C:靜態(tài)方法

      編譯看左邊,運行看左邊

      (5)多態(tài)的思想

      指揮同一批對象做事情。舉例:帶兵打仗,下課等。

      22、instanceof關(guān)鍵字

      A:用于判斷某個對象是否是某種類型。

      B:格式

      對象名 instanceof 子類(實現(xiàn))名

      23、Object類:

      (1)是所有類的根類,超類。

      java中提供的類以及我們自定義的類都直接或者間接的繼承自O(shè)bject類。

      (2)Object類中的方法

      A:void finalize()

      當(dāng)垃圾回收器確定不存在對該對象的更多引用時,由對象的垃圾回收器調(diào)用此方法。

      B:Class getClass()

      獲取對象的字節(jié)碼文件的描述類,后面再講反射的時候還會在說這個類。

      String name = s.getClass().getName();

      C:int hashCode()

      獲取對象的哈希值。其實就是對象的內(nèi)存地址值十進制表示

      D:String toString()

      返回對象的字符串表示。

      表示格式:

      getClass().getName()+“@”+Integer.toHexString(hashCode());

      一般我們輸出對象名的時候,其實底層調(diào)用的就是該對象的toString()方法。

      這種返回沒有意義,所以,我們會重寫這個方法,顯示類的成員變量信息。

      E:boolean equals(Object obj)

      用于比較兩個對象的地址值是否相同。

      我們獲取對象后,比較它的地址值意義不大。所以也會對這個方法進行重寫。

      重寫要完成什么功能,是根據(jù)需求定的。(3)==和equals的用法:

      A:==怎么用?

      **可以用于比較基本數(shù)據(jù)類型,比較的就是基本數(shù)據(jù)類型的值是否相等。

      **可以用于比較引用數(shù)據(jù)類型,比較的是對象的地址值是否相等。

      B:equals怎么用?

      equals只能用于比較引用數(shù)據(jù)類型的。

      **Object提供的equals是用于比較對象地址值是否相同。

      **自定義類中,如果重寫了equals方法,那么就是按照你自己的需求來比較的。

      24、package關(guān)鍵字

      (1)包:其實就是文件夾。用于區(qū)分不同包下相同的類名。

      (2)好處:

      A:對類文件進行分類管理。

      B:給類提供了多層命名空間

      aaa.Demo

      bbb.Demo

      C:寫在程序文件的第一行。

      D:包也是一種封裝形式。

      25、import關(guān)鍵字

      (1)導(dǎo)入包的關(guān)鍵字

      (2)格式:

      import 包名;(3)注意:

      A:一個程序文件中只有一個package,可以有多個import。

      B:用來導(dǎo)包中的類,不導(dǎo)入包中的包。

      C:通常寫import mypack.Demo,明確自己使用的類。

      (4)關(guān)鍵字的順序

      類,包,導(dǎo)包這些關(guān)鍵的順序。

      包--> 到包--> 類

      26、不同修飾符可以修飾哪些內(nèi)容

      本類中 同一個包中 不同包中的子類中 不同包中

      private OK

      默認

      OK Ok

      protected OK Ok

      OK public OK Ok

      OK

      Ok

      類 構(gòu)造方法 成員變量 成員方法

      private

      OK OK OK 默認

      Ok Ok Ok OK protected OK OK Ok public

      Ok Ok OK OK static

      OK Ok final Ok

      OK OK abstract Ok

      OK

      一般格式:

      成員變量:

      權(quán)限修飾符+static/final+數(shù)據(jù)類型+成員變量名

      public static final int NUM = 10;

      成員方法:

      權(quán)限修飾符+static/final/abstract+返回類型+方法名

      27、內(nèi)部類(次重點)(1)把一個類定義在某個類中的,這個類就被稱為內(nèi)部類,內(nèi)置類,嵌套類。

      (2)訪問特點:

      A:內(nèi)部類可以直接訪問外部類中的成員,因為內(nèi)部類持有外部類的引用,格式為:外部類名.this

      B:外部類要想訪問內(nèi)部類的成員,必須創(chuàng)建對象訪問。

      (3)內(nèi)部類的訪問格式:

      A:當(dāng)內(nèi)部類定義在外部類的成員位置,而且非私有,則可以在其他外部類中直接建立內(nèi)部類對象

      格式:外部類名.內(nèi)部類名

      變量名 = new 外部類對象.內(nèi)部類對象

      如:Outer.Inner in = new Outer().new Inner()

      B:當(dāng)內(nèi)部類在外部類成員位置,且被static修飾時

      **外部其他類可直接訪問靜態(tài)內(nèi)部類的非靜態(tài)成員

      格式:new 外部類名.內(nèi)部類名().內(nèi)部類成員

      如:new Outer.Inner().function();

      **外部其他類可直接訪問靜態(tài)內(nèi)部類的靜態(tài)成員

      格式:new 外部類名.內(nèi)部類名.內(nèi)部類成員

      如:new Outer.Inner.function();(4)什么使用時候內(nèi)部類呢?

      假如有A類和B類,A類想直接訪問B類的成員,B類訪問A類成員的時候,需要創(chuàng)建A類對象進行訪問,這個時候,就可以把A類定義為B類的內(nèi)部類。

      (5)內(nèi)部類的位置

      A:成員位置

      **可以被private修飾(Body,Heart)

      **可以被static修飾。(它訪問的外部類的成員必須是靜態(tài)的)

      B:局部位置

      **可以直接訪問外部類中的成員,因為還持有外部類的持用

      也可以直接訪問局部成員,但是局部成員要用final修飾。

      注意:局部內(nèi)部類不能用private和static修飾

      (6)通過class文件我們就可以區(qū)分是否帶有內(nèi)部類,以及內(nèi)部類的位置

      Outer$Inner:成員內(nèi)部類

      Outer$1Inner:局部內(nèi)部類

      28、匿名內(nèi)部類(局部內(nèi)部類的簡寫)(重點)

      (1)前提:繼承一個類或者實現(xiàn)一個接口

      (注意不要弄混匿名內(nèi)部類的前提和多態(tài)的前提)

      (2)格式:

      new 父類名或者接口名()

      {

      重寫父類方法或者實現(xiàn)接口中的方法。

      也可以自定義其他方法。

      };

      (3)什么時候定義匿名內(nèi)部類?

      匿名內(nèi)部類只是為了簡化書寫,匿名內(nèi)部類有局限,通常定義匿名內(nèi)部類時,該類方法不超過3個

      (4)匿名內(nèi)部類的好處和弊端:

      好處:簡化代碼書寫

      弊端:

      不能直接調(diào)用自己的特有方法

      不能執(zhí)行強轉(zhuǎn)換動作

      如果該類里面方法較多,不允許使用匿名內(nèi)部類

      29、模板設(shè)計模式:

      在定義功能時,功能的一部分是確定的,有一部分是不確定的,而且確定的部分在使用不確定的部分,可將不確定的部分暴露出去,由該類的子類去完成。

      如:求一段程序的運行時間例子。30、異常

      (1)程序運行過程中的不正常現(xiàn)象就叫異常。

      (2)導(dǎo)致程序運行不正常的現(xiàn)象有很多,所以,就有很多的異常對象。

      而這些異常對象存在著共性的內(nèi)容,所以,可以不斷的進行抽取。最終形成了異常的體系結(jié)構(gòu)。

      異常體系的根類是:Throwable

      Throwable:

      |--Error:重大的問題,我們處理不了。也不需要編寫代碼處理。比如說內(nèi)存溢出。

      |--Exception:一般性的錯誤,是需要我們編寫代碼進行處理的。

      |--RuntimeException:運行時異常,這個我們也不需要處理。

      其實就是為了讓他在運行時出問題,然后我們回來修改代碼。

      (3)異常的分類

      異常有兩種:

      編譯時被檢測異常:

      該異常在編譯時,如果沒有處理(沒有拋也沒有try),編譯失敗。

      該異常被標(biāo)識,代表這可以被處理。

      運行時異常(編譯時不檢測)

      在編譯時,不需要處理,編譯器不檢查。

      該異常的發(fā)生,建議不處理,讓程序停止。需要對代碼進行修正。

      (4)異常體系的特點:

      異常體系中的所有類及其子類對象都具備可拋性。也就是說可以被throw和throws關(guān)鍵字所操作。

      (5)main方法是如何處理異常的。

      A:在main里面編寫代碼進行處理

      B:交給jvm自己進行處理。采用的是jvm的默認處理方式。

      其實就是相當(dāng)于調(diào)用了異常對象的printStackTrace()方法。

      (6)Throwable類的學(xué)習(xí)

      getMessage():獲取異常信息,返回字符串。

      toString():獲取異常類名和異常信息,返回字符串。

      printStackTrace():獲取異常類名和異常信息,以及異常出現(xiàn)在程序中的位置。返回值void。

      (7)異常的處理·

      A:try...catch...finally

      基本格式:

      try

      {

      可能出現(xiàn)異常的代碼

      }

      catch(異常對象)

      {

      異常處理代碼

      }

      finally

      {

      釋放資源

      }

      變形格式:

      try...catch

      try...catch...catch...try...catch...catch...finally

      **多個異常同時被捕獲的時候,記住一個原則:

      先逮小的,再逮大的。

      **finally:永遠被執(zhí)行,除非退出jvm。System.exit(0);

      面試題2個。

      ***:final,finally,finalize區(qū)別。

      final是最終的意思。它可以用于修飾類,成員變量,成員方法。

      它修飾的類不能被繼承,它修飾的變量時常量,它修飾的方法不能被重寫。

      finally:是異常處理里面的關(guān)鍵字。

      它其中的代碼永遠被執(zhí)行。特殊情況:在執(zhí)行它之前jvm退出。System.exit(0);

      finalize:是Object類中的一個方法。

      它是于垃圾回收器調(diào)用的方式。

      ***:假如catch中有return語句,finally里中的代碼會執(zhí)行嗎?

      是在return前,還是在return后呢?

      會,在return前執(zhí)行finally里面的代碼。

      (8)Exception和RuntimeException的區(qū)別

      A:Exception:一般性的錯誤,是需要我們編寫代碼進行處理的。

      B:RuntimeException:運行時異常,這個我們也不需要處理。

      其實就是為了讓他在運行時出問題,然后我們回來修改代碼。

      在用throws拋出一個的時候,如果這個異常是屬于RuntimeException的體系的時候,我們在調(diào)用的地方可以不用處理。(RuntimeException和RuntimeException的子類)

      在用throws拋出一個的時候,如果這個異常是屬于Exception的體系的時候,我們在調(diào)用的地方必須進行處理或者繼續(xù)拋出。

      (9)自定義異常

      定義類繼承Exception或者RuntimeException

      1,為了讓該自定義類具備可拋性。

      2,讓該類具備操作異常的共性方法。

      class MyExcepiton extends Exception

      {

      MyExcepiton(){}

      MyExcepiton(String message)

      {

      super(message);

      }

      }

      class MyException extends RuntimeException

      {

      MyExcepiton(){}

      MyExcepiton(String message)

      {

      super(message);

      }

      }(10)throws和throw的區(qū)別

      A:有throws的時候可以沒有throw。

      有throw的時候,如果throw拋的異常是Exception體系,那么必須有throws在方法上聲明。

      B:throws用于方法的聲明上,其后跟的是異常類名,后面可以跟多個異常類,之間用逗號隔開

      throw用于方法體中,其后跟的是一個異常對象名

      三、多線程:

      1、進程和線程:

      進程:正在進行的程序。每一個進程執(zhí)行都有一個執(zhí)行順序,該順序是一個執(zhí)行路徑,或者叫一個控制單元。

      線程:進程內(nèi)部的一條執(zhí)行路徑或者一個控制單元。

      兩者的區(qū)別:

      一個進程至少有一個線程

      進程在執(zhí)行過程中擁有獨立的內(nèi)存單元,而多個線程共享內(nèi)存;

      2、jvm多線程的啟動是多線程嗎?

      java的虛擬機jvm啟動的是單線程,就有發(fā)生內(nèi)存泄露的可能,而我們使用java程序沒出現(xiàn)這樣的問題,也就是jvm啟動至少有兩個線程,一個執(zhí)行java程序,一個執(zhí)行垃圾回收。所以是多線程。

      2、多線程的優(yōu)勢:

      解決了多部分同時運行的問題,提高效率

      3、線程的弊端:

      線程太多會導(dǎo)致效率的降低,因為線程的執(zhí)行依靠的是CPU的來回切換。

      4、什么叫多線程:

      一個進程中有多個線程,稱為多線程。

      5、實現(xiàn)多線程的方法:

      實現(xiàn)多線程可以通過繼承Thread類和實現(xiàn)Runnable接口。

      (1)繼承Thread

      定義一個類繼承Thread類

      復(fù)寫Thread類中的public void run()方法,將線程的任務(wù)代碼封裝到run方法中

      直接創(chuàng)建Thread的子類對象,創(chuàng)建線程

      調(diào)用start()方法,開啟線程(調(diào)用線程的任務(wù)run方法)

      //另外可以通過Thread的getName()獲取線程的名稱。

      (2)實現(xiàn)Runnable接口;

      定義一個類,實現(xiàn)Runnable接口;

      覆蓋接口的public void run()的方法,將線程的任務(wù)代碼封裝到run方法中;

      創(chuàng)建Runnable接口的子類對象

      將Runnabl接口的子類對象作為參數(shù)傳遞給Thread類的構(gòu)造函數(shù),創(chuàng)建Thread類對象

      (原因:線程的任務(wù)都封裝在Runnable接口子類對象的run方法中。

      所以要在線程對象創(chuàng)建時就必須明確要運行的任務(wù))。

      調(diào)用start()方法,啟動線程。

      兩種方法區(qū)別:

      (1)實現(xiàn)Runnable接口避免了單繼承的局限性

      (2)繼承Thread類線程代碼存放在Thread子類的run方法中

      實現(xiàn)Runnable接口線程代碼存放在接口的子類的run方法中;

      在定義線程時,建議使用實現(xiàn)Runnable接口,因為幾乎所有多線程都可以使用這種方式實現(xiàn)

      6、創(chuàng)建線程是為什么要復(fù)寫run方法?

      Thread類用于描述線程。Thread類定義了一個功能,用于存儲線程要運行的代碼,該存儲功能就是run方法。

      7、start()和run方法有什么區(qū)別?

      調(diào)用start方法方可啟動線程,而run方法只是thread的一個普通方法,調(diào)用run方法不能實現(xiàn)多線程;

      Start()方法:

      start方法用來啟動線程,實現(xiàn)了多線程運行,這時無需等待run方法體代碼執(zhí)行完畢而直接繼續(xù)執(zhí)行下面的 代碼。通過調(diào)用Thread類的start()方法來啟動一個線程,這時此線程處于就緒(可運行)狀態(tài),并沒有運行,一旦得到cpu時間片(執(zhí)行權(quán)),就開始執(zhí)行run()方法,這里方法run()稱為線程體,它包含了要執(zhí)行的這個線程的內(nèi)容,Run方法運行結(jié)束,此線程隨即終止。

      Run()方法:

      run()方法只是Thread類的一個普通方法,如果直接調(diào)用Run方法,程序中依然只有主線程這一個線程,其程序執(zhí)行路徑還是只有一條,還是要等待run方法體執(zhí)行完畢后才可繼續(xù)執(zhí)行下面的代碼,這樣就沒有達到多線程的目的。

      8、線程的幾種狀態(tài):

      新建:new一個Thread對象或者其子類對象就是創(chuàng)建一個線程,當(dāng)一個線程對象被創(chuàng)建,但是沒有開啟,這個時候,只是對象線程對象開辟了內(nèi)存空間和初始化數(shù)據(jù)。

      就緒:新建的對象調(diào)用start方法,就開啟了線程,線程就到了就緒狀態(tài)。

      在這個狀態(tài)的線程對象,具有執(zhí)行資格,沒有執(zhí)行權(quán)。

      運行:當(dāng)線程對象獲取到了CPU的資源。

      在這個狀態(tài)的線程對象,既有執(zhí)行資格,也有執(zhí)行權(quán)。

      凍結(jié):運行過程中的線程由于某些原因(比如wait,sleep),釋放了執(zhí)行資格和執(zhí)行權(quán)。

      當(dāng)然,他們可以回到運行狀態(tài)。只不過,不是直接回到。

      而是先回到就緒狀態(tài)。

      死亡:當(dāng)線程對象調(diào)用的run方法結(jié)束,或者直接調(diào)用stop方法,就讓線程對象死亡,在內(nèi)存中變成了垃圾。

      9、sleep()和wait()的區(qū)別:

      (1)這兩個方法來自不同的類,sleep()來自Thread類,和wait()來自O(shè)bject類。

      (2)sleep是Thread的靜態(tài)類方法,誰調(diào)用的誰去睡覺,即使在a線程里調(diào)用了b的sleep方法,實際上還是a去睡覺,要讓b線程睡覺要在b的代碼中調(diào)用sleep。而wait()是Object類的非靜態(tài)方法

      (3)sleep()釋放資源不釋放鎖,而wait()釋放資源釋放鎖;

      (4)使用范圍:wait,notify和notifyAll只能在同步控制方法或者同步控制塊里面使用,而sleep可以在任何地方使用

      10、多線程安全問題:

      (1)原因:當(dāng)程序的多條語句在操作線程共享數(shù)據(jù)時(如買票例子中的票就是共享資源),由于線程的隨機性導(dǎo)致

      一個線程對多條語句,執(zhí)行了一部分還沒執(zhí)行完,另一個線程搶奪到cpu執(zhí)行權(quán)參與進來執(zhí)行,此時就導(dǎo)致共享數(shù)據(jù)發(fā)生錯誤。比如買票例子中打印重票和錯票的情況。

      (2)解決方法:對多條操作共享數(shù)據(jù)的語句進行同步,一個線程在執(zhí)行過程中其他線程不可以參與進來

      11、Java中多線程同步是什么?

      同步是用來解決多線程的安全問題的,在多線程中,同步能控制對共享數(shù)據(jù)的訪問。如果沒有同步,當(dāng)一個線程在 修改一個共享數(shù)據(jù)時,而另外一個線程正在使用或者更新同一個共享數(shù)據(jù),這樣容易導(dǎo)致程序出現(xiàn)錯誤的結(jié)果。

      12、什么是鎖?鎖的作用是什么? 鎖就是對象

      鎖的作用是保證線程同步,解決線程安全問題。

      持有鎖的線程可以在同步中執(zhí)行,沒有鎖的線程即使獲得cpu執(zhí)行權(quán),也進不去。

      13、同步的前提:(1)必須保證有兩個以上線程

      (2)必須是多個線程使用同一個鎖,即多條語句在操作線程共享數(shù)據(jù)

      (3)必須保證同步中只有一個線程在運行

      14、同步的好處和弊端

      好處:同步解決了多線程的安全問題

      弊端:多線程都需要判斷鎖,比較消耗資源

      15、同步的兩種表現(xiàn)形式:

      (1)同步代碼塊:

      可以指定需要獲取哪個對象的同步鎖,使用synchronized的代碼塊同樣需要鎖,但他的鎖可以是任意對象

      考慮到安全問題,一般還是使用同一個對象,相對來說效率較高。

      注意:

      **雖然同步代碼快的鎖可以使任何對象,但是在進行多線程通信使用同步代碼快時,必須保證同步代碼快的鎖的對象和,否則會報錯。

      **同步函數(shù)的鎖是this,也要保證同步函數(shù)的鎖的對象和調(diào)用wait、notify和notifyAll的對象是

      同一個對象,也就是都是this鎖代表的對象。

      格式:

      synchronized(對象)

      {

      需同步的代碼;

      }(2)同步函數(shù)

      同步方法是指進入該方法時需要獲取this對象的同步鎖,在方法上使用synchronized關(guān)鍵字,使用this對象作為鎖,也就是使用了當(dāng)前對象,因為鎖住了方法,所以相對于代碼塊來說效率相對較低。

      注:靜態(tài)同步函數(shù)的鎖是該方法所在的類的字節(jié)碼文件對象,即類名.class文件

      格式:

      修飾詞 synchronized 返回值類型 函數(shù)名(參數(shù)列表)

      {

      需同步的代碼;

      }

      在jdk1.5后,用lock鎖取代了synchronized,個人理解也就是對同步代碼塊做了修改,并沒有提供對同步方法的修改,主要還是效率問題吧。

      16、多線程的單例設(shè)計模式:保證某個類中內(nèi)存中只有一個對象

      (1)餓漢式:

      class Single

      {

      private Single(){}//將構(gòu)造函數(shù)私有化,不讓別的類建立該類對象

      private static final Single s=new Single();//自己建立一個對象

      public static Single getInstance()//提供一個公共訪問方式

      {

      return s;

      }

      }(2)懶漢式:

      class Single

      {

      private Single(){}

      private static Single s;

      public static Single getInstance()

      {

      if(s==null)

      s=new Single();

      return s;

      }

      } 餓漢式和懶漢式的區(qū)別:

      **

      餓漢式是類一加載進內(nèi)存就創(chuàng)建好了對象;

      懶漢式則是類加載進內(nèi)存的時候,對象還沒有存在,只有調(diào)用了getInstance()方法時,對象才開始創(chuàng)建。

      **

      懶漢式是延遲加載,如果多個線程同時操作懶漢式時就有可能出現(xiàn)線程安全問題,解決線程安全問題

      可以加同步來解決。但是加了同步之后,每一次都要比較鎖,效率就變慢了,所以可以加雙重判斷來提高程序效率。

      如將上述懶漢式的Instance函數(shù)改成同步:

      public static Single getInstance()

      {

      if(s==null)

      {

      synchronized(Single.class)

      {

      if(s==null)

      s=new Single();

      }

      }

      return s;

      }

      17、死鎖

      兩個線程對兩個同步對象具有循環(huán)依賴時,就會發(fā)生死鎖。即同步嵌套同步,而鎖卻不同。

      18、wait()、sleep()、notify()、notifyAll()wait():使一個線程處于等待狀態(tài),并且釋放所持有的對象的lock。

      sleep():使一個正在運行的線程處于睡眠狀態(tài),是一個靜態(tài)方法,調(diào)用此方法要捕捉InterruptedException異常。

      notify():喚醒一個處于等待狀態(tài)的線程,注意的是在調(diào)用此方法的時候,并不能確切的喚醒某一個等待狀態(tài)的線程,而是由JVM確定喚醒哪個線程(一般是最先開始等待的線程),而且不是按優(yōu)先級。

      Allnotity():喚醒所有處入等待狀態(tài)的線程,注意并不是給所有喚醒線程一個對象的鎖,而是讓它們競爭。

      18、為什么wait()、notify()、notifyAll()這些用來操作線程的方法定義在Object類中?

      (1)這些方法只存在于同步中;

      (2)使用這些方法時必須要指定所屬的鎖,即被哪個鎖調(diào)用這些方法;

      (3)而鎖可以是任意對象,所以任意對象調(diào)用的方法就定義在Object中。

      19、多線程間通訊:

      多線程間通訊就是多個線程在操作同一資源,但是操作的動作不同.(1)為什么要通信

      多線程并發(fā)執(zhí)行的時候, 如果需要指定線程等待或者喚醒指定線程, 那么就需要通信.比如生產(chǎn)者消費者的問題,生產(chǎn)一個消費一個,生產(chǎn)的時候需要負責(zé)消費的進程等待,生產(chǎn)一個后完成后需要喚醒負責(zé)消費的線程,同時讓自己處于等待,消費的時候負責(zé)消費的線程被喚醒,消費完生產(chǎn)的產(chǎn)品后又將等待的生產(chǎn)線程喚醒,然后使自己線程處于等待。這樣來回通信,以達到生產(chǎn)一個消費一個的目的。

      (2)怎么通信

      在同步代碼塊中, 使用鎖對象的wait()方法可以讓當(dāng)前線程等待, 直到有其他線程喚醒為止.使用鎖對象的notify()方法可以喚醒一個等待的線程,或者notifyAll喚醒所有等待的線程.多線程間通信用sleep很難實現(xiàn),睡眠時間很難把握。

      20、Lock和Condition 實現(xiàn)提供比synchronized方法和語句可獲得的更廣泛的鎖的操作,可支持多個相關(guān)的Condition對象

      Lock是個接口

      鎖是控制多個線程對共享數(shù)據(jù)進行訪問的工具。

      JDK1.5中提供了多線程升級的解決方案:

      將同步synchonized替換成了顯示的Lock操作,將Object中的wait、notify、notifyAll替換成了Condition對象。

      該對象可以Lock鎖進行獲取

      Lock的方法摘要:

      void lock()獲取鎖。

      Condition newCondition()返回綁定到此 Lock 實例的新 Condition 實例。

      void unlock()釋放鎖。

      Condition方法摘要:

      void await()造成當(dāng)前線程在接到信號或被中斷之前一直處于等待狀態(tài)。

      void signal()喚醒一個等待線程。

      void signalAll()喚醒所有等待線程。

      21、停止線程:

      stop方法已經(jīng)過時,如何停止線程?

      停止線程的方法只有一種,就是run方法結(jié)束。如何讓run方法結(jié)束呢?

      開啟多線程運行,運行代碼通常是循環(huán)體,只要控制住循環(huán),就可以讓run方法結(jié)束,也就是結(jié)束線程。

      特殊情況:當(dāng)線程屬于凍結(jié)狀態(tài),就不會讀取循環(huán)控制標(biāo)記,則線程就不會結(jié)束。

      為解決該特殊情況,可引入Thread類中的Interrupt方法結(jié)束線程的凍結(jié)狀態(tài);

      當(dāng)沒有指定的方式讓凍結(jié)線程恢復(fù)到運行狀態(tài)時,需要對凍結(jié)進行清除,強制讓線程恢復(fù)到運行狀態(tài)

      22、interrupt: void interrupt()中斷線程:

      中斷狀態(tài)將被清除,它還將收到一個 InterruptedException

      22、守護線程(后臺線程)setDaemon(boolean on):將該線程標(biāo)記為守護線程或者用戶線程。

      當(dāng)主線程結(jié)束,守護線程自動結(jié)束,比如圣斗士星矢里面的守護雅典娜,在多線程里面主線程就是雅典娜,守護線程就是圣斗士,主線程結(jié)束了,守護線程則自動結(jié)束。

      當(dāng)正在運行的線程都是守護線程時,java虛擬機jvm退出;所以該方法必須在啟動線程前調(diào)用;

      守護線程的特點:

      守護線程開啟后和前臺線程共同搶奪cpu的執(zhí)行權(quán),開啟、運行兩者都沒區(qū)別,但結(jié)束時有區(qū)別,當(dāng)所有前臺線程都結(jié)束后,守護線程會自動結(jié)束。

      23、多線程join方法:

      void join()等待該線程終止。

      void join(long millis)等待該線程終止的時間最長為 millis 毫秒。

      throws InterruptedException

      特點:當(dāng)A線程執(zhí)行到B線程的join方法時,A就會等待B線程都執(zhí)行完,A才會執(zhí)行

      作用: join可以用來臨時加入線程執(zhí)行;

      24、多線程優(yōu)先級:yield()方法

      yield():暫停當(dāng)前正在執(zhí)行的線程對象,并執(zhí)行其他線程

      setPriority(int newPriority):更改線程優(yōu)先級

      int getPriority()返回線程的優(yōu)先級。

      String toString()返回該線程的字符串表示形式,包括線程名稱、優(yōu)先級和線程組

      (1)MAX_PRIORITY:最高優(yōu)先級(10級)(1)Min_PRIORITY:最低優(yōu)先級(1級)(1)Morm_PRIORITY:默認優(yōu)先級(5級)

      25、什么是ThreadLocal類,怎么使用它?

      ThreadLocal類提供了線程局部(thread-local)變量。是一個線程級別的局部變量,并非“本地線程”。

      ThreadLocal 為每個使用該變量的線程,提供了一個獨立的變量副本,每個線程修改副本時不影響其它線程對象的副本

      下面是線程局部變量(ThreadLocal variables)的關(guān)鍵點:

      一個線程局部變量(ThreadLocal variables)為每個線程方便地提供了一個單獨的變量。

      ThreadLocal 實例通常作為靜態(tài)的私有的(private static)字段出現(xiàn)在一個類中,這個類用來關(guān)聯(lián)一個線程。

      當(dāng)多個線程訪問 ThreadLocal 實例時,每個線程維護 ThreadLocal 提供的獨立的變量副本。

      常用的使用可在 DAO 模式中見到,當(dāng) DAO 類作為一個單例類時,數(shù)據(jù)庫鏈接(connection)被每一個線程獨立的維護,互不影響。(基于線程的單例)

      26、什么時候拋出InvalidMonitorStateException異常?為什么?

      調(diào)用 wait()/notify()/notifyAll()中的任何一個方法時,如果當(dāng)前線程沒有獲得該對象的鎖,那么就會拋出 IllegalMonitorStateException 的異常

      也就是說程序在沒有執(zhí)行對象的任何同步塊或者同步方法時,仍然嘗試調(diào)用 wait()/notify()/notifyAll()時。由于該異常是 RuntimeExcpetion 的子類,所以該異常不一定要捕獲(盡管你可以捕獲只要你愿意

      作為 RuntimeException,此類異常不會在 wait(),notify(),notifyAll()的方法簽名提及。

      27、在靜態(tài)方法上使用同步時會發(fā)生什么事?

      同步靜態(tài)方法時會獲取該類的“Class”對象,所以當(dāng)一個線程進入同步的靜態(tài)方法中時,線程監(jiān)視器獲取類本身的對象鎖,其它線程不能進入這個類的任何靜態(tài)同步方法。

      它不像實例方法,因為多個線程可以同時訪問不同實例同步實例方法。

      28、當(dāng)一個同步方法已經(jīng)執(zhí)行,線程能夠調(diào)用對象上的非同步實例方法嗎?

      可以,一個非同步方法總是可以被調(diào)用而不會有任何問題。

      實際上,Java 沒有為非同步方法做任何檢查,鎖對象僅僅在同步方法或者同步代碼塊中檢查。

      如果一個方法沒有聲明為同步,即使你在使用共享數(shù)據(jù)Java照樣會調(diào)用,而不會做檢查是否安全,所以在這種情況下要特別小心。一個方法是否聲明為同步取決于臨界區(qū)訪問(critial section access),如果方法不訪問臨界區(qū)(共享資源或者數(shù)據(jù)結(jié)構(gòu))就沒必要聲明為同步的。

      29、在一個對象上兩個線程可以調(diào)用兩個不同的同步實例方法嗎?

      不能,因為一個對象已經(jīng)同步了實例方法,線程獲取了對象的對象鎖。

      所以只有執(zhí)行完該方法釋放對象鎖后才能執(zhí)行其它同步方法。30、什么是線程餓死,什么是活鎖?

      線程餓死和活鎖雖然不像死鎖一樣是常見的問題,但是對于并發(fā)編程的設(shè)計者來說就像一次邂逅一樣。

      當(dāng)所有線程阻塞,或者由于需要的資源無效而不能處理,不存在非阻塞線程使資源可用。

      JavaAPI 中線程活鎖可能發(fā)生在以下情形:

      當(dāng)所有線程在程序中執(zhí)行 Object.wait(0),參數(shù)為 0 的 wait 方法。

      程序?qū)l(fā)生活鎖直到在相應(yīng)的對象上有線程調(diào)用 Object.notify()或者 Object.notifyAll()。

      當(dāng)所有線程卡在無限循環(huán)中。

      四、集合框架

      1:String類:字符串(重點)(1)多個字符組成的一個序列,叫字符串。

      生活中很多數(shù)據(jù)的描述都采用的是字符串的。而且我們還會對其進行操作。

      所以,java就提供了這樣的一個類供我們使用。

      (2)創(chuàng)建字符串對象

      A:String():無參構(gòu)造

      **舉例:

      String s = new String();

      s = “hello”;

      sop(s);

      B:String(byte[] bys):傳一個字節(jié)數(shù)組作為參數(shù) *****

      **舉例

      byte[] bys = {97,98,99,100,101};

      String s = new String(bys);

      sop(s);

      C:String(byte[] bys,int index,int length):把字節(jié)數(shù)組的一部分轉(zhuǎn)換成一個字符串 *****

      **舉例

      byte[] bys = {97,98,99,100,101};

      String s = new String(bys,1,2);

      sop(s);

      D:String(char[] chs):傳一個字符數(shù)組作為參數(shù) *****

      **舉例

      char[] chs = {'a','b','c','d','e'};

      String s = new String(chs);

      sop(s);

      E:String(char[] chs,int index,int length):把字符數(shù)組的一部分轉(zhuǎn)換成一個字符串 *****

      **舉例

      char[] chs = {'a','b','c','d','e'};

      String s = new String(chs,1,2);

      sop(s);

      F:String(String str):把一個字符串傳遞過來作為參數(shù)

      char[] chs = {'a','b','c','d','e'};

      String ss = new String(s);

      sop(ss);

      G:直接把字符串常量賦值給字符串引用對象(最常用)*****

      **舉例

      String s = “hello”;

      sop(s);(3)面試題

      A:請問String s = new String(“hello”);創(chuàng)建了幾個對象。

      兩個。一個“hello”字符串對象,在方法區(qū)的常量池;一個s對象,在棧內(nèi)存。

      B:請寫出下面的結(jié)果

      String s1 = new String(“abc”);

      Strign s2 = new String(“abc”);

      String s3 = “abc”;

      String s4 = “abc”;

      sop(s1==s2);//false

      sop(s1==s3);//false

      sop(s3==s4);//true

      C:字符串對象一旦被創(chuàng)建就不能被改變。

      指的是字符串常量值不改變。(4)字符串中各種功能的方法

      A:判斷

      **** boolean equals(Object anObject):判斷兩個字符串的內(nèi)容是否相同,復(fù)寫了Object的方法

      **** boolean equalsIgnoreCase(String anotherString):判斷兩個字符串的內(nèi)容是否相同,不區(qū)分大小寫

      **** boolean contains(String s):判斷一個字符串中是否包含另一個字符串

      注意:判斷字符串是否包含特殊字符.直接表示為str.contains(“.”)

      boolean endsWith(String suffix):測試此字符串是否以指定的后綴結(jié)束

      boolean startsWith(String suffix):測試此字符串是否以指定的前綴開始

      boolean isEmpty():測試字符串是否為空

      B:獲取

      ***** int length():返回此字符串的長度

      ***** char charAt(int index):返回指定索引處的 char值

      ***** int indexOf(int ch):返回指定字符在此字符串中第一次出現(xiàn)處的索引。

      int indexOf(int ch, int fromIndex):返回在此字符串中第一次出現(xiàn)指定字符處的索引,從指定的索引開始搜索。

      int indexOf(String str):返回指定子字符串在此字符串中第一次出現(xiàn)處的索引。

      int indexOf(String str, int fromIndex):返回指定子字符串在此字符串中第一次

      出現(xiàn)處的索引,從指定的索引開始。

      *** int lastIndexOf(int ch):返回指定字符在此字符串中最后一次出現(xiàn)處的索引。

      int lastIndexOf(int ch, int fromIndex)

      返回指定字符在此字符串中最后一次出現(xiàn)處的索引,從指定的索引處開始進行反向搜索。

      int lastIndexOf(String str)

      返回指定子字符串在此字符串中最右邊出現(xiàn)處的索引。

      int lastIndexOf(String str, int fromIndex)

      返回指定子字符串在此字符串中最后一次出現(xiàn)處的索引,從指定的索引開始反向搜索。

      ***** String substring(int beginIndex)(注意:該方法substring的String是小寫??!)

      返回一個新的字符串,它是此字符串的一個子字符串。

      String substring(int beginIndex, int endIndex)(注意該方法的String是小寫??!)

      返回一個新字符串,它是此字符串的一個子字符串,包含頭不包含尾。

      C:轉(zhuǎn)換

      ***** byte[] getBytes():(很常用!)從字符串到字節(jié)數(shù)組的方法

      void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)

      將字符從此字符串復(fù)制到目標(biāo)字符數(shù)組。

      ***** char[] toCharArray():(很常用!)從字符串到字符數(shù)組的方法

      **** static String copyValueOf(char[] data)

      返回指定數(shù)組中表示該字符序列的 String。

      static String copyValueOf(char[] data, int offset, int count)

      返回指定數(shù)組中表示該字符序列的 String。

      ***** static String valueOf(數(shù)據(jù)類型):把該數(shù)據(jù)類型的數(shù)據(jù)轉(zhuǎn)換成字符串。

      *** String toLowerCase():把字符串轉(zhuǎn)換成小寫

      String toUpperCase():把字符串轉(zhuǎn)換成大寫

      *** 字符串的連接

      String concat(String str):將指定字符串連接到此字符串的結(jié)尾。

      D:替換

      String replace(char oldChar, char newChar):用新字符替換舊字符(替換所有)

      String replace(String target, String replacement):用新的子串換舊串

      E:分割

      String[] split(String regex):根據(jù)指定的字符串把一個字符串分割成一個字符串?dāng)?shù)組

      F:

      String trim():去除字符串的前后空格

      G:

      int compareTo(String anotherString)

      按字典順序比較兩個字符串。

      int compareToIgnoreCase(String str)

      按字典順序比較兩個字符串,不考慮大小寫。

      (5)練習(xí)

      1:模擬登錄,給三次機會,并提示還有幾次.默認的用戶名和密碼為admin。區(qū)分大小寫。

      自己從鍵盤輸入用戶名和密碼。

      2:給定一個字符串統(tǒng)計,統(tǒng)計大寫字母,小寫字母,數(shù)字出現(xiàn)的個數(shù).***注意:不包括特殊字符

      從鍵盤輸入一個不包含特殊字符的字符串(只有26個字母和0-9組成)。

      3:給定一個字符串,把它變成首字母大寫,其他字母小寫的字符串.從鍵盤輸入一個字符串,全部26個字母組成的。

      4:子串在整串中出現(xiàn)的次數(shù)。

      也就是說:獲取一個字符串中,指定的字串在該字符串中出現(xiàn)的次數(shù).例如:

      “nbasdnbafllgnbahjnbakqqqqlnba” 在這個字符串中,多有個nba.5:對字符串中字符進行自然順序排序。

      “basckd”-->“abcdks”

      先留做思考內(nèi)容:

      6:兩個字符串的最大相同子串。

      兩個字符串的最大相同子串。

      比如:

      “sadabcdfghjkl”

      werabcdtyu“

      2:StringBuffer(1)字符串的緩沖區(qū),是一個容器。

      (2)它和String的區(qū)別

      它是緩沖區(qū)可變長度的。

      (3)構(gòu)造方法

      StringBuffer()構(gòu)造一個其中不帶字符的字符串緩沖區(qū),初始容量為 16 個字符。

      StringBuffer(int num)構(gòu)造一個不帶字符,但具有指定初始容量的字符串緩沖區(qū)。

      StringBuffer(String str)構(gòu)造一個字符串緩沖區(qū),并將其內(nèi)容初始化為指定的字符串內(nèi)容。

      (4)常用方法

      A:增加數(shù)據(jù)

      **append :添加各種類型的數(shù)據(jù)

      **insert : 在容器指定位置插入各種類型的數(shù)據(jù)。

      B:刪除數(shù)據(jù)

      **deleteCharAt : 刪除指定位置的字符

      **delete 還可以用于清空StringBuffer的緩沖區(qū)

      C:替換

      **replace

      D:獲取

      **charAt

      E:長度和容量

      **length()元素的個數(shù)

      **capacity 元素的理論值

      F:獲取元素的位置

      **indexOf

      **lastIndexOf

      G:截取

      **substring(int start)

      **substring(int start,int end)

      H:反轉(zhuǎn)

      **reverse(5)字符串和StringBuffer的轉(zhuǎn)換

      String-->StringBuffer通過構(gòu)造:

      如:StringBuffer sb = new StringBuffer(String str)

      StringBuffer--String通過toString方法

      如:StringBuffer sb = new StringBuffer();

      sb.toString();

      3:StringBuilder 和StringBuffer的功能是一樣的,但是有區(qū)別:

      StringBuffer(JDK1.0)是線程安全的。

      StringBuilder(JDK1.5)不保證線程安全。一般來說,我們寫的程序都是單線程的,所以,用StringBuilder,效率高。

      JDK版本的升級原則:

      A:提高效率

      B:提高安全性

      C:簡化書寫

      4:基本數(shù)據(jù)類型的對象包裝類

      (1)為了更方便的操作每個基本數(shù)據(jù)類型,java對其提供了很多的屬性和方法供我們使用。

      (2)用途:

      **將基本數(shù)據(jù)類型封裝成對象的好處在于可以在對象中定義更多的功能操作該數(shù)據(jù)。

      **常用的操作之一:用于基本數(shù)據(jù)類型與字符串之間的轉(zhuǎn)換。

      A:方便操作

      B:用于和字符串進行相互轉(zhuǎn)換

      (3)基本數(shù)據(jù)類型和對象類型的對應(yīng)

      byte Byte

      short Short

      int Integer

      long Long

      float Float

      double Double

      boolean Boolean

      char Character(4)構(gòu)造方法

      字段摘要:

      static int MAX_VALUE 值為 2^31-1 的常量,它表示 int 類型能夠表示的最大值

      static int MIN_VALUE 值為-2^31 的常量,它表示 int 類型能夠表示的最小值

      static Class TYPE 表示基本類型int的Class 實例

      Integer(int value)構(gòu)造一個新分配的Integer對象,它表示指定的int值。

      Inreger(String s)注意:s必須是純數(shù)字的字符串。否則會有異常NumberFormatException

      (5)幾個常用的方法

      Integer.toBinaryString();

      以二進制(基數(shù) 2)無符號整數(shù)形式返回一個整數(shù)參數(shù)的字符串表示形式。

      Integer.toOctalString();

      以八進制(基數(shù) 8)無符號整數(shù)形式返回一個整數(shù)參數(shù)的字符串表示形式。

      Integer.toHexString();

      以十六進制(基數(shù) 16)無符號整數(shù)形式返回一個整數(shù)參數(shù)的字符串表示形式。

      static int Integer.parseInt(String s)將字符串參數(shù)作為有符號的十進制整數(shù)進行解析,字符串必須是int型范圍內(nèi)的數(shù)字字符串

      static int Integer.parseInt(String s,int basic)

      使用第二個參數(shù)指定的基數(shù),將字符串參數(shù)解析為有符號的整數(shù).字符串必須是int型范圍內(nèi)的數(shù)字字符串

      short shortValue()以short類型返回該Integer的值。

      int intValue()以int類型返回該Integer的值。

      static Integer valueOf(int num)返回一個表示指定的 int 值的 Integer 實例。

      static Integer valueOf(String s)返回保存指定的String的值的Integer對象。

      static Integer valueOf(String s, int radix)

      返回一個Integer對象,該對象中保存了用第二個參數(shù)提供的基數(shù)進行

      解析時從指定的String中提取的值。

      (6)類型轉(zhuǎn)換

      int--Integer

      int num = 20;

      A:Integer i = new Integer(num);

      B:Integer i = Integer.valueOf(num);

      Integer--int

      Integer i = new Integer(20);

      A:int num = i.intValue();

      int--String

      int num = 20;

      A:String s = String.valueOf(num);

      B:String s = ”“+num;

      C:String s = Integer.toString(num);

      String--int

      String s = ”20“;

      A:int num = Integer.parseInt(s);

      B:Integer i = new Integer(s);或者Integer i = Integer.valueOf(s);

      int num = i.intValue();

      6、集合框架:

      (1)為什么出現(xiàn)集合類?

      面向?qū)ο髮κ挛锏捏w現(xiàn)都是以對象的形式,為了方便對多個對象的操作,就對對象進行存儲。

      集合就是存儲對象最常用的一種方式.(2)數(shù)組和集合都是容器,兩者有何不同?

      **數(shù)組長度固定,而集合長度是可變的**數(shù)組值可以存儲對象,還可以存儲基本數(shù)據(jù)類型;而集合只能存儲對象

      **數(shù)組存儲數(shù)據(jù)類型是固定的,而集合存儲的數(shù)據(jù)類型不固定

      (3)集合類的特點:

      集合只能存儲對象

      集合的長度是可變的 集合可以存儲不同類型的對象

      (4)集合類框架(重要!!要分清幾種容器間的區(qū)別):

      **Collection:頂層接口

      |--->List:列表,元素是有序的(元素帶角標(biāo)索引),可以有重復(fù)元素,可以有null元素。

      |--->ArrayList(JDK1.2):底層的數(shù)據(jù)結(jié)構(gòu)是數(shù)組數(shù)據(jù)結(jié)構(gòu),特點是查詢速度快(因為帶角標(biāo)),但是增刪速度稍慢,因為當(dāng)元素多時,增刪一個元素則所有元素的角標(biāo)都得改變

      線程不同步。默認長度是10,當(dāng)超過長度時,按50%延長集合長度。

      |--->LinkedList(JDK1.2):底層數(shù)據(jù)結(jié)構(gòu)式鏈表數(shù)據(jù)結(jié)構(gòu)(即后面一個元素記錄前一個),特點:查詢速度慢,因為每個元素只知道前面一個元素,但增刪速度快

      因為元素再多,增刪一個,只要讓其前后的元素重新相連即可

      線程是不同步的。

      |--->Vector(JDK1.0):底層數(shù)據(jù)結(jié)構(gòu)是數(shù)組數(shù)據(jù)結(jié)構(gòu).特點是查詢和增刪速度都很慢。

      默認長度是10,當(dāng)超過長度時,按100%延長集合長度。

      線程同步。

      (Vector功能跟ArrayList功能一模一樣,已被ArrayList替代)

      **List使用注意!

      |--->ArrayList:

      (1)當(dāng)往ArrayList里面存入元素沒什么要求時,即只要求有序就行時;

      (2)當(dāng)往ArrayList里面存入元素要求不重復(fù)時,比如存入學(xué)生對象,當(dāng)同名同姓時

      視為同一個人,則不往里面存儲。則定義學(xué)生對象時,需復(fù)寫equals方法

      public boolean equals(Object obj)

      {

      if(!(obj instanceof Student))

      return false;

      Student stu =(Student)obj;

      return this.name.equals(stu.name)&&this.age==stu.age;

      }

      則往ArrayList集合通過add存入學(xué)生對象時,集合底層自己會調(diào)用學(xué)生類的equals方法,判斷重復(fù)學(xué)生則不存入。

      注:對于List集合,無論是add、contains、還是remove方法,判斷元素是否相同,都是通過復(fù)寫equals方法來判斷!

      |--->LinkedList

      (1)LinkLedist的特有方法:

      boolean offerFirst(E e)在此列表的開頭插入指定的元素。

      boolean offerLast(E e)在此列表末尾插入指定的元素。

      E peekFirst()獲取但不移除此列表的第一個元素;如果此列表為空,則返回 null。

      E peekLast()獲取但不移除此列表的最后一個元素;如果此列表為空,則返回 null。

      E pollFirst()獲取并移除此列表的第一個元素;如果此列表為空,則返回 null。

      E pollLast()獲取并移除此列表的最后一個元素;如果此列表為空,則返回 null。

      (2)通過LinkLedist的特有方法,可以實現(xiàn)某些數(shù)據(jù)特殊方式的存取,比如堆棧和隊列。

      一般情況下,使用哪種List接口下的實現(xiàn)類呢?

      如果要求增刪快,考慮使用LinkedList

      如果要求查詢快,考慮使用ArrayList

      如果要求線程安全,考慮使用Vector。

      |--->Set:集合,元素是無序的(因為沒有索引),元素不可以重復(fù)??梢杂衝ull元素。

      |--->HashSet(JDK1.2):底層數(shù)據(jù)結(jié)構(gòu)是哈希表、存取速度快、元素唯

      一、線程不同步。

      保證性元素唯一的原理:

      先判斷元素的hashCode值是否相同,再判斷兩元素的equals方法是否為true

      (往HashSet里面存的自定義元素要復(fù)寫hashCode和equals方法,以保證元素的唯一性!)

      |--->TreeSet:底層數(shù)據(jù)結(jié)構(gòu)式二叉樹。可以對Set集合中的元素進行排序。元素有序、線程不同步。

      保證元素唯一性的依據(jù):compareTo方法return 0

      TreeSet排序的第一種方式:讓元素自身具備比較性,比如八種基本數(shù)據(jù)類型或則字符串,實現(xiàn)Compareble接口,覆蓋compareTo方法,此方式是元素的自然順序

      TreeSet排序的第一種方式:當(dāng)元素自身不具備比較性(比如存儲學(xué)生對象時)或者具備的比較性不是我們所需要的比較性時(比如想字符串的長度排序),此時就需要讓集合自身具備自定義的比較性。

      那如何讓集合自身具備比較性呢?可在集合初始化時,就讓集合具備比較方式。即定義一個類,實現(xiàn)Comparator接口,覆蓋compare方法。

      **Set集合使用注意事項:

      (1)HashSet:

      通過new的方式往HashSet里面存的元素的hashCode都不同,但通常我們定義對象,比如學(xué)生對象時,雖然是new的兩個學(xué)生對象,但是當(dāng)他們name和age一樣時,我們認為是

      同一個對象,所以為了保證元素的唯一性,我們通常在往HashSet集合里面存儲元素時,在定義對象的類中通常復(fù)寫hashCode和equals方法。

      public int hashCode()

      {

      return name.hashCode()+age*39;

      }

      public boolean equals(Object obj)

      {

      if(!(obj instanceof Student))

      return false;

      Student stu =(Student)obj;

      return this.name.equals(stu.name)&&this.age==stu.age;

      }

      HashSet是如何保證元素唯一性的呢?

      **如果兩元素的hashCode值不同,則不會調(diào)用equals方法

      **如果兩元素的hashCode值相同,則繼續(xù)判斷equals是否返回true;

      **hashCode和equals方法雖然定義在自定義對象類里面,但不是我們手動調(diào)用

      而是往HashSet集合里面存儲元素的時候,集合底層自己調(diào)用hashCode和equals

      它自己拿對象去判斷,自己判斷兩元素是否是同一個元素。

      (2)TreeSet:

      TreeSet要求往里面存的元素具備比較性,否則會報錯。

      TreeSet排序的第一種方式:讓元素自身具備比較性

      定義對象類,實現(xiàn)Compareble接口,復(fù)寫compareTo方法,此方式是元素的自然順序

      class Student implements Comparable

      {

      private String name;

      private int age;

      public Student(String name,int age)

      {

      this.name=name;

      this.age=age;

      }

      public String getName()

      {

      return name;

      }

      public int getAge()

      {

      return age;

      }

      public int compareTo(Object obj)

      {

      if(!(obj instanceof Student))

      throw new RuntimeException(”不是學(xué)生對象!“);

      Student stu =(Student)obj;

      int num = this.age-stu.age;

      if(num==0)

      return this.name.compareTo(stu.name);

      return num;

      }

      }

      TreeSet排序的第一種方式:讓集合具備比較性

      當(dāng)元素自身不具備比較性(比如存儲學(xué)生對象時)或者具備的 比較性不是我們所需要的比較性時(比如想字符串的長度排序),此時就需要讓集合自身具備自定義的比較性。

      那如何讓集合自身具備比較性呢?可在集合初始化時,就讓集合具備比較方式。即定義一個類,實現(xiàn)Comparator接口,覆蓋compare方法。

      class StringLengthComparator implements Comparator

      {

      public int compare(Object obj1,Object obj2)

      {

      String s1 =(String)obj1;

      String s2 =(String)obj2;

      int num = new Integer(s1.length()).compareTo(new Integer(s2.length()));

      if(num==0)

      return s1.compareTo(s2);

      return num;

      }

      }

      class TreeSetTest

      {

      public static void main(String[] args)

      {

      TreeSet ts = new TreeSet(new StringLengthComparator());

      ts.add(”addfg“);

      ts.add(”dfg“);

      ts.add(”agtuug“);

      ts.add(”vgjkg“);

      sop(ts);

      }

      }

      基本數(shù)據(jù)類型或字符串對象均實現(xiàn)了Comparable接口,故同種類型基本數(shù)據(jù)間具備比較性,即自然順序。

      **Map:頂層接口,該集合存儲的是鍵值對,而且鍵是唯一的,Map和Set很像,Set集合底層就是使用了Map集合。

      Map集合沒有迭代器,要取出元素必須先將Map集合轉(zhuǎn)換成Set集合才能遍歷元素

      |--->HashTable(JDK1.0):

      底層是哈希表數(shù)據(jù)結(jié)構(gòu);

      不可以使用null鍵和null值;

      用作鍵的對象必須實現(xiàn)hashCode和equals方法來保證鍵的唯一性

      線程同步,效率低

      |--->HashMap(JDK1.2):

      底層是哈希表數(shù)據(jù)結(jié)構(gòu);

      允許使用null鍵和null值;

      線程不同步,效率高;

      保證元素唯一性的:

      原理:先判斷元素的hashCode值是否相同,再判斷兩元素的equals方法是否為true

      (往HashSet里面存的自定義元素要復(fù)寫hashCode和equals方法,以保證元素的唯一性!)

      class Student {

      private String name;

      private int age;

      public Student(String name, int age){

      super();

      this.name = name;

      this.age = age;} public int getAge(){

      return age;} public void setAge(int age){

      this.age = age;} public String getName(){

      return name;} public void setName(String name){

      this.name = name;}

      @Override public int hashCode(){

      return name.hashCode()+age*34;} @Override public boolean equals(Object obj){

      if(!(obj instanceof Student))

      return false;

      Student stu =(Student)obj;

      return this.name.equals(stu.name)&&this.age==stu.age;} public class HashMapDemo1 { public static void main(String[] args){

      Map hmap = new HashMap();

      hmap.put(new Student(”001“,20), ”beijing“);

      hmap.put(new Student(”002“,25), ”hebei“);

      hmap.put(new Student(”003“,50), ”hainan“);

      hmap.put(new Student(”001“,20), ”beijing“);

      System.out.println(hmap.size());

      Set keySet = hmap.keySet();

      Iterator it = keySet.iterator();

      while(it.hasNext()){

      Student stu = it.next();

      String addr = hmap.get(stu);

      System.out.println(stu.getName()+”..“+stu.getAge()+”::“+addr);

      }

      }

      }

      |--->TreeMap(JDK1.0):

      底層是二叉樹結(jié)構(gòu);

      允許使用null鍵和null值;

      線程不同步;

      可以給Map集合中的鍵進行排序.TreeMap排序的第一種方式:讓元素自身具備比較性,比如八種基本數(shù)據(jù)類型或則字符串,實現(xiàn)Compareble接口,覆蓋compareTo方法,此方式是元素的自然順序

      TreeMap排序的第一種方式:當(dāng)元素自身不具備比較性(比如存儲學(xué)生對象時)或者具備的比較性不是我們所需要的比較性時(比如想字符串的長度排序),此時就需要讓集合自身具備自定義的比較性。

      那如何讓集合自身具備比較性呢?可在集合初始化時,就讓集合具備比較方式。即定義一個類,實現(xiàn)Comparator接口,覆蓋compare方法。

      class Student implements Comparable{

      private String name;

      private int age;

      public Student(String name, int age){

      super();

      this.name = name;

      this.age = age;

      }

      public int getAge(){

      return age;

      }

      public void setAge(int age){

      this.age = age;

      }

      public String getName(){

      return name;

      }

      public void setName(String name){

      this.name = name;

      }

      @Override

      public int compareTo(Student stu){

      int num = new Integer(this.age).compareTo(new Integer(stu.age));

      if(num==0)

      return this.name.compareTo(stu.name);

      return num;

      }

      }

      public class HashMapDemo1 {

      public static void main(String[] args){

      Map tmap = new TreeMap();

      tmap.put(new Student(”001“,20), ”beijing“);

      tmap.put(new Student(”002“,25), ”hebei“);

      tmap.put(new Student(”003“,50), ”hainan“);

      tmap.put(new Student(”001“,20), ”beijing“);

      System.out.println(tmap.size());

      Set keySet1 = tmap.keySet();

      Iterator it1 = keySet1.iterator();

      while(it1.hasNext()){

      Student stu = it1.next();

      String addr = tmap.get(stu);

      System.out.println(stu.getName()+”..“+stu.getAge()+”::“+addr);

      }

      }

      }

      **Iterator:對collection進行迭代的迭代器.迭代器取代了Enumeration。

      迭代器和枚舉的區(qū)別:

      迭代器允許調(diào)用者利用定義良好的語義在迭代期間從迭代器所指向的collection移除元素

      方法名稱得到了改進,簡化書寫

      **LisIterator:系列表迭代器,允許程序員按任一方向遍歷列表、迭代期間修改列表

      **Comparable:此接口強行對實現(xiàn)它的每個類的對象進行整體自然排序。使元素具備比較性

      **Comparator:強行對某個對象collection進行整體排序的比較函數(shù),使集合具備比較性

      **Collections:此類完全由在 collection 上進行操作或返回 collection 的靜態(tài)方法組成。

      **Arrays:此類包含用來操作數(shù)組(比如排序和搜索)的各種靜態(tài)方法

      7、集合類各容器方法:

      **接口Collection方法摘要(沒有構(gòu)造方法)

      a)添加:

      i.boolean add(E e)

      j.boolean addAll(Collection c)b)刪除:

      i.void clear():清空容器

      j.boolean remove(Objec object):

      k.boolean removeAll(Collection c): c)判斷:

      i.boolean contains(Object object):判斷是否包含此元素

      j.boolean containsAll(Collection c):判斷是否包含一堆元素

      k.boolean equals(Object object):比較此collection與指定對象是否相等

      m.boolean isEmpty():判斷是否集合為空

      d)獲?。?/p>

      h.Iterator iterator():取出

      i.int hashCode():返回此collection的哈希值

      j.int size():返回此collection中元素的個數(shù)

      k.boolean retainAll(Collection c):取交集

      m.Object toArray():返回此collection中所有元素的數(shù)組

      n.T[] toArray(T[] a):返回包含此collection中所有元素的數(shù)值。*****List集合子類及其方法

      (1)List接口是Collection接口的一個子接口。

      (2)List接口中的元素有如下特點(對角標(biāo)的操作都是特有方法,因為有序):

      A:元素有序(存儲順序和取出順序一致)

      B:元素可以重復(fù)

      (3)List接口中的特有方法

      A:add(int index,Object obj):在指定位置加入元素

      B:remove(int index):移除指定位置的元素

      C:set(int index,Object obj):修改指定位置的元素

      D:get(int index):獲取指定位置的元素

      E:indexOf(Object obj):獲取指定元素的位置

      F:subList(int start,int end):從一個大的List中截取一個小的List

      G:listIterator():返回一個List接口特有的迭代器(1)、ArrayList:

      |--->構(gòu)造方法摘要:(少用,不是重點)ArrayList():構(gòu)造一個初始容量為 10 的空列表。

      ArrayList(Collection c): 構(gòu)造一個包含指定 collection 的元素的列表,ArrayList(int initialCapacity): 構(gòu)造一個具有指定初始容量的空列表。

      |--->方法摘要:

      |--->添加:

      boolean add(E e): 將指定的元素添加到此列表的尾部。

      void add(int index, E element): 將指定的元素插入此列表中的指定位置。

      boolean addAll(Collection c):按照指定 collection 的迭代器所返回的元素順序,將該 collection 中的所有元素添加到此列表的尾部

      boolean addAll(int index, Collection c): 從指定的位置開始,將指定 collection

      中的所有元素插入到此列表中。|--->刪除:

      void clear(): 移除此列表中的所有元素。

      E remove(int index): 移除此列表中指定位置上的元素。

      boolean remove(Object o): 移除此列表中首次出現(xiàn)的指定元素(如果存在)。

      protected void removeRange(int fromIndex, int toIndex):

      移除列表中索引在 fromIndex(包括)和 toIndex(不包括)之間的所有元素。

      boolean removeAll(Collection c): 從列表中移除指定 collection 中包含的其所有元素

      |--->獲取:

      E get(int index): 返回此列表中指定位置上的元素。

      int indexOf(Object o): 返回此列表中首次出現(xiàn)的指定元素的索引,或如果此列表不包含元素,則返回-1。

      int lastIndexOf(Object o)返回此列表中最后一次出現(xiàn)的指定元素的索引,或如果此列表不包含索引,則返回-1。

      public List subList(int fromIndex,int toIndex): 返回列表中指定的 fromIndex(包括)

      和 toIndex(不包括)之間的部分視圖。

      Iterator iterator(): 返回按適當(dāng)順序在列表的元素上進行迭代的迭代器。

      ListIterator listIterator(int index):返回列表中元素的列表迭代器(按適當(dāng)順序),從列表的指定位置開始。

      |--->修改:(特有方法!)

      E set(int index, E element): 用指定的元素替代此列表中指定位置上的元素。

      (2)LinkedList: |--->構(gòu)造方法摘要:

      LinkedList(): 構(gòu)造一個空列表。

      LinkedList(Collection c): 構(gòu)造一個包含指定 collection 中的元素的列表,這些元素按其 collection 的迭代器返回的順序排列。

      |--->方法摘要:(特有的)

      |--->添加

      void addFirst(E e): 將指定元素插入此列表的開頭。

      void addLast(E e): 將指定元素添加到此列表的結(jié)尾。

      |--->獲取元素,但不刪除元素

      E get(int index): 返回此列表中指定位置處的元素。

      E getFirst(): 返回此列表的第一個元素。

      E getLast(): 返回此列表的最后一個元素。

      |--->獲取元素且刪除元素

      E remove(): 獲取并移除此列表的頭(第一個元素)。

      E remove(int index): 移除此列表中指定位置處的元素。

      boolean remove(Object o): 從此列表中移除首次出現(xiàn)的指定元素(如果存在)。

      E removeFirst(): 移除并返回此列表的第一個元素。

      E removeLast(): 移除并返回此列表的最后一個元素。

      |--->修改

      E set(int index, E element)將此列表中指定位置的元素替換為指定的元素。

      (3)Vector |--->構(gòu)造方法摘要:

      Vector(): 構(gòu)造一個空向量,使其內(nèi)部數(shù)據(jù)數(shù)組的大小為 10,其標(biāo)準(zhǔn)容量增量為零。

      Vector(Collection c): 構(gòu)造一個包含指定 collection 中的元素的向量,這些元素按其 collection 的迭代器返回元素的順序排列。

      |--->方法摘要:

      |--->添加:

      boolean add(E e): 將指定元素添加到此向量的末尾。

      void add(int index, E element): 在此向量的指定位置插入指定的元素。

      boolean addAll(Collection c):

      將指定 Collection 中的所有元素添加到此向量的末尾,按照指定 collection 的迭代器所返回的順序添加這些元素。

      boolean addAll(int index, Collection c): 在指定位置將指定 Collection 中的所有元素插入到此向量中。

      |--->獲取:

      Enumeration elements(): 返回此向量的組件的枚舉。

      Vector特有的取出方式:

      枚舉和迭代器很像,其實枚舉和迭代器是一樣的,只是因為枚舉的名稱和方法的名稱

      名字都過長,所以枚舉被迭代器取代了。

      |--->枚舉Enumeration的方法摘要:

      boolean hasMoreElements(): 測試此枚舉是否包含更多的元素。

      E nextElement(): 如果此枚舉對象至少還有一個可提供的元素,則返回此枚舉的下一個元素。

      *****Set集合子類及其方法

      (1)HashSet:它不保證set的迭代順序;特別是它不保證該順序恒久不變.此類允許使用null元素。

      |--->構(gòu)造方法:

      HashSet()構(gòu)造一個新的空 set,其底層 HashMap 實例的默認初始容量是 16,加載因子是 0.75。

      HashSet(Collection c)構(gòu)造一個包含指定 collection 中的元素的新 set。

      |--->方法摘要:

      boolean add(E e)如果此 set 中尚未包含指定元素,則添加指定元素。

      void clear()從此 set 中移除所有元素。

      Object clone()返回此 HashSet 實例的淺表副本:并沒有復(fù)制這些元素本身。

      boolean contains(Object o)如果此 set 包含指定元素,則返回 true。

      boolean isEmpty()如果此 set 不包含任何元素,則返回 true。

      Iterator iterator()返回對此 set 中元素進行迭代的迭代器。

      boolean remove(Object o)如果指定元素存在于此 set 中,則將其移除。

      int size()返回此 set 中的元素的數(shù)量(set 的容量)。

      (2)TreeSet:使用元素的自然順序?qū)υ剡M行排序,或者根據(jù)創(chuàng)建 set 時提供的 Comparator 進行排序.|--->構(gòu)造方法:

      TreeSet()構(gòu)造一個新的空 set,該set根據(jù)其元素的自然順序進行排序。

      TreeSet(Collection c)

      構(gòu)造一個包含指定 collection 元素的新 TreeSet,它按照其元素的自然順序進行排序。

      TreeSet(Comparator comparator)構(gòu)造一個新的空 TreeSet,它根據(jù)指定比較器進行排序。

      |--->方法摘要:

      添加:

      boolean add(E e)將指定的元素添加到此 set(如果該元素尚未存在于 set 中)。

      boolean addAll(Collection c)將指定 collection 中的所有元素添加到此 set 中。

      刪除:

      void clear()移除此 set 中的所有元素。

      boolean remove(Object o)將指定的元素從 set 中移除(如果該元素存在于此 set 中)。

      E pollFirst()獲取并移除第一個(最低)元素;如果此 set 為空,則返回 null。

      E pollLast()獲取并移除最后一個(最高)元素;如果此 set 為空,則返回 null。

      獲取:

      Iterator iterator()返回在此 set 中的元素上按升序進行迭代的迭代器。

      E first()返回此 set 中當(dāng)前第一個(最低)元素。

      E last()返回此 set 中當(dāng)前最后一個(最高)元素。

      int size()返回 set 中的元素數(shù)(set 的容量)。

      判斷:

      boolean isEmpty()如果此 set 不包含任何元素,則返回 true。

      boolean contains(Object o)如果此 set 包含指定的元素,則返回 true。

      **Map:將鍵映射到值的對象。Map集合沒有迭代器!Map集合特點:該集合存儲鍵值對。而且鍵是唯一的。

      |--->方法摘要:

      |--->添加:

      V put(K key, V value)將指定的值與此映射中的指定鍵關(guān)聯(lián)(可選操作)。

      void putAll(Map m)從指定映射中將所有映射關(guān)系復(fù)制到此映射中

      |--->刪除:

      void clear()從此映射中移除所有映射關(guān)系(可選操作)。

      V remove(Object key)如果存在一個鍵的映射關(guān)系,則將其從此映射中移除(可選操作)。

      |--->判斷

      boolean containsKey(Object key)如果此映射包含指定鍵的映射關(guān)系,則返回 true。

      boolean containsValue(Object value)如果此映射將一個或多個鍵映射到指定值,則返回 true。

      boolean isEmpty()如果此映射未包含鍵-值映射關(guān)系,則返回 true。

      |--->獲取

      int size()返回此映射中的鍵-值映射關(guān)系數(shù)。

      Collection values()返回此映射中包含的值的 Collection 視圖。

      重點:Map集合沒有迭代器,以下是Map的兩種取出方式:

      第一種:Set keySet()

      返回此映射中包含的鍵的Set視圖,將Map集合中所有的鍵存入Set集合,然后再通過Set集合的 迭代器取出所有的鍵,再根據(jù)get方法獲取每個鍵的值;

      第二種:Set> entrySet()

      返回此映射中包含的映射關(guān)系的Set視圖,將Map集合中的映射關(guān)系存入到Set集合中,這個映射關(guān)系的數(shù)據(jù)類型是Map.entry,再通過Map.Entry類的方法再要取出關(guān)系里面的鍵和值

      Map.Entry的方法摘要:

      boolean equals(Object o)比較指定對象與此項的相等性。

      K getKey()返回與此項對應(yīng)的鍵。

      V getValue()返回與此項對應(yīng)的值。

      int hashCode()返回此映射項的哈希碼值。

      V setValue(V value)用指定的值替換與此項對應(yīng)的值(特有!!)。

      8、Map集合和Collection集合的區(qū)別?

      1,Map中一次存儲是鍵值對。

      Collection中一次存儲是單個元素。

      2,Map的存儲使用的put方法。

      Collection存儲使用的是add方法。

      3,Map集合沒有迭代器,Map的取出,是將Map轉(zhuǎn)成Set,在使用迭代器取出。

      Collection取出,使用就是迭代器。

      4,如果對象很多,必須使用集合存儲。

      如果元素存在著映射關(guān)系,可以優(yōu)先考慮使用Map存儲或者用數(shù)組,如果沒有映射關(guān)系,可以使用Collection存儲。

      8、迭代器:Iterator(Map集合沒有迭代器)(1)迭代器就是取出集合元素的方式

      (2)迭代器的作用

      因為每個集合中元素的取出方式都不一樣,于是就把元素的取出方式進行抽取,并定義在集合內(nèi)部,這樣取出方式就可以直接訪問集合內(nèi)部的元素;

      而每個容器的數(shù)據(jù)結(jié)構(gòu)不同,所以取出動作的細節(jié)也不一樣,但是有共性內(nèi)容:判斷和取出。

      那么就將共性內(nèi)容進行抽取,從而形成了接口Iterater(3)獲取迭代器的方法:

      Iterator iterator()返回在此 collection 的元素上進行迭代的迭代器。

      Iterator iterator()返回在此 set 中的元素上進行迭代的迭代器。

      (3)迭代器方法:

      boolean hasNext()如果仍有元素可以迭代,則返回 true。

      E next()返回迭代的下一個元素。

      void remove()從迭代器指向的collection中移除迭代器返回的最后一個元素(可選操作)。

      9、列表迭代器:ListIterator(1)List集合特有的迭代器ListIterator是Iterator的子接口,在迭代時,不可以通過集合對象的 方法操作集合中的元素,因為會發(fā)生ConcurrentModificationException(當(dāng)方法檢測到對象的并發(fā)修改,但不允許這種修改時,拋出此異常)(2)Iterator方法有限,只能對元素進行判斷、取出和刪除的操作

      ListIterator可以對元素進行添加和修改動作等。

      (3)獲取列表迭代器方法:

      ListIterator listIterator()返回此列表元素的列表迭代器(按適當(dāng)順序)。

      ListIterator listIterator(int index)

      返回此列表中的元素的列表迭代器(按適當(dāng)順序),從列表中指定位置開始。

      (4)列表迭代器方法:

      void add(E e)將指定的元素插入列表(可選操作)。

      boolean hasPrevious()如果以逆向遍歷列表,列表迭代器有多個元素,則返回 true。

      int nextIndex()返回對 next 的后續(xù)調(diào)用所返回元素的索引。

      E previous()返回列表中的前一個元素。

      int previousIndex()返回對 previous 的后續(xù)調(diào)用所返回元素的索引。

      void set(E e)用指定元素替換 next 或 previous 返回的最后一個元素(可選操作)。

      10、堆棧和隊列

      堆棧:先進后出,比如杯子里的水

      隊列:先進先出,比如水管的水

      11、集合類各種容器的使用注意細節(jié):

      (1)迭代器:

      **迭代器的next方法是自動向下取元素,要避免出現(xiàn)NoSuchElementException。

      也就是在迭代循環(huán)中調(diào)用一次next方法一次就要hasNext判斷一次,比如語句

      sop(it.next()+”..."+it.next())會發(fā)生上述異常。

      **迭代器的next方法返回值類型是Object,所以要記得類型轉(zhuǎn)換,應(yīng)用泛型后就不用強轉(zhuǎn)

      (2)List集合:

      **List集合里面的元素因為是帶角標(biāo),所以List集合里面的元素都是有序的,另外List集合可以包含重復(fù)元素,也可以包含null。

      **List集合有迭代器Iterator,還有一個特有迭代器列表ListIterator

      **List集合中判斷元素是否相同都是用equals方法,無論contains、remove都依賴equals方法

      比如往ArrayList集合里面存放學(xué)生,同名同年齡視為同一個人,此時就需要在學(xué)生類復(fù)寫Object類

      里面的equals方法(非常重要!!要注意!)(3)Set集合:

      **Set接口里面存放的是元素是無序的,不可以有重復(fù)元素,可以包含null

      **Set集合只有一種取出方式,就是迭代器Iterator

      **Set集合功能和Collection是一致的,沒有特殊方法

      |--->HashSet:

      **集合里面存放的元素是無序的,唯一的 **底層數(shù)據(jù)結(jié)構(gòu)是哈希表,哈希表結(jié)構(gòu)的數(shù)據(jù)都是無序的,哈希表結(jié)構(gòu)的操作效率都高效

      **線程不同步

      **保證元素唯一性的原理是:通過復(fù)寫hashCode和equals方法

      ****如果兩元素的hashCode值相同,則繼續(xù)判斷兩元素equals是否為真

      ****如果兩元素的hashCode值不同,則不會調(diào)用equals方法。

      **當(dāng)我們往HashSet集合存放自定義的元素時(比如學(xué)生對象),通常都要復(fù)寫hashCode和equals方法,而且hashCode和equals方法不通過我們調(diào)用,HashSet集合底層內(nèi)部自己調(diào)用,自己拿元素去比較

      |--->TreeSet

      **TreeSet集合可以對存放的元素進行排序,彌補了Set集合元素?zé)o序的缺點,且元素是唯一的 **底層數(shù)據(jù)結(jié)構(gòu)是二叉樹,二叉樹結(jié)構(gòu)都是有序的 **線程不同步

      **TreeSet集合要求往集合里存放的元素自身具備比較性,否則會報錯

      **TreeSet集合保證元素唯一性的依據(jù)是:通過compareTo或者compare方法中的來保證元素的唯一性。

      TreeSet排序的第一種方式:讓元素自身具備比較性,定義元素類實現(xiàn)Compareble接口,覆蓋compare方法,此方式是元素的自然順序。

      TreeSet排序的第二種方式:讓集合具備比較性

      當(dāng)元素自身不具備比較性或者具備的比較性不是

      我們所需要的比較性時,此時就需要讓集合具備自定義的比較性。

      那如何讓集合自身具備比較性呢?

      可在集合初始化時,就讓集合具備比較方式。

      即定義一個類,實現(xiàn)Comparator接口,覆蓋compare方法。

      注:

      **判斷元素唯一時,當(dāng)主要條件一樣時,判斷次要條件

      **兩種排序方式都在時,以比較器為主!!

      (4)Map集合:

      |--Hashtable

      底層是哈希表結(jié)構(gòu)

      線程安全的,并且鍵和值不能為null。

      |--HashMap

      底層是哈希表結(jié)構(gòu)

      線程不安全的,鍵和值可以為null。

      |--LinkedHashMap

      底層是鏈表和哈希表

      線程不安全

      |--TreeMap

      底層是二叉樹

      線程不安全的

      12、如果你想將一組對象按一定順序存取,在不考慮并發(fā)訪問的情況下會使用____C_____ ,反之則會使用____A_____;如果你想存儲一組無序但唯一的對象,你會使用___B______;

      如果你想按關(guān)鍵字對對象進行存取,在不考慮并發(fā)訪問的情況下會使用___D______ ,反之則會使用_____E____。A.Vector B.HashSet C.ArrayList D.HashMap E.Hashtable

      13、泛型:

      (1)為什么會出現(xiàn)泛型?

      因為集合存放的數(shù)據(jù)類型不固定,故往集合里面存放元素時,存在安全隱患,如果在定義集合時,可以想定義數(shù)組一樣指定數(shù)據(jù)類型,那么就可以解決該類安全問題。

      JDK1.5后出現(xiàn)了泛型,用于解決集合框架的安全問題。

      泛型是一個類型安全機制。

      (2)泛型定義格式:通過<>來定義要操作的引用數(shù)據(jù)類型

      ArrayList al = new ArrayList;(3)泛型的好處:

      **將運行時期出現(xiàn)的ClassCastException(類型轉(zhuǎn)換異常)問題轉(zhuǎn)移到編譯時期;

      **避免了強制轉(zhuǎn)換的麻煩

      (4)什么時候定義泛型?

      泛型在集合框架中很常見,只要見到<>就要定義泛型。其實<>就是用來接收類型的。

      當(dāng)使用集合時,將集合中要存儲的數(shù)據(jù)類型作為參數(shù)傳遞到<>中即可

      (5)泛型的形式

      **泛型類:即自定義泛型類

      A:當(dāng)類中要操作的引用數(shù)據(jù)類型不確定時,早起定義Object來完成擴展,現(xiàn)在定義泛型來完成B:局限性:泛型類定義的泛型,在整個類中有效,如果該泛型類的方法被調(diào)用,當(dāng)泛型類的對象明確要操作的類型后,所有要操作的類型就被固定。

      **泛型方法:泛型放在返回值前面,修飾符的后面

      A:為了避免泛型類的局限性,讓不同方法可以操作不同的類型,而且類型還不確定,則可以將泛型定義在方法上

      B:特殊之處:靜態(tài)方法不可以反問類上定義的泛型

      如果靜態(tài)方法操作的應(yīng)用數(shù)據(jù)類型不確定,可以講泛型定義在靜態(tài)方法上

      **泛型接口:

      當(dāng)泛型定義在接口上時,則子類中要指定實現(xiàn)接口類型,同時還可以子類也可以定義為泛型類

      (6)泛型的高級應(yīng)用:?通配符

      **當(dāng)指定兩種泛型的集合,則迭代時也要定義兩種泛型的迭代器,麻煩,此時可通過將迭代器的泛型

      改為?,如Iterator it=al.iterator();

      **兩種泛型限定

      向上限定: ? extends E;E可以接收E類型或者E的子類

      向下限定: ? super E;E可以接收E類型或者E的父類

      14、高級for循環(huán)

      (1)JDK1.5新特性,代替迭代器使用時的不爽,簡化書寫,底層原理是迭代器凡是支持迭代器的都支持高級for循環(huán)

      高級for循環(huán),只用于集合和數(shù)組的遍歷,集合只能用Collection不能用Map集合 只能把Map集合轉(zhuǎn)化成Set集合,才能用for循環(huán)。

      (2)格式

      for(數(shù)據(jù)類型 變量名:被遍歷的集合(Collection)或者數(shù)組)

      {

      }

      (3)局限性:

      必須要有遍歷的目標(biāo)

      對集合或者數(shù)組進行遍歷時,只能獲取集合元素,不能對集合元素進行操作

      迭代器除了遍歷,還可以進行remove操作集合中的元素

      列表迭代器還可以在遍歷過程中進行增刪改查的操作

      (4)傳統(tǒng)for循環(huán)和高級for循環(huán)的區(qū)別

      高級for循環(huán)有一個局限性,就是必須要有遍歷的目標(biāo)(集合或者數(shù)組)

      遍歷數(shù)組時建議使用傳統(tǒng)for循環(huán),因為可以定義角標(biāo),比如打印100次helloworld時用傳統(tǒng)for循環(huán)方便

      15、可變參數(shù)

      (1)數(shù)組的可變參數(shù)

      格式:

      int...arr(3)方法的可變參數(shù)

      格式:

      public static void show(String str,int...arr)

      {

      }

      注意:可變參數(shù)一定要放在參數(shù)列表的最后面

      16、靜態(tài)導(dǎo)入:

      **import static java.util.Arrays.* 導(dǎo)入的是Arrays這個類中所有的靜態(tài)方法

      **當(dāng)類名重名時,需要制定具體的報名

      **當(dāng)方法重名時,需要制定具體所屬的對象或者類

      17、Collections類:

      (1)此類完全由在 collection 上進行操作或返回 collection 的靜態(tài)方法組成。

      (2)靜態(tài)方法摘要:

      static boolean addAll(Collection c, T...elements)

      將所有指定元素添加到指定 collection 中。

      static void fill(List list, T obj)

      使用指定元素替換指定列表中的所有元素。

      static boolean replaceAll(List list, T oldVal, T newVal)

      使用另一個值替換列表中出現(xiàn)的所有某一指定值。

      static void reverse(List list)

      反轉(zhuǎn)指定列表中元素的順序。

      static Comparator reverseOrder()

      返回一個比較器,它強行逆轉(zhuǎn)實現(xiàn)了 Comparable 接口的對象 collection 的自然順序

      static Comparator reverseOrder(Comparator cmp)

      返回一個比較器,它強行逆轉(zhuǎn)指定比較器的順序。

      (3)Collections類特牛的方法:

      集合有一個共同的缺點,那就是線程不安全,被多線程操作時,容易出現(xiàn)問題,雖然可以自己加鎖

      但是麻煩。Collections提供特牛的方法,就是給它一個不同步的集合,它返回一個同步的安全的集合static Collection synchronizedCollection(Collection c)

      返回指定 collection 支持的同步(線程安全的)collection。

      static List synchronizedList(List list)

      返回指定列表支持的同步(線程安全的)列表。

      static Map synchronizedMap(Map m)

      返回由指定映射支持的同步(線程安全的)映射。

      static Set synchronizedSet(Set s)

      返回指定 set 支持的同步(線程安全的)set。

      static SortedMap synchronizedSortedMap(SortedMap m)

      返回指定有序映射支持的同步(線程安全的)有序映射。

      static SortedSet synchronizedSortedSet(SortedSet s)

      返回指定有序 set 支持的同步(線程安全的)有序 set。

      18、Arrays類:

      此類包含用來操作數(shù)組(比如排序和搜索)的各種方法。里面都是靜態(tài)方法。

      如果指定數(shù)組引用為 null,則此類中的方法都會拋出 NullPointerException。

      (1)靜態(tài)方法摘要:

      static List asList(T...a)

      返回一個受指定數(shù)組支持的固定大小的列表。

      注意:

      A:該方法將一個數(shù)組變成集合后,不可以使用集合的增刪方法,因為數(shù)組的長度是固定的!

      如果增刪,則發(fā)生UnsupportedOprationException(不支持操作異常)

      B:如果數(shù)組中的元素都是基本數(shù)據(jù)類型,則該數(shù)組變成集合時,會將該數(shù)組作為集合的一個

      元素出入集合C:如果數(shù)組中的元素都是對象,如String,那么數(shù)組變成集合后,數(shù)組中的元素就直接轉(zhuǎn)成集合中的元素

      19、數(shù)組變集合以及集合變數(shù)組的對比:

      (1)數(shù)組變集合:

      方法:static List asList(T...a)返回一個受指定數(shù)組支持的固定大小的列表。

      好處:可以使用集合的思想和方法操作數(shù)組中的元素,數(shù)組是一個對象,但是數(shù)組中的功能很少

      (2)集合變數(shù)組:

      方法:Collction中的toArray方法

      好處:可以限定對集合元素的操作,防止對集合的元素進行增刪,因為數(shù)組長度是固定的。

      20、Collections類和Arrays類的使用。(重點)A:Collections

      排序

      二分查找

      發(fā)轉(zhuǎn)

      B:Arrays

      把數(shù)組變成字符串輸出

      排序

      二分查找

      21、System:

      (1)描述系統(tǒng)信息的類

      (2)該類沒有構(gòu)造方法,該類的方法和屬性都是靜態(tài)的(3)字段摘要:

      static InputStream in “標(biāo)準(zhǔn)”輸入流。

      static PrintStream out “標(biāo)準(zhǔn)”輸出流。

      (4)方法摘要:

      static void exit(int status)終止當(dāng)前正在運行的 Java 虛擬機。

      static void gc()運行垃圾回收器。

      static Properties getProperties()確定當(dāng)前的系統(tǒng)屬性

      static String getProperty(String key)獲取指定鍵指示的系統(tǒng)屬性。

      static String getProperty(String key, String def)獲取用指定鍵描述的系統(tǒng)屬性。

      static void setIn(InputStream in)重新分配“標(biāo)準(zhǔn)”輸入流。

      static void setOut(PrintStream out)重新分配“標(biāo)準(zhǔn)”輸出流。

      static void setProperties(Properties props)將系統(tǒng)屬性設(shè)置為 Properties 參數(shù)。

      static String setProperty(String key, String value)設(shè)置指定鍵指示的系統(tǒng)屬性。

      22、Runtime:(1)每個 Java 應(yīng)用程序都有一個 Runtime 類實例,使應(yīng)用程序能夠與其運行的環(huán)境相連接。

      第三篇:2013 會計基礎(chǔ)重點筆記總結(jié)

      2013 會計基礎(chǔ)重點筆記總結(jié)

      1、營業(yè)外收入包括固定資產(chǎn)盤盈;處置固定資產(chǎn)凈收益;罰款收入;確實無法支付經(jīng)批準(zhǔn)轉(zhuǎn)銷的應(yīng)付款項。

      2、營業(yè)外支出包括固定資產(chǎn)盤虧;處置固定資產(chǎn)凈損失;罰款支出;捐贈支出;非常損失。

      3、他業(yè)務(wù)收入是企業(yè)除主營業(yè)務(wù)以外的其他銷售或經(jīng)營其他業(yè)務(wù)所取得的收入。如銷售材料、出租包裝物和商品、出租固定資產(chǎn)、出租無形資產(chǎn)、運輸收入等實現(xiàn)的收入。

      4、其他業(yè)務(wù)成本包括銷售材料的成本、出租包裝物的成本或攤銷額、出租固定資產(chǎn)的累計折舊、出租無形資產(chǎn)的累計攤銷。

      5、利潤表的特點是

      1、根據(jù)損益賬戶的本期發(fā)生額編制

      2、屬于動態(tài)報表

      6、資產(chǎn)負債表的作用反映企業(yè)某一特定日期的財務(wù)狀況,賬戶式

      資產(chǎn)負債表各項目一般根據(jù)科目發(fā)生額填制

      資產(chǎn)按流動性有大到小順序排列

      根據(jù)總賬賬戶余額直接填列如:交易性金融資產(chǎn)、短期借款、應(yīng)付票據(jù)、應(yīng)付職工薪酬等項目

      資產(chǎn)負債表中的各項目金額,是根據(jù)資產(chǎn)、負債、所有者權(quán)益三大類科目及其有關(guān)明細科目在一定時日(報告期末)的期末余額編制的資產(chǎn)負債表根據(jù)總賬科目余額直接填寫:交易性金融資產(chǎn)、短 期借款、應(yīng)付利息、應(yīng)付職工薪酬、實收資本、資本公積

      根據(jù)總賬科目余額計算填寫的有:貨幣資金、存貨

      明細科目余額計算:應(yīng)收、預(yù)收、應(yīng)付、預(yù)付

      總賬+明細:長期借款

      總賬+備抵:固定資產(chǎn)、無形資產(chǎn)、存貨、其他應(yīng)收款

      7、應(yīng)收賬款=兩收明細借方余額-壞賬準(zhǔn)備

      預(yù)收賬款=兩收明細貸方余額

      應(yīng)付賬款=兩付明細貸方余額

      預(yù)付賬款=兩付明細借方余額-壞賬準(zhǔn)備

      8、凡是明細賬一般使用活頁式賬簿,以便于根據(jù)實際需要隨時添加空白賬頁。訂本賬——總分類賬、現(xiàn)金日記賬、銀行存款日記賬。

      9、匯總記賬憑證賬務(wù)處理程序中,其賬簿的設(shè)置與記賬憑證賬務(wù)處理程序是基本相同的。

      10、不屬于賬戶的的基本結(jié)構(gòu)具體內(nèi)容的是原始憑證編號,而是記賬憑證的編號;賬戶的作用:將會計數(shù)據(jù)進行科學(xué)的分類和記錄,為算賬、報賬等提供基礎(chǔ)條件。

      11、會計賬簿

      賬簿的日期按記賬憑證日期填寫

      兩欄式賬簿。只有借方和貸方。普通日記賬、轉(zhuǎn)賬日記賬。

      三欄式賬簿。采用借方、貸方、余額三個主要欄目的賬簿。一般適用于日記賬、總分類賬以及資本、債權(quán)債務(wù)明細賬。

      多欄式賬簿。在借方欄或貸方欄下設(shè)置多個欄目用以反映經(jīng)濟業(yè)務(wù)不同內(nèi)容的賬簿。收入、費用、成本、利潤和利潤分配類的明細賬,如:管理費用明細賬、生產(chǎn)成本明細賬等。應(yīng)逐日逐筆登記的有:固定資產(chǎn)、債權(quán)債務(wù)

      可逐筆登記也可定期匯總的是:庫存商品、原材料、產(chǎn)成品收發(fā)明細賬、收入、費用。每年應(yīng)更換一次的有:總賬日記賬、多數(shù)明細賬

      不必每年更換的有:財產(chǎn)物資、債權(quán)債務(wù)明細賬

      多欄式現(xiàn)金日記賬屬于序時賬

      12、不是財產(chǎn)清查的基本程序的有復(fù)查報告

      13、不在“庫存商品 ”科目核算的是已完成銷售手續(xù),客戶月未尚未提取的庫存商品

      14、“銷售費用”屬于期間費用,按月歸集,月末全部轉(zhuǎn)入本年利潤賬戶,以確定當(dāng)期經(jīng)營成果。

      15、輔助生產(chǎn)車間領(lǐng)用材料,應(yīng)計入生產(chǎn)成本—基本生產(chǎn)成本賬戶

      16、會計基本假設(shè)所作的合理設(shè)定內(nèi)容是指會計核算所處時間、空間環(huán)境

      17、累計折舊是非流動資產(chǎn)的科目

      18、分類賬簿是對全部經(jīng)濟業(yè)務(wù)事項按照會計要素的具體類別而設(shè)置的分類賬戶進行登記的賬簿。

      是按照經(jīng)營與決策的需要而設(shè)置的賬戶,歸集并匯總各類信息,反映資金運動的各種狀態(tài)、形勢極其構(gòu)成。

      19、賬簿記錄中的日期,應(yīng)該填寫記賬憑證上的日期。

      20、紅字更正法的具體內(nèi)容不包括在賬簿上劃紅線沖銷多記金額,包括用紅字在記賬憑證上沖銷多記金額、用藍字填制一張正確的記賬憑證、用紅字登帳沖銷多記金額

      21、匯總收款憑證應(yīng)按現(xiàn)金和銀行存款賬戶的借方設(shè)置

      22、現(xiàn)金流量表是反映企業(yè)在一定其間內(nèi)現(xiàn)金及現(xiàn)金等價物流入和流出情況的報表

      23、首先“累計折舊”是屬于資產(chǎn)類帳戶,他是'固定資產(chǎn)'的'備抵'戶所以“累計折舊”的增加與減少的記帳方法就應(yīng)該與一般資產(chǎn)類的記帳方式相反,也就是說“累計折舊”增加數(shù)應(yīng)該在貸方,減少數(shù)應(yīng)該在借方,計提累計折舊時記貸方

      計提折舊時:

      借:生產(chǎn)成本管理費用營業(yè)費用制造費用(誰受益,誰負擔(dān))

      貸:累計折舊

      當(dāng)報廢,盤虧,處置固定資產(chǎn)時,應(yīng)先轉(zhuǎn)入清理:

      借:固定資產(chǎn)清理(固定資產(chǎn)原值-已計提的累計折舊=凈值)

      累計折舊

      貸:固定資產(chǎn)(原值)

      24、賬證核對指核對會計賬簿與會計憑證的時間、字號、內(nèi)容、金額。

      25、賬簿錯誤更正方法

      劃線更正法(賬簿錯,憑證沒錯):用紅線劃,藍字寫。文字可劃部分,金額應(yīng)全劃。補充登記法(就是用填制補充的記賬憑證來更正錯誤的記錄。這種方法適用于記賬以后發(fā)現(xiàn)記賬憑證和會計賬簿的金額和錯誤):將少記的金額用藍字填制一張與原記賬憑證會計科目相同的記賬憑證,并用藍字據(jù)此登賬,用以補充少記的金額,更正錯誤。

      紅字更正法:①、在記賬后發(fā)現(xiàn)記賬憑證和會計賬簿記錄的金額有錯誤,所記金額比應(yīng)記金額要大。多記的金額用紅字填制一張與原記賬憑證會計科目相同的記賬憑證,并紅字據(jù)以登記賬戶

      ②、在記賬后,發(fā)現(xiàn)記賬憑證在會計賬簿所用會計科目或記賬方向有錯誤,或會計科目均有錯誤。先紅字填制一張內(nèi)容與錯誤記賬憑證完全相同的記賬憑證,并據(jù)此登記賬簿,沖銷原有錯誤的賬簿記錄。然后再用藍字填制一張符合經(jīng)濟業(yè)務(wù)內(nèi)容的正確的記賬憑證,并據(jù)此登記賬簿。

      而記賬憑證有錯的:一樣補充、紅字。但是如果是以前的用藍字填制一張更正的記賬憑證

      26、結(jié)賬沒有半年末(月、季、年),至少每月、每年結(jié)一次

      27、累計原始憑證有:限額領(lǐng)料單、費用登記表

      匯總原始憑證有:工資匯總表、發(fā)料憑證匯總表、差旅費用報銷單。

      28、復(fù)式記賬以資產(chǎn)與權(quán)益的平衡關(guān)系為記賬依據(jù),以資金運動規(guī)律為理論依據(jù),1970年《企業(yè)會計準(zhǔn)則》規(guī)定必須用借貸記賬法。

      借貸記賬法的記賬規(guī)則:有借必有貸,借貸必相等。

      29、會計分錄的內(nèi)容:賬戶名稱、方向、發(fā)生額(沒有經(jīng)濟內(nèi)容摘要)

      30、試算平衡:發(fā)生額 余額

      發(fā)生額試算平衡:借貸記賬法的記賬規(guī)則——有借必有貸,借貸必相等

      余額試算平衡:資產(chǎn)與權(quán)益的平衡關(guān)系——資產(chǎn)=負債+所有者權(quán)益

      31、科目對應(yīng)關(guān)系:相互科目之間的借貸對應(yīng)關(guān)系

      對應(yīng)科目:發(fā)生對應(yīng)關(guān)系的科目

      勾稽關(guān)系:總賬與明細賬金額應(yīng)當(dāng)相等32、1494年由意大利人提出簿記論標(biāo)志著現(xiàn)代會計的誕生。

      33、資本公積是企業(yè)的儲備資本,可以轉(zhuǎn)增資本

      法定盈余公積不得轉(zhuǎn)增資本

      34、財務(wù):具有實物形態(tài)

      35、收入:日?;顒有纬?、導(dǎo)致所有者權(quán)益增加、與投入資本無關(guān)的經(jīng)濟利益總流入支出:非正常經(jīng)營活動以外的支出

      費用:日?;顒有纬伞?dǎo)致所有者權(quán)益減少、與分配利潤無關(guān)的經(jīng)濟利益流出

      36、財務(wù)成果計算處理:利潤計算、所得稅計算與繳納、利潤分配、虧損彌補。

      37、會計基本假設(shè):核算的前提,對其時間、空間的合理設(shè)定。

      主體:空間范圍

      持續(xù)經(jīng)營:時間。目的:會計方法保持穩(wěn)定

      38、形成權(quán)責(zé)發(fā)生制和收付實現(xiàn)制的記賬依據(jù)的會計假設(shè)(前提)是會計分期。權(quán)責(zé)發(fā)生制:應(yīng)計制、應(yīng)收應(yīng)付制。

      收付實現(xiàn)制:現(xiàn)金制、現(xiàn)金收付制、實收實付制

      39、資產(chǎn):過去的交易或事項形成的、擁有或控制的、帶來經(jīng)濟利益的資源。負債:過去的交易或事項形成的、經(jīng)濟利益流出的現(xiàn)時義務(wù)。

      40、所有者權(quán)益來源:投入資本、直接計入所有者的利得和損失、留存收益。所有者權(quán)益內(nèi)容:實收資本、資本公積、盈余公積、未分配利潤(統(tǒng)稱為留存收益)

      41、計量屬性:歷史成本、重置成本(固定資產(chǎn)盤盈)、可變現(xiàn)凈值(存貨資產(chǎn)減值)、現(xiàn)值(未來)、公允價值(交易性金融資產(chǎn))

      42、取得的土地使用權(quán),應(yīng)作為企業(yè)無形資產(chǎn)入賬

      43、本期增加額在借方,本期減少額在貸方,期末一般無余額的賬戶有管理費用、所得稅費用即為損益類賬戶

      44、會計人員在年底結(jié)束后,必須跟賬簿一起裝訂成冊的有各種活頁賬簿、賬簿啟用和經(jīng)營人員一覽表

      45、實際工作中使用的賬戶就是“T”形賬戶

      46、對賬沒有帳表核對:帳實、帳證、帳帳

      47、持有期間投資方宣告交易性金融資產(chǎn)的現(xiàn)金股利時,投資方涉及到的會計科目有投資收益、應(yīng)收股利。被投資方為投資收益。

      48、利潤表中營業(yè)成本/收入=主營業(yè)務(wù)成本/收入+其他業(yè)務(wù)成本/收入

      49、結(jié)賬:根據(jù)權(quán)責(zé)發(fā)生制調(diào)整;結(jié)算出資產(chǎn)、負債、所有者權(quán)益本期發(fā)生額和余額、權(quán)益類科目轉(zhuǎn)入本年利潤。

      50、原始憑證的內(nèi)容沒有種類和經(jīng)濟業(yè)務(wù)的性質(zhì)

      51、會計科目設(shè)立原則:①合法性:符合國家會計制度②相關(guān)性:滿足對外報告、對內(nèi)管理的需求③實用:滿足單位要求符合自身需要

      52、原始憑證審核:合理性——符合企業(yè)經(jīng)營需要

      53、解除與職工勞務(wù)關(guān)系給予的補償也應(yīng)通過應(yīng)付職工薪酬核算

      54、單位合并后原單位仍然存續(xù)的,會計檔案任由其保管

      55、移交會計檔案,要拆封重新整理的,應(yīng)有財務(wù)會計部門、經(jīng)辦人、檔案機構(gòu)同時參與。

      56、財產(chǎn)清查:現(xiàn)金——庫存現(xiàn)金盤點表(可以調(diào)節(jié)賬面記錄的原始憑證)

      實物:盤存單、實存賬存對比表(可以調(diào)節(jié)賬面記錄的原始憑證)

      往來款項:往來款項清查報告

      57、存貨反映的科目有:發(fā)出商品、材料成本差異、委托加工物資、生產(chǎn)成本

      58、財產(chǎn)定期清查一般在期末進行

      59、所有者權(quán)益與企業(yè)特定的、具體的資產(chǎn)無直接關(guān)系,不與企業(yè)任何具體資產(chǎn)項目發(fā)生對應(yīng)關(guān)系

      60、雙倍余額遞減法:

      折舊率=年限÷2 X 100%

      第一年折舊率=原值X折舊率

      第二年=(原值-第一年)X折舊率

      以此類推,到最后兩年(剩余價值-預(yù)計殘值)÷2

      年數(shù)總和法

      折舊率=還可以用的年數(shù)/預(yù)計年數(shù)從1開始相加之和 X 100%

      如5年第一年折舊率=5/1+2+3+4+5=5/15

      第二年折舊率=4/1+2+3+4+5=4/15

      年限平均法(直線法)每次折舊額相等

      61、會計從業(yè)資格考試由各省級組織實施

      62、會計科目按要素不同分為5大類、按詳細程度分為總分類科目和明細科目

      63、會計上的資本專指投入資本

      64、總分類賬平時不用每日解除余額,只需每月結(jié)出余額

      65、銀行存款日記賬和銀行對賬單核對屬于帳實核對66、生產(chǎn)車間固定資產(chǎn)維修費用應(yīng)計入管理費用

      67、外來原始憑證遺失的,蓋公章的同時,注明號碼、內(nèi)容、金額,經(jīng)辦單位會計機構(gòu)負責(zé)人、會計主管人員、單位負責(zé)人批準(zhǔn)

      68、不計入存貨成本的有入庫后的保管費用

      69、會計核算的基本前提也包括貨幣計量。

      70、債務(wù)要以資產(chǎn)或勞務(wù)償還

      71、會計監(jiān)督職責(zé)沒有時效性;原始憑證審核有真實性、及時性;記賬憑證審核真實性;會計科目設(shè)置沒有時效性和真實性

      72、累計憑證:多次記錄 匯總憑證:綜合填制

      73、按用途分為序時、分類、備查

      74、月末結(jié)賬劃線可以用紅色墨水

      75、會計賬簿基本內(nèi)容沒有封底

      76、舊賬送到總賬會計保管

      77、待處理財產(chǎn)損益未轉(zhuǎn)銷的借方余額表示尚待批準(zhǔn)處理的財產(chǎn)盤盈小于尚待批準(zhǔn)處理的財產(chǎn)盤虧和損毀

      78、財產(chǎn)清查中自然消耗記管理費用、自然災(zāi)害記營業(yè)外支出

      79、年終決算屬于定期全面清查;對外投資不用進行全面清查

      80、中期財務(wù)報表不包括所有者權(quán)益表,包括附注

      81、取得交易性金融資產(chǎn),公允價值上升應(yīng)借記交易性金融資產(chǎn)

      82、壞賬準(zhǔn)備—無法收回、收回可能性極小

      計提壞賬準(zhǔn)備借記資產(chǎn)減值損失、貸記壞賬準(zhǔn)備

      發(fā)生時借記壞賬準(zhǔn)備、貸記應(yīng)收賬款

      83、主營業(yè)務(wù)收入的銷售商品發(fā)生折舊時應(yīng)沖減主營業(yè)務(wù)收入

      84、盤盈的固定資產(chǎn)不計入營業(yè)外收入

      85、利潤分配賬戶年末借方余額表示累計尚未彌補的虧損

      86、對存貨采用實際成本法核算時,應(yīng)設(shè)置原材料、在途物資

      87、應(yīng)收賬款入賬價值包括銷項稅、代購貨方墊付的包裝費、運雜費

      88、短期借款利息可以預(yù)提,也可在實際支付時直接計入當(dāng)期損益。

      第四篇:心理學(xué)基礎(chǔ)筆記

      第一章 現(xiàn)代心理學(xué)的研究與發(fā)展

      1.心理學(xué)是研究人的行為與心理活動規(guī)律的科學(xué)。

      2.心理學(xué)研究的基本任務(wù)都是探索心理現(xiàn)象的事實、本質(zhì)、機制和規(guī)律。心理學(xué)研究的基本任務(wù)具體來說,包括描述和測量、解釋和說明、預(yù)測和控制三個方面。

      心理學(xué)的一個主要目的是給一個概念下操作定義,并且發(fā)展測量用的測驗和技術(shù)。效度指一個測量工具測量到了所需要測量的東西

      3.心理學(xué)的對象:個體行為與個體心理、個體心理與社會心理、個體意識與個體無意識。個體行為與個體心理:心理學(xué)研究人的行為規(guī)律,同時也要研究人的心理活動規(guī)律,因為人的行為與人的心理活動是密不可分的,對人的心理活動的探知必須開始于對人的外顯行為的觀察。

      個體心理與社會心理:人是作為個體而存在的,個人所具有的心理現(xiàn)象稱個體心理。

      社會心理不是個體心理的簡單相加,它是人們在共同生活環(huán)境中產(chǎn)生的,是社會群體內(nèi)個體心理的典型表現(xiàn)。

      個體意識與個體無意識

      意識是人類獨有的一種高級水平的心理活動,一般被定義為外部和內(nèi)部刺激的覺知。

      心理學(xué)的學(xué)科性質(zhì):學(xué)理學(xué)是一門中間科學(xué)

      心理學(xué)是一門既具有自然學(xué)科性質(zhì)又具有社會學(xué)科性質(zhì)的中間或交叉學(xué)科,也稱之為邊緣學(xué)科。

      4.心理學(xué)的流派:

      ① 1879年,德國著名心理學(xué)家馮特在德國萊比錫大學(xué)創(chuàng)建了世界上第一個心理學(xué)實驗

      室,使心理學(xué)從哲學(xué)中脫離出來,成為一門獨立的科學(xué),這標(biāo)志著科學(xué)心理學(xué)的誕生。他被稱為心理學(xué)之父。

      ② ⑴構(gòu)造主義 奠基人:馮特⑵機能主義 美國著名心理學(xué)家詹姆斯在20世紀初創(chuàng)

      立的⑶格式塔心理學(xué) 或叫完型心理學(xué),主要代表人物有韋特海默、苛勒和考夫卡⑷行為主義 美國 華生 后期代表人物:斯金納

      ⑸精神分析學(xué)派 奧地利 弗洛伊德

      ⑹認知心理學(xué) 美國 奈瑟西蒙

      認知是指人在認識事物的過程中所進行的各種心理活動,主要包括知覺、注意、記憶、言語、思維等。

      ⑺人本主義心理學(xué) 美國 馬斯洛、羅杰斯 20世紀50年代創(chuàng)立。因為人本主義心理學(xué)興起的年代較精神分析學(xué)說與行為主義晚,故而稱為現(xiàn)代心理學(xué)上的第三勢力

      5.心理學(xué)的未來發(fā)展:

      (一)適應(yīng)實踐需要,繼續(xù)分化

      (二)提高理論水平,高度整合(三)樹立大心理學(xué)觀

      (四)開展心理學(xué)本土化的研究

      (五)心理學(xué)研究取向的多元與整合現(xiàn)代心理學(xué)主要有五種研究取向,即神經(jīng)生物學(xué)、行為主義、精神分析、人本

      主義心理學(xué)和認知心理學(xué)。

      (六)心理教育的興起

      第二章 腦與心理

      1.人的心理實質(zhì):人腦對客觀現(xiàn)實的主觀的能動的反映。心理是神經(jīng)系統(tǒng)的功能,腦是心

      理活動的主要器官。

      2.周圍神經(jīng)系統(tǒng)包括脊神經(jīng)、腦神經(jīng)和植物神經(jīng)

      植物神經(jīng)系統(tǒng)分成交感神經(jīng)系統(tǒng)與副交感神經(jīng)系統(tǒng)兩部分。交感神經(jīng)在喚醒時活動,副交感神經(jīng)在安靜時活動。

      3.神經(jīng)系統(tǒng)包括周圍神經(jīng)系統(tǒng)和中樞神經(jīng)系統(tǒng)。周圍神經(jīng)系統(tǒng)包括脊神經(jīng)、腦神經(jīng)、植物

      性神經(jīng)(下丘腦是其主要管制中樞)三部分。中樞神經(jīng)系統(tǒng)由脊髓和腦(大腦、小腦、腦干、間腦和邊緣系統(tǒng))組成。

      4.大腦構(gòu)成:大腦分為左、右兩個半球,由大腦皮層及其覆蓋著的邊緣系統(tǒng)和基底神經(jīng)節(jié)

      組成。

      大腦約有140億個神經(jīng)元,其數(shù)量不存在個體差異神經(jīng)膠質(zhì)細胞:數(shù)量存在個體差異

      5.大腦分區(qū):左半球:運動性言語中樞—額葉的后下部-布洛卡區(qū);聽覺性言語中樞—顳

      葉的后下部-溫爾尼克區(qū)。右半球:軀體感覺中樞--頂葉;視覺中樞—枕葉。

      額葉(語言智慧運動中樞)頂葉(軀體感覺中樞)枕葉(視覺中樞)顳葉(聽覺中樞)

      6.腦與性別的差異:男女在成熟時間、腦結(jié)構(gòu)、智力方面、語言方面差異

      7.腦潛能開發(fā)的途徑:

      (一)保護和利用大腦:①鍛煉與大腦 ②睡眠與大腦 ③營養(yǎng)與大腦 ④煙酒與大腦 ⑤疾

      病與大腦 ⑥學(xué)習(xí)、記憶與大腦

      (二)腦潛能的開發(fā):⑴大腦潛能的發(fā)揮有無限的空間

      ⑵挖掘大腦潛力:①敞開心靈的大門 ②讓心靈沐浴愛的陽光 ③讓

      學(xué)習(xí)為大腦持續(xù)充電,使大腦不斷獲得有益的刺激 ④利用多種方法和手段開發(fā)大腦潛能

      第三章 行為動力

      人類行為一切動力都源起于需要

      1.需要是有機體感到某種缺乏而力求獲得滿足的心理傾向,它是有機體自身和外部生活條

      件的要求在頭腦中的反映。

      2.需要的特征:對象性、動力性、社會性

      3.需要的種類:生物需要和社會需要(按需要起源的角度)生物需要是指保持和維持有機

      體生命和延續(xù)種族的需要

      物質(zhì)需要與精神需要(按所指向的對象的角度)

      4.馬斯洛的需要層次論七個基本層次:前四個是(基本需要)后三個是(成長需要)

      生理需要:是指維持生存及延續(xù)種族的需要

      安全需要:是指希求受保護與免遭威脅從而獲得安全感的需要。

      歸屬與愛的需要:是指每個人都有被他人或群體接納、愛護、關(guān)注、鼓勵及其支持的需要。

      尊重的需要:是在生理、安全、歸屬和愛的需要得到基本滿足后產(chǎn)生的對自己社會價值追求的需要

      求知的需要:又稱認知和理解的需要,是指個人對自身和周圍世界的探索、理解及解決疑難問題的需要。

      審美的需要:是指對稱、秩序、完整結(jié)構(gòu),以及行為完美的需要

      自我實現(xiàn)的需要:是指個人渴望自己的潛能能夠得到充分的發(fā)揮,希望自己越來越來成為所希望的人物,完成與自己能力相對稱的一切活動。

      關(guān)系:1.出現(xiàn)的順序由低到高,只有當(dāng)較低一層次的需要得到基本滿足之后,高一層次的需要才會產(chǎn)生;

      2.各層次需要在全人口中所占比例由大到??;

      3.七層次可概括為兩種水平:基本需要、成長需要。

      5.動機是引起、維持個體活動并使活動朝某一目標(biāo)進行的內(nèi)在動力。

      動機產(chǎn)生的條件:它是在需要的基礎(chǔ)上產(chǎn)生的。

      6.誘因是指所有能引起個體動機的刺激或情境。正誘因:驅(qū)使個體去趨向接近目標(biāo)者負誘因:驅(qū)使個體逃離或回避目標(biāo)者

      誘因期待,也能使需要轉(zhuǎn)化為動機。期待是個體對所要達到目標(biāo)的主觀估計。動機是行為活動的內(nèi)在原因

      7.動機三個基本功能:激活功能、引導(dǎo)功能、維持和調(diào)整功能。

      8.動機沖突:雙趨動機沖突(兩個有同等的吸引力)、雙避動機沖突(同時面臨兩個具有

      威脅的的目標(biāo)都避開)、趨避動機沖突(對同一目標(biāo),同時產(chǎn)生的既好而趨之)

      動機沖突與目標(biāo)確立是同步進行的,目標(biāo)確立在動機沖突的最后,目標(biāo)確立是動機沖突的結(jié)果。

      9.動機與行為效果呈倒U型曲線關(guān)系

      10.動機理論(有5個方面理論):①強化動機理論--種類:

      外部強化和內(nèi)部(自我)強化

      直接強化、間接強化(替代強化)和自我強化。

      強化是指凡是能增加反應(yīng)概率的刺激或刺激情景均可稱為強化

      成就動機的概念是默瑞于20世紀30年代提出的“成就需要”的基礎(chǔ)上發(fā)展起來的 ②成就動機理論—麥克蘭德發(fā)現(xiàn),成就動機高的人,喜歡選擇難度較大,有一定風(fēng)險的開創(chuàng)性工作,喜歡對問題承擔(dān)自己的責(zé)任,能從完成任務(wù)中獲得滿足感;成就動機低的人,傾向于選擇風(fēng)險較小、獨立決策少的任務(wù)或職業(yè)。

      阿特金森提出成就動機模型

      阿特金森講個體的成就動機分為:力求成功的動機--力求成功者、避免失敗的動機—避免失敗者。成功概率在50%的任務(wù)是最能調(diào)動力求成功者的積極性。力求避免失敗者傾向于選擇大量非常容易或非常困難的任務(wù)。

      在教育活動中,要調(diào)動力求成功者的積極性,就應(yīng)當(dāng)提供新穎且有一定難度的任務(wù),安排競爭的情境,嚴格評定分數(shù)等方式來激起他們的學(xué)習(xí)動機。對于力求避免失敗者,要安排競爭少或競爭少或競爭性不強的環(huán)境

      對學(xué)生除了盡可能讓他們避免失敗,還應(yīng)立足于增加他們力求成功的成分,使他們不以避免失敗為滿足,而應(yīng)以獲取成功為快樂。

      ③期望理論

      ④歸因理論—韋納-三個維度:內(nèi)部歸因和外部歸因、穩(wěn)定性歸因和非穩(wěn)定性歸因、可控歸因和不可控歸因。六個因素:能力高低(內(nèi)在,穩(wěn)定,不可控)、努力程度、任務(wù)難易、運氣(機遇)好壞、身心狀態(tài)、外界環(huán)境等。

      歸因理論在實際應(yīng)用中的價值主要有以下三個方面

      1.了解心理與行為的因果關(guān)系2.根據(jù)行為者當(dāng)前的歸因傾向預(yù)測他以后的動機3.歸因訓(xùn)練有助于提高自我認識

      習(xí)得性無助感的概念最初由美國學(xué)者塞利格曼等人提出。習(xí)得性無助感產(chǎn)生后有三方面表現(xiàn):1.動機降低2.認知出現(xiàn)障礙3.情緒失調(diào)

      2自我效能感是指人對自己能否成功地進行某一成就行為的主觀判斷,它與自我能力感是同義語。

      在班杜拉看來,人的行為是受兩個因素影響或決定:1.行為的結(jié)果因素即強化

      2.行為的先行因素即期待

      ⑤自我效能感理論—影響因素主要有兩個:個體成敗的經(jīng)驗、個體的歸因方式。

      11.學(xué)習(xí)動機的激發(fā)(重點)(92):①設(shè)置合理目標(biāo)②有效利用反饋與評價③增加學(xué)習(xí)任務(wù)的趣味性④合理運用獎勵與懲罰⑤科學(xué)利用競爭與合作⑥向?qū)W生表達明確可行的期待⑦增加自我效能感⑧進行歸因訓(xùn)練。

      第四章 認知過程

      1.注意是心理活動對一定對象的指向和集中。指向性與集中性是注意的兩個特征

      2.注意分為無意注意(沒有預(yù)定目的,也無需作意志努力的)、有意注意(有預(yù)定目的,需要做一定的意志努力的)、有意后注意(有無預(yù)定目的,需不需要意志努力)

      3.注意特征:穩(wěn)定性、廣度、分配、轉(zhuǎn)移

      4.注意的機制:過濾器模型(是由英國心理學(xué)家布魯?shù)卤咎靥岢觯?、衰減模型(特瑞斯曼)

      5.感覺是人腦對直接作用于感覺器官的客觀事物的個別屬性的反應(yīng)。一切較高級、較復(fù)雜的心理現(xiàn)象都是在感覺的基礎(chǔ)上產(chǎn)生的。感覺的測量

      1.感受性是對刺激的感受能力。絕對感受性是感覺出最小刺激量的能力。絕對感覺閾限是剛剛能引起感覺的最小刺激量。絕對感受性與絕對感覺閾限數(shù)值上反比關(guān)系,即E=1/R

      1.差別感受性就是剛剛能察覺出同類刺激最小差別的感覺能力。差別感覺閾限指剛剛能感覺出的同個同類刺激的最小差別。

      差別感受性與差別感覺閾限反比關(guān)系。刺激增加量△I,原刺激量I,K=△I/I,K為常數(shù),韋伯常數(shù)。

      6.感覺的基本規(guī)律及其應(yīng)用:①后像—注意發(fā)光燈泡幾秒,再閉眼,就會感到一個同燈泡

      差不多的光源出現(xiàn)在黑暗背景(正后像);再將視線轉(zhuǎn)向白背景,感到明亮背景上有黑色斑點(負后像)。②感覺適應(yīng)—白天看完電影走到大街時外面明亮的陽光次的睜不開眼,過會就適應(yīng)了(明適應(yīng));從光線充足的大街進入電影院時,起初什么也看不清,過會就可以看清物體輪廓(暗適應(yīng))。③感覺的相互作用:(同一感覺器官)對比--灰色對象在紅色背景下,看起來帶有青綠色;融合-(不同感受器官)感覺掩蔽現(xiàn)象。聯(lián)覺是由一種感受器官受到刺激而產(chǎn)生一種特定感覺的同時,又產(chǎn)生另一種不同感覺現(xiàn)象。

      7.知覺是人腦對直接作用于感官的客觀事物的整體屬性的反映。

      8.知覺特性:知覺的整體性、知覺的選擇性、知覺的理解性、知覺的恒常性

      9.知覺類型(p125)

      10.記憶的三級加工模型:感覺記憶、短時記憶、長時記憶

      感覺記憶又叫瞬時記憶,外界信息首先經(jīng)過感覺器官進入感覺記憶,信息按照感覺輸入的原樣在這里登記下來,所以感覺記憶又叫感覺登記。視覺感覺記憶的作用時間約在0.5秒以內(nèi)。聲像記憶的時間可能保持較長時間達4秒左右

      短時記憶是指記憶信息保持的時間在一分鐘以內(nèi),一般約15~30秒。短時記憶的容量有限,大體上是7+-2個組塊

      短時記憶主要以聽覺代碼方式編碼,視覺代碼、語義代碼和AVL單元聽覺的,口語的、書面語言的代碼聯(lián)合起來稱為AVL單元,也是短時記憶的編碼方式。

      長時記憶是指存儲時間在一分鐘以上的記憶。長時記憶的方式是意義編碼

      11.遺忘是指經(jīng)歷過的事物不能重現(xiàn)和再認或者是錯誤地重現(xiàn)和再認的現(xiàn)象。遺忘規(guī)律:遺

      忘的進程先快后慢。

      12.影像遺忘的因素主要有:①遺忘進程受時間因素的制約。②識記材料很重要時,一般不

      容易遺忘。③識記材料的性質(zhì)對遺忘進程有影響。有意義材料比無意義材料遺忘的慢;形象材料比抽象材料遺忘的慢;熟練的動作技能遺忘的最慢。④識記材料的數(shù)量和學(xué)習(xí)程度對識記效果都有很大影響。⑤識記材料的系列位置效應(yīng)對識記也有重要的影響。(前攝抑制、倒攝抑制)

      13.增進記憶的方法:直觀形象法、圖表法、諧音記憶法、歸類比較法、聯(lián)想法、歌訣法。

      14.思維是對客觀事物間接的、概括的反映。人的思維過程有兩個特征:間接性、概括性

      15.思維的過程:①分析和綜合②比較③抽象和概括(抽象是概括的基礎(chǔ))④具體化(是重

      點)--具體化是將通過抽象概括而獲得的概念、原理、理論返回到實際中去,以加深、拓寬對各種事物的認識。(在教學(xué)中:1.引證具體事例來說明理論問題2.應(yīng)用一般原理來解決某個具體問題)

      16.(p133)思維的類型:根據(jù)物與思維的形態(tài)分:動作思維、形象思維、抽象思維

      根據(jù)思維是否具有或遵循明確的邏輯形式和邏輯規(guī)則分:形式邏輯思維、非形式邏輯思維

      根據(jù)思維過程的指向性不同分:集中思維、分散思維

      17.問題解決過程:①提出問題②分析問題③提出假設(shè)④檢驗假設(shè)

      18.影響解決問題的因素:①遷移的作用

      ②原型啟發(fā)

      ③定勢的作用(是重點)—定式是指一種心理準(zhǔn)備狀態(tài),它影響

      著解決問題時的傾向性。它有時有助于問題解決有時妨礙。

      ④情緒與動機

      19.問題解決策略:算法、啟發(fā)法則

      第五章 情緒

      1.情緒是人類對于各種認知對象的一種內(nèi)心感受或態(tài)度。

      2.我國心理學(xué)家黃希庭 情緒分為五類:情調(diào)-伴隨感覺而產(chǎn)生的情感、激情-一種持續(xù)時

      間斷、表現(xiàn)劇烈、失去自我控制力的情緒、心境-一種比較微弱、持久具有渲染性的情緒、應(yīng)激-出乎意料的緊張情況下所引起的情緒狀態(tài)、情操-人對具有一定文化價值的東西所懷有的復(fù)雜情感。

      3.情緒性是指一種未分化的、一般的情緒喚醒狀態(tài),也常常把它作為恐懼來看待。

      一般都認同情商,EQ的主要因素有五個部分:

      1自我意識 2自我激勵 3情緒失控 4人際溝通 5挫折承受能力

      4.健康情緒的必要條件:①正確的人生追求②寬廣的胸襟③理性地適應(yīng)生活④尋找身邊的歡樂

      5.不良情緒的控制(是重點)(p171)

      抑郁癥—是一種心理綜合癥。包括三方面心理障礙:①心境障礙②思維障礙③軀體功能障礙。抑郁癥不是單一的情緒狀態(tài)。主要是痛苦,其次是厭惡、輕蔑和憤怒。后三者結(jié)合構(gòu)成敵意。

      第六章 智力與創(chuàng)造力

      2.智力不僅是包含學(xué)習(xí)能力、問題解決能力和社會適應(yīng)能力的一種綜合能力,而且情緒在智力中起著非常重要的作用,情緒智力反應(yīng)了個體對情緒的有效運用和思考。

      3.智力的理論:①因素理論--二因素論:一般因素G和特殊因素S。群因素論:瑟斯頓 七

      種平等的基本心理能力:語詞理解V、語詞流暢W、計算N、空間直覺S、記憶M、知覺速度P、推理R。流體智力和晶體智力理論:卡特爾 隨年齡增長,15歲之前兩智力都快速發(fā)展,晶體智力達到最高點的時間比流體的晚,流體在40歲以前就開始下降,晶

      體在年老時還保持較高水平。②結(jié)構(gòu)理論:層次結(jié)構(gòu)理論-弗農(nóng)、智力三維結(jié)構(gòu)理論-吉爾福特③信息加工理論:多元智力理論-加德納 七種智力:語言智力、邏輯-數(shù)學(xué)智力、視覺-空間智力、音樂智力、身體-動覺智力、人際智力、自知智力。三元智力理論-滕博格 三部分控制的理論:成分智力、背景智力、經(jīng)驗智力。

      4.常用個體智力測驗:①斯坦福-比納量表 智商是智力年齡與識記年齡之比,也稱比率智

      商,IQ=MA/CA*100②韋克斯勒智力量表 離差智商=100+15Z,其中Z=(X-X)/S

      5.創(chuàng)造力-發(fā)散思維、集中思維。對發(fā)散思維的質(zhì)量從流暢性、變通性、獨特性三個方面

      衡量。

      6.培養(yǎng)創(chuàng)造力的途徑與方法:①創(chuàng)設(shè)有利于個體創(chuàng)造力發(fā)展的環(huán)境(社會文化、家庭、學(xué)

      校)②實施教育創(chuàng)新,開展創(chuàng)新教育。(改革評價機制、改革現(xiàn)有課程、重視健康人格的培養(yǎng)、培養(yǎng)非邏輯思維能力)③開發(fā)個體創(chuàng)造力的具體方法:智力激勵法(腦風(fēng)暴法或腦轟炸法)、信息交合法、聯(lián)想法、綜攝法

      第七章 人格

      1.人格是個人在各種交互作用過程中形成的內(nèi)在動力組織和相應(yīng)行為模式的統(tǒng)一體。

      2.人格的形成:

      一、遺傳的作用(①艾森克理論②氣質(zhì):外向性與神經(jīng)性在人身上形成四

      種典型組合:外向-穩(wěn)定、外向-不穩(wěn)定、內(nèi)向-穩(wěn)定、內(nèi)向-不穩(wěn)定,分別對應(yīng)四種古希臘體液假說:多血質(zhì)、膽汁質(zhì)、黏液質(zhì)、抑郁質(zhì)③遺傳對人格的影響:雙生子研究,說明,同卵雙生子的人格特點都比異卵雙生子的更為接近,進一步證實了遺傳對人格的形成作用。)

      二、環(huán)境的作用:產(chǎn)前環(huán)境、出生過程,家庭,學(xué)校,社會階層,社會文化

      3.人格測驗:自陳式測驗(234)

      第九章 學(xué)習(xí)與人生

      1.學(xué)習(xí)是指學(xué)習(xí)者因經(jīng)驗而引起的行為、能力和心理傾向的比較持久的變化。

      2.學(xué)習(xí)的分類:依據(jù)學(xué)習(xí)目標(biāo),布魯姆講起分為認知學(xué)習(xí)、情感學(xué)習(xí)和動作技能三大領(lǐng)域。

      3.行為主義的學(xué)習(xí)理論:①斯金納的操作性條件作用學(xué)習(xí)觀:研究不同強化在塑造和改變

      行為中的作用②班杜拉的社會學(xué)習(xí)觀:強調(diào)“觀察學(xué)習(xí)”和“替代性強化”,觀察是最基本的學(xué)習(xí)過程

      4.認知主義的學(xué)習(xí)觀:布魯納的認知發(fā)現(xiàn)學(xué)習(xí)觀:基本結(jié)構(gòu)就是某一學(xué)科領(lǐng)域的基本觀念,類似于我們平時所說的“基本概念、基本知識、基本原理”三基。

      5.遷移的種類:①根據(jù)影響效果,分正遷移、負遷移②根據(jù)影響方向,分順向遷移、逆向

      遷移③根據(jù)發(fā)生的水平,分橫向遷移、縱向遷移④根據(jù)遷移的內(nèi)容,分一般遷移、特殊遷移

      6.對遷移現(xiàn)象的解釋,早期的理論主要有形式訓(xùn)練說、相同要素說、概括說、關(guān)系說。

      7.促進遷移的教學(xué):①改善心智的功能②傳授基本知識③有效的指導(dǎo)④提高遷移的意識性

      ⑤合理安排教學(xué)內(nèi)容⑥設(shè)計情境性教學(xué)

      8.認知風(fēng)格是個體組織和加工信息時所習(xí)慣采用的不同方式。

      第十章 教學(xué)心理

      1.了解學(xué)習(xí)準(zhǔn)備:(310)

      2.選擇教學(xué)策略:提供先行組織者:先行組織者是指在上課前為學(xué)生提供有關(guān)本課學(xué)習(xí)內(nèi)

      容的從總體上組織起來的引導(dǎo)性材料。奧蘇伯爾

      3.說明性組織者:以概括性語言對要學(xué)習(xí)的新知識進行介紹的組織者。

      4.比較性組織者:對新舊知識進行類比的組織者。

      第五篇:心理學(xué)基礎(chǔ)筆記

      第一章 現(xiàn)代心理學(xué)的研究與發(fā)展

      1.心理學(xué)是研究人的行為與心理活動規(guī)律的科學(xué)。

      2.心理學(xué)研究的基本任務(wù)都是探索心理現(xiàn)象的事實、本質(zhì)、機制和規(guī)律。心理學(xué)研究的基本任務(wù)具體來說,包括描述和測量、解釋和說明、預(yù)測和控制三個方面。

      心理學(xué)的一個主要目的是給一個概念下操作定義,并且發(fā)展測量用的測驗和技術(shù)。效度指一個測量工具測量到了所需要測量的東西

      3.心理學(xué)的對象:個體行為與個體心理、個體心理與社會心理、個體意識與個體無意識。個體行為與個體心理:心理學(xué)研究人的行為規(guī)律,同時也要研究人的心理活動規(guī)律,因為人的行為與人的心理活動是密不可分的,對人的心理活動的探知必須開始于對人的外顯行為的觀察。

      個體心理與社會心理:人是作為個體而存在的,個人所具有的心理現(xiàn)象稱個體心理。

      社會心理不是個體心理的簡單相加,它是人們在共同生活環(huán)境中產(chǎn)生的,是社會群體內(nèi)個體心理的典型表現(xiàn)。

      個體意識與個體無意識

      意識是人類獨有的一種高級水平的心理活動,一般被定義為外部和內(nèi)部刺激的覺知。

      心理學(xué)的學(xué)科性質(zhì):學(xué)理學(xué)是一門中間科學(xué)

      心理學(xué)是一門既具有自然學(xué)科性質(zhì)又具有社會學(xué)科性質(zhì)的中間或交叉學(xué)科,也稱之為邊緣學(xué)科。

      4.心理學(xué)的流派:

      ① 1879年,德國著名心理學(xué)家馮特在德國萊比錫大學(xué)創(chuàng)建了世界上第一個心理學(xué)實驗

      室,使心理學(xué)從哲學(xué)中脫離出來,成為一門獨立的科學(xué),這標(biāo)志著科學(xué)心理學(xué)的誕生。他被稱為心理學(xué)之父。

      ② ⑴構(gòu)造主義 奠基人:馮特⑵機能主義 美國著名心理學(xué)家詹姆斯在20世紀初創(chuàng)

      立的⑶格式塔心理學(xué) 或叫完型心理學(xué),主要代表人物有韋特海默、苛勒和考夫卡⑷行為主義 美國 華生 后期代表人物:斯金納

      ⑸精神分析學(xué)派 奧地利 弗洛伊德

      ⑹認知心理學(xué) 美國 奈瑟西蒙

      認知是指人在認識事物的過程中所進行的各種心理活動,主要包括知覺、注意、記憶、言語、思維等。

      ⑺人本主義心理學(xué) 美國 馬斯洛、羅杰斯 20世紀50年代創(chuàng)立。因為人本主義心理學(xué)興起的年代較精神分析學(xué)說與行為主義晚,故而稱為現(xiàn)代心理學(xué)上的第三勢力

      5.心理學(xué)的未來發(fā)展:

      (一)適應(yīng)實踐需要,繼續(xù)分化

      (二)提高理論水平,高度整合(三)樹立大心理學(xué)觀

      (四)開展心理學(xué)本土化的研究

      (五)心理學(xué)研究取向的多元與整合現(xiàn)代心理學(xué)主要有五種研究取向,即神經(jīng)生物學(xué)、行為主義、精神分析、人本

      主義心理學(xué)和認知心理學(xué)。

      (六)心理教育的興起

      第二章 腦與心理

      1.人的心理實質(zhì):人腦對客觀現(xiàn)實的主觀的能動的反映。心理是神經(jīng)系統(tǒng)的功能,腦是心

      理活動的主要器官。

      2.腦潛能開發(fā)的途徑:

      (一)保護和利用大腦:①鍛煉與大腦 ②睡眠與大腦 ③營養(yǎng)與大腦 ④煙酒與大腦 ⑤疾

      病與大腦 ⑥學(xué)習(xí)、記憶與大腦

      (二)腦潛能的開發(fā):⑴大腦潛能的發(fā)揮有無限的空間

      ⑵挖掘大腦潛力:①敞開心靈的大門 ②讓心靈沐浴愛的陽光 ③讓

      學(xué)習(xí)為大腦持續(xù)充電,使大腦不斷獲得有益的刺激 ④利用多種方法和手段開發(fā)大腦潛能

      第三章 行為動力

      人類行為一切動力都源起于需要

      1.需要是有機體感到某種缺乏而力求獲得滿足的心理傾向,它是有機體自身和外部生活條

      件的要求在頭腦中的反映。

      2.需要的特征:對象性、動力性、社會性

      3.需要的種類:生物需要和社會需要(按需要起源的角度)生物需要是指保持和維持有機

      體生命和延續(xù)種族的需要

      物質(zhì)需要與精神需要(按所指向的對象的角度)

      4.馬斯洛的需要層次論七個基本層次:前四個是(基本需要)后三個是(成長需要)

      生理需要:是指維持生存及延續(xù)種族的需要

      安全需要:是指希求受保護與免遭威脅從而獲得安全感的需要。

      歸屬與愛的需要:是指每個人都有被他人或群體接納、愛護、關(guān)注、鼓勵及其支持的需要。

      尊重的需要:是在生理、安全、歸屬和愛的需要得到基本滿足后產(chǎn)生的對自己社會價值追求的需要

      求知的需要:又稱認知和理解的需要,是指個人對自身和周圍世界的探索、理解及解決疑難問題的需要。

      審美的需要:是指對稱、秩序、完整結(jié)構(gòu),以及行為完美的需要

      自我實現(xiàn)的需要:是指個人渴望自己的潛能能夠得到充分的發(fā)揮,希望自己越來越來成為所希望的人物,完成與自己能力相對稱的一切活動。

      關(guān)系:1.出現(xiàn)的順序由低到高,只有當(dāng)較低一層次的需要得到基本滿足之后,高一層次的需要才會產(chǎn)生;

      2.各層次需要在全人口中所占比例由大到小;

      3.七層次可概括為兩種水平:基本需要、成長需要。

      5.動機是引起、維持個體活動并使活動朝某一目標(biāo)進行的內(nèi)在動力。

      動機產(chǎn)生的條件:它是在需要的基礎(chǔ)上產(chǎn)生的。

      6.誘因是指所有能引起個體動機的刺激或情境。正誘因:驅(qū)使個體去趨向接近目標(biāo)者負誘因:驅(qū)使個體逃離或回避目標(biāo)者

      誘因期待,也能使需要轉(zhuǎn)化為動機。期待是個體對所要達到目標(biāo)的主觀估計。動機是行為活動的內(nèi)在原因

      7.動機三個基本功能:激活功能、引導(dǎo)功能、維持和調(diào)整功能。

      8.動機沖突:雙趨動機沖突(兩個有同等的吸引力)、雙避動機沖突(同時面臨兩個具有

      威脅的的目標(biāo)都避開)、趨避動機沖突(對同一目標(biāo),同時產(chǎn)生的既好而趨之)

      動機沖突與目標(biāo)確立是同步進行的,目標(biāo)確立在動機沖突的最后,目標(biāo)確立是動機沖突的結(jié)果。

      9.動機與行為效果呈倒U型曲線關(guān)系

      10.動機理論(有5個方面理論):①強化動機理論--種類:

      外部強化和內(nèi)部(自我)強化

      直接強化、間接強化(替代強化)和自我強化。

      強化是指凡是能增加反應(yīng)概率的刺激或刺激情景均可稱為強化

      成就動機的概念是默瑞于20世紀30年代提出的“成就需要”的基礎(chǔ)上發(fā)展起來的 ②成就動機理論—麥克蘭德發(fā)現(xiàn),成就動機高的人,喜歡選擇難度較大,有一定風(fēng)險的開創(chuàng)性工作,喜歡對問題承擔(dān)自己的責(zé)任,能從完成任務(wù)中獲得滿足感;成就動機低的人,傾向于選擇風(fēng)險較小、獨立決策少的任務(wù)或職業(yè)。

      阿特金森提出成就動機模型

      阿特金森講個體的成就動機分為:力求成功的動機--力求成功者、避免失敗的動機—避免失敗者。成功概率在50%的任務(wù)是最能調(diào)動力求成功者的積極性。力求避免失敗者傾向于選擇大量非常容易或非常困難的任務(wù)。

      在教育活動中,要調(diào)動力求成功者的積極性,就應(yīng)當(dāng)提供新穎且有一定難度的任務(wù),安排競爭的情境,嚴格評定分數(shù)等方式來激起他們的學(xué)習(xí)動機。對于力求避免失敗者,要安排競爭少或競爭少或競爭性不強的環(huán)境

      對學(xué)生除了盡可能讓他們避免失敗,還應(yīng)立足于增加他們力求成功的成分,使他們不以避免失敗為滿足,而應(yīng)以獲取成功為快樂。

      ③期望理論

      ④歸因理論—韋納-三個維度:內(nèi)部歸因和外部歸因、穩(wěn)定性歸因和非穩(wěn)定性歸因、可控歸因和不可控歸因。六個因素:能力高低(內(nèi)在,穩(wěn)定,不可控)、努力程度、任務(wù)難易、運氣(機遇)好壞、身心狀態(tài)、外界環(huán)境等。

      歸因理論在實際應(yīng)用中的價值主要有以下三個方面

      1.了解心理與行為的因果關(guān)系2.根據(jù)行為者當(dāng)前的歸因傾向預(yù)測他以后的動機3.歸因訓(xùn)練有助于提高自我認識

      習(xí)得性無助感的概念最初由美國學(xué)者塞利格曼等人提出。習(xí)得性無助感產(chǎn)生后有三方面表現(xiàn):1.動機降低2.認知出現(xiàn)障礙3.情緒失調(diào)

      2自我效能感是指人對自己能否成功地進行某一成就行為的主觀判斷,它與自我能力感是同義語。

      在班杜拉看來,人的行為是受兩個因素影響或決定:1.行為的結(jié)果因素即強化

      2.行為的先行因素即期待

      ⑤自我效能感理論—影響因素主要有兩個:個體成敗的經(jīng)驗、個體的歸因方式。

      11.學(xué)習(xí)動機的激發(fā)(重點)(92):①設(shè)置合理目標(biāo)②有效利用反饋與評價③增加學(xué)習(xí)任務(wù)的趣味性④合理運用獎勵與懲罰⑤科學(xué)利用競爭與合作⑥向?qū)W生表達明確可行的期待⑦增加自我效能感⑧進行歸因訓(xùn)練。

      第四章 認知過程

      1.注意是心理活動對一定對象的指向和集中。指向性與集中性是注意的兩個特征

      2.注意分為無意注意(沒有預(yù)定目的,也無需作意志努力的)、有意注意(有預(yù)定目的,需要做一定的意志努力的)、有意后注意(有無預(yù)定目的,需不需要意志努力)

      3.注意特征:穩(wěn)定性、廣度、分配、轉(zhuǎn)移

      4.注意的機制:過濾器模型(是由英國心理學(xué)家布魯?shù)卤咎靥岢觯⑺p模型(特瑞斯曼)

      5.感覺是人腦對直接作用于感覺器官的客觀事物的個別屬性的反應(yīng)。一切較高級、較復(fù)雜的心理現(xiàn)象都是在感覺的基礎(chǔ)上產(chǎn)生的。感覺的測量

      1.感受性是對刺激的感受能力。絕對感受性是感覺出最小刺激量的能力。絕對感覺閾限是剛剛能引起感覺的最小刺激量。絕對感受性與絕對感覺閾限數(shù)值上反比關(guān)系,即E=1/R

      1.差別感受性就是剛剛能察覺出同類刺激最小差別的感覺能力。差別感覺閾限指剛剛能感覺出的同個同類刺激的最小差別。

      差別感受性與差別感覺閾限反比關(guān)系。刺激增加量△I,原刺激量I,K=△I/I,K為常數(shù),韋伯常數(shù)。

      6.感覺的基本規(guī)律及其應(yīng)用:①后像—注意發(fā)光燈泡幾秒,再閉眼,就會感到一個同燈泡

      差不多的光源出現(xiàn)在黑暗背景(正后像);再將視線轉(zhuǎn)向白背景,感到明亮背景上有黑色斑點(負后像)。②感覺適應(yīng)—白天看完電影走到大街時外面明亮的陽光次的睜不開眼,過會就適應(yīng)了(明適應(yīng));從光線充足的大街進入電影院時,起初什么也看不清,過會就可以看清物體輪廓(暗適應(yīng))。③感覺的相互作用:(同一感覺器官)對比--灰色對象在紅色背景下,看起來帶有青綠色;融合-(不同感受器官)感覺掩蔽現(xiàn)象。聯(lián)覺是由一種感受器官受到刺激而產(chǎn)生一種特定感覺的同時,又產(chǎn)生另一種不同感覺現(xiàn)象。

      7.知覺是人腦對直接作用于感官的客觀事物的整體屬性的反映。

      8.知覺特性:知覺的整體性、知覺的選擇性、知覺的理解性、知覺的恒常性

      9.知覺類型(p125)

      10.記憶的三級加工模型:感覺記憶、短時記憶、長時記憶

      感覺記憶又叫瞬時記憶,外界信息首先經(jīng)過感覺器官進入感覺記憶,信息按照感覺輸入的原樣在這里登記下來,所以感覺記憶又叫感覺登記。視覺感覺記憶的作用時間約在0.5秒以內(nèi)。聲像記憶的時間可能保持較長時間達4秒左右

      短時記憶是指記憶信息保持的時間在一分鐘以內(nèi),一般約15~30秒。短時記憶的容量有限,大體上是7+-2個組塊

      短時記憶主要以聽覺代碼方式編碼,視覺代碼、語義代碼和AVL單元聽覺的,口語的、書面語言的代碼聯(lián)合起來稱為AVL單元,也是短時記憶的編碼方式。

      長時記憶是指存儲時間在一分鐘以上的記憶。長時記憶的方式是意義編碼

      11.遺忘是指經(jīng)歷過的事物不能重現(xiàn)和再認或者是錯誤地重現(xiàn)和再認的現(xiàn)象。遺忘規(guī)律:遺

      忘的進程先快后慢。

      12.影像遺忘的因素主要有:①遺忘進程受時間因素的制約。②識記材料很重要時,一般不

      容易遺忘。③識記材料的性質(zhì)對遺忘進程有影響。有意義材料比無意義材料遺忘的慢;形象材料比抽象材料遺忘的慢;熟練的動作技能遺忘的最慢。④識記材料的數(shù)量和學(xué)習(xí)程度對識記效果都有很大影響。⑤識記材料的系列位置效應(yīng)對識記也有重要的影響。(前攝抑制、倒攝抑制)

      13.增進記憶的方法:直觀形象法、圖表法、諧音記憶法、歸類比較法、聯(lián)想法、歌訣法。

      14.思維是對客觀事物間接的、概括的反映。人的思維過程有兩個特征:間接性、概括性

      15.思維的過程:①分析和綜合②比較③抽象和概括(抽象是概括的基礎(chǔ))④具體化(是重

      點)--具體化是將通過抽象概括而獲得的概念、原理、理論返回到實際中去,以加深、拓寬對各種事物的認識。(在教學(xué)中:1.引證具體事例來說明理論問題2.應(yīng)用一般原理來解決某個具體問題)

      16.(p133)思維的類型:根據(jù)物與思維的形態(tài)分:動作思維、形象思維、抽象思維

      根據(jù)思維是否具有或遵循明確的邏輯形式和邏輯規(guī)則分:形式邏輯思維、非形式邏輯思維

      根據(jù)思維過程的指向性不同分:集中思維、分散思維

      17.問題解決過程:①提出問題②分析問題③提出假設(shè)④檢驗假設(shè)

      18.影響解決問題的因素:①遷移的作用

      ②原型啟發(fā)

      ③定勢的作用(是重點)—定式是指一種心理準(zhǔn)備狀態(tài),它影響

      著解決問題時的傾向性。它有時有助于問題解決有時妨礙。

      ④情緒與動機

      19.問題解決策略:算法、啟發(fā)法則

      第五章 情緒

      1.情緒是人類對于各種認知對象的一種內(nèi)心感受或態(tài)度。

      2.我國心理學(xué)家黃希庭 情緒分為五類:情調(diào)-伴隨感覺而產(chǎn)生的情感、激情-一種持續(xù)時

      間斷、表現(xiàn)劇烈、失去自我控制力的情緒、心境-一種比較微弱、持久具有渲染性的情緒、應(yīng)激-出乎意料的緊張情況下所引起的情緒狀態(tài)、情操-人對具有一定文化價值的東西所懷有的復(fù)雜情感。

      3.情緒性是指一種未分化的、一般的情緒喚醒狀態(tài),也常常把它作為恐懼來看待。

      一般都認同情商,EQ的主要因素有五個部分:

      1自我意識 2自我激勵 3情緒失控 4人際溝通 5挫折承受能力

      4.健康情緒的必要條件:①正確的人生追求②寬廣的胸襟③理性地適應(yīng)生活④尋找身邊的歡樂

      5.不良情緒的控制(是重點)(p171)

      抑郁癥—是一種心理綜合癥。包括三方面心理障礙:①心境障礙②思維障礙③軀體功能障礙。抑郁癥不是單一的情緒狀態(tài)。主要是痛苦,其次是厭惡、輕蔑和憤怒。后三者結(jié)合構(gòu)成敵意。

      下載Linux_基礎(chǔ)經(jīng)典筆記總結(jié)word格式文檔
      下載Linux_基礎(chǔ)經(jīng)典筆記總結(jié).doc
      將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
      點此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進行舉報,并提供相關(guān)證據(jù),工作人員會在5個工作日內(nèi)聯(lián)系你,一經(jīng)查實,本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        會計基礎(chǔ)筆記

        會計基礎(chǔ)筆記 第一章 1. 會計的基本特征: A. 會計以貨幣為主要計量單位B.會計擁有一系列專門方法 C.會計具有核算和監(jiān)督的基本職能D.會計的本質(zhì)就是管理活動 2.會計以貨幣為......

        地質(zhì)學(xué)基礎(chǔ) 筆記

        《地質(zhì)學(xué)基礎(chǔ)》聽課筆記:01 章大港 地質(zhì)學(xué)基礎(chǔ) 緒 論 一 地質(zhì)學(xué)的研究對象和內(nèi)容: 1研究對象 -地殼地幔地核-地殼地幔的上部-巖石圈-物質(zhì)組成、形成、分布及演化規(guī)律,主要是......

        護理學(xué)基礎(chǔ)備課筆記

        第一章 基礎(chǔ)護理知識和技能 第一節(jié) 吸入藥治療護理 吸入藥治療是用霧化裝臵將藥液分散成較小霧滴,使其懸浮于氣體中,自鼻或口吸入以達到治療目的。 吸入的藥物除了對呼吸道......

        教育基礎(chǔ)筆記[精選5篇]

        1. 教育的基本要素:教育者(主體),受教育者(受教育者是教育實踐的對象,也是學(xué)習(xí)的主體),教育影響(教育媒介)。 2. 教育的功能 (1) 個體功能:促進個體社會化、個性化、個體謀生和相擁功能。......

        大學(xué)生創(chuàng)業(yè)基礎(chǔ)(筆記)

        大學(xué)生創(chuàng)業(yè)基礎(chǔ)C班 1、 創(chuàng)業(yè)、創(chuàng)業(yè)精神與人生發(fā)展 內(nèi)容: 創(chuàng)業(yè)與創(chuàng)業(yè)精神 創(chuàng)業(yè)的概念 知識經(jīng)濟發(fā)展與創(chuàng)業(yè) 創(chuàng)業(yè)與職業(yè)生涯的發(fā)展 創(chuàng)業(yè)與自我認識 1.1經(jīng)歷挫折與堅持:創(chuàng)業(yè)精神與......

        大學(xué)生創(chuàng)業(yè)基礎(chǔ) 筆記

        大學(xué)生創(chuàng)業(yè)基礎(chǔ)筆記 一.創(chuàng)業(yè)的概念 創(chuàng)業(yè)的第一個條件,就是要有:強烈的欲望 創(chuàng)業(yè)需要傾聽人們的不滿,要有不服輸?shù)男拍? 二.創(chuàng)業(yè)和創(chuàng)業(yè)精神的關(guān)系 誠信是市場經(jīng)濟對企業(yè)的基本要......

        電影攝影基礎(chǔ)課程筆記全總結(jié)

        電影攝影基礎(chǔ)課程筆記全總結(jié) 第一章 概論 一對電影攝影的認識 ?電影攝影的發(fā)展進程及在畫面造型中的地位 ?不同的電影有不同的影響標(biāo)簽 攝影指導(dǎo)(DOP) 實例《蠟像館》顏......

        2013年會計從業(yè)資格考試會計基礎(chǔ)重點筆記總結(jié)

        2013年會計從業(yè)資格考試會計基礎(chǔ)重點筆記總結(jié) 以下是為2013年會計從業(yè)資格考試考生準(zhǔn)備的會計基礎(chǔ)的重點總結(jié),喜歡做筆記的同學(xué)們可以參考一下。 1、營業(yè)外收入包括固定資產(chǎn)......