所謂的編譯就是把高級的語言翻譯成計(jì)算機(jī)可以識別的機(jī)器語言,所以當(dāng)編譯程序編譯到注釋那段的時(shí)候程序也會把它編譯成機(jī)器碼的形似存儲在內(nèi)存里,但是這個(gè)機(jī)器碼并不會執(zhí)行,如果你學(xué)過匯編你就會知道它們的存儲空間是不一樣的
在長洲等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站制作、成都網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作專業(yè)公司,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站建設(shè),成都營銷網(wǎng)站建設(shè),外貿(mào)網(wǎng)站建設(shè),長洲網(wǎng)站建設(shè)費(fèi)用合理。
選中代碼 ctrl+/ 是每一行代碼前面加注釋 //
ctrl+shift+/ 是/* */注釋
取消是同樣的操作,已有注釋的就會取消沒有就會加注釋(前提是你已經(jīng)設(shè)置了快捷鍵,我說的這些是默認(rèn)的快捷鍵eclipse中的)
你查一下你用的工具的快捷鍵。
如果是eclipse,選中這些行,Ctrl+/
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class GameTest extends JFrame implements ActionListener{
/*
* 新建一個(gè)主面板(這個(gè)類可能是自定義的,本程序和API中沒有)。
*/
MainPanel j=new MainPanel();
JButton jPreview;
JLabel label;
Container container;
JPanel panel;
/**
* 主函數(shù)
* @param args
*/
public static void main(String[] args) {
//運(yùn)行程序
new GameTest();
}
/**
* 構(gòu)造函數(shù)。
*
*/
public GameTest()
{
//新建一個(gè)標(biāo)題為“拼圖”的窗口
JFrame fr =new JFrame("拼圖");
//獲取窗口容器。
container=fr.getContentPane();
//創(chuàng)建菜單條
JMenuBar jMenuBar=new JMenuBar();
//以下初始化菜單,并且設(shè)置快捷鍵和添加監(jiān)聽器。
JMenu jMenuGame=new JMenu("游戲(G)");
jMenuGame.setMnemonic('g');
JMenuItem jMenuItemStart = new JMenuItem("開始(S)");
jMenuItemStart.setMnemonic('s');
jMenuItemStart.addActionListener(this);
JMenuItem jMenuItemExit=new JMenuItem("退出(E)");
jMenuItemExit.setMnemonic('e');
jMenuItemExit.addActionListener(this);
jMenuGame.add(jMenuItemStart);
jMenuGame.add(jMenuItemExit);
//初始化按鈕并設(shè)置快捷鍵和添加監(jiān)聽器
JButton jChoice=new JButton("選圖(X)");
jChoice.setMnemonic('x');
jChoice.addActionListener(this);
jPreview=new JButton("預(yù)覽(P)");
jPreview.setMnemonic('p');
jPreview.addActionListener(this);
//將菜單和按鈕添加到菜單條中
jMenuBar.add(jMenuGame);
jMenuBar.add(jChoice);
jMenuBar.add(jPreview);
//將菜單條設(shè)為該窗口的主菜單
fr.setJMenuBar(jMenuBar);
//將主面板添加到該窗口的容器中。
container.add(j);
//設(shè)置大小
fr.setSize(315,360 );
fr.setVisible(true);
//設(shè)置默認(rèn)關(guān)閉方式。
fr.setDefaultCloseOperation(3);
}
/**
* 事件處理函數(shù)。
*/
public void actionPerformed(ActionEvent e) {
if(e.getActionCommand()=="開始(S)")
{
j.Start();
}
if(e.getActionCommand()=="預(yù)覽(P)")
{
j.setVisible(false);
panel=new JPanel();
Icon icon=new ImageIcon("pictrue/pic"+"_"+MainPanel.pictureID+".jpg");
label=new JLabel(icon);
label.setBounds(300, 300, 0, 0);
panel.add(label);
panel.setSize(300, 300);
panel.setVisible(true);
this.container.add(panel);
jPreview.setText("返回(P)");
}
if(e.getActionCommand()=="返回(P)")
{
panel.setVisible(false);
j.setVisible(true);
j.repaint();
jPreview.setText("預(yù)覽(P)");
}
if(e.getActionCommand()=="退出(E)")
{
System.exit(0);
}
if(e.getActionCommand()=="選圖(X)")
{
//初始化選擇框,并提供選擇。
Choice pic = new Choice();
pic.add("七里香");
pic.add("依然范特西");
pic.add("八度空間");
pic.add("十一月的肖邦");
pic.add("魔杰座");
pic.add("葉惠美");
pic.add("我很忙");
int i=JOptionPane.showConfirmDialog(this, pic, "選擇圖片", JOptionPane.OK_CANCEL_OPTION);
if(i==JOptionPane.YES_OPTION)
{
//選擇圖片
MainPanel.pictureID=pic.getSelectedIndex()+1;
j.removeAll();
j.reLoadPicture();
j.repaint();
}
}
}
}
批量去掉Java文件中的注釋,可以使用正則表達(dá)式進(jìn)行批量操作,代碼如下:
import?java.io.BufferedReader;??
import?java.io.BufferedWriter;??
import?java.io.File;??
import?java.io.FileInputStream;??
import?java.io.FileOutputStream;??
import?java.io.IOException;??
import?java.io.InputStream;??
import?java.io.InputStreamReader;??
import?java.io.OutputStream;??
import?java.io.OutputStreamWriter;??
public?class?CopyJava?{??
public?static?void?main(String[]?args)?throws?IOException?{??
copy("e:/src",?"e:/desc");?//?這里寫好源文件夾和目的文件夾??
}??
private?static?void?copy(String?srcPath,?String?descPath)?throws?IOException?{??
copy(new?File(srcPath),?new?File(descPath));??
}??
private?static?void?copy(File?srcFile,?File?descFile)?throws?IOException?{??
if?(srcFile.isFile())?{?//?文件??
File?parent?=?descFile.getParentFile();??
if?(!parent.exists())?{??
parent.mkdirs();?//?創(chuàng)建文件夾??
}??
if?(srcFile.getName().endsWith(".java"))?{??
copyJava(srcFile,?descFile);??
}?else?{??
copyFile(srcFile,?descFile);??
}??
}?else?{?//?文件夾??
for?(File?file?:?srcFile.listFiles())?{??
//?相對路徑??
String?srcPath?=?file.getAbsolutePath().substring(srcFile.getAbsolutePath().length());??
copy(file,?new?File(descFile.getAbsolutePath()?+?srcPath));??
}??
}??
}??
private?static?void?copyJava(File?srcFile,?File?descFile)?throws?IOException?{??
BufferedWriter?bw?=?new?BufferedWriter(new?OutputStreamWriter(new?FileOutputStream(descFile)));??
BufferedReader?br?=?new?BufferedReader(new?InputStreamReader(new?FileInputStream(srcFile)));??
String?line;??
while?((line?=?br.readLine())?!=?null)?{??
bw.write(line.replaceFirst("/\\*?????\\*/",?""));?//?注意這里,如果不行,要適當(dāng)修改??
bw.write("\n");??
}??
br.close();??
bw.close();??
}??
private?static?void?copyFile(File?srcFile,?File?descFile)?throws?IOException?{??
OutputStream?output?=?new?FileOutputStream(descFile);??
InputStream?input?=?new?FileInputStream(srcFile);??
byte[]?buffer?=?new?byte[1024?*?4];??
int?n?=?0;??
while?((n?=?input.read(buffer))?!=?-1)?{??
output.write(buffer,?0,?n);??
}??
input.close();??
output.close();??
}??
}
直接用程序?qū)懸残?利用字符串匹配的方法 找到第一個(gè)“/*”和“*/”記錄他們的index值,然后利用replace()函數(shù)進(jìn)行替換