java代碼執(zhí)行鏈,鏈?zhǔn)秸{(diào)用 java

用java代碼實(shí)現(xiàn)責(zé)任鏈模式的骨干代碼

//----------------先寫了個(gè),功能是實(shí)現(xiàn)了,有待改進(jìn)-----------

專注于為中小企業(yè)提供網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)廣西免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了成百上千家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

import java.util.ArrayList;

import java.util.List;

/**

* 現(xiàn)有ListSourceBean類型的List對(duì)象,

* 現(xiàn)在需要將該List對(duì)象中a是奇數(shù)或者b100的對(duì)象過濾掉,

* 請(qǐng)用責(zé)任鏈模式實(shí)現(xiàn)此段代碼。

* @author Administrator

*

*/

public class Chain_test1 {

public static void main(String[] args) {

ListSourceBean list = new ArrayListSourceBean();

SourceBean bean1 = new SourceBean(1, 100);

SourceBean bean2 = new SourceBean(2, 200);

SourceBean bean3 = new SourceBean(3, 100);

SourceBean bean4 = new SourceBean(4, 100);

SourceBean bean5 = new SourceBean(5, 20);

SourceBean bean6 = new SourceBean(6, 200);

list.add(bean1);

list.add(bean2);

list.add(bean3);

list.add(bean4);

list.add(bean5);

list.add(bean6);

System.out.println("過濾前List中的內(nèi)容");

printList(list);

// 裝配 鏈條

Filter oddFilter = new OddFilter();

//為了保持Filter里面的邏輯不混亂,OddFilter僅過濾奇數(shù),CompareFilter僅僅過濾b100

//這里對(duì)奇數(shù)過濾兩次,

//即,過濾掉b100和a是奇數(shù) 共存的情形

Filter oddFilter2 = new OddFilter();

Filter compareFilter = new CompareFilter();

oddFilter.setFilter(null);

compareFilter.setFilter(oddFilter);

oddFilter2.setFilter(compareFilter);

// 進(jìn)行過濾

oddFilter2.doFilter(list);

System.out.println("\n過濾后List中的內(nèi)容");

printList(list);

}

public static void printList(ListSourceBean list){

for(SourceBean s: list){

System.out.print(s.toString());

}

}

}

class Filter{

private Filter filter;

public void doFilter(ListSourceBean list){

if (filter != null){

filter.doFilter(list);

}else{

System.out.println("處理結(jié)束");

}

}

public void setFilter(Filter filter){

this.filter = filter;

}

}

/**

* 僅僅過濾b100

*/

class CompareFilter extends Filter{

public void doFilter(ListSourceBean list){

for(int i= 0; i list.size(); i++){

if(list.get(i).getB() 100 ){//b100

list.remove(i);//移除該對(duì)象

}else{//交給其他Filter處理

super.doFilter(list);

}

}

}

}

/**

* 僅過濾a為奇數(shù)

*/

class OddFilter extends Filter{

public void doFilter(ListSourceBean list){

for(int i= 0; i list.size(); i++){

if(list.get(i).getA() % 2 != 0){//非偶數(shù)

list.remove(i);//移除該對(duì)象

}else{//交給其他Filter處理

super.doFilter(list);

}

}

}

}

class SourceBean {

private int a;

private int b;

public SourceBean(int a, int b){

this.a = a;

this.b = b;

}

public SourceBean(){

}

public String toString(){

return "[a="+a+", b="+b+"] ";

}

public int getA() {

return a;

}

public void setA(int a) {

this.a = a;

}

public void setB(int b) {

this.b = b;

}

public int getB() {

return b;

}

}

//------------------------執(zhí)行結(jié)果----------------------------

過濾前List中的內(nèi)容

[a=1, b=100] [a=2, b=200] [a=3, b=100] [a=4, b=100] [a=5, b=20] [a=6, b=200]

過濾后List中的內(nèi)容

[a=4, b=100]

Java單向鏈表代碼。

這是我寫的一個(gè)差不多,你看一下吧:

package com.test.list;

import java.io.BufferedReader;

import java.io.InputStreamReader;

public class LinkedList {

public static void main(String[] args) {

MyList l = new MyList();

MyListNode node = l.createList();

l.printNode(node);

//l.searchNode(node, 4);

//node = l.insertNode(node, 3, "g");

//l.printNode(node);

node = l.deleteNode(node, "d");

l.printNode(node);

}

}

