下面是我修改了滴源碼,是基于一張簡單的地圖,在地圖上搜索目的節(jié)點,依次用深度優(yōu)先、廣度優(yōu)先、Dijkstra算法實現(xiàn)。
創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比黃梅網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式黃梅網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋黃梅地區(qū)。費用合理售后完善,10年實體公司更值得信賴。
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.PriorityQueue;
import java.util.Stack;
/**
*
* @author yinzhuo
*
*/
public class Arithmatic {
boolean flag = true;
// 一張地圖
static int[][] map = new int[][]// 地圖數(shù)組
{
{ 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 },
{ 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 },
{ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0 },
{ 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 },
{ 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 },
{ 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 },
{ 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0 },
{ 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0 },
{ 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0 },
{ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0 },
{ 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0 },
{ 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } };
Java代碼注釋寫的多,會影響到編譯效率,但是不會影響到執(zhí)行效率。
Java代碼是先編譯成字節(jié)碼,然后被JVM解釋執(zhí)行的。
我做了個實驗
TimeDemo 類
import?java.util.ArrayList;
public?class?TimeDemo?{
public?static?void?main(String[]?args)?{
long?start?=?System.currentTimeMillis();
ArrayListInteger?list?=?new?ArrayListInteger();
for?(int?i?=?0;?i?1000000;?i++)?{
list.add(i);
}
long?end?=?System.currentTimeMillis();
System.out.println("本次執(zhí)行耗費了"+(end-start)+"毫秒");
}
}
TimeDemo2
import?java.util.ArrayList;
public?class?TimeDemo2?{
public?static?void?main(String[]?args)?{
long?start?=?System.currentTimeMillis();
ArrayListInteger?list?=?new?ArrayListInteger();
for?(int?i?=?0;?i?1000000;?i++)?{
list.add(i);
}
//用java.io生成了很多行的注釋,
//注釋
//注釋
//注釋
//注釋
//注釋
long?end?=?System.currentTimeMillis();
System.out.println("本次執(zhí)行耗費了"+(end-start)+"毫秒");
}
}
運行結(jié)果
當注釋行數(shù)是1~1萬行的時候. 能較快的編譯
當注釋行數(shù)達到1百萬的時候,編譯稍微慢一點
當注釋行數(shù)達到1千萬行的時候, CPU占用100%,卡了進1分鐘也沒有編譯完成,只好強行關(guān)閉
結(jié)論:
簡單明了的注釋有助于程序猿對代碼的讀寫
只有當注釋行數(shù)極大的時候,才會嚴重的影響編譯速度。 但不會影響執(zhí)行速度
Java代碼之于java程序員而言就是左膀右臂,java代碼寫的好的java程序員明顯更是企業(yè)的歡迎,一個優(yōu)秀的java程序員的考核標準之一也是看他的編程水平。
其實有的java程序員java代碼會受到大家的追捧,是因為他在寫代碼時注意的細節(jié)往往多于那些不怎么關(guān)注java代碼編程細節(jié)的程序員,俗話說:“細節(jié)決定成敗”,那么如何寫出好的java代碼呢?IT培訓(xùn)介紹一起來討論下:
1.重視注釋
有的java程序員在寫代碼時,從來沒有想過要在java代碼后加上相關(guān)的注釋,甚至是上萬行的代碼也沒有想過加上注釋,這就存在很大的問題,不說你的代碼會跟其他人分享討論,就你自己回顧你是怎么寫好這篇代碼的,你也是半天無法理出頭緒,這就為維護和修改等等工作添加了很大的麻煩。所以,要想寫出好的java代碼,一定從簡短的java代碼編寫開始注重在java代碼后面加上相應(yīng)的注釋,養(yǎng)成良好的習(xí)慣。
2.重視排版整潔
看很多java程序員的排版總覺得在欣賞一幅藝術(shù)品,但是看到一些java程序員的排版卻總覺得無力吐槽。同樣是編寫代碼,但是給人的視覺體驗是相當?shù)牟煌斎缓玫膉ava代碼給人的享受也是美的,所以要想寫出好的代碼,一定要重視排版整潔。
3.注重命名規(guī)則
現(xiàn)在在一個團隊開發(fā)中,都會提前定制一個統(tǒng)一的命名規(guī)則,這樣利于提高工作效益。但是很多java程序員是缺乏這個意識的,每次敲代碼,更喜歡按照自己慣常的方式老命名模塊、函數(shù),這樣是方便了自己,但是忽視團隊協(xié)作,所以在日常工作中,特別是團隊工作中一定要重視命名規(guī)則。
4.養(yǎng)成備份習(xí)慣
備份的重要性不用小編強調(diào),相必你也知道。但是有的java程序員就是沒有養(yǎng)成這樣的好習(xí)慣,每次敲完代碼就不記得隨手保存,每次等到除了事故,比如電腦出了故障,辛辛苦苦敲打的java代碼沒保存找不回來的情況下就開始懊惱,與其這樣還不如在一開始就養(yǎng)成良好的備份習(xí)慣,這樣也方便自己日后查找利用。
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.util.Calendar;
import javax.swing.BoxLayout;
import javax.swing.ButtonGroup;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
public class TestWindow {
/**
* @param args
*/
public static void main(String[] args) {
/*
* 定義窗體,標題
*/
JFrame frame=new JFrame("java");
/*
* 定義菜單
*/
JMenuBar menuBar = new JMenuBar();
JMenu menuFile = new JMenu("文件(F)");
menuFile.setMnemonic(KeyEvent.VK_F);
menuBar.add(menuFile);
JMenuItem exitMenu=new JMenuItem("退出");
menuFile.add(exitMenu);
frame.setJMenuBar(menuBar);
/*
*菜單事件
*/
exitMenu.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e) {
System.exit(1);
}
});
/*
* 標題欄的叉的退出事件
*/
frame.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e) {
System.exit(1);
}
});
/*
* 布局,采用簡單的Box+Flow的布局,可以采用Grid或者更復(fù)雜的GridBagLayout
*/
JPanel panelMain=new JPanel();
panelMain.setLayout(new BoxLayout(panelMain, BoxLayout.Y_AXIS));
frame.getContentPane().add(panelMain,BorderLayout.CENTER);
//添加組件
JPanel line1Panel=new JPanel();
JPanel line2Panel=new JPanel();
JPanel line3Panel=new JPanel();
JPanel line4Panel=new JPanel();
line1Panel.setLayout(new FlowLayout(FlowLayout.LEFT));
line2Panel.setLayout(new FlowLayout(FlowLayout.LEFT));
line3Panel.setLayout(new FlowLayout(FlowLayout.LEFT));
line4Panel.setLayout(new FlowLayout(FlowLayout.LEFT));
panelMain.add(line1Panel);
panelMain.add(line2Panel);
panelMain.add(line3Panel);
panelMain.add(line4Panel);
line1Panel.add(new JLabel("姓名:"));
JTextField txtName=new JTextField();
txtName.setColumns(10);
line1Panel.add(txtName);
line1Panel.add(new JLabel("密碼:"));
JPasswordField txtPass=new JPasswordField();
txtPass.setColumns(10);
line1Panel.add(txtPass);
line2Panel.add(new JLabel("性別:"));
JRadioButton radioM=new JRadioButton("男");
JRadioButton radioF=new JRadioButton("女");
line2Panel.add(radioM);
line2Panel.add(radioF);
ButtonGroup group = new ButtonGroup();
group.add(radioM);
group.add(radioF);
Object[] years=new Object[50];
java.util.Calendar cal= Calendar.getInstance();
int year=cal.get(Calendar.YEAR);
for(int i=0;i50;i++)
years[i]=new Integer(year-i);
Object[] months=new Object[12];
for(int i=0;i12;i++)
months[i]=new Integer(i+1);
JComboBox yearList=new JComboBox(years);
JComboBox monthList=new JComboBox(months);
line3Panel.add(new JLabel("出生年月:"));
line3Panel.add(yearList);
line3Panel.add(new JLabel("年"));
line3Panel.add(monthList);
line3Panel.add(new JLabel("月"));
JCheckBox chkRead=new JCheckBox("讀書");
JCheckBox chkMovies=new JCheckBox("電影");
line4Panel.add(new JLabel("愛好:"));
line4Panel.add(chkRead);
line4Panel.add(chkMovies);
frame.pack();
frame.setVisible(true);
}
}
當前標題:java代碼深度影響 java代碼臃腫
網(wǎng)頁網(wǎng)址:http://newbst.com/article32/doihipc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計、網(wǎng)站設(shè)計公司、全網(wǎng)營銷推廣、移動網(wǎng)站建設(shè)、品牌網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)