第一篇:Linux_基礎(chǔ)經(jīng)典筆記總結(jié)
.用戶(hù)可以通過(guò)authconfig來(lái)設(shè)定是否使用shadow文件及md5加密
shadow文件詳細(xì)
.shadow文件的每一行中的每一項(xiàng)具體來(lái)說(shuō):.登錄用戶(hù)名
.用戶(hù)密碼(一般經(jīng)md5加密)(密碼是*!表示賬號(hào)被鎖定不能被登錄).從1970年1月1日起到密碼上一次被更改的時(shí)間.密碼再過(guò)幾天可以被變更(0表示隨時(shí)可被變更).密碼再過(guò)幾天必須被變更(99999表示永不過(guò)期).密碼過(guò)期前幾天系統(tǒng)提醒用戶(hù)(默認(rèn)為一周).密碼過(guò)期后幾天賬號(hào)會(huì)被取消(:wq!強(qiáng)行保存退出).從1970年1月1日算起,多少天后賬號(hào)失效
組管理
.系統(tǒng)中組的信息,記錄在/etc/group中
.系統(tǒng)用戶(hù)可以直接修改/etc/group文件達(dá)到更改組數(shù)據(jù)的目的,也可以使用以下指令:
.groupadd:添加一個(gè)組 例如:groupadd book.groupdel:刪除一個(gè)已存在組 例如:groupdel book.groupmod:更改組的信息
.用戶(hù)可用newgrp指令改變當(dāng)前所再組
組文件(etc/group)(/etc/gshadow)
./etc/group中的每一行代表一個(gè)組,用 :隔開(kāi)不同項(xiàng).group_name:組名
.password:組密碼(一般不用)
.GID:組身份編號(hào)(0代表root群組,1-499系統(tǒng)群組,500上代表一般群組).user_list:組成員列表
例如:groupmod-n jack tom 更改群組名稱(chēng)
gpasswd jack 為群組設(shè)定密碼
gpasswd-a jack boobooke把jack用戶(hù)加入群組boobooke或vi /etc/group 有效群組:一個(gè)用戶(hù)同時(shí)屬于多個(gè)組(groups第一個(gè)輸出的群組就是有效群組)[更改有效群組:newgrp tom] 初始群組:一開(kāi)始默認(rèn)所屬的群組
{useradd-u 600 teacher為用戶(hù)特定指定UID useradd-g tom-G boobooke teacher為用戶(hù)指定初始群組并加入一個(gè)群組 useradd teacher-s /bin/csh讓用戶(hù)不使用bash useradd-M teacher不給用戶(hù)創(chuàng)建加目錄
useradd-m teacher創(chuàng)建用戶(hù)的同時(shí)強(qiáng)制創(chuàng)建加目錄 useradd teacher-d /teach1不讓用戶(hù)加目錄放到/home下 useradd-r chen創(chuàng)建系統(tǒng)用戶(hù)
groupadd-r groups創(chuàng)建系統(tǒng)群組}finger查看
硬件配置與管理
設(shè)備文件(為用戶(hù)和應(yīng)用程序提供操作應(yīng)用的接口,用戶(hù)只需要以操作普通文件的方式來(lái)控制相關(guān)硬件).Linux沿襲Unix的風(fēng)格,將所有設(shè)備認(rèn)成一個(gè)文件.設(shè)備文件分為兩種
.塊設(shè)備文件(b)通過(guò)緩沖區(qū)存放數(shù)據(jù)512-32K字節(jié)的中繼塊(硬盤(pán)、光驅(qū)).字符設(shè)備文件(c)一次只一個(gè)字節(jié),不需要緩沖區(qū)(串口、優(yōu)盤(pán)).設(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]:本地回訪(fǎng)設(shè)備(支持本地回環(huán)請(qǐng)求)6.ram[0-19]:內(nèi)存
常用的字符設(shè)備文件./dev/null:無(wú)限數(shù)據(jù)接收設(shè)備(黑洞功能)./dev/zero:無(wú)限零資源./dev/tty[0-31]:虛擬終端./dev/ttyS[0-9]:串口./dev/lp[0-3]:并口./dev/console:控制臺(tái)
./dev/fb[0-31]:framebuffer(顯卡數(shù)據(jù)傳輸)
常用的符號(hào)連接設(shè)備文件./dev/cdrom→/dev/hd[a-t],sd[a-z]./dev/modem→/dev/ttyS[0-9]./dev/pilot→/dev/ttyS[0-9]
設(shè)備文件的使用
.用戶(hù)可以通過(guò)操作設(shè)備文件來(lái)完成對(duì)設(shè)備的操作.echo hello > /dev/tty2
-在第二個(gè)tty終端上顯示一個(gè)'hello'.cp /dev/fd0 /dev/fd1
-將第一個(gè)軟驅(qū)中的軟盤(pán)拷入第二個(gè)軟驅(qū)中的軟盤(pán).dd if=/dev/hda of=/root/mdr bs=512 count=1
-備份第一個(gè)硬盤(pán)上的mbr為/root目錄下的mbr文件
dd.dd指令時(shí)一個(gè)功能強(qiáng)大的copy命令.支持在拷貝文件的過(guò)程中轉(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--備份磁盤(pán)扇區(qū)
mknod 1.系統(tǒng)用戶(hù)可以用mknod指令來(lái)建立所需的設(shè)備文件
/etc/sysconfig/hwconf:使用硬件列表
硬盤(pán)分區(qū)表/Standard Partition Table/SPT 講解:記錄每分區(qū)記錄
+號(hào)添加、-號(hào)去除
特殊屬性(A當(dāng)文件被修改是文件的更改時(shí)間不會(huì)被改變、a只能想文件作內(nèi)容追加,root用戶(hù)用、d做備份不會(huì)備份這文件、i文件永遠(yuǎn)不會(huì)改變包括增刪改、j系統(tǒng)會(huì)將文件本身信息記錄ext上日志里、S文件被更改同步寫(xiě)到文件系統(tǒng)里面)
例如:給文件設(shè)定特殊屬性
lsattr 文件名--查看特殊屬性
chattr +i install.log--添加特殊屬性
rm install.log--現(xiàn)在不能刪除這個(gè)文件
chattr-i install.log--去掉特殊屬性
ext3文件系統(tǒng)
1.ext3文件系統(tǒng)即一個(gè)添加了日志功能的ext2,可與ext2文件系統(tǒng)無(wú)縫兼容 2.ext2文件系統(tǒng)可以通過(guò)增加日志的方式簡(jiǎn)單地升級(jí)成為ext3文件系統(tǒng) 3.ext3文件系統(tǒng)支持三種日志模式
寫(xiě)回(只在fsck是發(fā)生)
ext2寫(xiě)數(shù)據(jù)的流程:寫(xiě)(data)---緩沖區(qū)(buffer)但是要等緩沖區(qū)寫(xiě)滿(mǎn)后才執(zhí)行下面---硬盤(pán)(disk)
ext3寫(xiě)數(shù)據(jù)的流程:寫(xiě)(data)---緩沖區(qū)(buffer)緩沖區(qū)寫(xiě)滿(mǎn)后---通知日志準(zhǔn)備寫(xiě)入文件---硬盤(pán)(disk)并且硬盤(pán)最后面一塊空間是日志存放空間---通知日志文件已經(jīng)寫(xiě)入磁盤(pán) 有無(wú)日志的差別:
ext2---ext3(相對(duì)之間的性能要好些)
檢查有
檢查日志(時(shí)間快)效位(時(shí)間慢)
其他常見(jiàn)的文件系統(tǒng).minix:古老的文件系統(tǒng)
.msdos/fat:microsoft早年的文件系統(tǒng).vfat:win95與win98采用的文件系統(tǒng).ntfs:win2000使用的文件系統(tǒng).iso9660:光盤(pán)使用的文件系統(tǒng)
.ReiserFS/JFS:仍然在完善的帶日志文件系統(tǒng) 查看Linux支持的文件系統(tǒng)
ls-l /lib/modules/'uname-r(系統(tǒng)核心版本號(hào))'/kernel/fs 查看當(dāng)前Linux啟用的文件系統(tǒng): cat /proc/filesystems
創(chuàng)建文件系統(tǒng)
.如果我們需要使用一個(gè)分區(qū)用于存儲(chǔ)文件,則我們要在這個(gè)分區(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é)點(diǎn)大小 mke2fs-i 1028 /dev/sda5(索引節(jié)點(diǎn)大小修改等同于修改索引節(jié)點(diǎn)數(shù))
【-N】指定創(chuàng)建索引節(jié)點(diǎn)數(shù) mke2fs-N 3000 /dev/sda5
【-m】設(shè)定系統(tǒng)保留空間 mke2fs-m 10 /dev/sda5(保留10%)
【-L】創(chuàng)建文件系統(tǒng)的同時(shí)設(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)
.為了使用一個(gè)文件系統(tǒng),往其中存讀文件,用戶(hù)需要先掛載該文件系統(tǒng).掛載文件系統(tǒng)的指令時(shí)mount.語(yǔ)法:
.mount-t 文件系統(tǒng)類(lèi)型[其他參數(shù)] 設(shè)備 掛載點(diǎn)
mount參數(shù)
1.-t 文件系統(tǒng)類(lèi)型:用于指定掛載文件系統(tǒng)的類(lèi)型,一般這個(gè)參數(shù)是必須的 2.-o 參數(shù):補(bǔ)充追加的參數(shù)
3.ext2文件系統(tǒng)默認(rèn)采用的參數(shù):rw(代表對(duì)文件系統(tǒng)有讀寫(xiě)的權(quán)限)、suid(代表允許使用suid)、dev(允許文件系統(tǒng)包括設(shè)備文件)、exec(允許文件系統(tǒng)里二進(jìn)制的運(yùn)行)、auto(允許自動(dòng)判斷文件系統(tǒng)共類(lèi)型)、nouser(只允許超級(jí)用戶(hù)掛載文件系統(tǒng))、async(進(jìn)行異步管理文件的改變)、user(允許一般用戶(hù)管理文件系統(tǒng))、ro(只讀)、loop(用于訪(fǎng)問(wèn)回環(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(掛載磁盤(pán)內(nèi)的鏡像文件)
/etc/fstab.配置文件系統(tǒng)掛載信息
.mount文件系統(tǒng)是若給出的參數(shù)不全,系統(tǒng)會(huì)從/etc/fstab中讀取參數(shù)補(bǔ)完.系統(tǒng)啟動(dòng)會(huì)參考/etc/fstab中的配置項(xiàng)自動(dòng)加載文件系統(tǒng)(vi /etc/fstab).也被fsck、dump、quotaon、swapon等程序使用
當(dāng)前掛載系統(tǒng)
.用戶(hù)可以通過(guò)直接鍵入mount后回車(chē)來(lái)檢查當(dāng)前掛載中的文件.用戶(hù)也可以通過(guò)查看/etc/mtab文件來(lái)查看當(dāng)前掛載中的文件系統(tǒng).cat /proc/mounts文件查看
卷標(biāo)
.由于設(shè)備文件名可能在硬盤(pán)結(jié)構(gòu)發(fā)生變化時(shí)更動(dòng),因此Red Hat Linux對(duì)ext2文件系統(tǒng)使用卷標(biāo)來(lái)掛載與卸載
.卷標(biāo)記錄在ext2/ext3文件系統(tǒng)的超級(jí)塊中
.用戶(hù)可以用e2label指令來(lái)查詢(xún)與更改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)一個(gè)文件系統(tǒng)使用完畢,用戶(hù)應(yīng)當(dāng)卸載該文件系統(tǒng) 2.umount指令用于卸載文件系統(tǒng) 3.語(yǔ)法:
umount [參數(shù)] 設(shè)備/掛載點(diǎn) 4.一個(gè)正在使用中的文件系統(tǒng)不能被卸載 例如:umount /dev/sda5
umount /opt(掛載目錄)
文件系統(tǒng)維護(hù)
1.fsck/filesystem check:用于檢查與修復(fù)文件系統(tǒng)
需要后臺(tái)的automount進(jìn)程
-autofs服務(wù)的開(kāi)閉由/etc/init.d/autofs腳本控制 2.主要應(yīng)用于軟驅(qū)與光驅(qū)等場(chǎng)合
3.如果該設(shè)備一段時(shí)間沒(méi)有被使用,autofs會(huì)自動(dòng)卸載 例如:設(shè)置自動(dòng)掛載
rpm-q autofs 安裝套件才能使用自動(dòng)掛載
配置文件auto.master(設(shè)定總的自動(dòng)掛載環(huán)境)/ auto.misc(設(shè)定掛載設(shè)備)
啟動(dòng)服務(wù):service autofs restart
Linux安裝選項(xiàng)/;來(lái)源---------圖形方式安裝:Linux或直接回車(chē) 字符方式安裝:linux text 檢測(cè)媒體:linux mediacheck 援救模式:linux rescue 跳過(guò)硬件檢測(cè):linux noprobe 系統(tǒng)不支持SCSI以便安裝SCSI驅(qū)動(dòng):linux dd 安裝大量linux:linux askmethod----------------.CD-ROM / DVD-ROM.FTP.NFS.HTTP.硬盤(pán)
安裝中的窗口切換
在安裝過(guò)程中,我們支持用Alt + Fn鍵來(lái)切換顯示窗口:
Alt + F1:安裝對(duì)話(huà)框
Alt + F2:一個(gè)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)
計(jì)劃任務(wù) linux的計(jì)劃任務(wù)
.linux系統(tǒng)支持一些能夠自動(dòng)執(zhí)行任務(wù)的服務(wù)我們稱(chēng)其為計(jì)劃任務(wù):.at命令:指定一個(gè)時(shí)間執(zhí)行一個(gè)任務(wù).cron機(jī)制:根據(jù)一個(gè)時(shí)間表自動(dòng)執(zhí)行任務(wù)
.anacron機(jī)制:在一個(gè)指定時(shí)間間隔錯(cuò)過(guò)后自動(dòng)執(zhí)行任務(wù)
at命令.at命令:安排一個(gè)任務(wù)在未來(lái)執(zhí)行
.at命令需要系統(tǒng)后臺(tái)有一個(gè)atd進(jìn)程(開(kāi)啟atd進(jìn)程服務(wù):/etc/init.d/atd restart).指令
.at:安排延時(shí)任務(wù).atq:查詢(xún)當(dāng)前的等待任務(wù).atrm:刪除等待任務(wù)
.batch:以一個(gè)低優(yōu)先級(jí)延時(shí)執(zhí)行任務(wù)
例如:chkconfig--level 2345 atd on(自動(dòng)啟動(dòng)進(jìn)程)讓系統(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)建計(jì)劃任務(wù)時(shí)是以完整路徑來(lái)執(zhí)行的絕對(duì)路徑)> Ctrl + d cd /var/spool/at(at 任務(wù)文件放置地)atq命令講解:查詢(xún)當(dāng)前正在等待被執(zhí)行的at任務(wù):atq 以郵件形式發(fā)送at信息:切換用戶(hù)--at now +1 min >echo “hi bbk”(沒(méi)有重定向)>Ctrl + d 以郵件形式發(fā)送創(chuàng)建任務(wù)信息 命令行輸入:mail 然后輸入 1 batch命令講解:考慮到系統(tǒng)負(fù)載時(shí)用batch batch >echo “hello” > /dev/tty >Ctrl + d atq(查看任務(wù))atrm 工作號(hào) at命令的使用控制.at命令的使用控制文件./etc/at.allow./etc/at.deny.基于用戶(hù)的使用控制 at命令的控制流程 >.用戶(hù)---有at.allow文件---用戶(hù)是否在at.allow文件中---(在)允許(反之不允許)>.用戶(hù)---無(wú)at.allow文件---有at.deny文件---用戶(hù)在at.deny文件中---拒絕(反之允許)來(lái)說(shuō) >.用戶(hù)---無(wú)at.allow文件---無(wú)at.deny文件---只有root用戶(hù)才能使用at命令
第二篇:java基礎(chǔ)總結(jié)(筆記)
一、基礎(chǔ)知識(shí):
1、JVM、JRE和JDK的區(qū)別:
JVM(Java Virtual Machine):java虛擬機(jī),用于保證java的跨平臺(tái)的特性。
java語(yǔ)言是跨平臺(tái),jvm不是跨平臺(tái)的。
JRE(Java Runtime Environment):java的運(yùn)行環(huán)境,包括jvm+java的核心類(lèi)庫(kù)。
JDK(Java Development Kit):java的開(kāi)發(fā)工具,包括jre+開(kāi)發(fā)工具
2、環(huán)境變量path和classpath的作用是什么?
(1)path是配置Windows可執(zhí)行文件的搜索路徑,即擴(kuò)展名為.exe的程序文件所在的目錄,用于指定DOS窗口命令的路徑。
(2)Classpath是配置class文件所在的目錄,用于指定類(lèi)搜索路徑,JVM就是通過(guò)它來(lái)尋找該類(lèi)的class類(lèi)文件的。
3、變量有什么用?為什么要定義變量?什么時(shí)候用?
答:變量的作用:用來(lái)存儲(chǔ)數(shù)據(jù)。
為什么要定義變量:用來(lái)不斷的存放同一類(lèi)型的常量,并可以重復(fù)使用
4、&和&&的區(qū)別? 答:(1)&&會(huì)出現(xiàn)短路,如果可以通過(guò)第一個(gè)表達(dá)式判斷出整個(gè)表達(dá)式的結(jié)果,則不繼續(xù)后面表達(dá)式的運(yùn)算;
只能操作boolean類(lèi)型數(shù)據(jù);
(2)&不會(huì)出現(xiàn)短路,將整個(gè)表達(dá)式都運(yùn)算。既可以操作boolean數(shù)據(jù)還可以操作數(shù)。
5、標(biāo)示符命名規(guī)則:
由數(shù)字(0-9),大小寫(xiě)英文字母,以及_和$組成。
不能以數(shù)字開(kāi)頭。
不能使用關(guān)鍵字來(lái)自定義命名。
6、數(shù)據(jù)類(lèi)型:
(1)基本數(shù)據(jù)類(lèi)型(4類(lèi)8種):
整數(shù)類(lèi)型:byte、short、int、long
浮點(diǎn)數(shù)類(lèi)型:float、double
字符類(lèi)型:char
布爾類(lèi)型:boolean(ture false)(2)引用數(shù)據(jù)類(lèi)型:
類(lèi)
接口
數(shù)組
7、類(lèi)型轉(zhuǎn)換
精度從高到低
double float long int short(char)byte
(1)自動(dòng)類(lèi)型轉(zhuǎn)換
將一個(gè)低精度---?高精度
(2)強(qiáng)制類(lèi)型轉(zhuǎn)換
將一個(gè)高精度---?低精度(精度會(huì)下降)
8、java語(yǔ)言的三種技術(shù)架構(gòu)
J2EE:企業(yè)版
是為開(kāi)發(fā)企業(yè)環(huán)境下的應(yīng)用程序提供的一套解決方案。
該技術(shù)體系中包含的技術(shù)如 Servlet、Jsp等,主要針對(duì)于Web應(yīng)用程序開(kāi)發(fā)。
J2SE:標(biāo)準(zhǔn)版 是為開(kāi)發(fā)普通桌面和商務(wù)應(yīng)用程序提供的解決方案。
該技術(shù)體系是其他兩者的基礎(chǔ),可以完成一些桌面應(yīng)用程序的開(kāi)發(fā)。
比如Java版的掃雷。
J2ME:小型版
是為開(kāi)發(fā)電子消費(fèi)產(chǎn)品和嵌入式設(shè)備提供的解決方案。
該技術(shù)體系主要應(yīng)用于小型電子消費(fèi)類(lèi)產(chǎn)品,如手機(jī)中的應(yīng)用程序等。
9、java的跨平臺(tái)性:
通過(guò)Java語(yǔ)言編寫(xiě)的應(yīng)用程序在不同的系統(tǒng)平臺(tái)上都可以運(yùn)行。
跨平臺(tái)的原因:
只要在需要運(yùn)行java應(yīng)用程序的操作系統(tǒng)上,先安裝一個(gè)Java虛擬機(jī)(JVM Java Virtual Machine)即可。
由JVM來(lái)負(fù)責(zé)Java程序在該系統(tǒng)中的運(yùn)行。
10、有符號(hào)數(shù)據(jù)的表示法(次重點(diǎn))原碼,反碼(原碼取反),補(bǔ)碼(反碼+1)。
11、函數(shù)
定義:函數(shù)就是定義在類(lèi)中的具有特定功能的一段獨(dú)立小程序。
特點(diǎn):
定義函數(shù)可以將功能代碼進(jìn)行封裝
便于對(duì)該功能進(jìn)行復(fù)用
函數(shù)只有被調(diào)用才會(huì)被執(zhí)行
函數(shù)的出現(xiàn)提高了代碼的復(fù)用性
對(duì)于函數(shù)沒(méi)有具體返回值的情況,返回值類(lèi)型用關(guān)鍵字void表示,那么該函數(shù)中的return語(yǔ)句如果在最后一行可以省略不寫(xiě)。
函數(shù)的應(yīng)用兩個(gè)明確:
明確要定義的功能最后的結(jié)果是什么?
明確在定義該功能的過(guò)程中,是否需要未知內(nèi)容參與運(yùn)算
12、重載:
概念:在同一個(gè)類(lèi)中,允許存在一個(gè)以上的同名函數(shù),只要它們的參數(shù)個(gè)數(shù)或者參數(shù)類(lèi)型不同即可。
特點(diǎn):與返回值類(lèi)型無(wú)關(guān),只看參數(shù)列表(參數(shù)類(lèi)型以及參數(shù)個(gè)數(shù))。好處:方便于閱讀,優(yōu)化了程序設(shè)計(jì)。
13、數(shù)組:
概念:同一種數(shù)據(jù)類(lèi)型的集合。
好處:可以自動(dòng)給數(shù)組中的元素從0開(kāi)始編號(hào),方便操作這些元素。
14、內(nèi)存結(jié)構(gòu):
棧內(nèi)存:用于存儲(chǔ)局部變量,當(dāng)數(shù)據(jù)使用完,所占空間會(huì)自動(dòng)釋放。
堆內(nèi)存:數(shù)組和對(duì)象,通過(guò)new建立的實(shí)例都存放在堆內(nèi)存中。
方法區(qū):靜態(tài)成員、構(gòu)造函數(shù)、常量池、線(xiàn)程池
本地方法區(qū):window系統(tǒng)占用
寄存器:
二、面向?qū)ο?/p>
1、面向?qū)ο笏枷耄?1)概述:面向?qū)ο笫窍鄬?duì)于面向過(guò)程而言的,面向過(guò)程強(qiáng)調(diào)的是功能,面向?qū)ο髲?qiáng)調(diào)的是將功能封裝進(jìn)對(duì)象,強(qiáng)調(diào)具備功能的對(duì)象;
(2)思想特點(diǎn):
A:是符合人們思考習(xí)慣的一種思想;
B:將復(fù)雜的事情簡(jiǎn)單化了;
C:將程序員從執(zhí)行者變成了指揮者;
比如我要達(dá)到某種結(jié)果,我就尋找能幫我達(dá)到該結(jié)果的功能的對(duì)象,如我要洗衣服我就買(mǎi)洗衣機(jī),至于怎么洗我不管。
(3)特征:
封裝:隱藏對(duì)象的屬性和實(shí)現(xiàn)細(xì)節(jié),僅對(duì)外提供公共訪(fǎng)問(wèn)方式
繼承: 多個(gè)類(lèi)中存在相同屬性和行為時(shí),將這些內(nèi)容抽取到單獨(dú)一個(gè)類(lèi)中,那么多個(gè)類(lèi)無(wú)需再定義
這些屬性和行為,只要繼承那個(gè)類(lèi)即可。
多態(tài): 一個(gè)對(duì)象在程序不同運(yùn)行時(shí)刻代表的多種狀態(tài),父類(lèi)或者接口的引用指向子類(lèi)對(duì)象
2、類(lèi)和對(duì)象:
類(lèi):對(duì)現(xiàn)實(shí)世界中某類(lèi)事物的描述,是抽象的,概念上的定義。
對(duì)象:事物具體存在的個(gè)體。3:成員變量和局部變量的區(qū)別(重點(diǎn))(1)作用域
成員變量:針對(duì)整個(gè)類(lèi)有效。
局部變量:只在某個(gè)范圍內(nèi)有效。(一般指的就是方法,語(yǔ)句體內(nèi))(2)存儲(chǔ)位置
成員變量:隨著對(duì)象的創(chuàng)建而存在,隨著對(duì)象的消失而消失,存儲(chǔ)在堆內(nèi)存中。
局部變量:在方法被調(diào)用,或者語(yǔ)句被執(zhí)行的時(shí)候存在,存儲(chǔ)在棧內(nèi)存中。
當(dāng)方法調(diào)用完,或者語(yǔ)句結(jié)束后,就自動(dòng)釋放。
(3)初始值
成員變量:有默認(rèn)初始值。
局部變量:沒(méi)有默認(rèn)初始值,使用前必須賦值。
4、匿名對(duì)象
(1)匿名對(duì)象就是沒(méi)有名字的對(duì)象。是對(duì)象的一種簡(jiǎn)寫(xiě)形式。
(2)應(yīng)用場(chǎng)景
A:只調(diào)用一次類(lèi)中的方法。
B:可以作為實(shí)際參數(shù)在方法傳遞中使用
5、封裝:
指隱藏對(duì)象的屬性和實(shí)現(xiàn)細(xì)節(jié),僅對(duì)外提供公共訪(fǎng)問(wèn)方式;比如電腦機(jī)箱、筆記本等
好處:
將變化隔離;
方便使用;
提高復(fù)用性;
提高安全性
6、關(guān)鍵字private:封裝在代碼中的體現(xiàn)
(1)私有的意思,權(quán)限修飾符
(2)用來(lái)修飾成員變量和成員函數(shù)
(3)用private修飾的成員只在本類(lèi)中有效
(4)私有是封裝的一種體現(xiàn)
7、構(gòu)造方法:
(1)特點(diǎn):
方法名與類(lèi)名相同
沒(méi)有返回類(lèi)型
沒(méi)有返回值
(2)作用:構(gòu)造函數(shù)是用于創(chuàng)建對(duì)象,并對(duì)其進(jìn)行初始化賦值,對(duì)象一建立就自動(dòng)調(diào)用相對(duì)應(yīng)的構(gòu)造函數(shù),(3)構(gòu)造方法的注意事項(xiàng):
A:如果一個(gè)自定義類(lèi)沒(méi)有構(gòu)造方法,系統(tǒng)會(huì)默認(rèn)給出一個(gè)無(wú)參構(gòu)造方法。
B:如果一個(gè)自定義類(lèi)提供了構(gòu)造方法,那么,系統(tǒng)將不再給出無(wú)參構(gòu)造方法。
這個(gè)時(shí)候,你可以不使用無(wú)參構(gòu)造方法。
如果你想使用,那么,就必須手動(dòng)給出無(wú)參構(gòu)造方法。
建議:一般情況下,我們的自定義類(lèi)都要手動(dòng)給出無(wú)參構(gòu)造方法。
(4)構(gòu)造方法和成員方法的區(qū)別
A:格式區(qū)別
構(gòu)造方法和類(lèi)名相同,并且沒(méi)有返回類(lèi)型,也沒(méi)有返回值。
普通成員方法可以任意起名,必須有返回類(lèi)型,可以沒(méi)有返回值。
B:作用區(qū)別
構(gòu)造方法用于創(chuàng)建對(duì)象,并進(jìn)行初始化值。
普通成員方法是用于完成特定功能的。
C:調(diào)用區(qū)別
構(gòu)造方法是在創(chuàng)建對(duì)象時(shí)被調(diào)用的,一個(gè)對(duì)象建立,只調(diào)用一次相應(yīng)構(gòu)造函數(shù)
普通成員方法是由創(chuàng)建好的對(duì)象調(diào)用,可以調(diào)用多次
8、構(gòu)造代碼塊:
(1)作用:給對(duì)象進(jìn)行初始化,對(duì)象一建立就執(zhí)行,而且優(yōu)先于構(gòu)造函數(shù)執(zhí)行
(2)構(gòu)造代碼塊和構(gòu)造函數(shù)的區(qū)別:
構(gòu)造代碼塊是給所有不同對(duì)象的共性進(jìn)行統(tǒng)一初始化
構(gòu)造函數(shù)是給對(duì)應(yīng)的對(duì)象進(jìn)行初始化
9、this關(guān)鍵字
(1)this關(guān)鍵字代表本類(lèi)對(duì)象的一個(gè)引用,誰(shuí)調(diào)用this所在的方法,this就代表誰(shuí)
(2)this的使用場(chǎng)景
A:用于區(qū)分同名成員變量和局部變量;
B:在定義函數(shù)時(shí),該函數(shù)內(nèi)部要用到調(diào)用該函數(shù)的對(duì)象時(shí),因?yàn)榇藭r(shí)對(duì)象還沒(méi)建立,故this代表此對(duì)象
B:構(gòu)造函數(shù)間調(diào)用
**這個(gè)時(shí)候,this(參數(shù))必須作為第一條語(yǔ)句存在。
10、Person p = new Person();在內(nèi)存中做了哪些事情。
(1)將Person.class文件加載進(jìn)內(nèi)存中。(2)如果p定義在主方法中,那么,就會(huì)在棧空間開(kāi)辟一個(gè)變量空間p。
(3)在堆內(nèi)存給對(duì)象分配空間。
(4)對(duì)對(duì)象中的成員進(jìn)行默認(rèn)初始化。
(5)對(duì)對(duì)象中的成員進(jìn)行顯示初始化。
(6)調(diào)用構(gòu)造代碼塊對(duì)對(duì)象進(jìn)行初始化。(如果沒(méi)有就不執(zhí)行)(7)調(diào)用構(gòu)造方法對(duì)對(duì)象進(jìn)行初始化。對(duì)象初始化完畢。
(8)將對(duì)象的內(nèi)存地址賦值給p變量,讓p變量指向該對(duì)象。
11、static關(guān)鍵字:
(1)靜態(tài)的意思,用來(lái)修飾成員變量和成員函數(shù)
(2)靜態(tài)的特點(diǎn):
隨著類(lèi)的加載而加載
優(yōu)先于對(duì)象存在 對(duì)所有對(duì)象共享
可以被類(lèi)名直接調(diào)用
(3)靜態(tài)的注意事項(xiàng)
A:靜態(tài)方法只能訪(fǎng)問(wèn)靜態(tài)成員
為什么:因?yàn)殪o態(tài)的內(nèi)容是隨著類(lèi)的加載而加載,它是先進(jìn)內(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方法的時(shí)候,沒(méi)有創(chuàng)建對(duì)象。
只能通過(guò)類(lèi)名調(diào)用。所以,main必須用static修飾。
void:由于main方法是被jvm調(diào)用,不需要返回值。用void修飾。
main:main是主要的意思,所以jvm采用了這個(gè)名字。是程序的入口。
String[]:字符串?dāng)?shù)組
args:數(shù)組名
在運(yùn)行的時(shí)候,通過(guò)java命令給args數(shù)組賦值。
格式:java MainTest hello world itcast(4)靜態(tài)變量和成員變量的區(qū)別
A:調(diào)用方式
靜態(tài)變量也稱(chēng)為類(lèi)變量,可以直接通過(guò)類(lèi)名調(diào)用。也可以通過(guò)對(duì)象名調(diào)用。
這個(gè)變量屬于類(lèi)。
成員變量也稱(chēng)為實(shí)例變量,只能通過(guò)對(duì)象名調(diào)用。這個(gè)變量屬于對(duì)象。
B:存儲(chǔ)位置
靜態(tài)變量存儲(chǔ)在方法區(qū)長(zhǎng)中的靜態(tài)區(qū)。
成員變量存儲(chǔ)在堆內(nèi)存。
C:生命周期
靜態(tài)變量隨著類(lèi)的加載而存在,隨著類(lèi)的消失而消失。生命周期長(zhǎng)。
成員變量隨著對(duì)象的創(chuàng)建而存在,隨著對(duì)象的消失而消失。
D:與對(duì)象的相關(guān)性
靜態(tài)變量是所有對(duì)象共享的數(shù)據(jù)。
成員變量是每個(gè)對(duì)象所特有的數(shù)據(jù)。
(5)靜態(tài)的優(yōu)點(diǎn)和弊端
優(yōu)點(diǎn):
對(duì)對(duì)象的共享數(shù)據(jù)進(jìn)行單獨(dú)空間的存儲(chǔ),節(jié)省內(nèi)存,沒(méi)有必要每個(gè)對(duì)象都存儲(chǔ)一份
可直接被類(lèi)名調(diào)用
弊端:
生命周期過(guò)長(zhǎng),隨著類(lèi)的消失而消失
訪(fǎng)問(wèn)出現(xiàn)權(quán)限,即靜態(tài)雖好但只能訪(fǎng)問(wèn)靜態(tài)
(6)什么使用使用靜態(tài)呢?
A:當(dāng)所有對(duì)象共享某個(gè)數(shù)據(jù)的時(shí)候,就把這個(gè)成員變量定義為靜態(tài)修飾的。
B:當(dāng)某個(gè)方法沒(méi)有訪(fǎng)問(wèn)該類(lèi)中的非靜態(tài)成員,就可以把這個(gè)方法定義為靜態(tài)修飾。
靜態(tài)的生命周期比較長(zhǎng),所以一般不推薦使用。
(7)靜態(tài)代碼塊
A:它只執(zhí)行一次,它比main還先執(zhí)行。
B:執(zhí)行順序
靜態(tài)代碼塊--構(gòu)造代碼塊--構(gòu)造方法
12、制作API(次重點(diǎn))API(全拼):Application Program Interface 應(yīng)用程序編程接口。
(1)類(lèi)中的內(nèi)容需要用文檔注釋。
(2)使用JDKbin目錄下的javadoc工具。
格式:javadoc-d 目錄-author-version ArrayTool.java
13、單例設(shè)計(jì)模式:
(1)設(shè)計(jì)模式:
解決某類(lèi)問(wèn)題行之有效的方法,是一種思想,是規(guī)律的總結(jié)
(2)用來(lái)保證某個(gè)類(lèi)在內(nèi)存中只有一個(gè)對(duì)象
(3)保證唯一性的思想及步驟
**為了避免其他程序建立該類(lèi)對(duì)象,先禁止其他程序建立該類(lèi)對(duì)象,即將構(gòu)造函數(shù)私有化
**為了其他程序訪(fǎng)問(wèn)到該類(lèi)對(duì)象,須在本類(lèi)中創(chuàng)建一個(gè)該類(lèi)私有對(duì)象
**為了方便其他程序訪(fǎng)問(wèn)到該類(lèi)對(duì)象,可對(duì)外提供一個(gè)公共訪(fǎng)問(wèn)方式
比如API中的Runtime類(lèi)就是單例設(shè)計(jì)模式。
(4)單例設(shè)計(jì)模式的兩種方式
A:餓漢式 當(dāng)類(lèi)加載的時(shí)候,就創(chuàng)建對(duì)象。
class Student
{
private Student(){}
private static final Student s = new Student();
public static Student getInstance()
{
return s;
}
}
B:懶漢式 當(dāng)使用的使用,才去創(chuàng)建對(duì)象。
class Student
{
private Student(){}
private static final Student s = null;
public static Student getInstance()
{
if(s==null)
{
//線(xiàn)程1就進(jìn)來(lái)了,線(xiàn)程2就進(jìn)來(lái)了。
s = new Student();
}
return s;
}
} 餓漢式和懶漢式的區(qū)別:
**
餓漢式是類(lèi)一加載進(jìn)內(nèi)存就創(chuàng)建好了對(duì)象;
懶漢式則是類(lèi)才加載進(jìn)內(nèi)存的時(shí)候,對(duì)象還沒(méi)有存在,只有調(diào)用了getInstance()方法時(shí),對(duì)象才開(kāi)始創(chuàng)建。
**
懶漢式是延遲加載,如果多個(gè)線(xiàn)程同時(shí)操作懶漢式時(shí)就有可能出現(xiàn)線(xiàn)程安全問(wèn)題,解決線(xiàn)程安全問(wèn)題
可以加同步來(lái)解決。但是加了同步之后,每一次都要比較鎖,效率就變慢了,所以可以加雙重判斷來(lái)提高程序效率。
注:開(kāi)發(fā)常用餓漢式,因?yàn)轲I漢式簡(jiǎn)單安全。懶漢式多線(xiàn)程的時(shí)候容易發(fā)生問(wèn)題
14、Math類(lèi)的使用(重點(diǎn))(1)數(shù)學(xué)操作類(lèi):該類(lèi)沒(méi)有構(gòu)造函數(shù),方法均為靜態(tài)的(2)掌握內(nèi)容
A:成員變量
**E:比任何其他值都更接近e(即自然對(duì)數(shù)的底數(shù))的double值。
**PI:比任何其他值都更接近pi(即圓的周長(zhǎng)與直徑之比)的double值。
B:成員方法
**static double abs(double a)
返回 double 值的絕對(duì)值。返回絕對(duì)值
**static double ceil(double a)
返回最小的(最接近負(fù)無(wú)窮大)double 值,該值大于等于參數(shù),并等于某個(gè)整數(shù)。
**static double floor(double a)
返回最大的(最接近正無(wú)窮大)double 值,該值小于等于參數(shù),并等于某個(gè)整數(shù)。
**max:返回兩個(gè)值中較大的那個(gè)
**min:返回兩個(gè)值中較小的那個(gè)
**static long round(double a)返回最接近參數(shù)的 long。
static int round(float a)返回最接近參數(shù)的 int。
**static double random()
返回帶正號(hào)的 double 值,該值大于等于 0.0 且小于 1.0。
**static double pow(double a, double b)
返回第一個(gè)參數(shù)的第二個(gè)參數(shù)次冪的值。
**static double sqrt(double a)
返回正確舍入的 double 值的正平方根。
15、Random類(lèi)的使用(重點(diǎn))(1)產(chǎn)生隨機(jī)數(shù)的類(lèi)
(2)掌握內(nèi)容
A:構(gòu)造方法
**Random()創(chuàng)建一個(gè)新的隨機(jī)數(shù)生成器。
**Random(long seed)使用單個(gè) long 種子創(chuàng)建一個(gè)新的隨機(jī)數(shù)生成器。
B:成員方法
**int nextInt()返回下一個(gè)偽隨機(jī)數(shù),它是此隨機(jī)數(shù)生成器的序列中均勻分布的 int 值。
**int nextInt(int n)返回一個(gè)偽隨機(jī)數(shù),它是取自此隨機(jī)數(shù)生成器序列的、在 0(包括)和指定值(不包括)之間均勻分布的 int 值。
16、Scanner類(lèi)的使用
(1)可以獲取從鍵盤(pán)的輸入數(shù)據(jù)
(2)掌握內(nèi)容
構(gòu)造方法:
Scanner(InputStream source)構(gòu)造一個(gè)新的 Scanner,它生成的值是從指定的輸入流掃描的。
如:Scanner sc = new Scanner(System.in);
方法摘要
sc.nextInt();獲取整型數(shù)據(jù)
sc.nextLine();獲取字符串?dāng)?shù)據(jù)
17、繼承(重點(diǎn))(1)把很多類(lèi)的相同特征和行為進(jìn)行抽取,用一個(gè)類(lèi)來(lái)描述。讓多個(gè)類(lèi)和這個(gè)類(lèi)產(chǎn)生一個(gè)關(guān)系。
這樣的話(huà),多個(gè)類(lèi)就可以省略很多代碼。這個(gè)關(guān)系就是繼承。java中用extends關(guān)鍵字表示。
(2)繼承的體系結(jié)構(gòu)
A:多個(gè)具體的對(duì)象,不斷的向上抽取共享的內(nèi)容,最終形成了一個(gè)體系。這個(gè)體系叫做繼承體系。
B:繼承體系的學(xué)習(xí)和使用原則
**學(xué)習(xí)頂層的內(nèi)容。因?yàn)樗钦麄€(gè)體系的共性?xún)?nèi)容。
**創(chuàng)建子類(lèi)使用。也就是使用底層的具體對(duì)象。
(3)繼承的特點(diǎn):
A:java中只能單繼承,沒(méi)有多繼承。
B:java可以有多重(層)繼承。
(4)繼承的好處:
繼承的出現(xiàn)提高了代碼的復(fù)用性。
繼承的出現(xiàn)讓類(lèi)與類(lèi)之間產(chǎn)生了關(guān)系,提供了多態(tài)的前提。
(5)子父類(lèi)中的成員關(guān)系
A:成員變量
在子類(lèi)方法中使用一個(gè)變量時(shí):
首先,在方法的局部變量中找這個(gè)變量,有則使用。
否則,在本類(lèi)中找成員變量,有則使用。
否則,在父類(lèi)中找成員變量,有則使用。
否則,報(bào)錯(cuò)。
B:成員方法
用子類(lèi)對(duì)象使用一個(gè)方法時(shí)。
首先,在子類(lèi)中找這個(gè)方法,有則使用。
否則,在父類(lèi)中找這個(gè)方法,有則使用。
否則,報(bào)錯(cuò)。
重寫(xiě)和重載的區(qū)別?
重載:在同一類(lèi)中。方法名相同,參數(shù)列表不同。重載可以改變返回類(lèi)型。
重寫(xiě):在不同類(lèi)中(子父類(lèi)中)。
方法聲明相同(返回類(lèi)型,方法名,參數(shù)列表均相同)。
重寫(xiě)需要注意:
**子類(lèi)方法的訪(fǎng)問(wèn)權(quán)限要大于等于父類(lèi)方法的訪(fǎng)問(wèn)權(quán)限。
**靜態(tài)只能重寫(xiě)靜態(tài)。但是這種情況一般不會(huì)出現(xiàn)。
構(gòu)造方法
**子類(lèi)的實(shí)例化過(guò)程
***子類(lèi)創(chuàng)建對(duì)象時(shí),會(huì)先去創(chuàng)建父類(lèi)的對(duì)象。
默認(rèn)是去調(diào)用父類(lèi)的無(wú)參構(gòu)造方法。
***子類(lèi)構(gòu)造方法中,第一行默認(rèn)是super()
***為什么子類(lèi)中第一行會(huì)默認(rèn)有super()
因?yàn)樗^承父類(lèi)的成員使用,使用前這些成員必須初始化,而他們是父類(lèi)的成員,所以,必須通過(guò)父類(lèi)進(jìn)行初始化。
所以,會(huì)先創(chuàng)建一個(gè)父類(lèi)的對(duì)象。
**當(dāng)父類(lèi)沒(méi)有無(wú)參構(gòu)造方法時(shí)
必須使用this或者super調(diào)用其他的構(gòu)造方法。
(6)this和super的區(qū)別
this:代表本類(lèi)對(duì)象的引用。
super:代表父類(lèi)的存儲(chǔ)空間。
18、final關(guān)鍵字(重點(diǎn))(1)最終的意思,可以用于修飾類(lèi),方法,變量。(2)final修飾的類(lèi)不能被繼承。
final修飾的方法不能被重寫(xiě)。
final修飾的變量是一個(gè)常量。只能被賦值一次。
內(nèi)部類(lèi)只能訪(fǎng)問(wèn)被final修飾的局部變量。
19、抽象類(lèi)(重點(diǎn))(1)多個(gè)類(lèi)有相同的方法聲明,但是方法體不一樣。這個(gè)時(shí)候,我們考慮把方法聲明進(jìn)行抽取。
讓子類(lèi)繼承后,自己去實(shí)現(xiàn)方法體。沒(méi)有方法體的方法,我們需要用抽象標(biāo)志下。
抽象的關(guān)鍵字是:abstract。
(2)抽象類(lèi):
該方法稱(chēng)為抽象方法,包含抽象方法的類(lèi)就是抽象類(lèi)。
(3)抽象類(lèi)的特點(diǎn):
A:抽象類(lèi)和抽象方法都要用abstract進(jìn)行修飾
B:抽象類(lèi)不能被實(shí)例化
C:抽象類(lèi)中不一定有抽象方法,但是,有抽象方法的類(lèi)一定是抽象類(lèi)。
(4)抽象類(lèi)中數(shù)據(jù)的特點(diǎn)
A:成員變量
抽象類(lèi)中可以有變量,也可以有常量。
B:成員方法
抽象類(lèi)中可以有抽象方法,也可以有非抽象方法。
C:構(gòu)造方法
抽象類(lèi)是一個(gè)類(lèi),所以,它有構(gòu)造方法。
雖然本身不能實(shí)例化。但是可以給子類(lèi)實(shí)例化使用。
(5)抽象類(lèi)中的問(wèn)題
A:抽象類(lèi)中是否有構(gòu)造方法?能不能被實(shí)例化?如果不能,為什么有構(gòu)造方法?
抽象類(lèi)有構(gòu)造方法。
抽象類(lèi)不能被實(shí)例化。
抽象類(lèi)中的構(gòu)造方法供子類(lèi)實(shí)例化調(diào)用。
B:抽象關(guān)鍵字abstract不可以和哪些關(guān)鍵字共存?
**private:
私有內(nèi)容子類(lèi)繼承不到,所以,不能重寫(xiě)。
但是abstract修飾的方法,要求被重寫(xiě)。兩者沖突。
**final
final修飾的方法不能被重寫(xiě)。
而abstract修飾的方法,要求被重寫(xiě)。兩者沖突。
**static
假如一個(gè)抽象方法能通過(guò)static修飾,那么這個(gè)方法,就可以直接通過(guò)類(lèi)名調(diào)用。
而抽象方法是沒(méi)有方法體的,這樣的調(diào)用無(wú)意義。所以,不能用static修飾。
C:抽象類(lèi)中可不可以沒(méi)有抽象方法?如果可以,這樣的類(lèi)有什么用嗎?
抽象類(lèi)可以沒(méi)有抽象方法。
抽象類(lèi)中沒(méi)有抽象方法的作用,只是為了不讓別的類(lèi)建立該抽象類(lèi)對(duì)象。這個(gè)在awt中有體現(xiàn)。20、接口interface(1)當(dāng)一個(gè)類(lèi)中的方法都是抽象的時(shí)候,java提供了另一種表示方式,叫接口。
用interface關(guān)鍵字表示。類(lèi)與接口關(guān)系用implements表示。
(2)接口的成員特點(diǎn)
A:成員變量
是常量,默認(rèn)修飾 public static final
B:成員方法
都是抽象的,默認(rèn)修飾 public abstract
(3)關(guān)系
A:類(lèi)與類(lèi)的關(guān)系
是繼承關(guān)系。類(lèi)與類(lèi)只能單繼承,可以多重繼承。
B:類(lèi)和接口的關(guān)系
是實(shí)現(xiàn)關(guān)系。類(lèi)可以多實(shí)現(xiàn)接口。
類(lèi)在繼承一個(gè)類(lèi)的同時(shí),可以實(shí)現(xiàn)多個(gè)接口。
C:接口和接口的關(guān)系
是繼承關(guān)系。接口可以多繼承接口。
(4)接口的特點(diǎn)
A:是對(duì)外暴露的規(guī)則
B:是功能的擴(kuò)展
C:接口的出現(xiàn)降低耦合性。
耦合(類(lèi)與類(lèi)之間的關(guān)系)
內(nèi)聚(類(lèi)完成功能的能力)
編程規(guī)范:低耦合,高內(nèi)聚。
D:接口可以多實(shí)現(xiàn)。如:CPU和主板、筆記本的USB插口、插座
(5)接口和抽象類(lèi)的區(qū)別
A:抽象類(lèi)只能被單繼承
接口可以多實(shí)現(xiàn),接口的出現(xiàn)避免了多繼承的局限性。
B:抽象類(lèi)中的數(shù)據(jù)特點(diǎn):
成員變量:可以是變量,也可以是常量
成員方法:可以是抽象方法,也可以是非抽象方法
構(gòu)造方法:有構(gòu)造方法
接口中的數(shù)據(jù)特點(diǎn):
成員變量:是常量。默認(rèn)修飾 public static final
成員方法:都是抽象方法。都有默認(rèn)修飾 public abstract
構(gòu)造方法:沒(méi)有構(gòu)造方法
C:抽象類(lèi)中定義的是繼承體系中的共性功能。
接口中定義的是繼承體系中的擴(kuò)展功能。
D:抽象類(lèi)被繼承是“is a”關(guān)系:xx是yy的一種
接口被實(shí)現(xiàn)是“l(fā)ike a”關(guān)系:xx像yy的一種
21、多態(tài):
(1)同一個(gè)對(duì)象,在程序不同時(shí)刻的多種運(yùn)行狀態(tài)。舉例:動(dòng)物,狗是狗,狗是動(dòng)物。水(氣態(tài),液態(tài),固態(tài))(2)多態(tài)前提
A:存在著繼承或者實(shí)現(xiàn)關(guān)系
B:有方法的重寫(xiě)
C:父類(lèi)(接口)引用指向子類(lèi)(實(shí)現(xiàn))對(duì)象
(3)多態(tài)的好處和弊端:
好處:多態(tài)的存在提高了程序的擴(kuò)展性和后期可維護(hù)性
弊端:雖然可以預(yù)先使用,但是只能訪(fǎng)問(wèn)父類(lèi)中已有的功能,運(yùn)行的是后期子類(lèi)的功能內(nèi)容。
不能預(yù)先使用子類(lèi)中定義的特有功能。
(4)多態(tài)中對(duì)象調(diào)用成員的特點(diǎn)
Fu f = new Zi();
A:成員變量
編譯看左邊,運(yùn)行看左邊
B:成員方法
編譯看左邊,運(yùn)行看右邊
C:靜態(tài)方法
編譯看左邊,運(yùn)行看左邊
(5)多態(tài)的思想
指揮同一批對(duì)象做事情。舉例:帶兵打仗,下課等。
22、instanceof關(guān)鍵字
A:用于判斷某個(gè)對(duì)象是否是某種類(lèi)型。
B:格式
對(duì)象名 instanceof 子類(lèi)(實(shí)現(xiàn))名
23、Object類(lèi):
(1)是所有類(lèi)的根類(lèi),超類(lèi)。
java中提供的類(lèi)以及我們自定義的類(lèi)都直接或者間接的繼承自O(shè)bject類(lèi)。
(2)Object類(lèi)中的方法
A:void finalize()
當(dāng)垃圾回收器確定不存在對(duì)該對(duì)象的更多引用時(shí),由對(duì)象的垃圾回收器調(diào)用此方法。
B:Class getClass()
獲取對(duì)象的字節(jié)碼文件的描述類(lèi),后面再講反射的時(shí)候還會(huì)在說(shuō)這個(gè)類(lèi)。
String name = s.getClass().getName();
C:int hashCode()
獲取對(duì)象的哈希值。其實(shí)就是對(duì)象的內(nèi)存地址值十進(jìn)制表示
D:String toString()
返回對(duì)象的字符串表示。
表示格式:
getClass().getName()+“@”+Integer.toHexString(hashCode());
一般我們輸出對(duì)象名的時(shí)候,其實(shí)底層調(diào)用的就是該對(duì)象的toString()方法。
這種返回沒(méi)有意義,所以,我們會(huì)重寫(xiě)這個(gè)方法,顯示類(lèi)的成員變量信息。
E:boolean equals(Object obj)
用于比較兩個(gè)對(duì)象的地址值是否相同。
我們獲取對(duì)象后,比較它的地址值意義不大。所以也會(huì)對(duì)這個(gè)方法進(jìn)行重寫(xiě)。
重寫(xiě)要完成什么功能,是根據(jù)需求定的。(3)==和equals的用法:
A:==怎么用?
**可以用于比較基本數(shù)據(jù)類(lèi)型,比較的就是基本數(shù)據(jù)類(lèi)型的值是否相等。
**可以用于比較引用數(shù)據(jù)類(lèi)型,比較的是對(duì)象的地址值是否相等。
B:equals怎么用?
equals只能用于比較引用數(shù)據(jù)類(lèi)型的。
**Object提供的equals是用于比較對(duì)象地址值是否相同。
**自定義類(lèi)中,如果重寫(xiě)了equals方法,那么就是按照你自己的需求來(lái)比較的。
24、package關(guān)鍵字
(1)包:其實(shí)就是文件夾。用于區(qū)分不同包下相同的類(lèi)名。
(2)好處:
A:對(duì)類(lèi)文件進(jìn)行分類(lèi)管理。
B:給類(lèi)提供了多層命名空間
aaa.Demo
bbb.Demo
C:寫(xiě)在程序文件的第一行。
D:包也是一種封裝形式。
25、import關(guān)鍵字
(1)導(dǎo)入包的關(guān)鍵字
(2)格式:
import 包名;(3)注意:
A:一個(gè)程序文件中只有一個(gè)package,可以有多個(gè)import。
B:用來(lái)導(dǎo)包中的類(lèi),不導(dǎo)入包中的包。
C:通常寫(xiě)import mypack.Demo,明確自己使用的類(lèi)。
(4)關(guān)鍵字的順序
類(lèi),包,導(dǎo)包這些關(guān)鍵的順序。
包--> 到包--> 類(lèi)
26、不同修飾符可以修飾哪些內(nèi)容
本類(lèi)中 同一個(gè)包中 不同包中的子類(lèi)中 不同包中
private OK
默認(rèn)
OK Ok
protected OK Ok
OK public OK Ok
OK
Ok
類(lèi) 構(gòu)造方法 成員變量 成員方法
private
OK OK OK 默認(rèn)
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ù)類(lèi)型+成員變量名
public static final int NUM = 10;
成員方法:
權(quán)限修飾符+static/final/abstract+返回類(lèi)型+方法名
27、內(nèi)部類(lèi)(次重點(diǎn))(1)把一個(gè)類(lèi)定義在某個(gè)類(lèi)中的,這個(gè)類(lèi)就被稱(chēng)為內(nèi)部類(lèi),內(nèi)置類(lèi),嵌套類(lèi)。
(2)訪(fǎng)問(wèn)特點(diǎn):
A:內(nèi)部類(lèi)可以直接訪(fǎng)問(wèn)外部類(lèi)中的成員,因?yàn)閮?nèi)部類(lèi)持有外部類(lèi)的引用,格式為:外部類(lèi)名.this
B:外部類(lèi)要想訪(fǎng)問(wèn)內(nèi)部類(lèi)的成員,必須創(chuàng)建對(duì)象訪(fǎng)問(wèn)。
(3)內(nèi)部類(lèi)的訪(fǎng)問(wèn)格式:
A:當(dāng)內(nèi)部類(lèi)定義在外部類(lèi)的成員位置,而且非私有,則可以在其他外部類(lèi)中直接建立內(nèi)部類(lèi)對(duì)象
格式:外部類(lèi)名.內(nèi)部類(lèi)名
變量名 = new 外部類(lèi)對(duì)象.內(nèi)部類(lèi)對(duì)象
如:Outer.Inner in = new Outer().new Inner()
B:當(dāng)內(nèi)部類(lèi)在外部類(lèi)成員位置,且被static修飾時(shí)
**外部其他類(lèi)可直接訪(fǎng)問(wèn)靜態(tài)內(nèi)部類(lèi)的非靜態(tài)成員
格式:new 外部類(lèi)名.內(nèi)部類(lèi)名().內(nèi)部類(lèi)成員
如:new Outer.Inner().function();
**外部其他類(lèi)可直接訪(fǎng)問(wèn)靜態(tài)內(nèi)部類(lèi)的靜態(tài)成員
格式:new 外部類(lèi)名.內(nèi)部類(lèi)名.內(nèi)部類(lèi)成員
如:new Outer.Inner.function();(4)什么使用時(shí)候內(nèi)部類(lèi)呢?
假如有A類(lèi)和B類(lèi),A類(lèi)想直接訪(fǎng)問(wèn)B類(lèi)的成員,B類(lèi)訪(fǎng)問(wèn)A類(lèi)成員的時(shí)候,需要?jiǎng)?chuàng)建A類(lèi)對(duì)象進(jìn)行訪(fǎng)問(wèn),這個(gè)時(shí)候,就可以把A類(lèi)定義為B類(lèi)的內(nèi)部類(lèi)。
(5)內(nèi)部類(lèi)的位置
A:成員位置
**可以被private修飾(Body,Heart)
**可以被static修飾。(它訪(fǎng)問(wèn)的外部類(lèi)的成員必須是靜態(tài)的)
B:局部位置
**可以直接訪(fǎng)問(wèn)外部類(lèi)中的成員,因?yàn)檫€持有外部類(lèi)的持用
也可以直接訪(fǎng)問(wèn)局部成員,但是局部成員要用final修飾。
注意:局部?jī)?nèi)部類(lèi)不能用private和static修飾
(6)通過(guò)class文件我們就可以區(qū)分是否帶有內(nèi)部類(lèi),以及內(nèi)部類(lèi)的位置
Outer$Inner:成員內(nèi)部類(lèi)
Outer$1Inner:局部?jī)?nèi)部類(lèi)
28、匿名內(nèi)部類(lèi)(局部?jī)?nèi)部類(lèi)的簡(jiǎn)寫(xiě))(重點(diǎn))
(1)前提:繼承一個(gè)類(lèi)或者實(shí)現(xiàn)一個(gè)接口
(注意不要弄混匿名內(nèi)部類(lèi)的前提和多態(tài)的前提)
(2)格式:
new 父類(lèi)名或者接口名()
{
重寫(xiě)父類(lèi)方法或者實(shí)現(xiàn)接口中的方法。
也可以自定義其他方法。
};
(3)什么時(shí)候定義匿名內(nèi)部類(lèi)?
匿名內(nèi)部類(lèi)只是為了簡(jiǎn)化書(shū)寫(xiě),匿名內(nèi)部類(lèi)有局限,通常定義匿名內(nèi)部類(lèi)時(shí),該類(lèi)方法不超過(guò)3個(gè)
(4)匿名內(nèi)部類(lèi)的好處和弊端:
好處:簡(jiǎn)化代碼書(shū)寫(xiě)
弊端:
不能直接調(diào)用自己的特有方法
不能執(zhí)行強(qiáng)轉(zhuǎn)換動(dòng)作
如果該類(lèi)里面方法較多,不允許使用匿名內(nèi)部類(lèi)
29、模板設(shè)計(jì)模式:
在定義功能時(shí),功能的一部分是確定的,有一部分是不確定的,而且確定的部分在使用不確定的部分,可將不確定的部分暴露出去,由該類(lèi)的子類(lèi)去完成。
如:求一段程序的運(yùn)行時(shí)間例子。30、異常
(1)程序運(yùn)行過(guò)程中的不正常現(xiàn)象就叫異常。
(2)導(dǎo)致程序運(yùn)行不正常的現(xiàn)象有很多,所以,就有很多的異常對(duì)象。
而這些異常對(duì)象存在著共性的內(nèi)容,所以,可以不斷的進(jìn)行抽取。最終形成了異常的體系結(jié)構(gòu)。
異常體系的根類(lèi)是:Throwable
Throwable:
|--Error:重大的問(wèn)題,我們處理不了。也不需要編寫(xiě)代碼處理。比如說(shuō)內(nèi)存溢出。
|--Exception:一般性的錯(cuò)誤,是需要我們編寫(xiě)代碼進(jìn)行處理的。
|--RuntimeException:運(yùn)行時(shí)異常,這個(gè)我們也不需要處理。
其實(shí)就是為了讓他在運(yùn)行時(shí)出問(wèn)題,然后我們回來(lái)修改代碼。
(3)異常的分類(lèi)
異常有兩種:
編譯時(shí)被檢測(cè)異常:
該異常在編譯時(shí),如果沒(méi)有處理(沒(méi)有拋也沒(méi)有try),編譯失敗。
該異常被標(biāo)識(shí),代表這可以被處理。
運(yùn)行時(shí)異常(編譯時(shí)不檢測(cè))
在編譯時(shí),不需要處理,編譯器不檢查。
該異常的發(fā)生,建議不處理,讓程序停止。需要對(duì)代碼進(jìn)行修正。
(4)異常體系的特點(diǎn):
異常體系中的所有類(lèi)及其子類(lèi)對(duì)象都具備可拋性。也就是說(shuō)可以被throw和throws關(guān)鍵字所操作。
(5)main方法是如何處理異常的。
A:在main里面編寫(xiě)代碼進(jìn)行處理
B:交給jvm自己進(jìn)行處理。采用的是jvm的默認(rèn)處理方式。
其實(shí)就是相當(dāng)于調(diào)用了異常對(duì)象的printStackTrace()方法。
(6)Throwable類(lèi)的學(xué)習(xí)
getMessage():獲取異常信息,返回字符串。
toString():獲取異常類(lèi)名和異常信息,返回字符串。
printStackTrace():獲取異常類(lèi)名和異常信息,以及異常出現(xiàn)在程序中的位置。返回值void。
(7)異常的處理·
A:try...catch...finally
基本格式:
try
{
可能出現(xiàn)異常的代碼
}
catch(異常對(duì)象)
{
異常處理代碼
}
finally
{
釋放資源
}
變形格式:
try...catch
try...catch...catch...try...catch...catch...finally
**多個(gè)異常同時(shí)被捕獲的時(shí)候,記住一個(gè)原則:
先逮小的,再逮大的。
**finally:永遠(yuǎn)被執(zhí)行,除非退出jvm。System.exit(0);
面試題2個(gè)。
***:final,finally,finalize區(qū)別。
final是最終的意思。它可以用于修飾類(lèi),成員變量,成員方法。
它修飾的類(lèi)不能被繼承,它修飾的變量時(shí)常量,它修飾的方法不能被重寫(xiě)。
finally:是異常處理里面的關(guān)鍵字。
它其中的代碼永遠(yuǎn)被執(zhí)行。特殊情況:在執(zhí)行它之前jvm退出。System.exit(0);
finalize:是Object類(lèi)中的一個(gè)方法。
它是于垃圾回收器調(diào)用的方式。
***:假如catch中有return語(yǔ)句,finally里中的代碼會(huì)執(zhí)行嗎?
是在return前,還是在return后呢?
會(huì),在return前執(zhí)行finally里面的代碼。
(8)Exception和RuntimeException的區(qū)別
A:Exception:一般性的錯(cuò)誤,是需要我們編寫(xiě)代碼進(jìn)行處理的。
B:RuntimeException:運(yùn)行時(shí)異常,這個(gè)我們也不需要處理。
其實(shí)就是為了讓他在運(yùn)行時(shí)出問(wèn)題,然后我們回來(lái)修改代碼。
在用throws拋出一個(gè)的時(shí)候,如果這個(gè)異常是屬于RuntimeException的體系的時(shí)候,我們?cè)谡{(diào)用的地方可以不用處理。(RuntimeException和RuntimeException的子類(lèi))
在用throws拋出一個(gè)的時(shí)候,如果這個(gè)異常是屬于Exception的體系的時(shí)候,我們?cè)谡{(diào)用的地方必須進(jìn)行處理或者繼續(xù)拋出。
(9)自定義異常
定義類(lèi)繼承Exception或者RuntimeException
1,為了讓該自定義類(lèi)具備可拋性。
2,讓該類(lèi)具備操作異常的共性方法。
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的時(shí)候可以沒(méi)有throw。
有throw的時(shí)候,如果throw拋的異常是Exception體系,那么必須有throws在方法上聲明。
B:throws用于方法的聲明上,其后跟的是異常類(lèi)名,后面可以跟多個(gè)異常類(lèi),之間用逗號(hào)隔開(kāi)
throw用于方法體中,其后跟的是一個(gè)異常對(duì)象名
三、多線(xiàn)程:
1、進(jìn)程和線(xiàn)程:
進(jìn)程:正在進(jìn)行的程序。每一個(gè)進(jìn)程執(zhí)行都有一個(gè)執(zhí)行順序,該順序是一個(gè)執(zhí)行路徑,或者叫一個(gè)控制單元。
線(xiàn)程:進(jìn)程內(nèi)部的一條執(zhí)行路徑或者一個(gè)控制單元。
兩者的區(qū)別:
一個(gè)進(jìn)程至少有一個(gè)線(xiàn)程
進(jìn)程在執(zhí)行過(guò)程中擁有獨(dú)立的內(nèi)存單元,而多個(gè)線(xiàn)程共享內(nèi)存;
2、jvm多線(xiàn)程的啟動(dòng)是多線(xiàn)程嗎?
java的虛擬機(jī)jvm啟動(dòng)的是單線(xiàn)程,就有發(fā)生內(nèi)存泄露的可能,而我們使用java程序沒(méi)出現(xiàn)這樣的問(wèn)題,也就是jvm啟動(dòng)至少有兩個(gè)線(xiàn)程,一個(gè)執(zhí)行java程序,一個(gè)執(zhí)行垃圾回收。所以是多線(xiàn)程。
2、多線(xiàn)程的優(yōu)勢(shì):
解決了多部分同時(shí)運(yùn)行的問(wèn)題,提高效率
3、線(xiàn)程的弊端:
線(xiàn)程太多會(huì)導(dǎo)致效率的降低,因?yàn)榫€(xiàn)程的執(zhí)行依靠的是CPU的來(lái)回切換。
4、什么叫多線(xiàn)程:
一個(gè)進(jìn)程中有多個(gè)線(xiàn)程,稱(chēng)為多線(xiàn)程。
5、實(shí)現(xiàn)多線(xiàn)程的方法:
實(shí)現(xiàn)多線(xiàn)程可以通過(guò)繼承Thread類(lèi)和實(shí)現(xiàn)Runnable接口。
(1)繼承Thread
定義一個(gè)類(lèi)繼承Thread類(lèi)
復(fù)寫(xiě)Thread類(lèi)中的public void run()方法,將線(xiàn)程的任務(wù)代碼封裝到run方法中
直接創(chuàng)建Thread的子類(lèi)對(duì)象,創(chuàng)建線(xiàn)程
調(diào)用start()方法,開(kāi)啟線(xiàn)程(調(diào)用線(xiàn)程的任務(wù)run方法)
//另外可以通過(guò)Thread的getName()獲取線(xiàn)程的名稱(chēng)。
(2)實(shí)現(xiàn)Runnable接口;
定義一個(gè)類(lèi),實(shí)現(xiàn)Runnable接口;
覆蓋接口的public void run()的方法,將線(xiàn)程的任務(wù)代碼封裝到run方法中;
創(chuàng)建Runnable接口的子類(lèi)對(duì)象
將Runnabl接口的子類(lèi)對(duì)象作為參數(shù)傳遞給Thread類(lèi)的構(gòu)造函數(shù),創(chuàng)建Thread類(lèi)對(duì)象
(原因:線(xiàn)程的任務(wù)都封裝在Runnable接口子類(lèi)對(duì)象的run方法中。
所以要在線(xiàn)程對(duì)象創(chuàng)建時(shí)就必須明確要運(yùn)行的任務(wù))。
調(diào)用start()方法,啟動(dòng)線(xiàn)程。
兩種方法區(qū)別:
(1)實(shí)現(xiàn)Runnable接口避免了單繼承的局限性
(2)繼承Thread類(lèi)線(xiàn)程代碼存放在Thread子類(lèi)的run方法中
實(shí)現(xiàn)Runnable接口線(xiàn)程代碼存放在接口的子類(lèi)的run方法中;
在定義線(xiàn)程時(shí),建議使用實(shí)現(xiàn)Runnable接口,因?yàn)閹缀跛卸嗑€(xiàn)程都可以使用這種方式實(shí)現(xiàn)
6、創(chuàng)建線(xiàn)程是為什么要復(fù)寫(xiě)run方法?
Thread類(lèi)用于描述線(xiàn)程。Thread類(lèi)定義了一個(gè)功能,用于存儲(chǔ)線(xiàn)程要運(yùn)行的代碼,該存儲(chǔ)功能就是run方法。
7、start()和run方法有什么區(qū)別?
調(diào)用start方法方可啟動(dòng)線(xiàn)程,而run方法只是thread的一個(gè)普通方法,調(diào)用run方法不能實(shí)現(xiàn)多線(xiàn)程;
Start()方法:
start方法用來(lái)啟動(dòng)線(xiàn)程,實(shí)現(xiàn)了多線(xiàn)程運(yùn)行,這時(shí)無(wú)需等待run方法體代碼執(zhí)行完畢而直接繼續(xù)執(zhí)行下面的 代碼。通過(guò)調(diào)用Thread類(lèi)的start()方法來(lái)啟動(dòng)一個(gè)線(xiàn)程,這時(shí)此線(xiàn)程處于就緒(可運(yùn)行)狀態(tài),并沒(méi)有運(yùn)行,一旦得到cpu時(shí)間片(執(zhí)行權(quán)),就開(kāi)始執(zhí)行run()方法,這里方法run()稱(chēng)為線(xiàn)程體,它包含了要執(zhí)行的這個(gè)線(xiàn)程的內(nèi)容,Run方法運(yùn)行結(jié)束,此線(xiàn)程隨即終止。
Run()方法:
run()方法只是Thread類(lèi)的一個(gè)普通方法,如果直接調(diào)用Run方法,程序中依然只有主線(xiàn)程這一個(gè)線(xiàn)程,其程序執(zhí)行路徑還是只有一條,還是要等待run方法體執(zhí)行完畢后才可繼續(xù)執(zhí)行下面的代碼,這樣就沒(méi)有達(dá)到多線(xiàn)程的目的。
8、線(xiàn)程的幾種狀態(tài):
新建:new一個(gè)Thread對(duì)象或者其子類(lèi)對(duì)象就是創(chuàng)建一個(gè)線(xiàn)程,當(dāng)一個(gè)線(xiàn)程對(duì)象被創(chuàng)建,但是沒(méi)有開(kāi)啟,這個(gè)時(shí)候,只是對(duì)象線(xiàn)程對(duì)象開(kāi)辟了內(nèi)存空間和初始化數(shù)據(jù)。
就緒:新建的對(duì)象調(diào)用start方法,就開(kāi)啟了線(xiàn)程,線(xiàn)程就到了就緒狀態(tài)。
在這個(gè)狀態(tài)的線(xiàn)程對(duì)象,具有執(zhí)行資格,沒(méi)有執(zhí)行權(quán)。
運(yùn)行:當(dāng)線(xiàn)程對(duì)象獲取到了CPU的資源。
在這個(gè)狀態(tài)的線(xiàn)程對(duì)象,既有執(zhí)行資格,也有執(zhí)行權(quán)。
凍結(jié):運(yùn)行過(guò)程中的線(xiàn)程由于某些原因(比如wait,sleep),釋放了執(zhí)行資格和執(zhí)行權(quán)。
當(dāng)然,他們可以回到運(yùn)行狀態(tài)。只不過(guò),不是直接回到。
而是先回到就緒狀態(tài)。
死亡:當(dāng)線(xiàn)程對(duì)象調(diào)用的run方法結(jié)束,或者直接調(diào)用stop方法,就讓線(xiàn)程對(duì)象死亡,在內(nèi)存中變成了垃圾。
9、sleep()和wait()的區(qū)別:
(1)這兩個(gè)方法來(lái)自不同的類(lèi),sleep()來(lái)自Thread類(lèi),和wait()來(lái)自O(shè)bject類(lèi)。
(2)sleep是Thread的靜態(tài)類(lèi)方法,誰(shuí)調(diào)用的誰(shuí)去睡覺(jué),即使在a線(xiàn)程里調(diào)用了b的sleep方法,實(shí)際上還是a去睡覺(jué),要讓b線(xiàn)程睡覺(jué)要在b的代碼中調(diào)用sleep。而wait()是Object類(lèi)的非靜態(tài)方法
(3)sleep()釋放資源不釋放鎖,而wait()釋放資源釋放鎖;
(4)使用范圍:wait,notify和notifyAll只能在同步控制方法或者同步控制塊里面使用,而sleep可以在任何地方使用
10、多線(xiàn)程安全問(wèn)題:
(1)原因:當(dāng)程序的多條語(yǔ)句在操作線(xiàn)程共享數(shù)據(jù)時(shí)(如買(mǎi)票例子中的票就是共享資源),由于線(xiàn)程的隨機(jī)性導(dǎo)致
一個(gè)線(xiàn)程對(duì)多條語(yǔ)句,執(zhí)行了一部分還沒(méi)執(zhí)行完,另一個(gè)線(xiàn)程搶奪到cpu執(zhí)行權(quán)參與進(jìn)來(lái)執(zhí)行,此時(shí)就導(dǎo)致共享數(shù)據(jù)發(fā)生錯(cuò)誤。比如買(mǎi)票例子中打印重票和錯(cuò)票的情況。
(2)解決方法:對(duì)多條操作共享數(shù)據(jù)的語(yǔ)句進(jìn)行同步,一個(gè)線(xiàn)程在執(zhí)行過(guò)程中其他線(xiàn)程不可以參與進(jìn)來(lái)
11、Java中多線(xiàn)程同步是什么?
同步是用來(lái)解決多線(xiàn)程的安全問(wèn)題的,在多線(xiàn)程中,同步能控制對(duì)共享數(shù)據(jù)的訪(fǎng)問(wèn)。如果沒(méi)有同步,當(dāng)一個(gè)線(xiàn)程在 修改一個(gè)共享數(shù)據(jù)時(shí),而另外一個(gè)線(xiàn)程正在使用或者更新同一個(gè)共享數(shù)據(jù),這樣容易導(dǎo)致程序出現(xiàn)錯(cuò)誤的結(jié)果。
12、什么是鎖?鎖的作用是什么? 鎖就是對(duì)象
鎖的作用是保證線(xiàn)程同步,解決線(xiàn)程安全問(wèn)題。
持有鎖的線(xiàn)程可以在同步中執(zhí)行,沒(méi)有鎖的線(xiàn)程即使獲得cpu執(zhí)行權(quán),也進(jìn)不去。
13、同步的前提:(1)必須保證有兩個(gè)以上線(xiàn)程
(2)必須是多個(gè)線(xiàn)程使用同一個(gè)鎖,即多條語(yǔ)句在操作線(xiàn)程共享數(shù)據(jù)
(3)必須保證同步中只有一個(gè)線(xiàn)程在運(yùn)行
14、同步的好處和弊端
好處:同步解決了多線(xiàn)程的安全問(wèn)題
弊端:多線(xiàn)程都需要判斷鎖,比較消耗資源
15、同步的兩種表現(xiàn)形式:
(1)同步代碼塊:
可以指定需要獲取哪個(gè)對(duì)象的同步鎖,使用synchronized的代碼塊同樣需要鎖,但他的鎖可以是任意對(duì)象
考慮到安全問(wèn)題,一般還是使用同一個(gè)對(duì)象,相對(duì)來(lái)說(shuō)效率較高。
注意:
**雖然同步代碼快的鎖可以使任何對(duì)象,但是在進(jìn)行多線(xiàn)程通信使用同步代碼快時(shí),必須保證同步代碼快的鎖的對(duì)象和,否則會(huì)報(bào)錯(cuò)。
**同步函數(shù)的鎖是this,也要保證同步函數(shù)的鎖的對(duì)象和調(diào)用wait、notify和notifyAll的對(duì)象是
同一個(gè)對(duì)象,也就是都是this鎖代表的對(duì)象。
格式:
synchronized(對(duì)象)
{
需同步的代碼;
}(2)同步函數(shù)
同步方法是指進(jìn)入該方法時(shí)需要獲取this對(duì)象的同步鎖,在方法上使用synchronized關(guān)鍵字,使用this對(duì)象作為鎖,也就是使用了當(dāng)前對(duì)象,因?yàn)殒i住了方法,所以相對(duì)于代碼塊來(lái)說(shuō)效率相對(duì)較低。
注:靜態(tài)同步函數(shù)的鎖是該方法所在的類(lèi)的字節(jié)碼文件對(duì)象,即類(lèi)名.class文件
格式:
修飾詞 synchronized 返回值類(lèi)型 函數(shù)名(參數(shù)列表)
{
需同步的代碼;
}
在jdk1.5后,用lock鎖取代了synchronized,個(gè)人理解也就是對(duì)同步代碼塊做了修改,并沒(méi)有提供對(duì)同步方法的修改,主要還是效率問(wèn)題吧。
16、多線(xiàn)程的單例設(shè)計(jì)模式:保證某個(gè)類(lèi)中內(nèi)存中只有一個(gè)對(duì)象
(1)餓漢式:
class Single
{
private Single(){}//將構(gòu)造函數(shù)私有化,不讓別的類(lèi)建立該類(lèi)對(duì)象
private static final Single s=new Single();//自己建立一個(gè)對(duì)象
public static Single getInstance()//提供一個(gè)公共訪(fǎng)問(wèn)方式
{
return s;
}
}(2)懶漢式:
class Single
{
private Single(){}
private static Single s;
public static Single getInstance()
{
if(s==null)
s=new Single();
return s;
}
} 餓漢式和懶漢式的區(qū)別:
**
餓漢式是類(lèi)一加載進(jìn)內(nèi)存就創(chuàng)建好了對(duì)象;
懶漢式則是類(lèi)加載進(jìn)內(nèi)存的時(shí)候,對(duì)象還沒(méi)有存在,只有調(diào)用了getInstance()方法時(shí),對(duì)象才開(kāi)始創(chuàng)建。
**
懶漢式是延遲加載,如果多個(gè)線(xiàn)程同時(shí)操作懶漢式時(shí)就有可能出現(xiàn)線(xiàn)程安全問(wèn)題,解決線(xiàn)程安全問(wèn)題
可以加同步來(lái)解決。但是加了同步之后,每一次都要比較鎖,效率就變慢了,所以可以加雙重判斷來(lái)提高程序效率。
如將上述懶漢式的Instance函數(shù)改成同步:
public static Single getInstance()
{
if(s==null)
{
synchronized(Single.class)
{
if(s==null)
s=new Single();
}
}
return s;
}
17、死鎖
兩個(gè)線(xiàn)程對(duì)兩個(gè)同步對(duì)象具有循環(huán)依賴(lài)時(shí),就會(huì)發(fā)生死鎖。即同步嵌套同步,而鎖卻不同。
18、wait()、sleep()、notify()、notifyAll()wait():使一個(gè)線(xiàn)程處于等待狀態(tài),并且釋放所持有的對(duì)象的lock。
sleep():使一個(gè)正在運(yùn)行的線(xiàn)程處于睡眠狀態(tài),是一個(gè)靜態(tài)方法,調(diào)用此方法要捕捉InterruptedException異常。
notify():喚醒一個(gè)處于等待狀態(tài)的線(xiàn)程,注意的是在調(diào)用此方法的時(shí)候,并不能確切的喚醒某一個(gè)等待狀態(tài)的線(xiàn)程,而是由JVM確定喚醒哪個(gè)線(xiàn)程(一般是最先開(kāi)始等待的線(xiàn)程),而且不是按優(yōu)先級(jí)。
Allnotity():喚醒所有處入等待狀態(tài)的線(xiàn)程,注意并不是給所有喚醒線(xiàn)程一個(gè)對(duì)象的鎖,而是讓它們競(jìng)爭(zhēng)。
18、為什么wait()、notify()、notifyAll()這些用來(lái)操作線(xiàn)程的方法定義在Object類(lèi)中?
(1)這些方法只存在于同步中;
(2)使用這些方法時(shí)必須要指定所屬的鎖,即被哪個(gè)鎖調(diào)用這些方法;
(3)而鎖可以是任意對(duì)象,所以任意對(duì)象調(diào)用的方法就定義在Object中。
19、多線(xiàn)程間通訊:
多線(xiàn)程間通訊就是多個(gè)線(xiàn)程在操作同一資源,但是操作的動(dòng)作不同.(1)為什么要通信
多線(xiàn)程并發(fā)執(zhí)行的時(shí)候, 如果需要指定線(xiàn)程等待或者喚醒指定線(xiàn)程, 那么就需要通信.比如生產(chǎn)者消費(fèi)者的問(wèn)題,生產(chǎn)一個(gè)消費(fèi)一個(gè),生產(chǎn)的時(shí)候需要負(fù)責(zé)消費(fèi)的進(jìn)程等待,生產(chǎn)一個(gè)后完成后需要喚醒負(fù)責(zé)消費(fèi)的線(xiàn)程,同時(shí)讓自己處于等待,消費(fèi)的時(shí)候負(fù)責(zé)消費(fèi)的線(xiàn)程被喚醒,消費(fèi)完生產(chǎn)的產(chǎn)品后又將等待的生產(chǎn)線(xiàn)程喚醒,然后使自己線(xiàn)程處于等待。這樣來(lái)回通信,以達(dá)到生產(chǎn)一個(gè)消費(fèi)一個(gè)的目的。
(2)怎么通信
在同步代碼塊中, 使用鎖對(duì)象的wait()方法可以讓當(dāng)前線(xiàn)程等待, 直到有其他線(xiàn)程喚醒為止.使用鎖對(duì)象的notify()方法可以喚醒一個(gè)等待的線(xiàn)程,或者notifyAll喚醒所有等待的線(xiàn)程.多線(xiàn)程間通信用sleep很難實(shí)現(xiàn),睡眠時(shí)間很難把握。
20、Lock和Condition 實(shí)現(xiàn)提供比synchronized方法和語(yǔ)句可獲得的更廣泛的鎖的操作,可支持多個(gè)相關(guān)的Condition對(duì)象
Lock是個(gè)接口
鎖是控制多個(gè)線(xiàn)程對(duì)共享數(shù)據(jù)進(jìn)行訪(fǎng)問(wèn)的工具。
JDK1.5中提供了多線(xiàn)程升級(jí)的解決方案:
將同步synchonized替換成了顯示的Lock操作,將Object中的wait、notify、notifyAll替換成了Condition對(duì)象。
該對(duì)象可以L(fǎng)ock鎖進(jìn)行獲取
Lock的方法摘要:
void lock()獲取鎖。
Condition newCondition()返回綁定到此 Lock 實(shí)例的新 Condition 實(shí)例。
void unlock()釋放鎖。
Condition方法摘要:
void await()造成當(dāng)前線(xiàn)程在接到信號(hào)或被中斷之前一直處于等待狀態(tài)。
void signal()喚醒一個(gè)等待線(xiàn)程。
void signalAll()喚醒所有等待線(xiàn)程。
21、停止線(xiàn)程:
stop方法已經(jīng)過(guò)時(shí),如何停止線(xiàn)程?
停止線(xiàn)程的方法只有一種,就是run方法結(jié)束。如何讓run方法結(jié)束呢?
開(kāi)啟多線(xiàn)程運(yùn)行,運(yùn)行代碼通常是循環(huán)體,只要控制住循環(huán),就可以讓run方法結(jié)束,也就是結(jié)束線(xiàn)程。
特殊情況:當(dāng)線(xiàn)程屬于凍結(jié)狀態(tài),就不會(huì)讀取循環(huán)控制標(biāo)記,則線(xiàn)程就不會(huì)結(jié)束。
為解決該特殊情況,可引入Thread類(lèi)中的Interrupt方法結(jié)束線(xiàn)程的凍結(jié)狀態(tài);
當(dāng)沒(méi)有指定的方式讓凍結(jié)線(xiàn)程恢復(fù)到運(yùn)行狀態(tài)時(shí),需要對(duì)凍結(jié)進(jìn)行清除,強(qiáng)制讓線(xiàn)程恢復(fù)到運(yùn)行狀態(tài)
22、interrupt: void interrupt()中斷線(xiàn)程:
中斷狀態(tài)將被清除,它還將收到一個(gè) InterruptedException
22、守護(hù)線(xiàn)程(后臺(tái)線(xiàn)程)setDaemon(boolean on):將該線(xiàn)程標(biāo)記為守護(hù)線(xiàn)程或者用戶(hù)線(xiàn)程。
當(dāng)主線(xiàn)程結(jié)束,守護(hù)線(xiàn)程自動(dòng)結(jié)束,比如圣斗士星矢里面的守護(hù)雅典娜,在多線(xiàn)程里面主線(xiàn)程就是雅典娜,守護(hù)線(xiàn)程就是圣斗士,主線(xiàn)程結(jié)束了,守護(hù)線(xiàn)程則自動(dòng)結(jié)束。
當(dāng)正在運(yùn)行的線(xiàn)程都是守護(hù)線(xiàn)程時(shí),java虛擬機(jī)jvm退出;所以該方法必須在啟動(dòng)線(xiàn)程前調(diào)用;
守護(hù)線(xiàn)程的特點(diǎn):
守護(hù)線(xiàn)程開(kāi)啟后和前臺(tái)線(xiàn)程共同搶奪cpu的執(zhí)行權(quán),開(kāi)啟、運(yùn)行兩者都沒(méi)區(qū)別,但結(jié)束時(shí)有區(qū)別,當(dāng)所有前臺(tái)線(xiàn)程都結(jié)束后,守護(hù)線(xiàn)程會(huì)自動(dòng)結(jié)束。
23、多線(xiàn)程join方法:
void join()等待該線(xiàn)程終止。
void join(long millis)等待該線(xiàn)程終止的時(shí)間最長(zhǎng)為 millis 毫秒。
throws InterruptedException
特點(diǎn):當(dāng)A線(xiàn)程執(zhí)行到B線(xiàn)程的join方法時(shí),A就會(huì)等待B線(xiàn)程都執(zhí)行完,A才會(huì)執(zhí)行
作用: join可以用來(lái)臨時(shí)加入線(xiàn)程執(zhí)行;
24、多線(xiàn)程優(yōu)先級(jí):yield()方法
yield():暫停當(dāng)前正在執(zhí)行的線(xiàn)程對(duì)象,并執(zhí)行其他線(xiàn)程
setPriority(int newPriority):更改線(xiàn)程優(yōu)先級(jí)
int getPriority()返回線(xiàn)程的優(yōu)先級(jí)。
String toString()返回該線(xiàn)程的字符串表示形式,包括線(xiàn)程名稱(chēng)、優(yōu)先級(jí)和線(xiàn)程組
(1)MAX_PRIORITY:最高優(yōu)先級(jí)(10級(jí))(1)Min_PRIORITY:最低優(yōu)先級(jí)(1級(jí))(1)Morm_PRIORITY:默認(rèn)優(yōu)先級(jí)(5級(jí))
25、什么是ThreadLocal類(lèi),怎么使用它?
ThreadLocal類(lèi)提供了線(xiàn)程局部(thread-local)變量。是一個(gè)線(xiàn)程級(jí)別的局部變量,并非“本地線(xiàn)程”。
ThreadLocal 為每個(gè)使用該變量的線(xiàn)程,提供了一個(gè)獨(dú)立的變量副本,每個(gè)線(xiàn)程修改副本時(shí)不影響其它線(xiàn)程對(duì)象的副本
下面是線(xiàn)程局部變量(ThreadLocal variables)的關(guān)鍵點(diǎn):
一個(gè)線(xiàn)程局部變量(ThreadLocal variables)為每個(gè)線(xiàn)程方便地提供了一個(gè)單獨(dú)的變量。
ThreadLocal 實(shí)例通常作為靜態(tài)的私有的(private static)字段出現(xiàn)在一個(gè)類(lèi)中,這個(gè)類(lèi)用來(lái)關(guān)聯(lián)一個(gè)線(xiàn)程。
當(dāng)多個(gè)線(xiàn)程訪(fǎng)問(wèn) ThreadLocal 實(shí)例時(shí),每個(gè)線(xiàn)程維護(hù) ThreadLocal 提供的獨(dú)立的變量副本。
常用的使用可在 DAO 模式中見(jiàn)到,當(dāng) DAO 類(lèi)作為一個(gè)單例類(lèi)時(shí),數(shù)據(jù)庫(kù)鏈接(connection)被每一個(gè)線(xiàn)程獨(dú)立的維護(hù),互不影響。(基于線(xiàn)程的單例)
26、什么時(shí)候拋出InvalidMonitorStateException異常?為什么?
調(diào)用 wait()/notify()/notifyAll()中的任何一個(gè)方法時(shí),如果當(dāng)前線(xiàn)程沒(méi)有獲得該對(duì)象的鎖,那么就會(huì)拋出 IllegalMonitorStateException 的異常
也就是說(shuō)程序在沒(méi)有執(zhí)行對(duì)象的任何同步塊或者同步方法時(shí),仍然嘗試調(diào)用 wait()/notify()/notifyAll()時(shí)。由于該異常是 RuntimeExcpetion 的子類(lèi),所以該異常不一定要捕獲(盡管你可以捕獲只要你愿意
作為 RuntimeException,此類(lèi)異常不會(huì)在 wait(),notify(),notifyAll()的方法簽名提及。
27、在靜態(tài)方法上使用同步時(shí)會(huì)發(fā)生什么事?
同步靜態(tài)方法時(shí)會(huì)獲取該類(lèi)的“Class”對(duì)象,所以當(dāng)一個(gè)線(xiàn)程進(jìn)入同步的靜態(tài)方法中時(shí),線(xiàn)程監(jiān)視器獲取類(lèi)本身的對(duì)象鎖,其它線(xiàn)程不能進(jìn)入這個(gè)類(lèi)的任何靜態(tài)同步方法。
它不像實(shí)例方法,因?yàn)槎鄠€(gè)線(xiàn)程可以同時(shí)訪(fǎng)問(wèn)不同實(shí)例同步實(shí)例方法。
28、當(dāng)一個(gè)同步方法已經(jīng)執(zhí)行,線(xiàn)程能夠調(diào)用對(duì)象上的非同步實(shí)例方法嗎?
可以,一個(gè)非同步方法總是可以被調(diào)用而不會(huì)有任何問(wèn)題。
實(shí)際上,Java 沒(méi)有為非同步方法做任何檢查,鎖對(duì)象僅僅在同步方法或者同步代碼塊中檢查。
如果一個(gè)方法沒(méi)有聲明為同步,即使你在使用共享數(shù)據(jù)Java照樣會(huì)調(diào)用,而不會(huì)做檢查是否安全,所以在這種情況下要特別小心。一個(gè)方法是否聲明為同步取決于臨界區(qū)訪(fǎng)問(wèn)(critial section access),如果方法不訪(fǎng)問(wèn)臨界區(qū)(共享資源或者數(shù)據(jù)結(jié)構(gòu))就沒(méi)必要聲明為同步的。
29、在一個(gè)對(duì)象上兩個(gè)線(xiàn)程可以調(diào)用兩個(gè)不同的同步實(shí)例方法嗎?
不能,因?yàn)橐粋€(gè)對(duì)象已經(jīng)同步了實(shí)例方法,線(xiàn)程獲取了對(duì)象的對(duì)象鎖。
所以只有執(zhí)行完該方法釋放對(duì)象鎖后才能執(zhí)行其它同步方法。30、什么是線(xiàn)程餓死,什么是活鎖?
線(xiàn)程餓死和活鎖雖然不像死鎖一樣是常見(jiàn)的問(wèn)題,但是對(duì)于并發(fā)編程的設(shè)計(jì)者來(lái)說(shuō)就像一次邂逅一樣。
當(dāng)所有線(xiàn)程阻塞,或者由于需要的資源無(wú)效而不能處理,不存在非阻塞線(xiàn)程使資源可用。
JavaAPI 中線(xiàn)程活鎖可能發(fā)生在以下情形:
當(dāng)所有線(xiàn)程在程序中執(zhí)行 Object.wait(0),參數(shù)為 0 的 wait 方法。
程序?qū)l(fā)生活鎖直到在相應(yīng)的對(duì)象上有線(xiàn)程調(diào)用 Object.notify()或者 Object.notifyAll()。
當(dāng)所有線(xiàn)程卡在無(wú)限循環(huán)中。
四、集合框架
1:String類(lèi):字符串(重點(diǎn))(1)多個(gè)字符組成的一個(gè)序列,叫字符串。
生活中很多數(shù)據(jù)的描述都采用的是字符串的。而且我們還會(huì)對(duì)其進(jìn)行操作。
所以,java就提供了這樣的一個(gè)類(lèi)供我們使用。
(2)創(chuàng)建字符串對(duì)象
A:String():無(wú)參構(gòu)造
**舉例:
String s = new String();
s = “hello”;
sop(s);
B:String(byte[] bys):傳一個(gè)字節(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)換成一個(gè)字符串 *****
**舉例
byte[] bys = {97,98,99,100,101};
String s = new String(bys,1,2);
sop(s);
D:String(char[] chs):傳一個(gè)字符數(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)換成一個(gè)字符串 *****
**舉例
char[] chs = {'a','b','c','d','e'};
String s = new String(chs,1,2);
sop(s);
F:String(String str):把一個(gè)字符串傳遞過(guò)來(lái)作為參數(shù)
char[] chs = {'a','b','c','d','e'};
String ss = new String(s);
sop(ss);
G:直接把字符串常量賦值給字符串引用對(duì)象(最常用)*****
**舉例
String s = “hello”;
sop(s);(3)面試題
A:請(qǐng)問(wèn)String s = new String(“hello”);創(chuàng)建了幾個(gè)對(duì)象。
兩個(gè)。一個(gè)“hello”字符串對(duì)象,在方法區(qū)的常量池;一個(gè)s對(duì)象,在棧內(nèi)存。
B:請(qǐng)寫(xiě)出下面的結(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:字符串對(duì)象一旦被創(chuàng)建就不能被改變。
指的是字符串常量值不改變。(4)字符串中各種功能的方法
A:判斷
**** boolean equals(Object anObject):判斷兩個(gè)字符串的內(nèi)容是否相同,復(fù)寫(xiě)了Object的方法
**** boolean equalsIgnoreCase(String anotherString):判斷兩個(gè)字符串的內(nèi)容是否相同,不區(qū)分大小寫(xiě)
**** boolean contains(String s):判斷一個(gè)字符串中是否包含另一個(gè)字符串
注意:判斷字符串是否包含特殊字符.直接表示為str.contains(“.”)
boolean endsWith(String suffix):測(cè)試此字符串是否以指定的后綴結(jié)束
boolean startsWith(String suffix):測(cè)試此字符串是否以指定的前綴開(kāi)始
boolean isEmpty():測(cè)試字符串是否為空
B:獲取
***** int length():返回此字符串的長(zhǎng)度
***** char charAt(int index):返回指定索引處的 char值
***** int indexOf(int ch):返回指定字符在此字符串中第一次出現(xiàn)處的索引。
int indexOf(int ch, int fromIndex):返回在此字符串中第一次出現(xiàn)指定字符處的索引,從指定的索引開(kāi)始搜索。
int indexOf(String str):返回指定子字符串在此字符串中第一次出現(xiàn)處的索引。
int indexOf(String str, int fromIndex):返回指定子字符串在此字符串中第一次
出現(xiàn)處的索引,從指定的索引開(kāi)始。
*** int lastIndexOf(int ch):返回指定字符在此字符串中最后一次出現(xiàn)處的索引。
int lastIndexOf(int ch, int fromIndex)
返回指定字符在此字符串中最后一次出現(xiàn)處的索引,從指定的索引處開(kāi)始進(jìn)行反向搜索。
int lastIndexOf(String str)
返回指定子字符串在此字符串中最右邊出現(xiàn)處的索引。
int lastIndexOf(String str, int fromIndex)
返回指定子字符串在此字符串中最后一次出現(xiàn)處的索引,從指定的索引開(kāi)始反向搜索。
***** String substring(int beginIndex)(注意:該方法substring的String是小寫(xiě)!!)
返回一個(gè)新的字符串,它是此字符串的一個(gè)子字符串。
String substring(int beginIndex, int endIndex)(注意該方法的String是小寫(xiě)!!)
返回一個(gè)新字符串,它是此字符串的一個(gè)子字符串,包含頭不包含尾。
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ù)類(lèi)型):把該數(shù)據(jù)類(lèi)型的數(shù)據(jù)轉(zhuǎn)換成字符串。
*** String toLowerCase():把字符串轉(zhuǎn)換成小寫(xiě)
String toUpperCase():把字符串轉(zhuǎn)換成大寫(xiě)
*** 字符串的連接
String concat(String str):將指定字符串連接到此字符串的結(jié)尾。
D:替換
String replace(char oldChar, char newChar):用新字符替換舊字符(替換所有)
String replace(String target, String replacement):用新的子串換舊串
E:分割
String[] split(String regex):根據(jù)指定的字符串把一個(gè)字符串分割成一個(gè)字符串?dāng)?shù)組
F:
String trim():去除字符串的前后空格
G:
int compareTo(String anotherString)
按字典順序比較兩個(gè)字符串。
int compareToIgnoreCase(String str)
按字典順序比較兩個(gè)字符串,不考慮大小寫(xiě)。
(5)練習(xí)
1:模擬登錄,給三次機(jī)會(huì),并提示還有幾次.默認(rèn)的用戶(hù)名和密碼為admin。區(qū)分大小寫(xiě)。
自己從鍵盤(pán)輸入用戶(hù)名和密碼。
2:給定一個(gè)字符串統(tǒng)計(jì),統(tǒng)計(jì)大寫(xiě)字母,小寫(xiě)字母,數(shù)字出現(xiàn)的個(gè)數(shù).***注意:不包括特殊字符
從鍵盤(pán)輸入一個(gè)不包含特殊字符的字符串(只有26個(gè)字母和0-9組成)。
3:給定一個(gè)字符串,把它變成首字母大寫(xiě),其他字母小寫(xiě)的字符串.從鍵盤(pán)輸入一個(gè)字符串,全部26個(gè)字母組成的。
4:子串在整串中出現(xiàn)的次數(shù)。
也就是說(shuō):獲取一個(gè)字符串中,指定的字串在該字符串中出現(xiàn)的次數(shù).例如:
“nbasdnbafllgnbahjnbakqqqqlnba” 在這個(gè)字符串中,多有個(gè)nba.5:對(duì)字符串中字符進(jìn)行自然順序排序。
“basckd”-->“abcdks”
先留做思考內(nèi)容:
6:兩個(gè)字符串的最大相同子串。
兩個(gè)字符串的最大相同子串。
比如:
“sadabcdfghjkl”
werabcdtyu“
2:StringBuffer(1)字符串的緩沖區(qū),是一個(gè)容器。
(2)它和String的區(qū)別
它是緩沖區(qū)可變長(zhǎng)度的。
(3)構(gòu)造方法
StringBuffer()構(gòu)造一個(gè)其中不帶字符的字符串緩沖區(qū),初始容量為 16 個(gè)字符。
StringBuffer(int num)構(gòu)造一個(gè)不帶字符,但具有指定初始容量的字符串緩沖區(qū)。
StringBuffer(String str)構(gòu)造一個(gè)字符串緩沖區(qū),并將其內(nèi)容初始化為指定的字符串內(nèi)容。
(4)常用方法
A:增加數(shù)據(jù)
**append :添加各種類(lèi)型的數(shù)據(jù)
**insert : 在容器指定位置插入各種類(lèi)型的數(shù)據(jù)。
B:刪除數(shù)據(jù)
**deleteCharAt : 刪除指定位置的字符
**delete 還可以用于清空StringBuffer的緩沖區(qū)
C:替換
**replace
D:獲取
**charAt
E:長(zhǎng)度和容量
**length()元素的個(gè)數(shù)
**capacity 元素的理論值
F:獲取元素的位置
**indexOf
**lastIndexOf
G:截取
**substring(int start)
**substring(int start,int end)
H:反轉(zhuǎn)
**reverse(5)字符串和StringBuffer的轉(zhuǎn)換
String-->StringBuffer通過(guò)構(gòu)造:
如:StringBuffer sb = new StringBuffer(String str)
StringBuffer--String通過(guò)toString方法
如:StringBuffer sb = new StringBuffer();
sb.toString();
3:StringBuilder 和StringBuffer的功能是一樣的,但是有區(qū)別:
StringBuffer(JDK1.0)是線(xiàn)程安全的。
StringBuilder(JDK1.5)不保證線(xiàn)程安全。一般來(lái)說(shuō),我們寫(xiě)的程序都是單線(xiàn)程的,所以,用StringBuilder,效率高。
JDK版本的升級(jí)原則:
A:提高效率
B:提高安全性
C:簡(jiǎn)化書(shū)寫(xiě)
4:基本數(shù)據(jù)類(lèi)型的對(duì)象包裝類(lèi)
(1)為了更方便的操作每個(gè)基本數(shù)據(jù)類(lèi)型,java對(duì)其提供了很多的屬性和方法供我們使用。
(2)用途:
**將基本數(shù)據(jù)類(lèi)型封裝成對(duì)象的好處在于可以在對(duì)象中定義更多的功能操作該數(shù)據(jù)。
**常用的操作之一:用于基本數(shù)據(jù)類(lèi)型與字符串之間的轉(zhuǎn)換。
A:方便操作
B:用于和字符串進(jìn)行相互轉(zhuǎn)換
(3)基本數(shù)據(jù)類(lèi)型和對(duì)象類(lèi)型的對(duì)應(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 類(lèi)型能夠表示的最大值
static int MIN_VALUE 值為-2^31 的常量,它表示 int 類(lèi)型能夠表示的最小值
static Class
Integer(int value)構(gòu)造一個(gè)新分配的Integer對(duì)象,它表示指定的int值。
Inreger(String s)注意:s必須是純數(shù)字的字符串。否則會(huì)有異常NumberFormatException
(5)幾個(gè)常用的方法
Integer.toBinaryString();
以二進(jìn)制(基數(shù) 2)無(wú)符號(hào)整數(shù)形式返回一個(gè)整數(shù)參數(shù)的字符串表示形式。
Integer.toOctalString();
以八進(jìn)制(基數(shù) 8)無(wú)符號(hào)整數(shù)形式返回一個(gè)整數(shù)參數(shù)的字符串表示形式。
Integer.toHexString();
以十六進(jìn)制(基數(shù) 16)無(wú)符號(hào)整數(shù)形式返回一個(gè)整數(shù)參數(shù)的字符串表示形式。
static int Integer.parseInt(String s)將字符串參數(shù)作為有符號(hào)的十進(jìn)制整數(shù)進(jìn)行解析,字符串必須是int型范圍內(nèi)的數(shù)字字符串
static int Integer.parseInt(String s,int basic)
使用第二個(gè)參數(shù)指定的基數(shù),將字符串參數(shù)解析為有符號(hào)的整數(shù).字符串必須是int型范圍內(nèi)的數(shù)字字符串
short shortValue()以short類(lèi)型返回該Integer的值。
int intValue()以int類(lèi)型返回該Integer的值。
static Integer valueOf(int num)返回一個(gè)表示指定的 int 值的 Integer 實(shí)例。
static Integer valueOf(String s)返回保存指定的String的值的Integer對(duì)象。
static Integer valueOf(String s, int radix)
返回一個(gè)Integer對(duì)象,該對(duì)象中保存了用第二個(gè)參數(shù)提供的基數(shù)進(jìn)行
解析時(shí)從指定的String中提取的值。
(6)類(lèi)型轉(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)集合類(lèi)?
面向?qū)ο髮?duì)事物的體現(xiàn)都是以對(duì)象的形式,為了方便對(duì)多個(gè)對(duì)象的操作,就對(duì)對(duì)象進(jìn)行存儲(chǔ)。
集合就是存儲(chǔ)對(duì)象最常用的一種方式.(2)數(shù)組和集合都是容器,兩者有何不同?
**數(shù)組長(zhǎng)度固定,而集合長(zhǎng)度是可變的**數(shù)組值可以存儲(chǔ)對(duì)象,還可以存儲(chǔ)基本數(shù)據(jù)類(lèi)型;而集合只能存儲(chǔ)對(duì)象
**數(shù)組存儲(chǔ)數(shù)據(jù)類(lèi)型是固定的,而集合存儲(chǔ)的數(shù)據(jù)類(lèi)型不固定
(3)集合類(lèi)的特點(diǎn):
集合只能存儲(chǔ)對(duì)象
集合的長(zhǎng)度是可變的 集合可以存儲(chǔ)不同類(lèi)型的對(duì)象
(4)集合類(lèi)框架(重要!!要分清幾種容器間的區(qū)別):
**Collection:頂層接口
|--->List:列表,元素是有序的(元素帶角標(biāo)索引),可以有重復(fù)元素,可以有null元素。
|--->ArrayList(JDK1.2):底層的數(shù)據(jù)結(jié)構(gòu)是數(shù)組數(shù)據(jù)結(jié)構(gòu),特點(diǎn)是查詢(xún)速度快(因?yàn)閹Ы菢?biāo)),但是增刪速度稍慢,因?yàn)楫?dāng)元素多時(shí),增刪一個(gè)元素則所有元素的角標(biāo)都得改變
線(xiàn)程不同步。默認(rèn)長(zhǎng)度是10,當(dāng)超過(guò)長(zhǎng)度時(shí),按50%延長(zhǎng)集合長(zhǎng)度。
|--->LinkedList(JDK1.2):底層數(shù)據(jù)結(jié)構(gòu)式鏈表數(shù)據(jù)結(jié)構(gòu)(即后面一個(gè)元素記錄前一個(gè)),特點(diǎn):查詢(xún)速度慢,因?yàn)槊總€(gè)元素只知道前面一個(gè)元素,但增刪速度快
因?yàn)樵卦俣啵鰟h一個(gè),只要讓其前后的元素重新相連即可
線(xiàn)程是不同步的。
|--->Vector(JDK1.0):底層數(shù)據(jù)結(jié)構(gòu)是數(shù)組數(shù)據(jù)結(jié)構(gòu).特點(diǎn)是查詢(xún)和增刪速度都很慢。
默認(rèn)長(zhǎng)度是10,當(dāng)超過(guò)長(zhǎng)度時(shí),按100%延長(zhǎng)集合長(zhǎng)度。
線(xiàn)程同步。
(Vector功能跟ArrayList功能一模一樣,已被ArrayList替代)
**List使用注意!
|--->ArrayList:
(1)當(dāng)往ArrayList里面存入元素沒(méi)什么要求時(shí),即只要求有序就行時(shí);
(2)當(dāng)往ArrayList里面存入元素要求不重復(fù)時(shí),比如存入學(xué)生對(duì)象,當(dāng)同名同姓時(shí)
視為同一個(gè)人,則不往里面存儲(chǔ)。則定義學(xué)生對(duì)象時(shí),需復(fù)寫(xiě)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集合通過(guò)add存入學(xué)生對(duì)象時(shí),集合底層自己會(huì)調(diào)用學(xué)生類(lèi)的equals方法,判斷重復(fù)學(xué)生則不存入。
注:對(duì)于List集合,無(wú)論是add、contains、還是remove方法,判斷元素是否相同,都是通過(guò)復(fù)寫(xiě)equals方法來(lái)判斷!
|--->LinkedList
(1)LinkLedist的特有方法:
boolean offerFirst(E e)在此列表的開(kāi)頭插入指定的元素。
boolean offerLast(E e)在此列表末尾插入指定的元素。
E peekFirst()獲取但不移除此列表的第一個(gè)元素;如果此列表為空,則返回 null。
E peekLast()獲取但不移除此列表的最后一個(gè)元素;如果此列表為空,則返回 null。
E pollFirst()獲取并移除此列表的第一個(gè)元素;如果此列表為空,則返回 null。
E pollLast()獲取并移除此列表的最后一個(gè)元素;如果此列表為空,則返回 null。
(2)通過(guò)LinkLedist的特有方法,可以實(shí)現(xiàn)某些數(shù)據(jù)特殊方式的存取,比如堆棧和隊(duì)列。
一般情況下,使用哪種List接口下的實(shí)現(xiàn)類(lèi)呢?
如果要求增刪快,考慮使用LinkedList
如果要求查詢(xún)快,考慮使用ArrayList
如果要求線(xiàn)程安全,考慮使用Vector。
|--->Set:集合,元素是無(wú)序的(因?yàn)闆](méi)有索引),元素不可以重復(fù)。可以有null元素。
|--->HashSet(JDK1.2):底層數(shù)據(jù)結(jié)構(gòu)是哈希表、存取速度快、元素唯
一、線(xiàn)程不同步。
保證性元素唯一的原理:
先判斷元素的hashCode值是否相同,再判斷兩元素的equals方法是否為true
(往HashSet里面存的自定義元素要復(fù)寫(xiě)hashCode和equals方法,以保證元素的唯一性!)
|--->TreeSet:底層數(shù)據(jù)結(jié)構(gòu)式二叉樹(shù)。可以對(duì)Set集合中的元素進(jìn)行排序。元素有序、線(xiàn)程不同步。
保證元素唯一性的依據(jù):compareTo方法return 0
TreeSet排序的第一種方式:讓元素自身具備比較性,比如八種基本數(shù)據(jù)類(lèi)型或則字符串,實(shí)現(xiàn)Compareble接口,覆蓋compareTo方法,此方式是元素的自然順序
TreeSet排序的第一種方式:當(dāng)元素自身不具備比較性(比如存儲(chǔ)學(xué)生對(duì)象時(shí))或者具備的比較性不是我們所需要的比較性時(shí)(比如想字符串的長(zhǎng)度排序),此時(shí)就需要讓集合自身具備自定義的比較性。
那如何讓集合自身具備比較性呢?可在集合初始化時(shí),就讓集合具備比較方式。即定義一個(gè)類(lèi),實(shí)現(xiàn)Comparator接口,覆蓋compare方法。
**Set集合使用注意事項(xiàng):
(1)HashSet:
通過(guò)new的方式往HashSet里面存的元素的hashCode都不同,但通常我們定義對(duì)象,比如學(xué)生對(duì)象時(shí),雖然是new的兩個(gè)學(xué)生對(duì)象,但是當(dāng)他們name和age一樣時(shí),我們認(rèn)為是
同一個(gè)對(duì)象,所以為了保證元素的唯一性,我們通常在往HashSet集合里面存儲(chǔ)元素時(shí),在定義對(duì)象的類(lèi)中通常復(fù)寫(xiě)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值不同,則不會(huì)調(diào)用equals方法
**如果兩元素的hashCode值相同,則繼續(xù)判斷equals是否返回true;
**hashCode和equals方法雖然定義在自定義對(duì)象類(lèi)里面,但不是我們手動(dòng)調(diào)用
而是往HashSet集合里面存儲(chǔ)元素的時(shí)候,集合底層自己調(diào)用hashCode和equals
它自己拿對(duì)象去判斷,自己判斷兩元素是否是同一個(gè)元素。
(2)TreeSet:
TreeSet要求往里面存的元素具備比較性,否則會(huì)報(bào)錯(cuò)。
TreeSet排序的第一種方式:讓元素自身具備比較性
定義對(duì)象類(lèi),實(shí)現(xiàn)Compareble接口,復(fù)寫(xiě)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é)生對(duì)象!“);
Student stu =(Student)obj;
int num = this.age-stu.age;
if(num==0)
return this.name.compareTo(stu.name);
return num;
}
}
TreeSet排序的第一種方式:讓集合具備比較性
當(dāng)元素自身不具備比較性(比如存儲(chǔ)學(xué)生對(duì)象時(shí))或者具備的 比較性不是我們所需要的比較性時(shí)(比如想字符串的長(zhǎng)度排序),此時(shí)就需要讓集合自身具備自定義的比較性。
那如何讓集合自身具備比較性呢?可在集合初始化時(shí),就讓集合具備比較方式。即定義一個(gè)類(lèi),實(shí)現(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ù)類(lèi)型或字符串對(duì)象均實(shí)現(xiàn)了Comparable接口,故同種類(lèi)型基本數(shù)據(jù)間具備比較性,即自然順序。
**Map:頂層接口,該集合存儲(chǔ)的是鍵值對(duì),而且鍵是唯一的,Map和Set很像,Set集合底層就是使用了Map集合。
Map集合沒(méi)有迭代器,要取出元素必須先將Map集合轉(zhuǎn)換成Set集合才能遍歷元素
|--->HashTable(JDK1.0):
底層是哈希表數(shù)據(jù)結(jié)構(gòu);
不可以使用null鍵和null值;
用作鍵的對(duì)象必須實(shí)現(xiàn)hashCode和equals方法來(lái)保證鍵的唯一性
線(xiàn)程同步,效率低
|--->HashMap(JDK1.2):
底層是哈希表數(shù)據(jù)結(jié)構(gòu);
允許使用null鍵和null值;
線(xiàn)程不同步,效率高;
保證元素唯一性的:
原理:先判斷元素的hashCode值是否相同,再判斷兩元素的equals方法是否為true
(往HashSet里面存的自定義元素要復(fù)寫(xiě)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.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
Iterator
while(it.hasNext()){
Student stu = it.next();
String addr = hmap.get(stu);
System.out.println(stu.getName()+”..“+stu.getAge()+”::“+addr);
}
}
}
|--->TreeMap(JDK1.0):
底層是二叉樹(shù)結(jié)構(gòu);
允許使用null鍵和null值;
線(xiàn)程不同步;
可以給Map集合中的鍵進(jìn)行排序.TreeMap排序的第一種方式:讓元素自身具備比較性,比如八種基本數(shù)據(jù)類(lèi)型或則字符串,實(shí)現(xiàn)Compareble接口,覆蓋compareTo方法,此方式是元素的自然順序
TreeMap排序的第一種方式:當(dāng)元素自身不具備比較性(比如存儲(chǔ)學(xué)生對(duì)象時(shí))或者具備的比較性不是我們所需要的比較性時(shí)(比如想字符串的長(zhǎng)度排序),此時(shí)就需要讓集合自身具備自定義的比較性。
那如何讓集合自身具備比較性呢?可在集合初始化時(shí),就讓集合具備比較方式。即定義一個(gè)類(lèi),實(shí)現(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.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
Iterator
while(it1.hasNext()){
Student stu = it1.next();
String addr = tmap.get(stu);
System.out.println(stu.getName()+”..“+stu.getAge()+”::“+addr);
}
}
}
**Iterator:對(duì)collection進(jìn)行迭代的迭代器.迭代器取代了Enumeration。
迭代器和枚舉的區(qū)別:
迭代器允許調(diào)用者利用定義良好的語(yǔ)義在迭代期間從迭代器所指向的collection移除元素
方法名稱(chēng)得到了改進(jìn),簡(jiǎn)化書(shū)寫(xiě)
**LisIterator:系列表迭代器,允許程序員按任一方向遍歷列表、迭代期間修改列表
**Comparable:此接口強(qiáng)行對(duì)實(shí)現(xiàn)它的每個(gè)類(lèi)的對(duì)象進(jìn)行整體自然排序。使元素具備比較性
**Comparator:強(qiáng)行對(duì)某個(gè)對(duì)象collection進(jìn)行整體排序的比較函數(shù),使集合具備比較性
**Collections:此類(lèi)完全由在 collection 上進(jìn)行操作或返回 collection 的靜態(tài)方法組成。
**Arrays:此類(lèi)包含用來(lái)操作數(shù)組(比如排序和搜索)的各種靜態(tài)方法
7、集合類(lèi)各容器方法:
**接口Collection方法摘要(沒(méi)有構(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與指定對(duì)象是否相等
m.boolean isEmpty():判斷是否集合為空
d)獲取:
h.Iterator iterator():取出
i.int hashCode():返回此collection的哈希值
j.int size():返回此collection中元素的個(gè)數(shù)
k.boolean retainAll(Collection c):取交集
m.Object toArray():返回此collection中所有元素的數(shù)組
n.T[] toArray(T[] a):返回包含此collection中所有元素的數(shù)值。*****List集合子類(lèi)及其方法
(1)List接口是Collection接口的一個(gè)子接口。
(2)List接口中的元素有如下特點(diǎn)(對(duì)角標(biāo)的操作都是特有方法,因?yàn)橛行?:
A:元素有序(存儲(chǔ)順序和取出順序一致)
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):從一個(gè)大的List中截取一個(gè)小的List
G:listIterator():返回一個(gè)List接口特有的迭代器(1)、ArrayList:
|--->構(gòu)造方法摘要:(少用,不是重點(diǎn))ArrayList():構(gòu)造一個(gè)初始容量為 10 的空列表。
ArrayList(Collection extends E> c): 構(gòu)造一個(gè)包含指定 collection 的元素的列表,ArrayList(int initialCapacity): 構(gòu)造一個(gè)具有指定初始容量的空列表。
|--->方法摘要:
|--->添加:
boolean add(E e): 將指定的元素添加到此列表的尾部。
void add(int index, E element): 將指定的元素插入此列表中的指定位置。
boolean addAll(Collection extends E> c):按照指定 collection 的迭代器所返回的元素順序,將該 collection 中的所有元素添加到此列表的尾部
boolean addAll(int index, Collection extends E> c): 從指定的位置開(kāi)始,將指定 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
和 toIndex(不包括)之間的部分視圖。
Iterator
ListIterator
|--->修改:(特有方法!)
E set(int index, E element): 用指定的元素替代此列表中指定位置上的元素。
(2)LinkedList: |--->構(gòu)造方法摘要:
LinkedList(): 構(gòu)造一個(gè)空列表。
LinkedList(Collection extends E> c): 構(gòu)造一個(gè)包含指定 collection 中的元素的列表,這些元素按其 collection 的迭代器返回的順序排列。
|--->方法摘要:(特有的)
|--->添加
void addFirst(E e): 將指定元素插入此列表的開(kāi)頭。
void addLast(E e): 將指定元素添加到此列表的結(jié)尾。
|--->獲取元素,但不刪除元素
E get(int index): 返回此列表中指定位置處的元素。
E getFirst(): 返回此列表的第一個(gè)元素。
E getLast(): 返回此列表的最后一個(gè)元素。
|--->獲取元素且刪除元素
E remove(): 獲取并移除此列表的頭(第一個(gè)元素)。
E remove(int index): 移除此列表中指定位置處的元素。
boolean remove(Object o): 從此列表中移除首次出現(xiàn)的指定元素(如果存在)。
E removeFirst(): 移除并返回此列表的第一個(gè)元素。
E removeLast(): 移除并返回此列表的最后一個(gè)元素。
|--->修改
E set(int index, E element)將此列表中指定位置的元素替換為指定的元素。
(3)Vector |--->構(gòu)造方法摘要:
Vector(): 構(gòu)造一個(gè)空向量,使其內(nèi)部數(shù)據(jù)數(shù)組的大小為 10,其標(biāo)準(zhǔn)容量增量為零。
Vector(Collection extends E> c): 構(gòu)造一個(gè)包含指定 collection 中的元素的向量,這些元素按其 collection 的迭代器返回元素的順序排列。
|--->方法摘要:
|--->添加:
boolean add(E e): 將指定元素添加到此向量的末尾。
void add(int index, E element): 在此向量的指定位置插入指定的元素。
boolean addAll(Collection extends E> c):
將指定 Collection 中的所有元素添加到此向量的末尾,按照指定 collection 的迭代器所返回的順序添加這些元素。
boolean addAll(int index, Collection extends E> c): 在指定位置將指定 Collection 中的所有元素插入到此向量中。
|--->獲取:
Enumeration
Vector特有的取出方式:
枚舉和迭代器很像,其實(shí)枚舉和迭代器是一樣的,只是因?yàn)槊杜e的名稱(chēng)和方法的名稱(chēng)
名字都過(guò)長(zhǎng),所以枚舉被迭代器取代了。
|--->枚舉Enumeration的方法摘要:
boolean hasMoreElements(): 測(cè)試此枚舉是否包含更多的元素。
E nextElement(): 如果此枚舉對(duì)象至少還有一個(gè)可提供的元素,則返回此枚舉的下一個(gè)元素。
*****Set集合子類(lèi)及其方法
(1)HashSet:它不保證set的迭代順序;特別是它不保證該順序恒久不變.此類(lèi)允許使用null元素。
|--->構(gòu)造方法:
HashSet()構(gòu)造一個(gè)新的空 set,其底層 HashMap 實(shí)例的默認(rèn)初始容量是 16,加載因子是 0.75。
HashSet(Collection extends E> c)構(gòu)造一個(gè)包含指定 collection 中的元素的新 set。
|--->方法摘要:
boolean add(E e)如果此 set 中尚未包含指定元素,則添加指定元素。
void clear()從此 set 中移除所有元素。
Object clone()返回此 HashSet 實(shí)例的淺表副本:并沒(méi)有復(fù)制這些元素本身。
boolean contains(Object o)如果此 set 包含指定元素,則返回 true。
boolean isEmpty()如果此 set 不包含任何元素,則返回 true。
Iterator
boolean remove(Object o)如果指定元素存在于此 set 中,則將其移除。
int size()返回此 set 中的元素的數(shù)量(set 的容量)。
(2)TreeSet:使用元素的自然順序?qū)υ剡M(jìn)行排序,或者根據(jù)創(chuàng)建 set 時(shí)提供的 Comparator 進(jìn)行排序.|--->構(gòu)造方法:
TreeSet()構(gòu)造一個(gè)新的空 set,該set根據(jù)其元素的自然順序進(jìn)行排序。
TreeSet(Collection extends E> c)
構(gòu)造一個(gè)包含指定 collection 元素的新 TreeSet,它按照其元素的自然順序進(jìn)行排序。
TreeSet(Comparator super E> comparator)構(gòu)造一個(gè)新的空 TreeSet,它根據(jù)指定比較器進(jìn)行排序。
|--->方法摘要:
添加:
boolean add(E e)將指定的元素添加到此 set(如果該元素尚未存在于 set 中)。
boolean addAll(Collection extends E> c)將指定 collection 中的所有元素添加到此 set 中。
刪除:
void clear()移除此 set 中的所有元素。
boolean remove(Object o)將指定的元素從 set 中移除(如果該元素存在于此 set 中)。
E pollFirst()獲取并移除第一個(gè)(最低)元素;如果此 set 為空,則返回 null。
E pollLast()獲取并移除最后一個(gè)(最高)元素;如果此 set 為空,則返回 null。
獲取:
Iterator
E first()返回此 set 中當(dāng)前第一個(gè)(最低)元素。
E last()返回此 set 中當(dāng)前最后一個(gè)(最高)元素。
int size()返回 set 中的元素?cái)?shù)(set 的容量)。
判斷:
boolean isEmpty()如果此 set 不包含任何元素,則返回 true。
boolean contains(Object o)如果此 set 包含指定的元素,則返回 true。
**Map:將鍵映射到值的對(duì)象。Map集合沒(méi)有迭代器!Map集合特點(diǎn):該集合存儲(chǔ)鍵值對(duì)。而且鍵是唯一的。
|--->方法摘要:
|--->添加:
V put(K key, V value)將指定的值與此映射中的指定鍵關(guān)聯(lián)(可選操作)。
void putAll(Map extends K,? extends V> m)從指定映射中將所有映射關(guān)系復(fù)制到此映射中
|--->刪除:
void clear()從此映射中移除所有映射關(guān)系(可選操作)。
V remove(Object key)如果存在一個(gè)鍵的映射關(guān)系,則將其從此映射中移除(可選操作)。
|--->判斷
boolean containsKey(Object key)如果此映射包含指定鍵的映射關(guān)系,則返回 true。
boolean containsValue(Object value)如果此映射將一個(gè)或多個(gè)鍵映射到指定值,則返回 true。
boolean isEmpty()如果此映射未包含鍵-值映射關(guān)系,則返回 true。
|--->獲取
int size()返回此映射中的鍵-值映射關(guān)系數(shù)。
Collection
重點(diǎn):Map集合沒(méi)有迭代器,以下是Map的兩種取出方式:
第一種:Set
返回此映射中包含的鍵的Set視圖,將Map集合中所有的鍵存入Set集合,然后再通過(guò)Set集合的 迭代器取出所有的鍵,再根據(jù)get方法獲取每個(gè)鍵的值;
第二種:Set
返回此映射中包含的映射關(guān)系的Set視圖,將Map集合中的映射關(guān)系存入到Set集合中,這個(gè)映射關(guān)系的數(shù)據(jù)類(lèi)型是Map.entry,再通過(guò)Map.Entry類(lèi)的方法再要取出關(guān)系里面的鍵和值
Map.Entry的方法摘要:
boolean equals(Object o)比較指定對(duì)象與此項(xiàng)的相等性。
K getKey()返回與此項(xiàng)對(duì)應(yīng)的鍵。
V getValue()返回與此項(xiàng)對(duì)應(yīng)的值。
int hashCode()返回此映射項(xiàng)的哈希碼值。
V setValue(V value)用指定的值替換與此項(xiàng)對(duì)應(yīng)的值(特有!!)。
8、Map集合和Collection集合的區(qū)別?
1,Map中一次存儲(chǔ)是鍵值對(duì)。
Collection中一次存儲(chǔ)是單個(gè)元素。
2,Map的存儲(chǔ)使用的put方法。
Collection存儲(chǔ)使用的是add方法。
3,Map集合沒(méi)有迭代器,Map的取出,是將Map轉(zhuǎn)成Set,在使用迭代器取出。
Collection取出,使用就是迭代器。
4,如果對(duì)象很多,必須使用集合存儲(chǔ)。
如果元素存在著映射關(guān)系,可以?xún)?yōu)先考慮使用Map存儲(chǔ)或者用數(shù)組,如果沒(méi)有映射關(guān)系,可以使用Collection存儲(chǔ)。
8、迭代器:Iterator(Map集合沒(méi)有迭代器)(1)迭代器就是取出集合元素的方式
(2)迭代器的作用
因?yàn)槊總€(gè)集合中元素的取出方式都不一樣,于是就把元素的取出方式進(jìn)行抽取,并定義在集合內(nèi)部,這樣取出方式就可以直接訪(fǎng)問(wèn)集合內(nèi)部的元素;
而每個(gè)容器的數(shù)據(jù)結(jié)構(gòu)不同,所以取出動(dòng)作的細(xì)節(jié)也不一樣,但是有共性?xún)?nèi)容:判斷和取出。
那么就將共性?xún)?nèi)容進(jìn)行抽取,從而形成了接口Iterater(3)獲取迭代器的方法:
Iterator
Iterator
(3)迭代器方法:
boolean hasNext()如果仍有元素可以迭代,則返回 true。
E next()返回迭代的下一個(gè)元素。
void remove()從迭代器指向的collection中移除迭代器返回的最后一個(gè)元素(可選操作)。
9、列表迭代器:ListIterator(1)List集合特有的迭代器ListIterator是Iterator的子接口,在迭代時(shí),不可以通過(guò)集合對(duì)象的 方法操作集合中的元素,因?yàn)闀?huì)發(fā)生ConcurrentModificationException(當(dāng)方法檢測(cè)到對(duì)象的并發(fā)修改,但不允許這種修改時(shí),拋出此異常)(2)Iterator方法有限,只能對(duì)元素進(jìn)行判斷、取出和刪除的操作
ListIterator可以對(duì)元素進(jìn)行添加和修改動(dòng)作等。
(3)獲取列表迭代器方法:
ListIterator
ListIterator
返回此列表中的元素的列表迭代器(按適當(dāng)順序),從列表中指定位置開(kāi)始。
(4)列表迭代器方法:
void add(E e)將指定的元素插入列表(可選操作)。
boolean hasPrevious()如果以逆向遍歷列表,列表迭代器有多個(gè)元素,則返回 true。
int nextIndex()返回對(duì) next 的后續(xù)調(diào)用所返回元素的索引。
E previous()返回列表中的前一個(gè)元素。
int previousIndex()返回對(duì) previous 的后續(xù)調(diào)用所返回元素的索引。
void set(E e)用指定元素替換 next 或 previous 返回的最后一個(gè)元素(可選操作)。
10、堆棧和隊(duì)列
堆棧:先進(jìn)后出,比如杯子里的水
隊(duì)列:先進(jìn)先出,比如水管的水
11、集合類(lèi)各種容器的使用注意細(xì)節(jié):
(1)迭代器:
**迭代器的next方法是自動(dòng)向下取元素,要避免出現(xiàn)NoSuchElementException。
也就是在迭代循環(huán)中調(diào)用一次next方法一次就要hasNext判斷一次,比如語(yǔ)句
sop(it.next()+”..."+it.next())會(huì)發(fā)生上述異常。
**迭代器的next方法返回值類(lèi)型是Object,所以要記得類(lèi)型轉(zhuǎn)換,應(yīng)用泛型后就不用強(qiáng)轉(zhuǎn)
(2)List集合:
**List集合里面的元素因?yàn)槭菐Ы菢?biāo),所以L(fǎng)ist集合里面的元素都是有序的,另外List集合可以包含重復(fù)元素,也可以包含null。
**List集合有迭代器Iterator,還有一個(gè)特有迭代器列表ListIterator
**List集合中判斷元素是否相同都是用equals方法,無(wú)論contains、remove都依賴(lài)equals方法
比如往ArrayList集合里面存放學(xué)生,同名同年齡視為同一個(gè)人,此時(shí)就需要在學(xué)生類(lèi)復(fù)寫(xiě)Object類(lèi)
里面的equals方法(非常重要!!要注意!)(3)Set集合:
**Set接口里面存放的是元素是無(wú)序的,不可以有重復(fù)元素,可以包含null
**Set集合只有一種取出方式,就是迭代器Iterator
**Set集合功能和Collection是一致的,沒(méi)有特殊方法
|--->HashSet:
**集合里面存放的元素是無(wú)序的,唯一的 **底層數(shù)據(jù)結(jié)構(gòu)是哈希表,哈希表結(jié)構(gòu)的數(shù)據(jù)都是無(wú)序的,哈希表結(jié)構(gòu)的操作效率都高效
**線(xiàn)程不同步
**保證元素唯一性的原理是:通過(guò)復(fù)寫(xiě)hashCode和equals方法
****如果兩元素的hashCode值相同,則繼續(xù)判斷兩元素equals是否為真
****如果兩元素的hashCode值不同,則不會(huì)調(diào)用equals方法。
**當(dāng)我們往HashSet集合存放自定義的元素時(shí)(比如學(xué)生對(duì)象),通常都要復(fù)寫(xiě)hashCode和equals方法,而且hashCode和equals方法不通過(guò)我們調(diào)用,HashSet集合底層內(nèi)部自己調(diào)用,自己拿元素去比較
|--->TreeSet
**TreeSet集合可以對(duì)存放的元素進(jìn)行排序,彌補(bǔ)了Set集合元素?zé)o序的缺點(diǎn),且元素是唯一的 **底層數(shù)據(jù)結(jié)構(gòu)是二叉樹(shù),二叉樹(shù)結(jié)構(gòu)都是有序的 **線(xiàn)程不同步
**TreeSet集合要求往集合里存放的元素自身具備比較性,否則會(huì)報(bào)錯(cuò)
**TreeSet集合保證元素唯一性的依據(jù)是:通過(guò)compareTo或者compare方法中的來(lái)保證元素的唯一性。
TreeSet排序的第一種方式:讓元素自身具備比較性,定義元素類(lèi)實(shí)現(xiàn)Compareble接口,覆蓋compare方法,此方式是元素的自然順序。
TreeSet排序的第二種方式:讓集合具備比較性
當(dāng)元素自身不具備比較性或者具備的比較性不是
我們所需要的比較性時(shí),此時(shí)就需要讓集合具備自定義的比較性。
那如何讓集合自身具備比較性呢?
可在集合初始化時(shí),就讓集合具備比較方式。
即定義一個(gè)類(lèi),實(shí)現(xiàn)Comparator接口,覆蓋compare方法。
注:
**判斷元素唯一時(shí),當(dāng)主要條件一樣時(shí),判斷次要條件
**兩種排序方式都在時(shí),以比較器為主!!
(4)Map集合:
|--Hashtable
底層是哈希表結(jié)構(gòu)
線(xiàn)程安全的,并且鍵和值不能為null。
|--HashMap
底層是哈希表結(jié)構(gòu)
線(xiàn)程不安全的,鍵和值可以為null。
|--LinkedHashMap
底層是鏈表和哈希表
線(xiàn)程不安全
|--TreeMap
底層是二叉樹(shù)
線(xiàn)程不安全的
12、如果你想將一組對(duì)象按一定順序存取,在不考慮并發(fā)訪(fǎng)問(wèn)的情況下會(huì)使用____C_____ ,反之則會(huì)使用____A_____;如果你想存儲(chǔ)一組無(wú)序但唯一的對(duì)象,你會(huì)使用___B______;
如果你想按關(guān)鍵字對(duì)對(duì)象進(jìn)行存取,在不考慮并發(fā)訪(fǎng)問(wèn)的情況下會(huì)使用___D______ ,反之則會(huì)使用_____E____。A.Vector B.HashSet C.ArrayList D.HashMap E.Hashtable
13、泛型:
(1)為什么會(huì)出現(xiàn)泛型?
因?yàn)榧洗娣诺臄?shù)據(jù)類(lèi)型不固定,故往集合里面存放元素時(shí),存在安全隱患,如果在定義集合時(shí),可以想定義數(shù)組一樣指定數(shù)據(jù)類(lèi)型,那么就可以解決該類(lèi)安全問(wèn)題。
JDK1.5后出現(xiàn)了泛型,用于解決集合框架的安全問(wèn)題。
泛型是一個(gè)類(lèi)型安全機(jī)制。
(2)泛型定義格式:通過(guò)<>來(lái)定義要操作的引用數(shù)據(jù)類(lèi)型
ArrayList
**將運(yùn)行時(shí)期出現(xiàn)的ClassCastException(類(lèi)型轉(zhuǎn)換異常)問(wèn)題轉(zhuǎn)移到編譯時(shí)期;
**避免了強(qiáng)制轉(zhuǎn)換的麻煩
(4)什么時(shí)候定義泛型?
泛型在集合框架中很常見(jiàn),只要見(jiàn)到<>就要定義泛型。其實(shí)<>就是用來(lái)接收類(lèi)型的。
當(dāng)使用集合時(shí),將集合中要存儲(chǔ)的數(shù)據(jù)類(lèi)型作為參數(shù)傳遞到<>中即可
(5)泛型的形式
**泛型類(lèi):即自定義泛型類(lèi)
A:當(dāng)類(lèi)中要操作的引用數(shù)據(jù)類(lèi)型不確定時(shí),早起定義Object來(lái)完成擴(kuò)展,現(xiàn)在定義泛型來(lái)完成B:局限性:泛型類(lèi)定義的泛型,在整個(gè)類(lèi)中有效,如果該泛型類(lèi)的方法被調(diào)用,當(dāng)泛型類(lèi)的對(duì)象明確要操作的類(lèi)型后,所有要操作的類(lèi)型就被固定。
**泛型方法:泛型放在返回值前面,修飾符的后面
A:為了避免泛型類(lèi)的局限性,讓不同方法可以操作不同的類(lèi)型,而且類(lèi)型還不確定,則可以將泛型定義在方法上
B:特殊之處:靜態(tài)方法不可以反問(wèn)類(lèi)上定義的泛型
如果靜態(tài)方法操作的應(yīng)用數(shù)據(jù)類(lèi)型不確定,可以講泛型定義在靜態(tài)方法上
**泛型接口:
當(dāng)泛型定義在接口上時(shí),則子類(lèi)中要指定實(shí)現(xiàn)接口類(lèi)型,同時(shí)還可以子類(lèi)也可以定義為泛型類(lèi)
(6)泛型的高級(jí)應(yīng)用:?通配符
**當(dāng)指定兩種泛型的集合,則迭代時(shí)也要定義兩種泛型的迭代器,麻煩,此時(shí)可通過(guò)將迭代器的泛型
改為?,如Iterator> it=al.iterator();
**兩種泛型限定
向上限定: ? extends E;E可以接收E類(lèi)型或者E的子類(lèi)
向下限定: ? super E;E可以接收E類(lèi)型或者E的父類(lèi)
14、高級(jí)for循環(huán)
(1)JDK1.5新特性,代替迭代器使用時(shí)的不爽,簡(jiǎn)化書(shū)寫(xiě),底層原理是迭代器凡是支持迭代器的都支持高級(jí)for循環(huán)
高級(jí)for循環(huán),只用于集合和數(shù)組的遍歷,集合只能用Collection不能用Map集合 只能把Map集合轉(zhuǎn)化成Set集合,才能用for循環(huán)。
(2)格式
for(數(shù)據(jù)類(lèi)型 變量名:被遍歷的集合(Collection)或者數(shù)組)
{
}
(3)局限性:
必須要有遍歷的目標(biāo)
對(duì)集合或者數(shù)組進(jìn)行遍歷時(shí),只能獲取集合元素,不能對(duì)集合元素進(jìn)行操作
迭代器除了遍歷,還可以進(jìn)行remove操作集合中的元素
列表迭代器還可以在遍歷過(guò)程中進(jìn)行增刪改查的操作
(4)傳統(tǒng)for循環(huán)和高級(jí)for循環(huán)的區(qū)別
高級(jí)for循環(huán)有一個(gè)局限性,就是必須要有遍歷的目標(biāo)(集合或者數(shù)組)
遍歷數(shù)組時(shí)建議使用傳統(tǒng)for循環(huán),因?yàn)榭梢远x角標(biāo),比如打印100次helloworld時(shí)用傳統(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這個(gè)類(lèi)中所有的靜態(tài)方法
**當(dāng)類(lèi)名重名時(shí),需要制定具體的報(bào)名
**當(dāng)方法重名時(shí),需要制定具體所屬的對(duì)象或者類(lèi)
17、Collections類(lèi):
(1)此類(lèi)完全由在 collection 上進(jìn)行操作或返回 collection 的靜態(tài)方法組成。
(2)靜態(tài)方法摘要:
static
將所有指定元素添加到指定 collection 中。
static
使用指定元素替換指定列表中的所有元素。
static
使用另一個(gè)值替換列表中出現(xiàn)的所有某一指定值。
static void reverse(List> list)
反轉(zhuǎn)指定列表中元素的順序。
static
返回一個(gè)比較器,它強(qiáng)行逆轉(zhuǎn)實(shí)現(xiàn)了 Comparable 接口的對(duì)象 collection 的自然順序
static
返回一個(gè)比較器,它強(qiáng)行逆轉(zhuǎn)指定比較器的順序。
(3)Collections類(lèi)特牛的方法:
集合有一個(gè)共同的缺點(diǎn),那就是線(xiàn)程不安全,被多線(xiàn)程操作時(shí),容易出現(xiàn)問(wèn)題,雖然可以自己加鎖
但是麻煩。Collections提供特牛的方法,就是給它一個(gè)不同步的集合,它返回一個(gè)同步的安全的集合static
返回指定 collection 支持的同步(線(xiàn)程安全的)collection。
static
返回指定列表支持的同步(線(xiàn)程安全的)列表。
static
返回由指定映射支持的同步(線(xiàn)程安全的)映射。
static
返回指定 set 支持的同步(線(xiàn)程安全的)set。
static
返回指定有序映射支持的同步(線(xiàn)程安全的)有序映射。
static
返回指定有序 set 支持的同步(線(xiàn)程安全的)有序 set。
18、Arrays類(lèi):
此類(lèi)包含用來(lái)操作數(shù)組(比如排序和搜索)的各種方法。里面都是靜態(tài)方法。
如果指定數(shù)組引用為 null,則此類(lèi)中的方法都會(huì)拋出 NullPointerException。
(1)靜態(tài)方法摘要:
static
返回一個(gè)受指定數(shù)組支持的固定大小的列表。
注意:
A:該方法將一個(gè)數(shù)組變成集合后,不可以使用集合的增刪方法,因?yàn)閿?shù)組的長(zhǎng)度是固定的!
如果增刪,則發(fā)生UnsupportedOprationException(不支持操作異常)
B:如果數(shù)組中的元素都是基本數(shù)據(jù)類(lèi)型,則該數(shù)組變成集合時(shí),會(huì)將該數(shù)組作為集合的一個(gè)
元素出入集合C:如果數(shù)組中的元素都是對(duì)象,如String,那么數(shù)組變成集合后,數(shù)組中的元素就直接轉(zhuǎn)成集合中的元素
19、數(shù)組變集合以及集合變數(shù)組的對(duì)比:
(1)數(shù)組變集合:
方法:static
好處:可以使用集合的思想和方法操作數(shù)組中的元素,數(shù)組是一個(gè)對(duì)象,但是數(shù)組中的功能很少
(2)集合變數(shù)組:
方法:Collction中的toArray方法
好處:可以限定對(duì)集合元素的操作,防止對(duì)集合的元素進(jìn)行增刪,因?yàn)閿?shù)組長(zhǎng)度是固定的。
20、Collections類(lèi)和Arrays類(lèi)的使用。(重點(diǎn))A:Collections
排序
二分查找
發(fā)轉(zhuǎn)
B:Arrays
把數(shù)組變成字符串輸出
排序
二分查找
21、System:
(1)描述系統(tǒng)信息的類(lèi)
(2)該類(lèi)沒(méi)有構(gòu)造方法,該類(lèi)的方法和屬性都是靜態(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)前正在運(yùn)行的 Java 虛擬機(jī)。
static void gc()運(yùn)行垃圾回收器。
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)每個(gè) Java 應(yīng)用程序都有一個(gè) Runtime 類(lèi)實(shí)例,使應(yīng)用程序能夠與其運(yùn)行的環(huán)境相連接。
第三篇:2013 會(huì)計(jì)基礎(chǔ)重點(diǎn)筆記總結(jié)
2013 會(huì)計(jì)基礎(chǔ)重點(diǎn)筆記總結(jié)
1、營(yíng)業(yè)外收入包括固定資產(chǎn)盤(pán)盈;處置固定資產(chǎn)凈收益;罰款收入;確實(shí)無(wú)法支付經(jīng)批準(zhǔn)轉(zhuǎn)銷(xiāo)的應(yīng)付款項(xiàng)。
2、營(yíng)業(yè)外支出包括固定資產(chǎn)盤(pán)虧;處置固定資產(chǎn)凈損失;罰款支出;捐贈(zèng)支出;非常損失。
3、他業(yè)務(wù)收入是企業(yè)除主營(yíng)業(yè)務(wù)以外的其他銷(xiāo)售或經(jīng)營(yíng)其他業(yè)務(wù)所取得的收入。如銷(xiāo)售材料、出租包裝物和商品、出租固定資產(chǎn)、出租無(wú)形資產(chǎn)、運(yùn)輸收入等實(shí)現(xiàn)的收入。
4、其他業(yè)務(wù)成本包括銷(xiāo)售材料的成本、出租包裝物的成本或攤銷(xiāo)額、出租固定資產(chǎn)的累計(jì)折舊、出租無(wú)形資產(chǎn)的累計(jì)攤銷(xiāo)。
5、利潤(rùn)表的特點(diǎn)是
1、根據(jù)損益賬戶(hù)的本期發(fā)生額編制
2、屬于動(dòng)態(tài)報(bào)表
6、資產(chǎn)負(fù)債表的作用反映企業(yè)某一特定日期的財(cái)務(wù)狀況,賬戶(hù)式
資產(chǎn)負(fù)債表各項(xiàng)目一般根據(jù)科目發(fā)生額填制
資產(chǎn)按流動(dòng)性有大到小順序排列
根據(jù)總賬賬戶(hù)余額直接填列如:交易性金融資產(chǎn)、短期借款、應(yīng)付票據(jù)、應(yīng)付職工薪酬等項(xiàng)目
資產(chǎn)負(fù)債表中的各項(xiàng)目金額,是根據(jù)資產(chǎn)、負(fù)債、所有者權(quán)益三大類(lèi)科目及其有關(guān)明細(xì)科目在一定時(shí)日(報(bào)告期末)的期末余額編制的資產(chǎn)負(fù)債表根據(jù)總賬科目余額直接填寫(xiě):交易性金融資產(chǎn)、短 期借款、應(yīng)付利息、應(yīng)付職工薪酬、實(shí)收資本、資本公積
根據(jù)總賬科目余額計(jì)算填寫(xiě)的有:貨幣資金、存貨
明細(xì)科目余額計(jì)算:應(yīng)收、預(yù)收、應(yīng)付、預(yù)付
總賬+明細(xì):長(zhǎng)期借款
總賬+備抵:固定資產(chǎn)、無(wú)形資產(chǎn)、存貨、其他應(yīng)收款
7、應(yīng)收賬款=兩收明細(xì)借方余額-壞賬準(zhǔn)備
預(yù)收賬款=兩收明細(xì)貸方余額
應(yīng)付賬款=兩付明細(xì)貸方余額
預(yù)付賬款=兩付明細(xì)借方余額-壞賬準(zhǔn)備
8、凡是明細(xì)賬一般使用活頁(yè)式賬簿,以便于根據(jù)實(shí)際需要隨時(shí)添加空白賬頁(yè)。訂本賬——總分類(lèi)賬、現(xiàn)金日記賬、銀行存款日記賬。
9、匯總記賬憑證賬務(wù)處理程序中,其賬簿的設(shè)置與記賬憑證賬務(wù)處理程序是基本相同的。
10、不屬于賬戶(hù)的的基本結(jié)構(gòu)具體內(nèi)容的是原始憑證編號(hào),而是記賬憑證的編號(hào);賬戶(hù)的作用:將會(huì)計(jì)數(shù)據(jù)進(jìn)行科學(xué)的分類(lèi)和記錄,為算賬、報(bào)賬等提供基礎(chǔ)條件。
11、會(huì)計(jì)賬簿
賬簿的日期按記賬憑證日期填寫(xiě)
兩欄式賬簿。只有借方和貸方。普通日記賬、轉(zhuǎn)賬日記賬。
三欄式賬簿。采用借方、貸方、余額三個(gè)主要欄目的賬簿。一般適用于日記賬、總分類(lèi)賬以及資本、債權(quán)債務(wù)明細(xì)賬。
多欄式賬簿。在借方欄或貸方欄下設(shè)置多個(gè)欄目用以反映經(jīng)濟(jì)業(yè)務(wù)不同內(nèi)容的賬簿。收入、費(fèi)用、成本、利潤(rùn)和利潤(rùn)分配類(lèi)的明細(xì)賬,如:管理費(fèi)用明細(xì)賬、生產(chǎn)成本明細(xì)賬等。應(yīng)逐日逐筆登記的有:固定資產(chǎn)、債權(quán)債務(wù)
可逐筆登記也可定期匯總的是:庫(kù)存商品、原材料、產(chǎn)成品收發(fā)明細(xì)賬、收入、費(fèi)用。每年應(yīng)更換一次的有:總賬日記賬、多數(shù)明細(xì)賬
不必每年更換的有:財(cái)產(chǎn)物資、債權(quán)債務(wù)明細(xì)賬
多欄式現(xiàn)金日記賬屬于序時(shí)賬
12、不是財(cái)產(chǎn)清查的基本程序的有復(fù)查報(bào)告
13、不在“庫(kù)存商品 ”科目核算的是已完成銷(xiāo)售手續(xù),客戶(hù)月未尚未提取的庫(kù)存商品
14、“銷(xiāo)售費(fèi)用”屬于期間費(fèi)用,按月歸集,月末全部轉(zhuǎn)入本年利潤(rùn)賬戶(hù),以確定當(dāng)期經(jīng)營(yíng)成果。
15、輔助生產(chǎn)車(chē)間領(lǐng)用材料,應(yīng)計(jì)入生產(chǎn)成本—基本生產(chǎn)成本賬戶(hù)
16、會(huì)計(jì)基本假設(shè)所作的合理設(shè)定內(nèi)容是指會(huì)計(jì)核算所處時(shí)間、空間環(huán)境
17、累計(jì)折舊是非流動(dòng)資產(chǎn)的科目
18、分類(lèi)賬簿是對(duì)全部經(jīng)濟(jì)業(yè)務(wù)事項(xiàng)按照會(huì)計(jì)要素的具體類(lèi)別而設(shè)置的分類(lèi)賬戶(hù)進(jìn)行登記的賬簿。
是按照經(jīng)營(yíng)與決策的需要而設(shè)置的賬戶(hù),歸集并匯總各類(lèi)信息,反映資金運(yùn)動(dòng)的各種狀態(tài)、形勢(shì)極其構(gòu)成。
19、賬簿記錄中的日期,應(yīng)該填寫(xiě)記賬憑證上的日期。
20、紅字更正法的具體內(nèi)容不包括在賬簿上劃紅線(xiàn)沖銷(xiāo)多記金額,包括用紅字在記賬憑證上沖銷(xiāo)多記金額、用藍(lán)字填制一張正確的記賬憑證、用紅字登帳沖銷(xiāo)多記金額
21、匯總收款憑證應(yīng)按現(xiàn)金和銀行存款賬戶(hù)的借方設(shè)置
22、現(xiàn)金流量表是反映企業(yè)在一定其間內(nèi)現(xiàn)金及現(xiàn)金等價(jià)物流入和流出情況的報(bào)表
23、首先“累計(jì)折舊”是屬于資產(chǎn)類(lèi)帳戶(hù),他是'固定資產(chǎn)'的'備抵'戶(hù)所以“累計(jì)折舊”的增加與減少的記帳方法就應(yīng)該與一般資產(chǎn)類(lèi)的記帳方式相反,也就是說(shuō)“累計(jì)折舊”增加數(shù)應(yīng)該在貸方,減少數(shù)應(yīng)該在借方,計(jì)提累計(jì)折舊時(shí)記貸方
計(jì)提折舊時(shí):
借:生產(chǎn)成本管理費(fèi)用營(yíng)業(yè)費(fèi)用制造費(fèi)用(誰(shuí)受益,誰(shuí)負(fù)擔(dān))
貸:累計(jì)折舊
當(dāng)報(bào)廢,盤(pán)虧,處置固定資產(chǎn)時(shí),應(yīng)先轉(zhuǎn)入清理:
借:固定資產(chǎn)清理(固定資產(chǎn)原值-已計(jì)提的累計(jì)折舊=凈值)
累計(jì)折舊
貸:固定資產(chǎn)(原值)
24、賬證核對(duì)指核對(duì)會(huì)計(jì)賬簿與會(huì)計(jì)憑證的時(shí)間、字號(hào)、內(nèi)容、金額。
25、賬簿錯(cuò)誤更正方法
劃線(xiàn)更正法(賬簿錯(cuò),憑證沒(méi)錯(cuò)):用紅線(xiàn)劃,藍(lán)字寫(xiě)。文字可劃部分,金額應(yīng)全劃。補(bǔ)充登記法(就是用填制補(bǔ)充的記賬憑證來(lái)更正錯(cuò)誤的記錄。這種方法適用于記賬以后發(fā)現(xiàn)記賬憑證和會(huì)計(jì)賬簿的金額和錯(cuò)誤):將少記的金額用藍(lán)字填制一張與原記賬憑證會(huì)計(jì)科目相同的記賬憑證,并用藍(lán)字據(jù)此登賬,用以補(bǔ)充少記的金額,更正錯(cuò)誤。
紅字更正法:①、在記賬后發(fā)現(xiàn)記賬憑證和會(huì)計(jì)賬簿記錄的金額有錯(cuò)誤,所記金額比應(yīng)記金額要大。多記的金額用紅字填制一張與原記賬憑證會(huì)計(jì)科目相同的記賬憑證,并紅字據(jù)以登記賬戶(hù)
②、在記賬后,發(fā)現(xiàn)記賬憑證在會(huì)計(jì)賬簿所用會(huì)計(jì)科目或記賬方向有錯(cuò)誤,或會(huì)計(jì)科目均有錯(cuò)誤。先紅字填制一張內(nèi)容與錯(cuò)誤記賬憑證完全相同的記賬憑證,并據(jù)此登記賬簿,沖銷(xiāo)原有錯(cuò)誤的賬簿記錄。然后再用藍(lán)字填制一張符合經(jīng)濟(jì)業(yè)務(wù)內(nèi)容的正確的記賬憑證,并據(jù)此登記賬簿。
而記賬憑證有錯(cuò)的:一樣補(bǔ)充、紅字。但是如果是以前的用藍(lán)字填制一張更正的記賬憑證
26、結(jié)賬沒(méi)有半年末(月、季、年),至少每月、每年結(jié)一次
27、累計(jì)原始憑證有:限額領(lǐng)料單、費(fèi)用登記表
匯總原始憑證有:工資匯總表、發(fā)料憑證匯總表、差旅費(fèi)用報(bào)銷(xiāo)單。
28、復(fù)式記賬以資產(chǎn)與權(quán)益的平衡關(guān)系為記賬依據(jù),以資金運(yùn)動(dòng)規(guī)律為理論依據(jù),1970年《企業(yè)會(huì)計(jì)準(zhǔn)則》規(guī)定必須用借貸記賬法。
借貸記賬法的記賬規(guī)則:有借必有貸,借貸必相等。
29、會(huì)計(jì)分錄的內(nèi)容:賬戶(hù)名稱(chēng)、方向、發(fā)生額(沒(méi)有經(jīng)濟(jì)內(nèi)容摘要)
30、試算平衡:發(fā)生額 余額
發(fā)生額試算平衡:借貸記賬法的記賬規(guī)則——有借必有貸,借貸必相等
余額試算平衡:資產(chǎn)與權(quán)益的平衡關(guān)系——資產(chǎn)=負(fù)債+所有者權(quán)益
31、科目對(duì)應(yīng)關(guān)系:相互科目之間的借貸對(duì)應(yīng)關(guān)系
對(duì)應(yīng)科目:發(fā)生對(duì)應(yīng)關(guān)系的科目
勾稽關(guān)系:總賬與明細(xì)賬金額應(yīng)當(dāng)相等32、1494年由意大利人提出簿記論標(biāo)志著現(xiàn)代會(huì)計(jì)的誕生。
33、資本公積是企業(yè)的儲(chǔ)備資本,可以轉(zhuǎn)增資本
法定盈余公積不得轉(zhuǎn)增資本
34、財(cái)務(wù):具有實(shí)物形態(tài)
35、收入:日常活動(dòng)形成、導(dǎo)致所有者權(quán)益增加、與投入資本無(wú)關(guān)的經(jīng)濟(jì)利益總流入支出:非正常經(jīng)營(yíng)活動(dòng)以外的支出
費(fèi)用:日常活動(dòng)形成、導(dǎo)致所有者權(quán)益減少、與分配利潤(rùn)無(wú)關(guān)的經(jīng)濟(jì)利益流出
36、財(cái)務(wù)成果計(jì)算處理:利潤(rùn)計(jì)算、所得稅計(jì)算與繳納、利潤(rùn)分配、虧損彌補(bǔ)。
37、會(huì)計(jì)基本假設(shè):核算的前提,對(duì)其時(shí)間、空間的合理設(shè)定。
主體:空間范圍
持續(xù)經(jīng)營(yíng):時(shí)間。目的:會(huì)計(jì)方法保持穩(wěn)定
38、形成權(quán)責(zé)發(fā)生制和收付實(shí)現(xiàn)制的記賬依據(jù)的會(huì)計(jì)假設(shè)(前提)是會(huì)計(jì)分期。權(quán)責(zé)發(fā)生制:應(yīng)計(jì)制、應(yīng)收應(yīng)付制。
收付實(shí)現(xiàn)制:現(xiàn)金制、現(xiàn)金收付制、實(shí)收實(shí)付制
39、資產(chǎn):過(guò)去的交易或事項(xiàng)形成的、擁有或控制的、帶來(lái)經(jīng)濟(jì)利益的資源。負(fù)債:過(guò)去的交易或事項(xiàng)形成的、經(jīng)濟(jì)利益流出的現(xiàn)時(shí)義務(wù)。
40、所有者權(quán)益來(lái)源:投入資本、直接計(jì)入所有者的利得和損失、留存收益。所有者權(quán)益內(nèi)容:實(shí)收資本、資本公積、盈余公積、未分配利潤(rùn)(統(tǒng)稱(chēng)為留存收益)
41、計(jì)量屬性:歷史成本、重置成本(固定資產(chǎn)盤(pán)盈)、可變現(xiàn)凈值(存貨資產(chǎn)減值)、現(xiàn)值(未來(lái))、公允價(jià)值(交易性金融資產(chǎn))
42、取得的土地使用權(quán),應(yīng)作為企業(yè)無(wú)形資產(chǎn)入賬
43、本期增加額在借方,本期減少額在貸方,期末一般無(wú)余額的賬戶(hù)有管理費(fèi)用、所得稅費(fèi)用即為損益類(lèi)賬戶(hù)
44、會(huì)計(jì)人員在年底結(jié)束后,必須跟賬簿一起裝訂成冊(cè)的有各種活頁(yè)賬簿、賬簿啟用和經(jīng)營(yíng)人員一覽表
45、實(shí)際工作中使用的賬戶(hù)就是“T”形賬戶(hù)
46、對(duì)賬沒(méi)有帳表核對(duì):帳實(shí)、帳證、帳帳
47、持有期間投資方宣告交易性金融資產(chǎn)的現(xiàn)金股利時(shí),投資方涉及到的會(huì)計(jì)科目有投資收益、應(yīng)收股利。被投資方為投資收益。
48、利潤(rùn)表中營(yíng)業(yè)成本/收入=主營(yíng)業(yè)務(wù)成本/收入+其他業(yè)務(wù)成本/收入
49、結(jié)賬:根據(jù)權(quán)責(zé)發(fā)生制調(diào)整;結(jié)算出資產(chǎn)、負(fù)債、所有者權(quán)益本期發(fā)生額和余額、權(quán)益類(lèi)科目轉(zhuǎn)入本年利潤(rùn)。
50、原始憑證的內(nèi)容沒(méi)有種類(lèi)和經(jīng)濟(jì)業(yè)務(wù)的性質(zhì)
51、會(huì)計(jì)科目設(shè)立原則:①合法性:符合國(guó)家會(huì)計(jì)制度②相關(guān)性:滿(mǎn)足對(duì)外報(bào)告、對(duì)內(nèi)管理的需求③實(shí)用:滿(mǎn)足單位要求符合自身需要
52、原始憑證審核:合理性——符合企業(yè)經(jīng)營(yíng)需要
53、解除與職工勞務(wù)關(guān)系給予的補(bǔ)償也應(yīng)通過(guò)應(yīng)付職工薪酬核算
54、單位合并后原單位仍然存續(xù)的,會(huì)計(jì)檔案任由其保管
55、移交會(huì)計(jì)檔案,要拆封重新整理的,應(yīng)有財(cái)務(wù)會(huì)計(jì)部門(mén)、經(jīng)辦人、檔案機(jī)構(gòu)同時(shí)參與。
56、財(cái)產(chǎn)清查:現(xiàn)金——庫(kù)存現(xiàn)金盤(pán)點(diǎn)表(可以調(diào)節(jié)賬面記錄的原始憑證)
實(shí)物:盤(pán)存單、實(shí)存賬存對(duì)比表(可以調(diào)節(jié)賬面記錄的原始憑證)
往來(lái)款項(xiàng):往來(lái)款項(xiàng)清查報(bào)告
57、存貨反映的科目有:發(fā)出商品、材料成本差異、委托加工物資、生產(chǎn)成本
58、財(cái)產(chǎn)定期清查一般在期末進(jìn)行
59、所有者權(quán)益與企業(yè)特定的、具體的資產(chǎn)無(wú)直接關(guān)系,不與企業(yè)任何具體資產(chǎn)項(xiàng)目發(fā)生對(duì)應(yīng)關(guān)系
60、雙倍余額遞減法:
折舊率=年限÷2 X 100%
第一年折舊率=原值X折舊率
第二年=(原值-第一年)X折舊率
以此類(lèi)推,到最后兩年(剩余價(jià)值-預(yù)計(jì)殘值)÷2
年數(shù)總和法
折舊率=還可以用的年數(shù)/預(yù)計(jì)年數(shù)從1開(kāi)始相加之和 X 100%
如5年第一年折舊率=5/1+2+3+4+5=5/15
第二年折舊率=4/1+2+3+4+5=4/15
年限平均法(直線(xiàn)法)每次折舊額相等
61、會(huì)計(jì)從業(yè)資格考試由各省級(jí)組織實(shí)施
62、會(huì)計(jì)科目按要素不同分為5大類(lèi)、按詳細(xì)程度分為總分類(lèi)科目和明細(xì)科目
63、會(huì)計(jì)上的資本專(zhuān)指投入資本
64、總分類(lèi)賬平時(shí)不用每日解除余額,只需每月結(jié)出余額
65、銀行存款日記賬和銀行對(duì)賬單核對(duì)屬于帳實(shí)核對(duì)66、生產(chǎn)車(chē)間固定資產(chǎn)維修費(fèi)用應(yīng)計(jì)入管理費(fèi)用
67、外來(lái)原始憑證遺失的,蓋公章的同時(shí),注明號(hào)碼、內(nèi)容、金額,經(jīng)辦單位會(huì)計(jì)機(jī)構(gòu)負(fù)責(zé)人、會(huì)計(jì)主管人員、單位負(fù)責(zé)人批準(zhǔn)
68、不計(jì)入存貨成本的有入庫(kù)后的保管費(fèi)用
69、會(huì)計(jì)核算的基本前提也包括貨幣計(jì)量。
70、債務(wù)要以資產(chǎn)或勞務(wù)償還
71、會(huì)計(jì)監(jiān)督職責(zé)沒(méi)有時(shí)效性;原始憑證審核有真實(shí)性、及時(shí)性;記賬憑證審核真實(shí)性;會(huì)計(jì)科目設(shè)置沒(méi)有時(shí)效性和真實(shí)性
72、累計(jì)憑證:多次記錄 匯總憑證:綜合填制
73、按用途分為序時(shí)、分類(lèi)、備查
74、月末結(jié)賬劃線(xiàn)可以用紅色墨水
75、會(huì)計(jì)賬簿基本內(nèi)容沒(méi)有封底
76、舊賬送到總賬會(huì)計(jì)保管
77、待處理財(cái)產(chǎn)損益未轉(zhuǎn)銷(xiāo)的借方余額表示尚待批準(zhǔn)處理的財(cái)產(chǎn)盤(pán)盈小于尚待批準(zhǔn)處理的財(cái)產(chǎn)盤(pán)虧和損毀
78、財(cái)產(chǎn)清查中自然消耗記管理費(fèi)用、自然災(zāi)害記營(yíng)業(yè)外支出
79、年終決算屬于定期全面清查;對(duì)外投資不用進(jìn)行全面清查
80、中期財(cái)務(wù)報(bào)表不包括所有者權(quán)益表,包括附注
81、取得交易性金融資產(chǎn),公允價(jià)值上升應(yīng)借記交易性金融資產(chǎn)
82、壞賬準(zhǔn)備—無(wú)法收回、收回可能性極小
計(jì)提壞賬準(zhǔn)備借記資產(chǎn)減值損失、貸記壞賬準(zhǔn)備
發(fā)生時(shí)借記壞賬準(zhǔn)備、貸記應(yīng)收賬款
83、主營(yíng)業(yè)務(wù)收入的銷(xiāo)售商品發(fā)生折舊時(shí)應(yīng)沖減主營(yíng)業(yè)務(wù)收入
84、盤(pán)盈的固定資產(chǎn)不計(jì)入營(yíng)業(yè)外收入
85、利潤(rùn)分配賬戶(hù)年末借方余額表示累計(jì)尚未彌補(bǔ)的虧損
86、對(duì)存貨采用實(shí)際成本法核算時(shí),應(yīng)設(shè)置原材料、在途物資
87、應(yīng)收賬款入賬價(jià)值包括銷(xiāo)項(xiàng)稅、代購(gòu)貨方墊付的包裝費(fèi)、運(yùn)雜費(fèi)
88、短期借款利息可以預(yù)提,也可在實(shí)際支付時(shí)直接計(jì)入當(dāng)期損益。
第四篇:心理學(xué)基礎(chǔ)筆記
第一章 現(xiàn)代心理學(xué)的研究與發(fā)展
1.心理學(xué)是研究人的行為與心理活動(dòng)規(guī)律的科學(xué)。
2.心理學(xué)研究的基本任務(wù)都是探索心理現(xiàn)象的事實(shí)、本質(zhì)、機(jī)制和規(guī)律。心理學(xué)研究的基本任務(wù)具體來(lái)說(shuō),包括描述和測(cè)量、解釋和說(shuō)明、預(yù)測(cè)和控制三個(gè)方面。
心理學(xué)的一個(gè)主要目的是給一個(gè)概念下操作定義,并且發(fā)展測(cè)量用的測(cè)驗(yàn)和技術(shù)。效度指一個(gè)測(cè)量工具測(cè)量到了所需要測(cè)量的東西
3.心理學(xué)的對(duì)象:個(gè)體行為與個(gè)體心理、個(gè)體心理與社會(huì)心理、個(gè)體意識(shí)與個(gè)體無(wú)意識(shí)。個(gè)體行為與個(gè)體心理:心理學(xué)研究人的行為規(guī)律,同時(shí)也要研究人的心理活動(dòng)規(guī)律,因?yàn)槿说男袨榕c人的心理活動(dòng)是密不可分的,對(duì)人的心理活動(dòng)的探知必須開(kāi)始于對(duì)人的外顯行為的觀(guān)察。
個(gè)體心理與社會(huì)心理:人是作為個(gè)體而存在的,個(gè)人所具有的心理現(xiàn)象稱(chēng)個(gè)體心理。
社會(huì)心理不是個(gè)體心理的簡(jiǎn)單相加,它是人們?cè)诠餐瞽h(huán)境中產(chǎn)生的,是社會(huì)群體內(nèi)個(gè)體心理的典型表現(xiàn)。
個(gè)體意識(shí)與個(gè)體無(wú)意識(shí)
意識(shí)是人類(lèi)獨(dú)有的一種高級(jí)水平的心理活動(dòng),一般被定義為外部和內(nèi)部刺激的覺(jué)知。
心理學(xué)的學(xué)科性質(zhì):學(xué)理學(xué)是一門(mén)中間科學(xué)
心理學(xué)是一門(mén)既具有自然學(xué)科性質(zhì)又具有社會(huì)學(xué)科性質(zhì)的中間或交叉學(xué)科,也稱(chēng)之為邊緣學(xué)科。
4.心理學(xué)的流派:
① 1879年,德國(guó)著名心理學(xué)家馮特在德國(guó)萊比錫大學(xué)創(chuàng)建了世界上第一個(gè)心理學(xué)實(shí)驗(yàn)
室,使心理學(xué)從哲學(xué)中脫離出來(lái),成為一門(mén)獨(dú)立的科學(xué),這標(biāo)志著科學(xué)心理學(xué)的誕生。他被稱(chēng)為心理學(xué)之父。
② ⑴構(gòu)造主義 奠基人:馮特⑵機(jī)能主義 美國(guó)著名心理學(xué)家詹姆斯在20世紀(jì)初創(chuàng)
立的⑶格式塔心理學(xué) 或叫完型心理學(xué),主要代表人物有韋特海默、苛勒和考夫卡⑷行為主義 美國(guó) 華生 后期代表人物:斯金納
⑸精神分析學(xué)派 奧地利 弗洛伊德
⑹認(rèn)知心理學(xué) 美國(guó) 奈瑟西蒙
認(rèn)知是指人在認(rèn)識(shí)事物的過(guò)程中所進(jìn)行的各種心理活動(dòng),主要包括知覺(jué)、注意、記憶、言語(yǔ)、思維等。
⑺人本主義心理學(xué) 美國(guó) 馬斯洛、羅杰斯 20世紀(jì)50年代創(chuàng)立。因?yàn)槿吮局髁x心理學(xué)興起的年代較精神分析學(xué)說(shuō)與行為主義晚,故而稱(chēng)為現(xiàn)代心理學(xué)上的第三勢(shì)力
5.心理學(xué)的未來(lái)發(fā)展:
(一)適應(yīng)實(shí)踐需要,繼續(xù)分化
(二)提高理論水平,高度整合(三)樹(shù)立大心理學(xué)觀(guān)
(四)開(kāi)展心理學(xué)本土化的研究
(五)心理學(xué)研究取向的多元與整合現(xiàn)代心理學(xué)主要有五種研究取向,即神經(jīng)生物學(xué)、行為主義、精神分析、人本
主義心理學(xué)和認(rèn)知心理學(xué)。
(六)心理教育的興起
第二章 腦與心理
1.人的心理實(shí)質(zhì):人腦對(duì)客觀(guān)現(xiàn)實(shí)的主觀(guān)的能動(dòng)的反映。心理是神經(jīng)系統(tǒng)的功能,腦是心
理活動(dòng)的主要器官。
2.周?chē)窠?jīng)系統(tǒng)包括脊神經(jīng)、腦神經(jīng)和植物神經(jīng)
植物神經(jīng)系統(tǒng)分成交感神經(jīng)系統(tǒng)與副交感神經(jīng)系統(tǒng)兩部分。交感神經(jīng)在喚醒時(shí)活動(dòng),副交感神經(jīng)在安靜時(shí)活動(dòng)。
3.神經(jīng)系統(tǒng)包括周?chē)窠?jīng)系統(tǒng)和中樞神經(jīng)系統(tǒng)。周?chē)窠?jīng)系統(tǒng)包括脊神經(jīng)、腦神經(jīng)、植物
性神經(jīng)(下丘腦是其主要管制中樞)三部分。中樞神經(jīng)系統(tǒng)由脊髓和腦(大腦、小腦、腦干、間腦和邊緣系統(tǒng))組成。
4.大腦構(gòu)成:大腦分為左、右兩個(gè)半球,由大腦皮層及其覆蓋著的邊緣系統(tǒng)和基底神經(jīng)節(jié)
組成。
大腦約有140億個(gè)神經(jīng)元,其數(shù)量不存在個(gè)體差異神經(jīng)膠質(zhì)細(xì)胞:數(shù)量存在個(gè)體差異
5.大腦分區(qū):左半球:運(yùn)動(dòng)性言語(yǔ)中樞—額葉的后下部-布洛卡區(qū);聽(tīng)覺(jué)性言語(yǔ)中樞—顳
葉的后下部-溫爾尼克區(qū)。右半球:軀體感覺(jué)中樞--頂葉;視覺(jué)中樞—枕葉。
額葉(語(yǔ)言智慧運(yùn)動(dòng)中樞)頂葉(軀體感覺(jué)中樞)枕葉(視覺(jué)中樞)顳葉(聽(tīng)覺(jué)中樞)
6.腦與性別的差異:男女在成熟時(shí)間、腦結(jié)構(gòu)、智力方面、語(yǔ)言方面差異
7.腦潛能開(kāi)發(fā)的途徑:
(一)保護(hù)和利用大腦:①鍛煉與大腦 ②睡眠與大腦 ③營(yíng)養(yǎng)與大腦 ④煙酒與大腦 ⑤疾
病與大腦 ⑥學(xué)習(xí)、記憶與大腦
(二)腦潛能的開(kāi)發(fā):⑴大腦潛能的發(fā)揮有無(wú)限的空間
⑵挖掘大腦潛力:①敞開(kāi)心靈的大門(mén) ②讓心靈沐浴愛(ài)的陽(yáng)光 ③讓
學(xué)習(xí)為大腦持續(xù)充電,使大腦不斷獲得有益的刺激 ④利用多種方法和手段開(kāi)發(fā)大腦潛能
第三章 行為動(dòng)力
人類(lèi)行為一切動(dòng)力都源起于需要
1.需要是有機(jī)體感到某種缺乏而力求獲得滿(mǎn)足的心理傾向,它是有機(jī)體自身和外部生活條
件的要求在頭腦中的反映。
2.需要的特征:對(duì)象性、動(dòng)力性、社會(huì)性
3.需要的種類(lèi):生物需要和社會(huì)需要(按需要起源的角度)生物需要是指保持和維持有機(jī)
體生命和延續(xù)種族的需要
物質(zhì)需要與精神需要(按所指向的對(duì)象的角度)
4.馬斯洛的需要層次論七個(gè)基本層次:前四個(gè)是(基本需要)后三個(gè)是(成長(zhǎng)需要)
生理需要:是指維持生存及延續(xù)種族的需要
安全需要:是指希求受保護(hù)與免遭威脅從而獲得安全感的需要。
歸屬與愛(ài)的需要:是指每個(gè)人都有被他人或群體接納、愛(ài)護(hù)、關(guān)注、鼓勵(lì)及其支持的需要。
尊重的需要:是在生理、安全、歸屬和愛(ài)的需要得到基本滿(mǎn)足后產(chǎn)生的對(duì)自己社會(huì)價(jià)值追求的需要
求知的需要:又稱(chēng)認(rèn)知和理解的需要,是指?jìng)€(gè)人對(duì)自身和周?chē)澜绲奶剿鳌⒗斫饧敖鉀Q疑難問(wèn)題的需要。
審美的需要:是指對(duì)稱(chēng)、秩序、完整結(jié)構(gòu),以及行為完美的需要
自我實(shí)現(xiàn)的需要:是指?jìng)€(gè)人渴望自己的潛能能夠得到充分的發(fā)揮,希望自己越來(lái)越來(lái)成為所希望的人物,完成與自己能力相對(duì)稱(chēng)的一切活動(dòng)。
關(guān)系:1.出現(xiàn)的順序由低到高,只有當(dāng)較低一層次的需要得到基本滿(mǎn)足之后,高一層次的需要才會(huì)產(chǎn)生;
2.各層次需要在全人口中所占比例由大到小;
3.七層次可概括為兩種水平:基本需要、成長(zhǎng)需要。
5.動(dòng)機(jī)是引起、維持個(gè)體活動(dòng)并使活動(dòng)朝某一目標(biāo)進(jìn)行的內(nèi)在動(dòng)力。
動(dòng)機(jī)產(chǎn)生的條件:它是在需要的基礎(chǔ)上產(chǎn)生的。
6.誘因是指所有能引起個(gè)體動(dòng)機(jī)的刺激或情境。正誘因:驅(qū)使個(gè)體去趨向接近目標(biāo)者負(fù)誘因:驅(qū)使個(gè)體逃離或回避目標(biāo)者
誘因期待,也能使需要轉(zhuǎn)化為動(dòng)機(jī)。期待是個(gè)體對(duì)所要達(dá)到目標(biāo)的主觀(guān)估計(jì)。動(dòng)機(jī)是行為活動(dòng)的內(nèi)在原因
7.動(dòng)機(jī)三個(gè)基本功能:激活功能、引導(dǎo)功能、維持和調(diào)整功能。
8.動(dòng)機(jī)沖突:雙趨動(dòng)機(jī)沖突(兩個(gè)有同等的吸引力)、雙避動(dòng)機(jī)沖突(同時(shí)面臨兩個(gè)具有
威脅的的目標(biāo)都避開(kāi))、趨避動(dòng)機(jī)沖突(對(duì)同一目標(biāo),同時(shí)產(chǎn)生的既好而趨之)
動(dòng)機(jī)沖突與目標(biāo)確立是同步進(jìn)行的,目標(biāo)確立在動(dòng)機(jī)沖突的最后,目標(biāo)確立是動(dòng)機(jī)沖突的結(jié)果。
9.動(dòng)機(jī)與行為效果呈倒U型曲線(xiàn)關(guān)系
10.動(dòng)機(jī)理論(有5個(gè)方面理論):①?gòu)?qiáng)化動(dòng)機(jī)理論--種類(lèi):
外部強(qiáng)化和內(nèi)部(自我)強(qiáng)化
直接強(qiáng)化、間接強(qiáng)化(替代強(qiáng)化)和自我強(qiáng)化。
強(qiáng)化是指凡是能增加反應(yīng)概率的刺激或刺激情景均可稱(chēng)為強(qiáng)化
成就動(dòng)機(jī)的概念是默瑞于20世紀(jì)30年代提出的“成就需要”的基礎(chǔ)上發(fā)展起來(lái)的 ②成就動(dòng)機(jī)理論—麥克蘭德發(fā)現(xiàn),成就動(dòng)機(jī)高的人,喜歡選擇難度較大,有一定風(fēng)險(xiǎn)的開(kāi)創(chuàng)性工作,喜歡對(duì)問(wèn)題承擔(dān)自己的責(zé)任,能從完成任務(wù)中獲得滿(mǎn)足感;成就動(dòng)機(jī)低的人,傾向于選擇風(fēng)險(xiǎn)較小、獨(dú)立決策少的任務(wù)或職業(yè)。
阿特金森提出成就動(dòng)機(jī)模型
阿特金森講個(gè)體的成就動(dòng)機(jī)分為:力求成功的動(dòng)機(jī)--力求成功者、避免失敗的動(dòng)機(jī)—避免失敗者。成功概率在50%的任務(wù)是最能調(diào)動(dòng)力求成功者的積極性。力求避免失敗者傾向于選擇大量非常容易或非常困難的任務(wù)。
在教育活動(dòng)中,要調(diào)動(dòng)力求成功者的積極性,就應(yīng)當(dāng)提供新穎且有一定難度的任務(wù),安排競(jìng)爭(zhēng)的情境,嚴(yán)格評(píng)定分?jǐn)?shù)等方式來(lái)激起他們的學(xué)習(xí)動(dòng)機(jī)。對(duì)于力求避免失敗者,要安排競(jìng)爭(zhēng)少或競(jìng)爭(zhēng)少或競(jìng)爭(zhēng)性不強(qiáng)的環(huán)境
對(duì)學(xué)生除了盡可能讓他們避免失敗,還應(yīng)立足于增加他們力求成功的成分,使他們不以避免失敗為滿(mǎn)足,而應(yīng)以獲取成功為快樂(lè)。
③期望理論
④歸因理論—韋納-三個(gè)維度:內(nèi)部歸因和外部歸因、穩(wěn)定性歸因和非穩(wěn)定性歸因、可控歸因和不可控歸因。六個(gè)因素:能力高低(內(nèi)在,穩(wěn)定,不可控)、努力程度、任務(wù)難易、運(yùn)氣(機(jī)遇)好壞、身心狀態(tài)、外界環(huán)境等。
歸因理論在實(shí)際應(yīng)用中的價(jià)值主要有以下三個(gè)方面
1.了解心理與行為的因果關(guān)系2.根據(jù)行為者當(dāng)前的歸因傾向預(yù)測(cè)他以后的動(dòng)機(jī)3.歸因訓(xùn)練有助于提高自我認(rèn)識(shí)
習(xí)得性無(wú)助感的概念最初由美國(guó)學(xué)者塞利格曼等人提出。習(xí)得性無(wú)助感產(chǎn)生后有三方面表現(xiàn):1.動(dòng)機(jī)降低2.認(rèn)知出現(xiàn)障礙3.情緒失調(diào)
2自我效能感是指人對(duì)自己能否成功地進(jìn)行某一成就行為的主觀(guān)判斷,它與自我能力感是同義語(yǔ)。
在班杜拉看來(lái),人的行為是受兩個(gè)因素影響或決定:1.行為的結(jié)果因素即強(qiáng)化
2.行為的先行因素即期待
⑤自我效能感理論—影響因素主要有兩個(gè):個(gè)體成敗的經(jīng)驗(yàn)、個(gè)體的歸因方式。
11.學(xué)習(xí)動(dòng)機(jī)的激發(fā)(重點(diǎn))(92):①設(shè)置合理目標(biāo)②有效利用反饋與評(píng)價(jià)③增加學(xué)習(xí)任務(wù)的趣味性④合理運(yùn)用獎(jiǎng)勵(lì)與懲罰⑤科學(xué)利用競(jìng)爭(zhēng)與合作⑥向?qū)W生表達(dá)明確可行的期待⑦增加自我效能感⑧進(jìn)行歸因訓(xùn)練。
第四章 認(rèn)知過(guò)程
1.注意是心理活動(dòng)對(duì)一定對(duì)象的指向和集中。指向性與集中性是注意的兩個(gè)特征
2.注意分為無(wú)意注意(沒(méi)有預(yù)定目的,也無(wú)需作意志努力的)、有意注意(有預(yù)定目的,需要做一定的意志努力的)、有意后注意(有無(wú)預(yù)定目的,需不需要意志努力)
3.注意特征:穩(wěn)定性、廣度、分配、轉(zhuǎn)移
4.注意的機(jī)制:過(guò)濾器模型(是由英國(guó)心理學(xué)家布魯?shù)卤咎靥岢觯⑺p模型(特瑞斯曼)
5.感覺(jué)是人腦對(duì)直接作用于感覺(jué)器官的客觀(guān)事物的個(gè)別屬性的反應(yīng)。一切較高級(jí)、較復(fù)雜的心理現(xiàn)象都是在感覺(jué)的基礎(chǔ)上產(chǎn)生的。感覺(jué)的測(cè)量
1.感受性是對(duì)刺激的感受能力。絕對(duì)感受性是感覺(jué)出最小刺激量的能力。絕對(duì)感覺(jué)閾限是剛剛能引起感覺(jué)的最小刺激量。絕對(duì)感受性與絕對(duì)感覺(jué)閾限數(shù)值上反比關(guān)系,即E=1/R
1.差別感受性就是剛剛能察覺(jué)出同類(lèi)刺激最小差別的感覺(jué)能力。差別感覺(jué)閾限指剛剛能感覺(jué)出的同個(gè)同類(lèi)刺激的最小差別。
差別感受性與差別感覺(jué)閾限反比關(guān)系。刺激增加量△I,原刺激量I,K=△I/I,K為常數(shù),韋伯常數(shù)。
6.感覺(jué)的基本規(guī)律及其應(yīng)用:①后像—注意發(fā)光燈泡幾秒,再閉眼,就會(huì)感到一個(gè)同燈泡
差不多的光源出現(xiàn)在黑暗背景(正后像);再將視線(xiàn)轉(zhuǎn)向白背景,感到明亮背景上有黑色斑點(diǎn)(負(fù)后像)。②感覺(jué)適應(yīng)—白天看完電影走到大街時(shí)外面明亮的陽(yáng)光次的睜不開(kāi)眼,過(guò)會(huì)就適應(yīng)了(明適應(yīng));從光線(xiàn)充足的大街進(jìn)入電影院時(shí),起初什么也看不清,過(guò)會(huì)就可以看清物體輪廓(暗適應(yīng))。③感覺(jué)的相互作用:(同一感覺(jué)器官)對(duì)比--灰色對(duì)象在紅色背景下,看起來(lái)帶有青綠色;融合-(不同感受器官)感覺(jué)掩蔽現(xiàn)象。聯(lián)覺(jué)是由一種感受器官受到刺激而產(chǎn)生一種特定感覺(jué)的同時(shí),又產(chǎn)生另一種不同感覺(jué)現(xiàn)象。
7.知覺(jué)是人腦對(duì)直接作用于感官的客觀(guān)事物的整體屬性的反映。
8.知覺(jué)特性:知覺(jué)的整體性、知覺(jué)的選擇性、知覺(jué)的理解性、知覺(jué)的恒常性
9.知覺(jué)類(lèi)型(p125)
10.記憶的三級(jí)加工模型:感覺(jué)記憶、短時(shí)記憶、長(zhǎng)時(shí)記憶
感覺(jué)記憶又叫瞬時(shí)記憶,外界信息首先經(jīng)過(guò)感覺(jué)器官進(jìn)入感覺(jué)記憶,信息按照感覺(jué)輸入的原樣在這里登記下來(lái),所以感覺(jué)記憶又叫感覺(jué)登記。視覺(jué)感覺(jué)記憶的作用時(shí)間約在0.5秒以?xún)?nèi)。聲像記憶的時(shí)間可能保持較長(zhǎng)時(shí)間達(dá)4秒左右
短時(shí)記憶是指記憶信息保持的時(shí)間在一分鐘以?xún)?nèi),一般約15~30秒。短時(shí)記憶的容量有限,大體上是7+-2個(gè)組塊
短時(shí)記憶主要以聽(tīng)覺(jué)代碼方式編碼,視覺(jué)代碼、語(yǔ)義代碼和AVL單元聽(tīng)覺(jué)的,口語(yǔ)的、書(shū)面語(yǔ)言的代碼聯(lián)合起來(lái)稱(chēng)為AVL單元,也是短時(shí)記憶的編碼方式。
長(zhǎng)時(shí)記憶是指存儲(chǔ)時(shí)間在一分鐘以上的記憶。長(zhǎng)時(shí)記憶的方式是意義編碼
11.遺忘是指經(jīng)歷過(guò)的事物不能重現(xiàn)和再認(rèn)或者是錯(cuò)誤地重現(xiàn)和再認(rèn)的現(xiàn)象。遺忘規(guī)律:遺
忘的進(jìn)程先快后慢。
12.影像遺忘的因素主要有:①遺忘進(jìn)程受時(shí)間因素的制約。②識(shí)記材料很重要時(shí),一般不
容易遺忘。③識(shí)記材料的性質(zhì)對(duì)遺忘進(jìn)程有影響。有意義材料比無(wú)意義材料遺忘的慢;形象材料比抽象材料遺忘的慢;熟練的動(dòng)作技能遺忘的最慢。④識(shí)記材料的數(shù)量和學(xué)習(xí)程度對(duì)識(shí)記效果都有很大影響。⑤識(shí)記材料的系列位置效應(yīng)對(duì)識(shí)記也有重要的影響。(前攝抑制、倒攝抑制)
13.增進(jìn)記憶的方法:直觀(guān)形象法、圖表法、諧音記憶法、歸類(lèi)比較法、聯(lián)想法、歌訣法。
14.思維是對(duì)客觀(guān)事物間接的、概括的反映。人的思維過(guò)程有兩個(gè)特征:間接性、概括性
15.思維的過(guò)程:①分析和綜合②比較③抽象和概括(抽象是概括的基礎(chǔ))④具體化(是重
點(diǎn))--具體化是將通過(guò)抽象概括而獲得的概念、原理、理論返回到實(shí)際中去,以加深、拓寬對(duì)各種事物的認(rèn)識(shí)。(在教學(xué)中:1.引證具體事例來(lái)說(shuō)明理論問(wèn)題2.應(yīng)用一般原理來(lái)解決某個(gè)具體問(wèn)題)
16.(p133)思維的類(lèi)型:根據(jù)物與思維的形態(tài)分:動(dòng)作思維、形象思維、抽象思維
根據(jù)思維是否具有或遵循明確的邏輯形式和邏輯規(guī)則分:形式邏輯思維、非形式邏輯思維
根據(jù)思維過(guò)程的指向性不同分:集中思維、分散思維
17.問(wèn)題解決過(guò)程:①提出問(wèn)題②分析問(wèn)題③提出假設(shè)④檢驗(yàn)假設(shè)
18.影響解決問(wèn)題的因素:①遷移的作用
②原型啟發(fā)
③定勢(shì)的作用(是重點(diǎn))—定式是指一種心理準(zhǔn)備狀態(tài),它影響
著解決問(wèn)題時(shí)的傾向性。它有時(shí)有助于問(wèn)題解決有時(shí)妨礙。
④情緒與動(dòng)機(jī)
19.問(wèn)題解決策略:算法、啟發(fā)法則
第五章 情緒
1.情緒是人類(lèi)對(duì)于各種認(rèn)知對(duì)象的一種內(nèi)心感受或態(tài)度。
2.我國(guó)心理學(xué)家黃希庭 情緒分為五類(lèi):情調(diào)-伴隨感覺(jué)而產(chǎn)生的情感、激情-一種持續(xù)時(shí)
間斷、表現(xiàn)劇烈、失去自我控制力的情緒、心境-一種比較微弱、持久具有渲染性的情緒、應(yīng)激-出乎意料的緊張情況下所引起的情緒狀態(tài)、情操-人對(duì)具有一定文化價(jià)值的東西所懷有的復(fù)雜情感。
3.情緒性是指一種未分化的、一般的情緒喚醒狀態(tài),也常常把它作為恐懼來(lái)看待。
一般都認(rèn)同情商,EQ的主要因素有五個(gè)部分:
1自我意識(shí) 2自我激勵(lì) 3情緒失控 4人際溝通 5挫折承受能力
4.健康情緒的必要條件:①正確的人生追求②寬廣的胸襟③理性地適應(yīng)生活④尋找身邊的歡樂(lè)
5.不良情緒的控制(是重點(diǎn))(p171)
抑郁癥—是一種心理綜合癥。包括三方面心理障礙:①心境障礙②思維障礙③軀體功能障礙。抑郁癥不是單一的情緒狀態(tài)。主要是痛苦,其次是厭惡、輕蔑和憤怒。后三者結(jié)合構(gòu)成敵意。
第六章 智力與創(chuàng)造力
2.智力不僅是包含學(xué)習(xí)能力、問(wèn)題解決能力和社會(huì)適應(yīng)能力的一種綜合能力,而且情緒在智力中起著非常重要的作用,情緒智力反應(yīng)了個(gè)體對(duì)情緒的有效運(yùn)用和思考。
3.智力的理論:①因素理論--二因素論:一般因素G和特殊因素S。群因素論:瑟斯頓 七
種平等的基本心理能力:語(yǔ)詞理解V、語(yǔ)詞流暢W、計(jì)算N、空間直覺(jué)S、記憶M、知覺(jué)速度P、推理R。流體智力和晶體智力理論:卡特爾 隨年齡增長(zhǎng),15歲之前兩智力都快速發(fā)展,晶體智力達(dá)到最高點(diǎn)的時(shí)間比流體的晚,流體在40歲以前就開(kāi)始下降,晶
體在年老時(shí)還保持較高水平。②結(jié)構(gòu)理論:層次結(jié)構(gòu)理論-弗農(nóng)、智力三維結(jié)構(gòu)理論-吉爾福特③信息加工理論:多元智力理論-加德納 七種智力:語(yǔ)言智力、邏輯-數(shù)學(xué)智力、視覺(jué)-空間智力、音樂(lè)智力、身體-動(dòng)覺(jué)智力、人際智力、自知智力。三元智力理論-滕博格 三部分控制的理論:成分智力、背景智力、經(jīng)驗(yàn)智力。
4.常用個(gè)體智力測(cè)驗(yàn):①斯坦福-比納量表 智商是智力年齡與識(shí)記年齡之比,也稱(chēng)比率智
商,IQ=MA/CA*100②韋克斯勒智力量表 離差智商=100+15Z,其中Z=(X-X)/S
5.創(chuàng)造力-發(fā)散思維、集中思維。對(duì)發(fā)散思維的質(zhì)量從流暢性、變通性、獨(dú)特性三個(gè)方面
衡量。
6.培養(yǎng)創(chuàng)造力的途徑與方法:①創(chuàng)設(shè)有利于個(gè)體創(chuàng)造力發(fā)展的環(huán)境(社會(huì)文化、家庭、學(xué)
校)②實(shí)施教育創(chuàng)新,開(kāi)展創(chuàng)新教育。(改革評(píng)價(jià)機(jī)制、改革現(xiàn)有課程、重視健康人格的培養(yǎng)、培養(yǎng)非邏輯思維能力)③開(kāi)發(fā)個(gè)體創(chuàng)造力的具體方法:智力激勵(lì)法(腦風(fēng)暴法或腦轟炸法)、信息交合法、聯(lián)想法、綜攝法
第七章 人格
1.人格是個(gè)人在各種交互作用過(guò)程中形成的內(nèi)在動(dòng)力組織和相應(yīng)行為模式的統(tǒng)一體。
2.人格的形成:
一、遺傳的作用(①艾森克理論②氣質(zhì):外向性與神經(jīng)性在人身上形成四
種典型組合:外向-穩(wěn)定、外向-不穩(wěn)定、內(nèi)向-穩(wěn)定、內(nèi)向-不穩(wěn)定,分別對(duì)應(yīng)四種古希臘體液假說(shuō):多血質(zhì)、膽汁質(zhì)、黏液質(zhì)、抑郁質(zhì)③遺傳對(duì)人格的影響:雙生子研究,說(shuō)明,同卵雙生子的人格特點(diǎn)都比異卵雙生子的更為接近,進(jìn)一步證實(shí)了遺傳對(duì)人格的形成作用。)
二、環(huán)境的作用:產(chǎn)前環(huán)境、出生過(guò)程,家庭,學(xué)校,社會(huì)階層,社會(huì)文化
3.人格測(cè)驗(yàn):自陳式測(cè)驗(yàn)(234)
第九章 學(xué)習(xí)與人生
1.學(xué)習(xí)是指學(xué)習(xí)者因經(jīng)驗(yàn)而引起的行為、能力和心理傾向的比較持久的變化。
2.學(xué)習(xí)的分類(lèi):依據(jù)學(xué)習(xí)目標(biāo),布魯姆講起分為認(rèn)知學(xué)習(xí)、情感學(xué)習(xí)和動(dòng)作技能三大領(lǐng)域。
3.行為主義的學(xué)習(xí)理論:①斯金納的操作性條件作用學(xué)習(xí)觀(guān):研究不同強(qiáng)化在塑造和改變
行為中的作用②班杜拉的社會(huì)學(xué)習(xí)觀(guān):強(qiáng)調(diào)“觀(guān)察學(xué)習(xí)”和“替代性強(qiáng)化”,觀(guān)察是最基本的學(xué)習(xí)過(guò)程
4.認(rèn)知主義的學(xué)習(xí)觀(guān):布魯納的認(rèn)知發(fā)現(xiàn)學(xué)習(xí)觀(guān):基本結(jié)構(gòu)就是某一學(xué)科領(lǐng)域的基本觀(guān)念,類(lèi)似于我們平時(shí)所說(shuō)的“基本概念、基本知識(shí)、基本原理”三基。
5.遷移的種類(lèi):①根據(jù)影響效果,分正遷移、負(fù)遷移②根據(jù)影響方向,分順向遷移、逆向
遷移③根據(jù)發(fā)生的水平,分橫向遷移、縱向遷移④根據(jù)遷移的內(nèi)容,分一般遷移、特殊遷移
6.對(duì)遷移現(xiàn)象的解釋?zhuān)缙诘睦碚撝饕行问接?xùn)練說(shuō)、相同要素說(shuō)、概括說(shuō)、關(guān)系說(shuō)。
7.促進(jìn)遷移的教學(xué):①改善心智的功能②傳授基本知識(shí)③有效的指導(dǎo)④提高遷移的意識(shí)性
⑤合理安排教學(xué)內(nèi)容⑥設(shè)計(jì)情境性教學(xué)
8.認(rèn)知風(fēng)格是個(gè)體組織和加工信息時(shí)所習(xí)慣采用的不同方式。
第十章 教學(xué)心理
1.了解學(xué)習(xí)準(zhǔn)備:(310)
2.選擇教學(xué)策略:提供先行組織者:先行組織者是指在上課前為學(xué)生提供有關(guān)本課學(xué)習(xí)內(nèi)
容的從總體上組織起來(lái)的引導(dǎo)性材料。奧蘇伯爾
3.說(shuō)明性組織者:以概括性語(yǔ)言對(duì)要學(xué)習(xí)的新知識(shí)進(jìn)行介紹的組織者。
4.比較性組織者:對(duì)新舊知識(shí)進(jìn)行類(lèi)比的組織者。
第五篇:心理學(xué)基礎(chǔ)筆記
第一章 現(xiàn)代心理學(xué)的研究與發(fā)展
1.心理學(xué)是研究人的行為與心理活動(dòng)規(guī)律的科學(xué)。
2.心理學(xué)研究的基本任務(wù)都是探索心理現(xiàn)象的事實(shí)、本質(zhì)、機(jī)制和規(guī)律。心理學(xué)研究的基本任務(wù)具體來(lái)說(shuō),包括描述和測(cè)量、解釋和說(shuō)明、預(yù)測(cè)和控制三個(gè)方面。
心理學(xué)的一個(gè)主要目的是給一個(gè)概念下操作定義,并且發(fā)展測(cè)量用的測(cè)驗(yàn)和技術(shù)。效度指一個(gè)測(cè)量工具測(cè)量到了所需要測(cè)量的東西
3.心理學(xué)的對(duì)象:個(gè)體行為與個(gè)體心理、個(gè)體心理與社會(huì)心理、個(gè)體意識(shí)與個(gè)體無(wú)意識(shí)。個(gè)體行為與個(gè)體心理:心理學(xué)研究人的行為規(guī)律,同時(shí)也要研究人的心理活動(dòng)規(guī)律,因?yàn)槿说男袨榕c人的心理活動(dòng)是密不可分的,對(duì)人的心理活動(dòng)的探知必須開(kāi)始于對(duì)人的外顯行為的觀(guān)察。
個(gè)體心理與社會(huì)心理:人是作為個(gè)體而存在的,個(gè)人所具有的心理現(xiàn)象稱(chēng)個(gè)體心理。
社會(huì)心理不是個(gè)體心理的簡(jiǎn)單相加,它是人們?cè)诠餐瞽h(huán)境中產(chǎn)生的,是社會(huì)群體內(nèi)個(gè)體心理的典型表現(xiàn)。
個(gè)體意識(shí)與個(gè)體無(wú)意識(shí)
意識(shí)是人類(lèi)獨(dú)有的一種高級(jí)水平的心理活動(dòng),一般被定義為外部和內(nèi)部刺激的覺(jué)知。
心理學(xué)的學(xué)科性質(zhì):學(xué)理學(xué)是一門(mén)中間科學(xué)
心理學(xué)是一門(mén)既具有自然學(xué)科性質(zhì)又具有社會(huì)學(xué)科性質(zhì)的中間或交叉學(xué)科,也稱(chēng)之為邊緣學(xué)科。
4.心理學(xué)的流派:
① 1879年,德國(guó)著名心理學(xué)家馮特在德國(guó)萊比錫大學(xué)創(chuàng)建了世界上第一個(gè)心理學(xué)實(shí)驗(yàn)
室,使心理學(xué)從哲學(xué)中脫離出來(lái),成為一門(mén)獨(dú)立的科學(xué),這標(biāo)志著科學(xué)心理學(xué)的誕生。他被稱(chēng)為心理學(xué)之父。
② ⑴構(gòu)造主義 奠基人:馮特⑵機(jī)能主義 美國(guó)著名心理學(xué)家詹姆斯在20世紀(jì)初創(chuàng)
立的⑶格式塔心理學(xué) 或叫完型心理學(xué),主要代表人物有韋特海默、苛勒和考夫卡⑷行為主義 美國(guó) 華生 后期代表人物:斯金納
⑸精神分析學(xué)派 奧地利 弗洛伊德
⑹認(rèn)知心理學(xué) 美國(guó) 奈瑟西蒙
認(rèn)知是指人在認(rèn)識(shí)事物的過(guò)程中所進(jìn)行的各種心理活動(dòng),主要包括知覺(jué)、注意、記憶、言語(yǔ)、思維等。
⑺人本主義心理學(xué) 美國(guó) 馬斯洛、羅杰斯 20世紀(jì)50年代創(chuàng)立。因?yàn)槿吮局髁x心理學(xué)興起的年代較精神分析學(xué)說(shuō)與行為主義晚,故而稱(chēng)為現(xiàn)代心理學(xué)上的第三勢(shì)力
5.心理學(xué)的未來(lái)發(fā)展:
(一)適應(yīng)實(shí)踐需要,繼續(xù)分化
(二)提高理論水平,高度整合(三)樹(shù)立大心理學(xué)觀(guān)
(四)開(kāi)展心理學(xué)本土化的研究
(五)心理學(xué)研究取向的多元與整合現(xiàn)代心理學(xué)主要有五種研究取向,即神經(jīng)生物學(xué)、行為主義、精神分析、人本
主義心理學(xué)和認(rèn)知心理學(xué)。
(六)心理教育的興起
第二章 腦與心理
1.人的心理實(shí)質(zhì):人腦對(duì)客觀(guān)現(xiàn)實(shí)的主觀(guān)的能動(dòng)的反映。心理是神經(jīng)系統(tǒng)的功能,腦是心
理活動(dòng)的主要器官。
2.腦潛能開(kāi)發(fā)的途徑:
(一)保護(hù)和利用大腦:①鍛煉與大腦 ②睡眠與大腦 ③營(yíng)養(yǎng)與大腦 ④煙酒與大腦 ⑤疾
病與大腦 ⑥學(xué)習(xí)、記憶與大腦
(二)腦潛能的開(kāi)發(fā):⑴大腦潛能的發(fā)揮有無(wú)限的空間
⑵挖掘大腦潛力:①敞開(kāi)心靈的大門(mén) ②讓心靈沐浴愛(ài)的陽(yáng)光 ③讓
學(xué)習(xí)為大腦持續(xù)充電,使大腦不斷獲得有益的刺激 ④利用多種方法和手段開(kāi)發(fā)大腦潛能
第三章 行為動(dòng)力
人類(lèi)行為一切動(dòng)力都源起于需要
1.需要是有機(jī)體感到某種缺乏而力求獲得滿(mǎn)足的心理傾向,它是有機(jī)體自身和外部生活條
件的要求在頭腦中的反映。
2.需要的特征:對(duì)象性、動(dòng)力性、社會(huì)性
3.需要的種類(lèi):生物需要和社會(huì)需要(按需要起源的角度)生物需要是指保持和維持有機(jī)
體生命和延續(xù)種族的需要
物質(zhì)需要與精神需要(按所指向的對(duì)象的角度)
4.馬斯洛的需要層次論七個(gè)基本層次:前四個(gè)是(基本需要)后三個(gè)是(成長(zhǎng)需要)
生理需要:是指維持生存及延續(xù)種族的需要
安全需要:是指希求受保護(hù)與免遭威脅從而獲得安全感的需要。
歸屬與愛(ài)的需要:是指每個(gè)人都有被他人或群體接納、愛(ài)護(hù)、關(guān)注、鼓勵(lì)及其支持的需要。
尊重的需要:是在生理、安全、歸屬和愛(ài)的需要得到基本滿(mǎn)足后產(chǎn)生的對(duì)自己社會(huì)價(jià)值追求的需要
求知的需要:又稱(chēng)認(rèn)知和理解的需要,是指?jìng)€(gè)人對(duì)自身和周?chē)澜绲奶剿鳌⒗斫饧敖鉀Q疑難問(wèn)題的需要。
審美的需要:是指對(duì)稱(chēng)、秩序、完整結(jié)構(gòu),以及行為完美的需要
自我實(shí)現(xiàn)的需要:是指?jìng)€(gè)人渴望自己的潛能能夠得到充分的發(fā)揮,希望自己越來(lái)越來(lái)成為所希望的人物,完成與自己能力相對(duì)稱(chēng)的一切活動(dòng)。
關(guān)系:1.出現(xiàn)的順序由低到高,只有當(dāng)較低一層次的需要得到基本滿(mǎn)足之后,高一層次的需要才會(huì)產(chǎn)生;
2.各層次需要在全人口中所占比例由大到小;
3.七層次可概括為兩種水平:基本需要、成長(zhǎng)需要。
5.動(dòng)機(jī)是引起、維持個(gè)體活動(dòng)并使活動(dòng)朝某一目標(biāo)進(jìn)行的內(nèi)在動(dòng)力。
動(dòng)機(jī)產(chǎn)生的條件:它是在需要的基礎(chǔ)上產(chǎn)生的。
6.誘因是指所有能引起個(gè)體動(dòng)機(jī)的刺激或情境。正誘因:驅(qū)使個(gè)體去趨向接近目標(biāo)者負(fù)誘因:驅(qū)使個(gè)體逃離或回避目標(biāo)者
誘因期待,也能使需要轉(zhuǎn)化為動(dòng)機(jī)。期待是個(gè)體對(duì)所要達(dá)到目標(biāo)的主觀(guān)估計(jì)。動(dòng)機(jī)是行為活動(dòng)的內(nèi)在原因
7.動(dòng)機(jī)三個(gè)基本功能:激活功能、引導(dǎo)功能、維持和調(diào)整功能。
8.動(dòng)機(jī)沖突:雙趨動(dòng)機(jī)沖突(兩個(gè)有同等的吸引力)、雙避動(dòng)機(jī)沖突(同時(shí)面臨兩個(gè)具有
威脅的的目標(biāo)都避開(kāi))、趨避動(dòng)機(jī)沖突(對(duì)同一目標(biāo),同時(shí)產(chǎn)生的既好而趨之)
動(dòng)機(jī)沖突與目標(biāo)確立是同步進(jìn)行的,目標(biāo)確立在動(dòng)機(jī)沖突的最后,目標(biāo)確立是動(dòng)機(jī)沖突的結(jié)果。
9.動(dòng)機(jī)與行為效果呈倒U型曲線(xiàn)關(guān)系
10.動(dòng)機(jī)理論(有5個(gè)方面理論):①?gòu)?qiáng)化動(dòng)機(jī)理論--種類(lèi):
外部強(qiáng)化和內(nèi)部(自我)強(qiáng)化
直接強(qiáng)化、間接強(qiáng)化(替代強(qiáng)化)和自我強(qiáng)化。
強(qiáng)化是指凡是能增加反應(yīng)概率的刺激或刺激情景均可稱(chēng)為強(qiáng)化
成就動(dòng)機(jī)的概念是默瑞于20世紀(jì)30年代提出的“成就需要”的基礎(chǔ)上發(fā)展起來(lái)的 ②成就動(dòng)機(jī)理論—麥克蘭德發(fā)現(xiàn),成就動(dòng)機(jī)高的人,喜歡選擇難度較大,有一定風(fēng)險(xiǎn)的開(kāi)創(chuàng)性工作,喜歡對(duì)問(wèn)題承擔(dān)自己的責(zé)任,能從完成任務(wù)中獲得滿(mǎn)足感;成就動(dòng)機(jī)低的人,傾向于選擇風(fēng)險(xiǎn)較小、獨(dú)立決策少的任務(wù)或職業(yè)。
阿特金森提出成就動(dòng)機(jī)模型
阿特金森講個(gè)體的成就動(dòng)機(jī)分為:力求成功的動(dòng)機(jī)--力求成功者、避免失敗的動(dòng)機(jī)—避免失敗者。成功概率在50%的任務(wù)是最能調(diào)動(dòng)力求成功者的積極性。力求避免失敗者傾向于選擇大量非常容易或非常困難的任務(wù)。
在教育活動(dòng)中,要調(diào)動(dòng)力求成功者的積極性,就應(yīng)當(dāng)提供新穎且有一定難度的任務(wù),安排競(jìng)爭(zhēng)的情境,嚴(yán)格評(píng)定分?jǐn)?shù)等方式來(lái)激起他們的學(xué)習(xí)動(dòng)機(jī)。對(duì)于力求避免失敗者,要安排競(jìng)爭(zhēng)少或競(jìng)爭(zhēng)少或競(jìng)爭(zhēng)性不強(qiáng)的環(huán)境
對(duì)學(xué)生除了盡可能讓他們避免失敗,還應(yīng)立足于增加他們力求成功的成分,使他們不以避免失敗為滿(mǎn)足,而應(yīng)以獲取成功為快樂(lè)。
③期望理論
④歸因理論—韋納-三個(gè)維度:內(nèi)部歸因和外部歸因、穩(wěn)定性歸因和非穩(wěn)定性歸因、可控歸因和不可控歸因。六個(gè)因素:能力高低(內(nèi)在,穩(wěn)定,不可控)、努力程度、任務(wù)難易、運(yùn)氣(機(jī)遇)好壞、身心狀態(tài)、外界環(huán)境等。
歸因理論在實(shí)際應(yīng)用中的價(jià)值主要有以下三個(gè)方面
1.了解心理與行為的因果關(guān)系2.根據(jù)行為者當(dāng)前的歸因傾向預(yù)測(cè)他以后的動(dòng)機(jī)3.歸因訓(xùn)練有助于提高自我認(rèn)識(shí)
習(xí)得性無(wú)助感的概念最初由美國(guó)學(xué)者塞利格曼等人提出。習(xí)得性無(wú)助感產(chǎn)生后有三方面表現(xiàn):1.動(dòng)機(jī)降低2.認(rèn)知出現(xiàn)障礙3.情緒失調(diào)
2自我效能感是指人對(duì)自己能否成功地進(jìn)行某一成就行為的主觀(guān)判斷,它與自我能力感是同義語(yǔ)。
在班杜拉看來(lái),人的行為是受兩個(gè)因素影響或決定:1.行為的結(jié)果因素即強(qiáng)化
2.行為的先行因素即期待
⑤自我效能感理論—影響因素主要有兩個(gè):個(gè)體成敗的經(jīng)驗(yàn)、個(gè)體的歸因方式。
11.學(xué)習(xí)動(dòng)機(jī)的激發(fā)(重點(diǎn))(92):①設(shè)置合理目標(biāo)②有效利用反饋與評(píng)價(jià)③增加學(xué)習(xí)任務(wù)的趣味性④合理運(yùn)用獎(jiǎng)勵(lì)與懲罰⑤科學(xué)利用競(jìng)爭(zhēng)與合作⑥向?qū)W生表達(dá)明確可行的期待⑦增加自我效能感⑧進(jìn)行歸因訓(xùn)練。
第四章 認(rèn)知過(guò)程
1.注意是心理活動(dòng)對(duì)一定對(duì)象的指向和集中。指向性與集中性是注意的兩個(gè)特征
2.注意分為無(wú)意注意(沒(méi)有預(yù)定目的,也無(wú)需作意志努力的)、有意注意(有預(yù)定目的,需要做一定的意志努力的)、有意后注意(有無(wú)預(yù)定目的,需不需要意志努力)
3.注意特征:穩(wěn)定性、廣度、分配、轉(zhuǎn)移
4.注意的機(jī)制:過(guò)濾器模型(是由英國(guó)心理學(xué)家布魯?shù)卤咎靥岢觯⑺p模型(特瑞斯曼)
5.感覺(jué)是人腦對(duì)直接作用于感覺(jué)器官的客觀(guān)事物的個(gè)別屬性的反應(yīng)。一切較高級(jí)、較復(fù)雜的心理現(xiàn)象都是在感覺(jué)的基礎(chǔ)上產(chǎn)生的。感覺(jué)的測(cè)量
1.感受性是對(duì)刺激的感受能力。絕對(duì)感受性是感覺(jué)出最小刺激量的能力。絕對(duì)感覺(jué)閾限是剛剛能引起感覺(jué)的最小刺激量。絕對(duì)感受性與絕對(duì)感覺(jué)閾限數(shù)值上反比關(guān)系,即E=1/R
1.差別感受性就是剛剛能察覺(jué)出同類(lèi)刺激最小差別的感覺(jué)能力。差別感覺(jué)閾限指剛剛能感覺(jué)出的同個(gè)同類(lèi)刺激的最小差別。
差別感受性與差別感覺(jué)閾限反比關(guān)系。刺激增加量△I,原刺激量I,K=△I/I,K為常數(shù),韋伯常數(shù)。
6.感覺(jué)的基本規(guī)律及其應(yīng)用:①后像—注意發(fā)光燈泡幾秒,再閉眼,就會(huì)感到一個(gè)同燈泡
差不多的光源出現(xiàn)在黑暗背景(正后像);再將視線(xiàn)轉(zhuǎn)向白背景,感到明亮背景上有黑色斑點(diǎn)(負(fù)后像)。②感覺(jué)適應(yīng)—白天看完電影走到大街時(shí)外面明亮的陽(yáng)光次的睜不開(kāi)眼,過(guò)會(huì)就適應(yīng)了(明適應(yīng));從光線(xiàn)充足的大街進(jìn)入電影院時(shí),起初什么也看不清,過(guò)會(huì)就可以看清物體輪廓(暗適應(yīng))。③感覺(jué)的相互作用:(同一感覺(jué)器官)對(duì)比--灰色對(duì)象在紅色背景下,看起來(lái)帶有青綠色;融合-(不同感受器官)感覺(jué)掩蔽現(xiàn)象。聯(lián)覺(jué)是由一種感受器官受到刺激而產(chǎn)生一種特定感覺(jué)的同時(shí),又產(chǎn)生另一種不同感覺(jué)現(xiàn)象。
7.知覺(jué)是人腦對(duì)直接作用于感官的客觀(guān)事物的整體屬性的反映。
8.知覺(jué)特性:知覺(jué)的整體性、知覺(jué)的選擇性、知覺(jué)的理解性、知覺(jué)的恒常性
9.知覺(jué)類(lèi)型(p125)
10.記憶的三級(jí)加工模型:感覺(jué)記憶、短時(shí)記憶、長(zhǎng)時(shí)記憶
感覺(jué)記憶又叫瞬時(shí)記憶,外界信息首先經(jīng)過(guò)感覺(jué)器官進(jìn)入感覺(jué)記憶,信息按照感覺(jué)輸入的原樣在這里登記下來(lái),所以感覺(jué)記憶又叫感覺(jué)登記。視覺(jué)感覺(jué)記憶的作用時(shí)間約在0.5秒以?xún)?nèi)。聲像記憶的時(shí)間可能保持較長(zhǎng)時(shí)間達(dá)4秒左右
短時(shí)記憶是指記憶信息保持的時(shí)間在一分鐘以?xún)?nèi),一般約15~30秒。短時(shí)記憶的容量有限,大體上是7+-2個(gè)組塊
短時(shí)記憶主要以聽(tīng)覺(jué)代碼方式編碼,視覺(jué)代碼、語(yǔ)義代碼和AVL單元聽(tīng)覺(jué)的,口語(yǔ)的、書(shū)面語(yǔ)言的代碼聯(lián)合起來(lái)稱(chēng)為AVL單元,也是短時(shí)記憶的編碼方式。
長(zhǎng)時(shí)記憶是指存儲(chǔ)時(shí)間在一分鐘以上的記憶。長(zhǎng)時(shí)記憶的方式是意義編碼
11.遺忘是指經(jīng)歷過(guò)的事物不能重現(xiàn)和再認(rèn)或者是錯(cuò)誤地重現(xiàn)和再認(rèn)的現(xiàn)象。遺忘規(guī)律:遺
忘的進(jìn)程先快后慢。
12.影像遺忘的因素主要有:①遺忘進(jìn)程受時(shí)間因素的制約。②識(shí)記材料很重要時(shí),一般不
容易遺忘。③識(shí)記材料的性質(zhì)對(duì)遺忘進(jìn)程有影響。有意義材料比無(wú)意義材料遺忘的慢;形象材料比抽象材料遺忘的慢;熟練的動(dòng)作技能遺忘的最慢。④識(shí)記材料的數(shù)量和學(xué)習(xí)程度對(duì)識(shí)記效果都有很大影響。⑤識(shí)記材料的系列位置效應(yīng)對(duì)識(shí)記也有重要的影響。(前攝抑制、倒攝抑制)
13.增進(jìn)記憶的方法:直觀(guān)形象法、圖表法、諧音記憶法、歸類(lèi)比較法、聯(lián)想法、歌訣法。
14.思維是對(duì)客觀(guān)事物間接的、概括的反映。人的思維過(guò)程有兩個(gè)特征:間接性、概括性
15.思維的過(guò)程:①分析和綜合②比較③抽象和概括(抽象是概括的基礎(chǔ))④具體化(是重
點(diǎn))--具體化是將通過(guò)抽象概括而獲得的概念、原理、理論返回到實(shí)際中去,以加深、拓寬對(duì)各種事物的認(rèn)識(shí)。(在教學(xué)中:1.引證具體事例來(lái)說(shuō)明理論問(wèn)題2.應(yīng)用一般原理來(lái)解決某個(gè)具體問(wèn)題)
16.(p133)思維的類(lèi)型:根據(jù)物與思維的形態(tài)分:動(dòng)作思維、形象思維、抽象思維
根據(jù)思維是否具有或遵循明確的邏輯形式和邏輯規(guī)則分:形式邏輯思維、非形式邏輯思維
根據(jù)思維過(guò)程的指向性不同分:集中思維、分散思維
17.問(wèn)題解決過(guò)程:①提出問(wèn)題②分析問(wèn)題③提出假設(shè)④檢驗(yàn)假設(shè)
18.影響解決問(wèn)題的因素:①遷移的作用
②原型啟發(fā)
③定勢(shì)的作用(是重點(diǎn))—定式是指一種心理準(zhǔn)備狀態(tài),它影響
著解決問(wèn)題時(shí)的傾向性。它有時(shí)有助于問(wèn)題解決有時(shí)妨礙。
④情緒與動(dòng)機(jī)
19.問(wèn)題解決策略:算法、啟發(fā)法則
第五章 情緒
1.情緒是人類(lèi)對(duì)于各種認(rèn)知對(duì)象的一種內(nèi)心感受或態(tài)度。
2.我國(guó)心理學(xué)家黃希庭 情緒分為五類(lèi):情調(diào)-伴隨感覺(jué)而產(chǎn)生的情感、激情-一種持續(xù)時(shí)
間斷、表現(xiàn)劇烈、失去自我控制力的情緒、心境-一種比較微弱、持久具有渲染性的情緒、應(yīng)激-出乎意料的緊張情況下所引起的情緒狀態(tài)、情操-人對(duì)具有一定文化價(jià)值的東西所懷有的復(fù)雜情感。
3.情緒性是指一種未分化的、一般的情緒喚醒狀態(tài),也常常把它作為恐懼來(lái)看待。
一般都認(rèn)同情商,EQ的主要因素有五個(gè)部分:
1自我意識(shí) 2自我激勵(lì) 3情緒失控 4人際溝通 5挫折承受能力
4.健康情緒的必要條件:①正確的人生追求②寬廣的胸襟③理性地適應(yīng)生活④尋找身邊的歡樂(lè)
5.不良情緒的控制(是重點(diǎn))(p171)
抑郁癥—是一種心理綜合癥。包括三方面心理障礙:①心境障礙②思維障礙③軀體功能障礙。抑郁癥不是單一的情緒狀態(tài)。主要是痛苦,其次是厭惡、輕蔑和憤怒。后三者結(jié)合構(gòu)成敵意。