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

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

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

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

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

      Java編程培訓(xùn)費(fèi)用是一項(xiàng)成功的投資

      時(shí)間:2019-05-14 06:17:55下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫寫幫文庫(kù)小編為你整理了多篇相關(guān)的《Java編程培訓(xùn)費(fèi)用是一項(xiàng)成功的投資》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫(kù)還可以找到更多《Java編程培訓(xùn)費(fèi)用是一項(xiàng)成功的投資》。

      第一篇:Java編程培訓(xùn)費(fèi)用是一項(xiàng)成功的投資

      Java編程培訓(xùn)費(fèi)用是一項(xiàng)成功的投資

      004km.cn 王燁是一名java編程,別看他現(xiàn)在對(duì)這些程序應(yīng)用自如,其實(shí)王燁也是半路出家,之前的王燁是一名程序員,通過(guò)工作對(duì)java編程產(chǎn)生了濃厚的興趣,于是他做了大膽的決定,他要學(xué)習(xí)java編程。

      當(dāng)時(shí)的王燁還是一名實(shí)習(xí)生,java編程培訓(xùn)費(fèi)用對(duì)于他來(lái)說(shuō)是一筆大資金,java培訓(xùn)費(fèi)用可以參考《揭秘Java編程基礎(chǔ)培訓(xùn)費(fèi)用價(jià)位》,他根本無(wú)力支付1萬(wàn)多的學(xué)費(fèi),但是他對(duì)java有很大的興趣,同時(shí)也看好java的就業(yè)前景,他覺得,java在未來(lái)幾年都將是搶手職業(yè),必須要抓緊時(shí)間學(xué)習(xí),晚學(xué)一年都會(huì)耽誤,可是要學(xué)習(xí),必須得先解決資金問題,于是,王燁開始在網(wǎng)上尋找解決資金的方法。

      如今的商業(yè)貸款太多了,各種魚龍混雜讓王燁遲遲不敢申請(qǐng),他怕自己不懂得貸款的條條框框,以免上當(dāng)受騙,可是除了在網(wǎng)上找辦法,實(shí)在是沒有其它渠道了。一個(gè)偶然的機(jī)會(huì),王燁看到了無(wú)利息的晨星成長(zhǎng)計(jì)劃,這種人才股權(quán)投資吸引了他的注意,無(wú)利息的特點(diǎn)打消了他的顧慮,而且在校期間不用還款,還沒正式畢業(yè)的他可以在校期間不還款,等到工作后,從工資中扣除相應(yīng)的比例即可,于是,王燁開始申請(qǐng)晨星成長(zhǎng)計(jì)劃的資金。

      申請(qǐng)資金并沒有想象中的困難,王燁進(jìn)入晨星官網(wǎng)后,直接填一份個(gè)人資料就完成了申請(qǐng)流程,然后只需要等待工作人員的申請(qǐng)即可,在過(guò)了大概20天左右,他的資料通過(guò)了審核,也就是說(shuō),他可以拿到晨星提供的資金去參加java編程培訓(xùn)課程了。

      Java編程培訓(xùn)費(fèi)相對(duì)較高,對(duì)于王燁這種大學(xué)生來(lái)說(shuō),很需要像晨星成長(zhǎng)計(jì)劃這樣的支持,畢竟學(xué)生是沒有收入來(lái)源的,但又很需要成長(zhǎng)學(xué)習(xí)的機(jī)會(huì),能夠把握住時(shí)間學(xué)習(xí),晨星的宗旨也是讓大學(xué)生們獲得平等的成長(zhǎng)機(jī)會(huì)。

      第二篇:JAVA編程心得體會(huì)

      JAVA編程心得

      計(jì)算機(jī)3班

      竇金霞

      20104773

      最近幾周一直在弄程序,說(shuō)實(shí)話真的很累,但累中也有成功的快樂。我覺得學(xué)到了很多東西,這是只看課本知識(shí)所不能學(xué)到的。

      說(shuō)實(shí)話,以前我一直沒學(xué)過(guò)JAVA雖然我也知道JAVA的重要性,可是即使上課聽了,不實(shí)踐還是掌握不了。因?yàn)榉N種原因,今年我沒有買筆記本。沒有機(jī)器,僅僅靠每周一次的上機(jī)練習(xí)是絕對(duì)不夠的。所以我就插空調(diào)程序,在舍友們不用的時(shí)候自己再接她們的電腦調(diào)。

      調(diào)上一個(gè)WEB版的通訊錄程序時(shí)我已經(jīng)感覺到學(xué)的很吃力,好多東西都不懂。這次做的這個(gè)學(xué)生成績(jī)管理系統(tǒng)更復(fù)雜了,所以一開始調(diào)的時(shí)候感覺特別吃力.所以我告訴自己不能放棄,慢慢來(lái),就這樣我從最基本的sql語(yǔ)句session對(duì)象開始學(xué)起,我覺得我還有太多不懂得所以要比別人付出更多的努力。就這樣我一點(diǎn)一點(diǎn)的學(xué)著??

      說(shuō)心里話,在做上一個(gè)web版的通訊錄時(shí),我就感覺到成功的喜悅。好多地方我都是一點(diǎn)一點(diǎn)的問的,在問的過(guò)程中,我也學(xué)會(huì)了很多,像:Servlet和jsp之間跳不過(guò)去時(shí)有兩種解決辦法,一是關(guān)閉底層類中的db.close;二是將Servlet中的throws Exception改成try catch以捕捉異常;我還學(xué)到了集中查找錯(cuò)誤的方法,可以加上兩個(gè)雙斜杠“//”將具體的方法屏蔽掉,一檢查是方法錯(cuò)誤還是Servlet錯(cuò)誤,還有就是寫上System.out.println()將獲得的數(shù)據(jù)輸出,用來(lái)檢查數(shù)據(jù)傳輸過(guò)程有沒有錯(cuò)誤等等。

      雖然在別人看來(lái),這些方法可能都很常規(guī),但是確實(shí)我自己學(xué)會(huì)的,我覺得很有成就感。我已經(jīng)做好計(jì)劃了,暑假的時(shí)候去買本本用自己的本本練習(xí)一下JAVA,雖然下學(xué)期不學(xué)JAVA了,但是我對(duì)JAVA的熱情不會(huì)因?yàn)檫@個(gè)而削減的!

      做完這個(gè)學(xué)生成績(jī)管理系統(tǒng)后,我覺得我對(duì)JAVA的看法已經(jīng)改變了。一前總以為JAVA很繁瑣很難,聽同學(xué)說(shuō)JAVA不好學(xué),開始又有一些聽不懂,所以一直很畏懼JAVA。但真正做了這個(gè)系統(tǒng)以后我才感覺到其實(shí)任何事都沒有難與不難之分,只要你肯努力的去做,世上無(wú)難事只怕有心人!

      我現(xiàn)在對(duì)java學(xué)習(xí)充滿了熱情,我知道我還有很多的不足

      還有很多需要努力的地方,所以我的JAVA之旅將繼續(xù)進(jìn)行??

      第三篇:Java多線程編程總結(jié)

      Java多線程編程總結(jié)

      2007-05-17 11:21:59 標(biāo)簽:java 多線程

      原創(chuàng)作品,允許轉(zhuǎn)載,轉(zhuǎn)載時(shí)請(qǐng)務(wù)必以超鏈接形式標(biāo)明文章 原始出處、作者信息和本聲明。否則將追究法律責(zé)任。http://lavasoft.blog.51cto.com/62575/27069

      Java多線程編程總結(jié)

      下面是Java線程系列博文的一個(gè)編目:

      Java線程:概念與原理 Java線程:創(chuàng)建與啟動(dòng)

      Java線程:線程棧模型與線程的變量 Java線程:線程狀態(tài)的轉(zhuǎn)換 Java線程:線程的同步與鎖 Java線程:線程的交互 Java線程:線程的調(diào)度-休眠 Java線程:線程的調(diào)度-優(yōu)先級(jí) Java線程:線程的調(diào)度-讓步 Java線程:線程的調(diào)度-合并 Java線程:線程的調(diào)度-守護(hù)線程 Java線程:線程的同步-同步方法 Java線程:線程的同步-同步塊

      Java線程:并發(fā)協(xié)作-生產(chǎn)者消費(fèi)者模型 Java線程:并發(fā)協(xié)作-死鎖 Java線程:volatile關(guān)鍵字 Java線程:新特征-線程池

      Java線程:新特征-有返回值的線程 Java線程:新特征-鎖(上)Java線程:新特征-鎖(下)Java線程:新特征-信號(hào)量 Java線程:新特征-阻塞隊(duì)列 Java線程:新特征-阻塞棧 Java線程:新特征-條件變量 Java線程:新特征-原子量 Java線程:新特征-障礙器 Java線程:大總結(jié)

      ----

      下面的內(nèi)容是很早之前寫的,內(nèi)容不夠充實(shí),而且是基于Java1.4的內(nèi)容,Java5之后,線程并發(fā)部分?jǐn)U展了相當(dāng)多的內(nèi)容,因此建議大家看上面的系列文章的內(nèi)容,與時(shí)俱進(jìn),跟上Java發(fā)展的步伐。----

      一、認(rèn)識(shí)多任務(wù)、多進(jìn)程、單線程、多線程 要認(rèn)識(shí)多線程就要從操作系統(tǒng)的原理說(shuō)起。

      以前古老的DOS操作系統(tǒng)(V 6.22)是單任務(wù)的,還沒有線程的概念,系統(tǒng)在每次只能做一件事情。比如你在copy東西的時(shí)候不能rename文件名。為了提高系統(tǒng)的利用效率,采用批處理來(lái)批量執(zhí)行任務(wù)。

      現(xiàn)在的操作系統(tǒng)都是多任務(wù)操作系統(tǒng),每個(gè)運(yùn)行的任務(wù)就是操作系統(tǒng)所做的一件事情,比如你在聽歌的同時(shí)還在用MSN和好友聊天。聽歌和聊天就是兩個(gè)任務(wù),這個(gè)兩個(gè)任務(wù)是“同時(shí)”進(jìn)行的。一個(gè)任務(wù)一般對(duì)應(yīng)一個(gè)進(jìn)程,也可能包含好幾個(gè)進(jìn)程。比如運(yùn)行的MSN就對(duì)應(yīng)一個(gè)MSN的進(jìn)程,如果你用的是windows系統(tǒng),你就可以在任務(wù)管理器中看到操作系統(tǒng)正在運(yùn)行的進(jìn)程信息。

      一般來(lái)說(shuō),當(dāng)運(yùn)行一個(gè)應(yīng)用程序的時(shí)候,就啟動(dòng)了一個(gè)進(jìn)程,當(dāng)然有些會(huì)啟動(dòng)多個(gè)進(jìn)程。啟動(dòng)進(jìn)程的時(shí)候,操作系統(tǒng)會(huì)為進(jìn)程分配資源,其中最主要的資源是內(nèi)存空間,因?yàn)槌绦蚴窃趦?nèi)存中運(yùn)行的。在進(jìn)程中,有些程序流程塊是可以亂序執(zhí)行的,并且這個(gè)代碼塊可以同時(shí)被多次執(zhí)行。實(shí)際上,這樣的代碼塊就是線程體。線程是進(jìn)程中亂序執(zhí)行的代碼流程。當(dāng)多個(gè)線程同時(shí)運(yùn)行的時(shí)候,這樣的執(zhí)行模式成為并發(fā)執(zhí)行。

      多線程的目的是為了最大限度的利用CPU資源。

      Java編寫程序都運(yùn)行在在Java虛擬機(jī)(JVM)中,在JVM的內(nèi)部,程序的多任務(wù)是通過(guò)線程來(lái)實(shí)現(xiàn)的。每用java命令啟動(dòng)一個(gè)java應(yīng)用程序,就會(huì)啟動(dòng)一個(gè)JVM進(jìn)程。在同一個(gè)JVM進(jìn)程中,有且只有一個(gè)進(jìn)程,就是它自己。在這個(gè)JVM環(huán)境中,所有程序代碼的運(yùn)行都是以線程來(lái)運(yùn)行。

      一般常見的Java應(yīng)用程序都是單線程的。比如,用java命令運(yùn)行一個(gè)最簡(jiǎn)單的HelloWorld的Java應(yīng)用程序時(shí),就啟動(dòng)了一個(gè)JVM進(jìn)程,JVM找到程序程序的入口點(diǎn)main(),然后運(yùn)行main()方法,這樣就產(chǎn)生了一個(gè)線程,這個(gè)線程稱之為主線程。當(dāng)main方法結(jié)束后,主線程運(yùn)行完成。JVM進(jìn)程也隨即退出。

      對(duì)于一個(gè)進(jìn)程中的多個(gè)線程來(lái)說(shuō),多個(gè)線程共享進(jìn)程的內(nèi)存塊,當(dāng)有新的線程產(chǎn)生的時(shí)候,操作系統(tǒng)不分配新的內(nèi)存,而是讓新線程共享原有的進(jìn)程塊的內(nèi)存。因此,線程間的通信很容易,速度也很快。不同的進(jìn)程因?yàn)樘幱诓煌膬?nèi)存塊,因此進(jìn)程之間的通信相對(duì)困難。

      實(shí)際上,操作的系統(tǒng)的多進(jìn)程實(shí)現(xiàn)了多任務(wù)并發(fā)執(zhí)行,程序的多線程實(shí)現(xiàn)了進(jìn)程的并發(fā)執(zhí)行。多任務(wù)、多進(jìn)程、多線程的前提都是要求操作系統(tǒng)提供多任務(wù)、多進(jìn)程、多線程的支持。

      在Java程序中,JVM負(fù)責(zé)線程的調(diào)度。線程調(diào)度是值按照特定的機(jī)制為多個(gè)線程分配CPU的使用權(quán)。調(diào)度的模式有兩種:分時(shí)調(diào)度和搶占式調(diào)度。分時(shí)調(diào)度是所有線程輪流獲得CPU使用權(quán),并平均分配每個(gè)線程占用CPU的時(shí)間;搶占式調(diào)度是根據(jù)線程的優(yōu)先級(jí)別來(lái)獲取CPU的使用權(quán)。JVM的線程調(diào)度模式采用了搶占式模式。

      所謂的“并發(fā)執(zhí)行”、“同時(shí)”其實(shí)都不是真正意義上的“同時(shí)”。眾所周知,CPU都有個(gè)時(shí)鐘頻率,表示每秒中能執(zhí)行cpu指令的次數(shù)。在每個(gè)時(shí)鐘周期內(nèi),CPU實(shí)際上只能去執(zhí)行一條(也有可能多條)指令。操作系統(tǒng)將進(jìn)程線程進(jìn)行管理,輪流(沒有固定的順序)分配每個(gè)進(jìn)程很短的一段是時(shí)間(不一定是均分),然后在每個(gè)線程內(nèi)部,程序代碼自己處理該進(jìn)程內(nèi)部線程的時(shí)間分配,多個(gè)線程之間相互的切換去執(zhí)行,這個(gè)切換時(shí)間也是非常短的。因此多任務(wù)、多進(jìn)程、多線程都是操作系統(tǒng)給人的一種宏觀感受,從微觀角度看,程序的運(yùn)行是異步執(zhí)行的。

      用一句話做總結(jié):雖然操作系統(tǒng)是多線程的,但CPU每一時(shí)刻只能做一件事,和人的大腦是一樣的,呵呵。

      二、Java與多線程

      Java語(yǔ)言的多線程需要操作系統(tǒng)的支持。

      Java 虛擬機(jī)允許應(yīng)用程序并發(fā)地運(yùn)行多個(gè)執(zhí)行線程。Java語(yǔ)言提供了多線程編程的擴(kuò)展點(diǎn),并給出了功能強(qiáng)大的線程控制API。

      在Java中,多線程的實(shí)現(xiàn)有兩種方式: 擴(kuò)展java.lang.Thread類 實(shí)現(xiàn)java.lang.Runnable接口

      每個(gè)線程都有一個(gè)優(yōu)先級(jí),高優(yōu)先級(jí)線程的執(zhí)行優(yōu)先于低優(yōu)先級(jí)線程。每個(gè)線程都可以或不可以標(biāo)記為一個(gè)守護(hù)程序。當(dāng)某個(gè)線程中運(yùn)行的代碼創(chuàng)建一個(gè)新 Thread 對(duì)象時(shí),該新線程的初始優(yōu)先級(jí)被設(shè)定為創(chuàng)建線程的優(yōu)先級(jí),并且當(dāng)且僅當(dāng)創(chuàng)建線程是守護(hù)線程時(shí),新線程才是守護(hù)程序。

      當(dāng) Java 虛擬機(jī)啟動(dòng)時(shí),通常都會(huì)有單個(gè)非守護(hù)線程(它通常會(huì)調(diào)用某個(gè)指定類的 main 方法)。Java 虛擬機(jī)會(huì)繼續(xù)執(zhí)行線程,直到下列任一情況出現(xiàn)時(shí)為止:

      調(diào)用了 Runtime 類的 exit 方法,并且安全管理器允許退出操作發(fā)生。

      非守護(hù)線程的所有線程都已停止運(yùn)行,無(wú)論是通過(guò)從對(duì) run 方法的調(diào)用中返回,還是通過(guò)拋出一個(gè)傳播到 run 方法之外的異常。

      三、擴(kuò)展java.lang.Thread類

      /** * File Name: TestMitiThread.java * Created by: IntelliJ IDEA.* Copyright: Copyright(c)2003-2006 * Company: Lavasoft([url]http://lavasoft.blog.51cto.com/[/url])* Author: leizhimin * Modifier: leizhimin * Date Time: 2007-5-17 10:03:12 * Readme: 通過(guò)擴(kuò)展Thread類實(shí)現(xiàn)多線程 */ public class TestMitiThread { public static void main(String[] rags){ System.out.println(Thread.currentThread().getName()+ “ 線程運(yùn)行開始!”);new MitiSay(“A”).start();new MitiSay(“B”).start();System.out.println(Thread.currentThread().getName()+ “ 線程運(yùn)行結(jié)束!”);} }

      class MitiSay extends Thread { public MitiSay(String threadName){ super(threadName);}

      public void run(){ System.out.println(getName()+ “ 線程運(yùn)行開始!”);for(int i = 0;i < 10;i++){ System.out.println(i + “ ” + getName());try { sleep((int)Math.random()* 10);} catch(InterruptedException e){ e.printStackTrace();} } System.out.println(getName()+ “ 線程運(yùn)行結(jié)束!”);} }

      運(yùn)行結(jié)果:

      main 線程運(yùn)行開始!main 線程運(yùn)行結(jié)束!A 線程運(yùn)行開始!0 A 1 A B 線程運(yùn)行開始!2 A 0 B 3 A 4 A 1 B 5 A 6 A 7 A 8 A 9 A A 線程運(yùn)行結(jié)束!2 B 3 B 4 B 5 B 6 B 7 B 8 B 9 B B 線程運(yùn)行結(jié)束!說(shuō)明:

      程序啟動(dòng)運(yùn)行main時(shí)候,java虛擬機(jī)啟動(dòng)一個(gè)進(jìn)程,主線程main在main()調(diào)用時(shí)候被創(chuàng)建。隨著調(diào)用MitiSay的兩個(gè)對(duì)象的start方法,另外兩個(gè)線程也啟動(dòng)了,這樣,整個(gè)應(yīng)用就在多線程下運(yùn)行。

      在一個(gè)方法中調(diào)用Thread.currentThread().getName()方法,可以獲取當(dāng)前線程的名字。在mian方法中調(diào)用該方法,獲取的是主線程的名字。

      注意:start()方法的調(diào)用后并不是立即執(zhí)行多線程代碼,而是使得該線程變?yōu)榭蛇\(yùn)行態(tài)(Runnable),什么時(shí)候運(yùn)行是由操作系統(tǒng)決定的。

      從程序運(yùn)行的結(jié)果可以發(fā)現(xiàn),多線程程序是亂序執(zhí)行。因此,只有亂序執(zhí)行的代碼才有必要設(shè)計(jì)為多線程。

      Thread.sleep()方法調(diào)用目的是不讓當(dāng)前線程獨(dú)自霸占該進(jìn)程所獲取的CPU資源,以留出一定時(shí)間給其他線程執(zhí)行的機(jī)會(huì)。

      實(shí)際上所有的多線程代碼執(zhí)行順序都是不確定的,每次執(zhí)行的結(jié)果都是隨機(jī)的。

      四、實(shí)現(xiàn)java.lang.Runnable接口

      /** * 通過(guò)實(shí)現(xiàn) Runnable 接口實(shí)現(xiàn)多線程 */ public class TestMitiThread1 implements Runnable {

      public static void main(String[] args){ System.out.println(Thread.currentThread().getName()+ “ 線程運(yùn)行開始!”);TestMitiThread1 test = new TestMitiThread1();Thread thread1 = new Thread(test);Thread thread2 = new Thread(test);thread1.start();thread2.start();System.out.println(Thread.currentThread().getName()+ “ 線程運(yùn)行結(jié)束!”);}

      public void run(){ System.out.println(Thread.currentThread().getName()+ “ 線程運(yùn)行開始!”);for(int i = 0;i < 10;i++){ System.out.println(i + “ ” + Thread.currentThread().getName());try { Thread.sleep((int)Math.random()* 10);} catch(InterruptedException e){ e.printStackTrace();} } System.out.println(Thread.currentThread().getName()+ “ 線程運(yùn)行結(jié)束!”);} }

      運(yùn)行結(jié)果:

      main 線程運(yùn)行開始!Thread-0 線程運(yùn)行開始!main 線程運(yùn)行結(jié)束!0 Thread-0 Thread-1 線程運(yùn)行開始!0 Thread-1 1 Thread-1 1 Thread-0 2 Thread-0 2 Thread-1 3 Thread-0 3 Thread-1 4 Thread-0 4 Thread-1 5 Thread-0 6 Thread-0 5 Thread-1 7 Thread-0 8 Thread-0 6 Thread-1 9 Thread-0 7 Thread-1 Thread-0 線程運(yùn)行結(jié)束!8 Thread-1 9 Thread-1 Thread-1 線程運(yùn)行結(jié)束!說(shuō)明:

      TestMitiThread1類通過(guò)實(shí)現(xiàn)Runnable接口,使得該類有了多線程類的特征。run()方法是多線程程序的一個(gè)約定。所有的多線程代碼都在run方法里面。Thread類實(shí)際上也是實(shí)現(xiàn)了Runnable接口的類。

      在啟動(dòng)的多線程的時(shí)候,需要先通過(guò)Thread類的構(gòu)造方法Thread(Runnable target)構(gòu)造出對(duì)象,然后調(diào)用Thread對(duì)象的start()方法來(lái)運(yùn)行多線程代碼。

      實(shí)際上所有的多線程代碼都是通過(guò)運(yùn)行Thread的start()方法來(lái)運(yùn)行的。因此,不管是擴(kuò)展Thread類還是實(shí)現(xiàn)Runnable接口來(lái)實(shí)現(xiàn)多線程,最終還是通過(guò)Thread的對(duì)象的API來(lái)控制線程的,熟悉Thread類的API是進(jìn)行多線程編程的基礎(chǔ)。

      五、讀解Thread類API

      static int MAX_PRIORITY 線程可以具有的最高優(yōu)先級(jí)。static int MIN_PRIORITY 線程可以具有的最低優(yōu)先級(jí)。static int NORM_PRIORITY 分配給線程的默認(rèn)優(yōu)先級(jí)。

      構(gòu)造方法摘要

      Thread(Runnable target)分配新的 Thread 對(duì)象。Thread(String name)分配新的 Thread 對(duì)象。

      方法摘要

      static Thread currentThread()返回對(duì)當(dāng)前正在執(zhí)行的線程對(duì)象的引用。ClassLoader getContextClassLoader()返回該線程的上下文 ClassLoader。long getId()返回該線程的標(biāo)識(shí)符。String getName()返回該線程的名稱。int getPriority()返回線程的優(yōu)先級(jí)。Thread.State getState()返回該線程的狀態(tài)。ThreadGroup getThreadGroup()返回該線程所屬的線程組。static boolean holdsLock(Object obj)當(dāng)且僅當(dāng)當(dāng)前線程在指定的對(duì)象上保持監(jiān)視器鎖時(shí),才返回 true。void interrupt()中斷線程。

      static boolean interrupted()測(cè)試當(dāng)前線程是否已經(jīng)中斷。boolean isAlive()測(cè)試線程是否處于活動(dòng)狀態(tài)。boolean isDaemon()測(cè)試該線程是否為守護(hù)線程。boolean isInterrupted()測(cè)試線程是否已經(jīng)中斷。void join()等待該線程終止。void join(long millis)等待該線程終止的時(shí)間最長(zhǎng)為 millis 毫秒。void join(long millis, int nanos)等待該線程終止的時(shí)間最長(zhǎng)為 millis 毫秒 + nanos 納秒。void resume()已過(guò)時(shí)。該方法只與 suspend()一起使用,但 suspend()已經(jīng)遭到反對(duì),因?yàn)樗哂兴梨i傾向。有關(guān)更多信息,請(qǐng)參閱為何 Thread.stop、Thread.suspend 和 Thread.resume 遭到反對(duì)?。void run()如果該線程是使用獨(dú)立的 Runnable 運(yùn)行對(duì)象構(gòu)造的,則調(diào)用該 Runnable 對(duì)象的 run 方法;否則,該方法不執(zhí)行任何操作并返回。void setContextClassLoader(ClassLoader cl)設(shè)置該線程的上下文 ClassLoader。void setDaemon(boolean on)將該線程標(biāo)記為守護(hù)線程或用戶線程。

      static void setDefaultUncaughtExceptionHandler(Thread.UncaughtExceptionHandler eh)設(shè)置當(dāng)線程由于未捕獲到異常而突然終止,并且沒有為該線程定義其他處理程序時(shí)所調(diào)用的默認(rèn)處理程序。void setName(String name)改變線程名稱,使之與參數(shù) name 相同。void setPriority(int newPriority)更改線程的優(yōu)先級(jí)。

      void setUncaughtExceptionHandler(Thread.UncaughtExceptionHandler eh)設(shè)置該線程由于未捕獲到異常而突然終止時(shí)調(diào)用的處理程序。static void sleep(long millis)在指定的毫秒數(shù)內(nèi)讓當(dāng)前正在執(zhí)行的線程休眠(暫停執(zhí)行)。static void sleep(long millis, int nanos)在指定的毫秒數(shù)加指定的納秒數(shù)內(nèi)讓當(dāng)前正在執(zhí)行的線程休眠(暫停執(zhí)行)。void start()使該線程開始執(zhí)行;Java 虛擬機(jī)調(diào)用該線程的 run 方法。void stop()已過(guò)時(shí)。該方法具有固有的不安全性。用 Thread.stop 來(lái)終止線程將釋放它已經(jīng)鎖定的所有監(jiān)視器(作為沿堆棧向上傳播的未檢查 ThreadDeath 異常的一個(gè)自然后果)。如果以前受這些監(jiān)視器保護(hù)的任何對(duì)象都處于一種不一致的狀態(tài),則損壞的對(duì)象將對(duì)其他線程可見,這有可能導(dǎo)致任意的行為。stop 的許多使用都應(yīng)由只修改某些變量以指示目標(biāo)線程應(yīng)該停止運(yùn)行的代碼來(lái)取代。目標(biāo)線程應(yīng)定期檢查該變量,并且如果該變量指示它要停止運(yùn)行,則從其運(yùn)行方法依次返回。如果目標(biāo)線程等待很長(zhǎng)時(shí)間(例如基于一個(gè)條件變量),則應(yīng)使用 interrupt 方法來(lái)中斷該等待。有關(guān)更多信息,請(qǐng)參閱《為何不贊成使用 Thread.stop、Thread.suspend 和 Thread.resume?》。void stop(Throwable obj)已過(guò)時(shí)。該方法具有固有的不安全性。請(qǐng)參閱 stop()以獲得詳細(xì)信息。該方法的附加危險(xiǎn)是它可用于生成目標(biāo)線程未準(zhǔn)備處理的異常(包括若沒有該方法該線程不太可能拋出的已檢查的異常)。有關(guān)更多信息,請(qǐng)參閱為何 Thread.stop、Thread.suspend 和 Thread.resume 遭到反對(duì)?。void suspend()已過(guò)時(shí)。該方法已經(jīng)遭到反對(duì),因?yàn)樗哂泄逃械乃梨i傾向。如果目標(biāo)線程掛起時(shí)在保護(hù)關(guān)鍵系統(tǒng)資源的監(jiān)視器上保持有鎖,則在目標(biāo)線程重新開始以前任何線程都不能訪問該資源。如果重新開始目標(biāo)線程的線程想在調(diào)用 resume 之前鎖定該監(jiān)視器,則會(huì)發(fā)生死鎖。這類死鎖通常會(huì)證明自己是“凍結(jié)”的進(jìn)程。有關(guān)更多信息,請(qǐng)參閱為何 Thread.stop、Thread.suspend 和 Thread.resume 遭到反對(duì)?。String toString()返回該線程的字符串表示形式,包括線程名稱、優(yōu)先級(jí)和線程組。static void yield()暫停當(dāng)前正在執(zhí)行的線程對(duì)象,并執(zhí)行其他線程。

      六、線程的狀態(tài)轉(zhuǎn)換圖

      線程在一定條件下,狀態(tài)會(huì)發(fā)生變化。線程變化的狀態(tài)轉(zhuǎn)換圖如下:

      1、新建狀態(tài)(New):新創(chuàng)建了一個(gè)線程對(duì)象。

      2、就緒狀態(tài)(Runnable):線程對(duì)象創(chuàng)建后,其他線程調(diào)用了該對(duì)象的start()方法。該狀態(tài)的線程位于可運(yùn)行線程池中,變得可運(yùn)行,等待獲取CPU的使用權(quán)。

      3、運(yùn)行狀態(tài)(Running):就緒狀態(tài)的線程獲取了CPU,執(zhí)行程序代碼。

      4、阻塞狀態(tài)(Blocked):阻塞狀態(tài)是線程因?yàn)槟撤N原因放棄CPU使用權(quán),暫時(shí)停止運(yùn)行。直到線程進(jìn)入就緒狀態(tài),才有機(jī)會(huì)轉(zhuǎn)到運(yùn)行狀態(tài)。阻塞的情況分三種:

      (一)、等待阻塞:運(yùn)行的線程執(zhí)行wait()方法,JVM會(huì)把該線程放入等待池中。

      (二)、同步阻塞:運(yùn)行的線程在獲取對(duì)象的同步鎖時(shí),若該同步鎖被別的線程占用,則JVM會(huì)把該線程放入鎖池中。

      (三)、其他阻塞:運(yùn)行的線程執(zhí)行sleep()或join()方法,或者發(fā)出了I/O請(qǐng)求時(shí),JVM會(huì)把該線程置為阻塞狀態(tài)。當(dāng)sleep()狀態(tài)超時(shí)、join()等待線程終止或者超時(shí)、或者I/O處理完畢時(shí),線程重新轉(zhuǎn)入就緒狀態(tài)。

      5、死亡狀態(tài)(Dead):線程執(zhí)行完了或者因異常退出了run()方法,該線程結(jié)束生命周期。

      七、線程的調(diào)度

      1、調(diào)整線程優(yōu)先級(jí):Java線程有優(yōu)先級(jí),優(yōu)先級(jí)高的線程會(huì)獲得較多的運(yùn)行機(jī)會(huì)。

      Java線程的優(yōu)先級(jí)用整數(shù)表示,取值范圍是1~10,Thread類有以下三個(gè)靜態(tài)常量: static int MAX_PRIORITY 線程可以具有的最高優(yōu)先級(jí),取值為10。static int MIN_PRIORITY 線程可以具有的最低優(yōu)先級(jí),取值為1。static int NORM_PRIORITY 分配給線程的默認(rèn)優(yōu)先級(jí),取值為5。

      Thread類的setPriority()和getPriority()方法分別用來(lái)設(shè)置和獲取線程的優(yōu)先級(jí)。

      每個(gè)線程都有默認(rèn)的優(yōu)先級(jí)。主線程的默認(rèn)優(yōu)先級(jí)為Thread.NORM_PRIORITY。

      線程的優(yōu)先級(jí)有繼承關(guān)系,比如A線程中創(chuàng)建了B線程,那么B將和A具有相同的優(yōu)先級(jí)。JVM提供了10個(gè)線程優(yōu)先級(jí),但與常見的操作系統(tǒng)都不能很好的映射。如果希望程序能移植到各個(gè)操作系統(tǒng)中,應(yīng)該僅僅使用Thread類有以下三個(gè)靜態(tài)常量作為優(yōu)先級(jí),這樣能保證同樣的優(yōu)先級(jí)采用了同樣的調(diào)度方式。

      2、線程睡眠:Thread.sleep(long millis)方法,使線程轉(zhuǎn)到阻塞狀態(tài)。millis參數(shù)設(shè)定睡眠的時(shí)間,以毫秒為單位。當(dāng)睡眠結(jié)束后,就轉(zhuǎn)為就緒(Runnable)狀態(tài)。sleep()平臺(tái)移植性好。

      3、線程等待:Object類中的wait()方法,導(dǎo)致當(dāng)前的線程等待,直到其他線程調(diào)用此對(duì)象的 notify()方法或 notifyAll()喚醒方法。這個(gè)兩個(gè)喚醒方法也是Object類中的方法,行為等價(jià)于調(diào)用 wait(0)一樣。

      4、線程讓步:Thread.yield()方法,暫停當(dāng)前正在執(zhí)行的線程對(duì)象,把執(zhí)行機(jī)會(huì)讓給相同或者更高優(yōu)先級(jí)的線程。

      5、線程加入:join()方法,等待其他線程終止。在當(dāng)前線程中調(diào)用另一個(gè)線程的join()方法,則當(dāng)前線程轉(zhuǎn)入阻塞狀態(tài),直到另一個(gè)進(jìn)程運(yùn)行結(jié)束,當(dāng)前線程再由阻塞轉(zhuǎn)為就緒狀態(tài)。

      6、線程喚醒:Object類中的notify()方法,喚醒在此對(duì)象監(jiān)視器上等待的單個(gè)線程。如果所有線程都在此對(duì)象上等待,則會(huì)選擇喚醒其中一個(gè)線程。選擇是任意性的,并在對(duì)實(shí)現(xiàn)做出決定時(shí)發(fā)生。線程通過(guò)調(diào)用其中一個(gè) wait 方法,在對(duì)象的監(jiān)視器上等待。直到當(dāng)前的線程放棄此對(duì)象上的鎖定,才能繼續(xù)執(zhí)行被喚醒的線程。被喚醒的線程將以常規(guī)方式與在該對(duì)象上主動(dòng)同步的其他所有線程進(jìn)行競(jìng)爭(zhēng);例如,喚醒的線程在作為鎖定此對(duì)象的下一個(gè)線程方面沒有可靠的特權(quán)或劣勢(shì)。類似的方法還有一個(gè)notifyAll(),喚醒在此對(duì)象監(jiān)視器上等待的所有線程。注意:Thread中suspend()和resume()兩個(gè)方法在JDK1.5中已經(jīng)廢除,不再介紹。因?yàn)橛兴梨i傾向。

      7、常見線程名詞解釋

      主線程:JVM調(diào)用程序mian()所產(chǎn)生的線程。

      當(dāng)前線程:這個(gè)是容易混淆的概念。一般指通過(guò)Thread.currentThread()來(lái)獲取的進(jìn)程。后臺(tái)線程:指為其他線程提供服務(wù)的線程,也稱為守護(hù)線程。JVM的垃圾回收線程就是一個(gè)后臺(tái)線程。

      前臺(tái)線程:是指接受后臺(tái)線程服務(wù)的線程,其實(shí)前臺(tái)后臺(tái)線程是聯(lián)系在一起,就像傀儡和幕后操縱者一樣的關(guān)系??苁乔芭_(tái)線程、幕后操縱者是后臺(tái)線程。由前臺(tái)線程創(chuàng)建的線程默認(rèn)也是前臺(tái)線程。可以通過(guò)isDaemon()和setDaemon()方法來(lái)判斷和設(shè)置一個(gè)線程是否為后臺(tái)線程。

      本文出自 “熔 巖” 博客,請(qǐng)務(wù)必保留此出處http://lavasoft.blog.51cto.com/62575/27069

      第四篇:Java基礎(chǔ)編程題

      【程序1】

      題目:古典問題:有一對(duì)兔子,從出生后第3個(gè)月起每個(gè)月都生一對(duì)兔子,小兔子長(zhǎng)到第三個(gè)月后每個(gè)月又生一對(duì)兔子,假如兔子都不死,問每個(gè)月的兔子總數(shù)為多少?

      1.程序分析: 兔子的規(guī)律為數(shù)列1,1,2,3,5,8,13,21....【程序2】

      題目:判斷101-200之間有多少個(gè)素?cái)?shù),并輸出所有素?cái)?shù)。

      1.程序分析:判斷素?cái)?shù)的方法:用一個(gè)數(shù)分別去除2到sqrt(這個(gè)數(shù)),如果能被整除,則表明此數(shù)不是素?cái)?shù),反之是素?cái)?shù)。

      【程序3】

      題目:打印出所有的“水仙花數(shù)”,所謂“水仙花數(shù)”是指一個(gè)三位數(shù),其各位數(shù)字立方和等于該數(shù)本身。例如:153是一個(gè)“水仙花數(shù)”,因?yàn)?53=1的三次方+5的三次方+3的三次方。

      1.程序分析:利用for循環(huán)控制100-999個(gè)數(shù),每個(gè)數(shù)分解出個(gè)位,十位,百位。

      【程序4】

      題目:將一個(gè)正整數(shù)分解質(zhì)因數(shù)。例如:輸入90,打印出90=2*3*3*5。

      程序分析:對(duì)n進(jìn)行分解質(zhì)因數(shù),應(yīng)先找到一個(gè)最小的質(zhì)數(shù)k,然后按下述步驟完成:

      (1)如果這個(gè)質(zhì)數(shù)恰等于n,則說(shuō)明分解質(zhì)因數(shù)的過(guò)程已經(jīng)結(jié)束,打印出即可。

      (2)如果n<>k,但n能被k整除,則應(yīng)打印出k的值,并用n除以k的商,作為新的正整數(shù)你n,重復(fù)執(zhí)行第一步。

      (3)如果n不能被k整除,則用k+1作為k的值,重復(fù)執(zhí)行第一步。

      【程序5】

      題目:利用條件運(yùn)算符的嵌套來(lái)完成此題:學(xué)習(xí)成績(jī)>=90分的同學(xué)用A表示,60-89分之間的用B表示,60分以下的用C表示。

      1.程序分析:(a>b)?a:b這是條件運(yùn)算符的基本例子。

      【程序6】

      題目:輸入兩個(gè)正整數(shù)m和n,求其最大公約數(shù)和最小公倍數(shù)。

      1.程序分析:利用輾除法。

      【程序7】

      題目:輸入一行字符,分別統(tǒng)計(jì)出其中英文字母、空格、數(shù)字和其它字符的個(gè)數(shù)。

      1.程序分析:利用while語(yǔ)句,條件為輸入的字符不為'n'.【程序8】

      題目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一個(gè)數(shù)字。例如2+22+222+2222+22222(此時(shí)共有5個(gè)數(shù)相加),幾個(gè)數(shù)相加有鍵盤控制。

      1.程序分析:關(guān)鍵是計(jì)算出每一項(xiàng)的值。

      【程序9】

      題目:一個(gè)數(shù)如果恰好等于它的因子之和,這個(gè)數(shù)就稱為“完數(shù)”。例如6=1+2+3.編程 找出1000以內(nèi)的所有完數(shù)。

      【程序10】

      題目:一球從100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地時(shí),共經(jīng)過(guò)多少米?第10次反彈多高?

      【程序11】

      題目:有1、2、3、4個(gè)數(shù)字,能組成多少個(gè)互不相同且無(wú)重復(fù)數(shù)字的三位數(shù)?都是多少?

      1.程序分析:可填在百位、十位、個(gè)位的數(shù)字都是1、2、3、4。組成所有的排列后再去 掉不滿足條件的排列。

      【程序12】

      題目:企業(yè)發(fā)放的獎(jiǎng)金根據(jù)利潤(rùn)提成。利潤(rùn)(I)低于或等于10萬(wàn)元時(shí),獎(jiǎng)金可提10%;利潤(rùn)高于10萬(wàn)元,低于20萬(wàn)元時(shí),低于10萬(wàn)元的部分按10%提成,高于10萬(wàn)元的部分,可可提成7.5%;20萬(wàn)到40萬(wàn)之間時(shí),高于20萬(wàn)元的部分,可提成5%;40萬(wàn)到60萬(wàn)之間時(shí)高于40萬(wàn)元的部分,可提成3%;60萬(wàn)到100萬(wàn)之間時(shí),高于60萬(wàn)元的部分,可提成1.5%,高于100萬(wàn)元時(shí),超過(guò)100萬(wàn)元的部分按1%提成,從鍵盤輸入當(dāng)月利潤(rùn)I,求應(yīng)發(fā)放獎(jiǎng)金總數(shù)?

      1.程序分析:請(qǐng)利用數(shù)軸來(lái)分界,定位。注意定義時(shí)需把獎(jiǎng)金定義成長(zhǎng)整型。

      【程序13】

      題目:一個(gè)整數(shù),它加上100后是一個(gè)完全平方數(shù),再加上168又是一個(gè)完全平方數(shù),請(qǐng)問該數(shù)是多少?

      1.程序分析:在10萬(wàn)以內(nèi)判斷,先將該數(shù)加上100后再開方,再將該數(shù)加上268后再開方,如果開方后的結(jié)果滿足如下條件,即是結(jié)果。請(qǐng)看具體分析:

      【程序14】

      題目:輸入某年某月某日,判斷這一天是這一年的第幾天?

      1.程序分析:以3月5日為例,應(yīng)該先把前兩個(gè)月的加起來(lái),然后再加上5天即本年的第幾天,特殊情況,閏年且輸入月份大于3時(shí)需考慮多加一天。

      【程序15】

      題目:輸入三個(gè)整數(shù)x,y,z,請(qǐng)把這三個(gè)數(shù)由小到大輸出。

      1.程序分析:我們想辦法把最小的數(shù)放到x上,先將x與y進(jìn)行比較,如果x>y則將x與y的值進(jìn)行交換,然后再用x與z進(jìn)行比較,如果x>z則將x與z的值進(jìn)行交換,這樣能使x最小。

      【程序16】

      題目:輸出9*9口訣。

      1.程序分析:分行與列考慮,共9行9列,i控制行,j控制列。

      【程序17】

      題目:猴子吃桃問題:猴子第一天摘下若干個(gè)桃子,當(dāng)即吃了一半,還不癮,又多吃了一個(gè) 第二天早上又將剩下的桃子吃掉一半,又多吃了一個(gè)。以后每天早上都吃了前一天剩下 的一半零一個(gè)。到第10天早上想再吃時(shí),見只剩下一個(gè)桃子了。求第一天共摘了多少。

      1.程序分析:采取逆向思維的方法,從后往前推斷。

      【程序18】

      題目:兩個(gè)乒乓球隊(duì)進(jìn)行比賽,各出三人。甲隊(duì)為a,b,c三人,乙隊(duì)為x,y,z三人。已抽簽決定比賽名單。有人向隊(duì)員打聽比賽的名單。a說(shuō)他不和x比,c說(shuō)他不和x,z比,請(qǐng)編程序找出三隊(duì)賽手的名單。

      1.程序分析:判斷素?cái)?shù)的方法:用一個(gè)數(shù)分別去除2到sqrt(這個(gè)數(shù)),如果能被整除,則表明此數(shù)不是素?cái)?shù),反之是素?cái)?shù)。

      【程序19】

      題目:打印出如下圖案(菱形)

      *

      ***

      ******

      ********

      ******

      ***

      *

      1.程序分析:先把圖形分成兩部分來(lái)看待,前四行一個(gè)規(guī)律,后三行一個(gè)規(guī)律,利用雙重 for循環(huán),第一層控制行,第二層控制列。

      【程序20】

      題目:有一分?jǐn)?shù)序列:2/1,3/2,5/3,8/5,13/8,21/13...求出這個(gè)數(shù)列的前20項(xiàng)之和。

      1.程序分析:請(qǐng)抓住分子與分母的變化規(guī)律。

      【程序21】

      題目:求1+2!+3!+...+20!的和

      1.程序分析:此程序只是把累加變成了累乘。

      【程序22】

      題目:利用遞歸方法求5!。

      1.程序分析:遞歸公式:fn=fn_1*4!

      【程序23】

      題目:有5個(gè)人坐在一起,問第五個(gè)人多少歲?他說(shuō)比第4個(gè)人大2歲。問第4個(gè)人歲數(shù),他說(shuō)比第3個(gè)人大2歲。問第三個(gè)人,又說(shuō)比第2人大兩歲。問第2個(gè)人,說(shuō)比第一個(gè)人大兩歲。最后問第一個(gè)人,他說(shuō)是10歲。請(qǐng)問第五個(gè)人多大?

      1.程序分析:利用遞歸的方法,遞歸分為回推和遞推兩個(gè)階段。要想知道第五個(gè)人歲數(shù),需知道第四人的歲數(shù),依次類推,推到第一人(10歲),再往回推。

      【程序24】

      題目:給一個(gè)不多于5位的正整數(shù),要求:

      一、求它是幾位數(shù),二、逆序打印出各位數(shù)字。

      【程序25】

      題目:一個(gè)5位數(shù),判斷它是不是回文數(shù)。即12321是回文數(shù),個(gè)位與萬(wàn)位相同,十位與千位相同。

      【程序26】

      題目:請(qǐng)輸入星期幾的第一個(gè)字母來(lái)判斷一下是星期幾,如果第一個(gè)字母一樣,則繼續(xù) 判斷第二個(gè)字母。

      1.程序分析:用情況語(yǔ)句比較好,如果第一個(gè)字母一樣,則判斷用情況語(yǔ)句或if語(yǔ)句判斷第二個(gè)字母。

      【程序27】

      題目:求100之內(nèi)的素?cái)?shù)

      【程序28】

      題目:對(duì)10個(gè)數(shù)進(jìn)行排序

      1.程序分析:可以利用選擇法,即從后9個(gè)比較過(guò)程中,選擇一個(gè)最小的與第一個(gè)元素交換,下次類推,即用第二個(gè)元素與后8個(gè)進(jìn)行比較,并進(jìn)行交換。

      【程序29】

      題目:求一個(gè)3*3矩陣對(duì)角線元素之和

      1.程序分析:利用雙重for循環(huán)控制輸入二維數(shù)組,再將a[i][i]累加后輸出。

      【程序30】

      題目:有一個(gè)已經(jīng)排好序的數(shù)組。現(xiàn)輸入一個(gè)數(shù),要求按原來(lái)的規(guī)律將它插入數(shù)組中。

      1.程序分析:首先判斷此數(shù)是否大于最后一個(gè)數(shù),然后再考慮插入中間的數(shù)的情況,插入后此元素之后的數(shù),依次后移一個(gè)位置。

      【程序31】

      題目:將一個(gè)數(shù)組逆序輸出。

      1.程序分析:用第一個(gè)與最后一個(gè)交換。

      【程序32】

      題目:取一個(gè)整數(shù)a從右端開始的4~7位。

      程序分析:可以這樣考慮:

      (1)先使a右移4位。

      (2)設(shè)置一個(gè)低4位全為1,其余全為0的數(shù)??捎脋(~0<<4)

      (3)將上面二者進(jìn)行&運(yùn)算。

      【程序33】

      題目:打印出楊輝三角形(要求打印出10行如下圖)

      1.程序分析:2 13 3 14 6 4 15 10 10 5 1

      【程序34】

      題目:輸入3個(gè)數(shù)a,b,c,按大小順序輸出。

      1.程序分析:利用指針方法。

      【程序35】

      題目:輸入數(shù)組,最大的與第一個(gè)元素交換,最小的與最后一個(gè)元素交換,輸出數(shù)組。

      【程序36】

      題目:有n個(gè)整數(shù),使其前面各數(shù)順序向后移m個(gè)位置,最后m個(gè)數(shù)變成最前面的m個(gè)數(shù)

      【程序37】

      題目:有n個(gè)人圍成一圈,順序排號(hào)。從第一個(gè)人開始報(bào)數(shù)(從1到3報(bào)數(shù)),凡報(bào)到3的人退出圈子,問最后留下的是原來(lái)第幾號(hào)的那位。

      【程序38】

      題目:寫一個(gè)函數(shù),求一個(gè)字符串的長(zhǎng)度,在main函數(shù)中輸入字符串,并輸出其長(zhǎng)度。

      【程序39】

      題目:編寫一個(gè)函數(shù),輸入n為偶數(shù)時(shí),調(diào)用函數(shù)求1/2+1/4+...+1/n,當(dāng)輸入n為奇數(shù)時(shí),調(diào)用函數(shù)1/1+1/3+...+1/n(利用指針函數(shù))

      【程序40】

      題目:字符串排序。

      【程序41】

      題目:海灘上有一堆桃子,五只猴子來(lái)分。第一只猴子把這堆桃子憑據(jù)分為五份,多了一個(gè),這只猴子把多的一個(gè)扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一個(gè),它同樣把多的一個(gè)扔入海中,拿走了一份,第三、第四、第五只猴子都是這樣做的,問海灘上原來(lái)最少有多少個(gè)桃子?

      【程序42】

      題目:809*??=800*??+9*??+1 其中??代表的兩位數(shù),8*??的結(jié)果為兩位數(shù),9*??的結(jié)果為3位數(shù)。求??代表的兩位數(shù),及809*??后的結(jié)果。

      【程序43】

      題目:求0—7所能組成的奇數(shù)個(gè)數(shù)。

      【程序44】

      題目:一個(gè)偶數(shù)總能表示為兩個(gè)素?cái)?shù)之和。

      【程序45】

      題目:判斷一個(gè)素?cái)?shù)能被幾個(gè)9整除

      【程序46】

      題目:兩個(gè)字符串連接程序

      【程序47】

      題目:讀取7個(gè)數(shù)(1—50)的整數(shù)值,每讀取一個(gè)值,程序打印出該值個(gè)數(shù)的*。

      【程序48】

      題目:某個(gè)公司采用公用電話傳遞數(shù)據(jù),數(shù)據(jù)是四位的整數(shù),在傳遞過(guò)程中是加密的,加密規(guī)則如下:每位數(shù)字都加上5,然后用和除以10的余數(shù)代替該數(shù)字,再將第一位和第四位交換,第二位和第三位交換。

      【程序49】

      題目:計(jì)算字符串中子串出現(xiàn)的次數(shù)

      【程序50】

      題目:有五個(gè)學(xué)生,每個(gè)學(xué)生有3門課的成績(jī),從鍵盤輸入以上數(shù)據(jù)(包括學(xué)生號(hào),姓名,三門課成績(jī)),計(jì)算出平均成績(jī),況原有的數(shù)據(jù)和計(jì)算出的平均分?jǐn)?shù)存放在磁盤文件“stud”中。

      第五篇:Java編程語(yǔ)言面試題

      西安英泰移動(dòng)通信學(xué)院S2級(jí)Java編程語(yǔ)言測(cè)試題 1

      Java編程語(yǔ)言面試題

      一、簡(jiǎn)答題

      1、簡(jiǎn)述用Java編程語(yǔ)言編寫、編譯、解釋和執(zhí)行過(guò)程。

      2、簡(jiǎn)述在Java JDK中,java.exe程序的作用。

      3、簡(jiǎn)述Java編程語(yǔ)言中的數(shù)組和C編程語(yǔ)言中定義數(shù)組有什么區(qū)別。

      4、簡(jiǎn)述類與對(duì)象的關(guān)系。對(duì)象的方法和類的方法是否為一回事?

      5、JVM在解析代碼Person p1=new Person()和new Person()時(shí)有什么區(qū)別?

      6、簡(jiǎn)述this關(guān)鍵字的四中用途。

      7、簡(jiǎn)述構(gòu)造函數(shù)的作用。

      8、分別簡(jiǎn)述static和final關(guān)鍵字的意義。

      9、簡(jiǎn)述抽象類和接口的區(qū)別,并闡明抽象類和接口的用途。

      10、簡(jiǎn)述多態(tài)的概念和意義。

      11、簡(jiǎn)述異常和錯(cuò)誤的區(qū)別。

      12、簡(jiǎn)述如何創(chuàng)建和啟動(dòng)一個(gè)線程的兩種方法

      13、簡(jiǎn)述棧內(nèi)存和堆內(nèi)存分別用來(lái)做什么。

      14、簡(jiǎn)述throw關(guān)鍵字在程序中拋出的是什么。

      15、在一個(gè)類的public static void method()中,能夠直接使用該類什么類型的成員。

      二、計(jì)算題

      1、在類Runner中定義一個(gè)方法move(),要求這個(gè)方法的參數(shù)是一個(gè)實(shí)現(xiàn)了接口Runnable的匿名內(nèi)部類的對(duì)象,該接口中的方法中的內(nèi)容自己可以決定。

      2、類Outer中與方法屬性平行定義的內(nèi)部類為Inner{ public void doStuff(){}},寫出在另一個(gè)類TestInner的public static void main(String s)中調(diào)用方法doStuff()的代碼。

      3、類Book{ public void insert(String id)throws Exception{…}}中的方法被類TestBook中public void testInser()方法調(diào)用,寫出該方法中的主要代碼。

      4、兩個(gè)頂級(jí)包test1和test2,需要將它們壓縮成一個(gè)文件myjava.jar,再用WinRaR打開時(shí),會(huì)在瀏覽器上看到下列層次;

      ◎META-INF

      ◎test1

      ◎test2

      注:◎?yàn)槲募A

      請(qǐng)寫出操作過(guò)程,并寫出運(yùn)行的命令行程序(提示:用jar.......).5、同一個(gè)線程類ThreadTest中定義了:

      public synchronized void sale(){...}

      synchronized(str){...}

      寫出能使這兩個(gè)類成員保持同步的改進(jìn)代碼。

      6、解釋類class Q{

      private String name=“李四”;

      private String sex=“女”;

      boolean bFull=false;

      public synchronized void put(String name,String sex){

      if(bFull)

      try{

      wait();

      this.name=name;

      }catch(InterruptedException e){}

      try{

      Thread.sleep(10);

      }catch(Exception e){

      System.out.println(e.getMessage());

      }

      this.sex=sex;

      bFull=true;

      notify();

      }

      public synchronized void get()

      {

      if(!bFull)

      try{

      wait();

      }catch(InterruptedException e){}

      System.out.println(name + “----” + sex);

      bFull=false;

      notify();

      }

      }

      中wait()、notify()、sleep()諸方法的作用。

      7、在類class TestInteger{

      public static void main(String[] args){

      int w =。。。。。。。。。。。。。。。。。。。。// 將args[0]轉(zhuǎn)換int型的方法

      int h =。。。。。。。。。。。。。。。。。。。。//將args[1]轉(zhuǎn)換int型的另一種方法//int h = Integer.valueOf(args[1]).intValue();//第三種方法

      for(int i=0;i

      StringBuffer sb=new StringBuffer();

      for(int j=0;j

      sb.append('*');

      }

      System.out.println(sb.toString());

      }

      }

      }

      中,args[0]的值為:“1234”,args[1]的值為:“5678”,請(qǐng)上面代碼塊中的……………處填寫代碼。

      8、下面類

      import java.util.*;

      public class TestVector{

      public static void main(String [] args){

      int b=0;

      Vector v=new Vector();System.out.println(“Please Enter Number:”);

      while(true){

      try{

      b= System.in.read();//……….} catch(Exception e){

      System.out.println(e.getMessage());

      }

      if(b=='r' || b== 'n')

      break;

      else{

      int num=b-'0';

      v.addElement(new Integer(num));//………..}

      }

      int sum=0;

      Enumeration e=v.elements();//…………………

      while(e.hasMoreElements()){

      Integer intObj=(Integer)e.nextElement();//………………..sum += intObj.intValue();

      }

      System.out.println(sum);

      }

      }

      中,請(qǐng)?jiān)谥T單行注釋//。。。。中解釋其左邊一行代碼的意義。

      9、下面類

      import java.io.*;

      public class DataStreamTest{

      public static void main(String[] args){

      try{

      FileOutputStream fos=new FileOutputStream(“c:hello.txt”);//…….BufferedOutputStream bos= new BufferedOutputStream(fos);//……

      DataOutputStream dos= new DataOutputStream(bos);//……..dos.writeUTF(“ab中國(guó)”);//………

      dos.writeBytes(“ab中國(guó)”);

      dos.writeChars(“ab中國(guó)”);

      dos.close();//…………

      FileInputStream fis=new FileInputStream(“hello.txt”);//…….BufferedInputStream bis=new BufferedInputStream(fis);//…….DataInputStream dis=new DataInputStream(bis);//…….System.out.println(dis.readUTF());

      dis.close();

      }catch(Exception e){

      System.out.println(e.getMessage());

      }

      }

      }

      中,請(qǐng)?jiān)谥T單行注釋//。。。。中解釋其左邊一行代碼的意義。

      10、已知接口:interface PCI {

      voidstart();

      voidstop();

      }

      要求:寫兩個(gè)類:NetWorkCard,SoundCard分別實(shí)現(xiàn)上面接口的方法(內(nèi)容自編),并寫第三個(gè)類MainBoard,該類中的方法install(PCI p)應(yīng)用NetWorkCard,SoundCard兩個(gè)類對(duì)象的方法。根據(jù)上面的要求,填寫下面的代碼:

      class Assembler

      {

      public static void main(String []args)

      {

      //在下面寫代碼….}

      }

      class NetWorkCard ….{

      }

      class SoundCard…………{

      }

      class MainBoard…………………………………..{

      install(PCI p){

      }

      }

      下載Java編程培訓(xùn)費(fèi)用是一項(xiàng)成功的投資word格式文檔
      下載Java編程培訓(xùn)費(fèi)用是一項(xiàng)成功的投資.doc
      將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        java高級(jí)編程教學(xué)大綱

        《Java高級(jí)編程》教學(xué)大綱 鄭州大學(xué)軟件技術(shù)學(xué)院 一、 課程的性質(zhì)與任務(wù) 本課程是軟件開發(fā)專業(yè)開設(shè)的程序設(shè)計(jì)類高級(jí)課程,學(xué)生在學(xué)習(xí)了《程序設(shè)計(jì)導(dǎo)論》,初步具備了一定的程......

        Java AWT編程總結(jié)

        1. 什么是GUI? a) GUI是Graphics User Interface的全稱,意思是圖形用戶界面. 2. 為什么需要GUI? a) 圖形用戶界面能夠讓最終用戶通過(guò)鼠標(biāo)拖動(dòng)、單擊等動(dòng)作就可以操作整個(gè)應(yīng)......

        Java線程編程總結(jié)

        線程編程方面60、java中有幾種方法可以實(shí)現(xiàn)一個(gè)線程?用什么關(guān)鍵字修飾同步方法? stop()和suspend()方法為何不推薦使用? 答:有兩種實(shí)現(xiàn)方法,分別是繼承Thread類與實(shí)現(xiàn)Runnable接......

        Java AWT編程總結(jié)

        1. 什么是GUI? a) GUI是Graphics User Interface的全稱,意思是圖形用戶界面. 2. 為什么需要GUI? a) 圖形用戶界面能夠讓最終用戶通過(guò)鼠標(biāo)拖動(dòng)、單擊等動(dòng)作就可以操作整個(gè)應(yīng)......

        Java JDBC編程總結(jié)

        Java JDBC編程總結(jié) Hibernate、TopLink等OR Mapping操作數(shù)據(jù)庫(kù)的技術(shù)都是建立JDBC技術(shù)之上的,實(shí)際來(lái)說(shuō),他們的性能和JDBC是有很大差距的,但反過(guò)來(lái)說(shuō),如果JDBC用不好,還不如hibern......

        java編程實(shí)習(xí)心得體會(huì)

        Java編程實(shí)習(xí)心得體會(huì) “紙上得來(lái)終覺淺,絕知此事要躬行?!痹诙虝旱膶?shí)習(xí)過(guò)程中,我深深的感覺到自己所學(xué)知識(shí)的膚淺和在實(shí)際運(yùn)用中的專業(yè)知識(shí)的匱乏。剛開始的一段時(shí)間里,對(duì)一......

        Java編程學(xué)習(xí)順序★

        1. 第一階段 掌握要點(diǎn):Java語(yǔ)基礎(chǔ)知識(shí)。包括異常、IO流、多線程、集合類、數(shù)據(jù)庫(kù)。 (切記基礎(chǔ)知識(shí)一定要時(shí)時(shí)刻刻鞏固)eg:Java編程思想、Java2 核心技術(shù) 2. 第二階段掌握要點(diǎn):To......

        java軟件編程培訓(xùn)

        最好的Java軟件編程培訓(xùn)西安雁塔尚學(xué)堂計(jì)算機(jī)學(xué)校創(chuàng)辦于2009年,是陜西省培養(yǎng)計(jì)算機(jī)實(shí)用性人才的學(xué)校,學(xué)校以“程序運(yùn)行人生,快樂魔力學(xué)堂”的口號(hào)名揚(yáng)陜西,并且開創(chuàng)了V教學(xué)法等......