class MyListNode {

public String data;

public MyListNode nextNode;

}

class MyList {

public MyListNode createList() {

MyListNode node = new MyListNode();

MyListNode q ,p;

q = new MyListNode();

q = node;

while (true) {

String s = null;

try {

BufferedReader br = new BufferedReader(new InputStreamReader(

System.in));

System.out.println("請(qǐng)輸入節(jié)點(diǎn)數(shù)據(jù):");

s = br.readLine();

if (s.equals("0")) {

break;

} else {

p = new MyListNode();

p.data = s;

p.nextNode = null;

q.nextNode = p;

q = p;

}

} catch (Exception e) {

e.printStackTrace();

}

}

return node;

}

public void printNode(MyListNode node) {

MyListNode p = node.nextNode;

while (p!= null) {

System.out.print(" "+p.data);

p = p.nextNode;

}

}

public void searchNode(MyListNode node, int i){

MyListNode p = node.nextNode;

int j = 1;

while (p != null ji) {

p = p.nextNode;

j++;

}

if( p == null || ji) {

System.out.println("error");

}

System.out.println(" --"+p.data+"--");

}

public MyListNode insertNode(MyListNode node, int i ,String s) {

MyListNode p = node.nextNode;

int j = 1;

while (p != null ji-1) {

p = p.nextNode;

j++;

}

if( p == null || ji-1) {

System.out.println("error");

}

MyListNode n = new MyListNode();

n.data = s;

n.nextNode = p.nextNode;

p.nextNode = n;

return node;

}

public MyListNode deleteNode(MyListNode node ,String s) {

MyListNode p = node;

while(p.nextNode != null !p.nextNode.data.equals(s)) {

p = p.nextNode;

}

p.nextNode = p.nextNode.nextNode;

return node;

}

}

/*逆位序創(chuàng)建

public MyListNode createList() {

MyListNode node = new MyListNode();

node.nextNode = null;

while(true) {

String s = null;

try {

BufferedReader br = new BufferedReader(new InputStreamReader(

System.in));

System.out.println("請(qǐng)輸入節(jié)點(diǎn)數(shù)據(jù):");

s = br.readLine();

if(s.equals("0")) {

break;

}else {

MyListNode n = new MyListNode();

n.data = s;

n.nextNode = node.nextNode;

node.nextNode = n;

}

} catch (Exception e) {

e.printStackTrace();

}

}

return node;

}

*/

如何java代碼實(shí)現(xiàn)首尾相連的兩列數(shù)據(jù)生成所有的順序鏈?

樓主說的是不是表格可以動(dòng)態(tài)編輯修改???你是用servlet嗎?這樣的話頁(yè)面上的可編輯表格你要用js實(shí)現(xiàn),保存的信息你傳到后臺(tái)用request獲取是數(shù)組格式的,順序和你頁(yè)面上顯示的順序一致,ID你在頁(yè)面隱藏,然后遍歷這幾個(gè)數(shù)組就可以了

java如何實(shí)現(xiàn)鏈?zhǔn)骄幊?/h2>

class A{

public B getB(){

return new B();

}

}

class B{

public a getA(){

return new A();

}

}

public static void main(String args[]){

B b = new A().getB().getA().getB(); //類似于這樣的

}

如何優(yōu)化JAVA代碼及提高執(zhí)行效率

網(wǎng)站優(yōu)化通常包含兩方面的內(nèi)容:減小代碼的體積和提高代碼的運(yùn)行效率。減小代碼的體積已經(jīng)寫過太多這類的文章了,下面就簡(jiǎn)單討論下如何提高代碼的效率。一、不用new關(guān)鍵詞創(chuàng)建類的實(shí)例用new關(guān)鍵詞創(chuàng)建類的實(shí)例時(shí),構(gòu)造函數(shù)鏈中的所有構(gòu)造函數(shù)都會(huì)被自動(dòng)調(diào)用。但如果一個(gè)對(duì)象實(shí)現(xiàn)了Cloneable接口,我們可以調(diào)用它的clone()方法。clone()方法不會(huì)調(diào)用任何類構(gòu)造函數(shù)。在使用設(shè)計(jì)模式(DesignPattern)的場(chǎng)合,如果用Factory模式創(chuàng)建對(duì)象,則改用clone()方法創(chuàng)建新的對(duì)象實(shí)例非常簡(jiǎn)單。二、使用非阻塞I/O版本較低的JDK不支持非阻塞I/OAPI。為避免I/O阻塞,一些應(yīng)用采用了創(chuàng)建大量線程的辦法(在較好的情況下,會(huì)使用一個(gè)緩沖池)。這種技術(shù)可以在許多必須支持并發(fā)I/O流的應(yīng)用中見到,如Web服務(wù)器、報(bào)價(jià)和拍賣應(yīng)用等。然而,創(chuàng)建Java線程需要相當(dāng)可觀的開銷。JDK1.4引入了非阻塞的I/O庫(kù)(java.nio)。如果應(yīng)用要求使用版本較早的JDK,需要支持非阻塞I/O的軟件包。三、慎用異常異常對(duì)性能不利。拋出異常首先要?jiǎng)?chuàng)建一個(gè)新的對(duì)象。Throwable接口的構(gòu)造函數(shù)調(diào)用名為fillInStackTrace()的本地(Native)方法,fillInStackTrace()方法檢查堆棧,收集調(diào)用跟蹤信息。只要有異常被拋出,VM就必須調(diào)整調(diào)用堆棧,因?yàn)樵谔幚磉^程中創(chuàng)建了一個(gè)新的對(duì)象。異常只能用于錯(cuò)誤處理,不應(yīng)該用來控制程序流程。四、不要重復(fù)初始化變量默認(rèn)情況下,調(diào)用類的構(gòu)造函數(shù)時(shí),Java會(huì)把變量初始化成確定的值:所有的對(duì)象被設(shè)置成null,整數(shù)變量(byte、short、int、long)設(shè)置成0,float和double變量設(shè)置成0.0,邏輯值設(shè)置成false。當(dāng)一個(gè)類從另一個(gè)類派生時(shí),這一點(diǎn)尤其應(yīng)該注意,因?yàn)橛胣ew關(guān)鍵詞創(chuàng)建一個(gè)對(duì)象時(shí),構(gòu)造函數(shù)鏈中的所有構(gòu)造函數(shù)都會(huì)被自動(dòng)調(diào)用。五、盡量指定類的final修飾符帶有final修飾符的類是不可派生的。在Java核心API中,有許多應(yīng)用final的例子,例如java.lang.String。為String類指定final防止了人們覆蓋length()方法。另外,如果指定一個(gè)類為final,則該類所有的方法都是final。Java編譯器會(huì)尋找機(jī)會(huì)內(nèi)聯(lián)(inline)所有的final方法(這和具體的編譯器實(shí)現(xiàn)有關(guān))。此舉能夠使性能平均提高50%。六、盡量使用局部變量調(diào)用方法時(shí)傳遞的參數(shù)以及在調(diào)用中創(chuàng)建的臨時(shí)變量都保存在棧(Stack)中,速度較快。其他變量,如靜態(tài)變量、實(shí)例變量等,都在堆(Heap)中創(chuàng)建,速度較慢。另外,依賴于具體的編譯器/JVM,局部變量還可能得到進(jìn)一步優(yōu)化,望采納,謝謝。

java工作原理

Java工作原理

由四方面組成:

(1)Java編程語言

(2)Java類文件格式

(3)Java虛擬機(jī)

(4)Java應(yīng)用程序接口

當(dāng)編輯并運(yùn)行一個(gè)Java程序時(shí),需要同時(shí)涉及到這四種方面。使用文字編輯軟件(例如記事本、寫字板、UltraEdit等)或集成開發(fā)環(huán)境(Eclipse、MyEclipse等)在Java源文件中定義不同的類 ,通過調(diào)用類(這些類實(shí)現(xiàn)了Java API)中的方法來訪問資源系統(tǒng),把源文件編譯生成一種二進(jìn)制中間碼,存儲(chǔ)在class文件中,然后再通過運(yùn)行與操作系統(tǒng)平臺(tái)環(huán)境相對(duì)應(yīng)的Java虛擬機(jī)來運(yùn)行class文件,執(zhí)行編譯產(chǎn)生的字節(jié)碼,調(diào)用class文件中實(shí)現(xiàn)的方法來滿足程序的Java API調(diào)用 。

文章題目:java代碼執(zhí)行鏈,鏈?zhǔn)秸{(diào)用 java
分享路徑:http://muchs.cn/article8/phicip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、App設(shè)計(jì)、電子商務(wù)、網(wǎng)站建設(shè)網(wǎng)站改版、

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)