1、Eclipse - IBM甩出來給開源社區(qū)的IDE,其本身就是使用Java開發(fā)的。\x0d\x0a2、MyEclipse - 把Eclipse包裝了一下,加了J2EE企業(yè)開發(fā)的許多功能強大的插件。\x0d\x0a3、NetBeans - SUN公司自己開發(fā)的Java開發(fā)環(huán)境,功能挺多的。\x0d\x0a4、還有一些超喜歡手工編寫Java代碼的牛人喜歡使用帶語法著色功能的純文本編輯器編寫Java程序,代碼寫完后在命令提示符下編譯運行。這種方式只適用寫少量代碼或作為學習使用,開發(fā)大型項目不適用,因為效率很低。
創(chuàng)新互聯(lián)網(wǎng)站建設服務商,為中小企業(yè)提供成都網(wǎng)站建設、網(wǎng)站設計服務,網(wǎng)站設計,網(wǎng)站托管、服務器租用等一站式綜合服務型公司,專業(yè)打造企業(yè)形象網(wǎng)站,讓您在眾多競爭對手中脫穎而出創(chuàng)新互聯(lián)。
eclipse、IntelliJ IDEA、myeclipse、netbeans……
eclipse是開源的;
idea算是后起之秀,人性化開發(fā)在幾款工具中做得最到位,它有社區(qū)版也有收費版;
myeclipse需要收費,實際上是將eclipse以一個插件和其他常用插件集成在一起的一個龐大開發(fā)工具,優(yōu)勢就是常用插件齊全,不用自行下載安裝,當然支持自己擴展,劣勢就是繁重,收費;
netbeans是前sun公司自己研發(fā)開放的開發(fā)工具。
…………………………………………………………………………
看你問的問題,應該是對java很感興趣,其實你可以自學java。關(guān)于如何學習java,我剛才看到一篇很不錯的文章,是一個農(nóng)民工介紹自己如何自學java,并找到Java的工作,里面介紹了他的學習方法和學習過程,希望對你有幫助。
我是一名地地道道的農(nóng)民工,生活在經(jīng)濟落后的農(nóng)村,有一個哥哥和一個弟弟,父母都是地道的農(nóng)民,日出而作,日落而息,我從小到大學習一直很好,從小學到高一都,成績在全級一直名列前茅,這樣我也順利了考上省的重點高中,然而,每個學期開學是家里最為難的時候,每次交學費都讓父母發(fā)愁許久,家里為了給我籌錢讀書,都借了不少錢,才讓我讀上高中。我知道我讀到高中家里已經(jīng)欠了好多債,為了減輕家里的負擔,我選擇了退學。
2009年我高一退學,為了給家里還債,干過建筑工地的小工,搞過塑料制品加工,送水工等等。很工資都很低,一個月也就1000多,加上加班費一個月能拿2000多一點,我每個月都向家里寄回800-1000元,到了2011年末,一次偶然的機會我接觸了Java,聽說Java的前景挺不錯,工資相對于我一個農(nóng)民工來說簡直是天文數(shù)字,于是我在新華書店買了幾本Java的書,盡管白天辛苦工作,晚上回來還是堅持看書,但有于基礎太差很多都很不明白,但還是堅持看,一有看1-2個小時Java的書,看著看著許多基礎都慢慢的學會了,但那些比較難的還是看不懂,后來還買了有些關(guān)于框架的書,還是看不懂,這樣斷斷續(xù)續(xù)的持續(xù)了半年多,覺得自己Java的基礎都差不多懂了,但框架還是看不懂,還有最缺的項目經(jīng)驗,看了很多招聘Java程序員的簡介都要項目經(jīng)驗,相對我一個農(nóng)民工來連框架都弄不明白,想找一份Java工作對我來說簡直是奢侈。我只想學Java,并不敢想以后能從事Java的工作。
有一次,在百度上看到一篇讓我很鼓舞的文章,是一個Java高手介紹在沒有基礎的朋友怎么自學入門Java,文章寫的很好,包含了如何學習,該怎么學習,他提到一個方法就是看視頻,因為看書實在太枯燥和費解的,不少是我們也看不懂,這點我真的很認同,我自己看書都看了很久才學會基礎。曾經(jīng)有想過參加培訓,但是上萬元的培訓費讓我望而卻步,我工資這么低,每個月還有向家里匯錢,加上城市消費比較高,雖然每個月只有幾百剩下,但是相對于上萬萬學費和四個月的吃住費用逼我連想不敢想。 于是我決定看視頻,我就去搜索Java的視頻,雖然我零星的找到一些Java的視頻,但是都不系統(tǒng)。最重要連項目都沒有。后來我找到一份很好的視頻,是IT學習聯(lián)盟這個網(wǎng)站一套視頻叫零基礎Java就業(yè)班(喜歡《零基礎Java就業(yè)班》的可以復制 t.cn/8sx5z6L 粘貼瀏覽器地址欄按回車鍵即打開)的教程還不錯,很完整。還贈送11個頂級企業(yè)項目。價格很合理,于是我買下來。
于是開始了我的自學Java的路,收到光盤后,我就開始學習,剛開始學習還不錯,是從零基礎教起,老師幽默風趣而又輕松的課堂教課,使我發(fā)現(xiàn)原來學習JAVA并不是一件很難的事情。因為我本來基礎還不錯,前面的基礎看一篇我就過去了,到了框架,我覺不又不是很難,可能老師太牛了,他能把復雜的問題講的比較通俗易懂,有些難點的地方我還是連續(xù)看了五六次,把他弄懂。每天下午6點下班后,吃了飯,馬上跑回家??匆曨l,買了幾本筆記本。當時,為了編程還花幾百元了臺二手的臺式電腦,配置一般,但編程是足夠的。一邊看視頻,一邊記筆記,把重點都記下來,還一邊跟著老師敲代碼,為了能盡早學會Java。每天都堅持學5-6個小時。經(jīng)常學到晚上一點多才睡覺。星期六,日不用上班,每天7點多起床,學到晚上11,12點。那段時間特別辛苦,特別累。在學習Java的三個多月里,除了吃飯睡覺工作,剩余的時間都在學習,因為我知道自己的計算機基礎不是很好,也沒有學過什么計算機,只是學了些Java基礎,相對于那些科班的人來說我要比他們付出更多的努力。我只能咬緊牙關(guān),堅持下去,我不能放棄,我要完成我的夢想,我要讓我的家人過上好日子。終于三個多月后我把Java教程里的內(nèi)容和項目都學完了,在學項目的過程中我發(fā)現(xiàn)項目特別重要,他能把你學過的知識全部聯(lián)系起來,能更好的理解你所學的知識。還有學習過程中,動手很重要,要經(jīng)常跟著老師動手敲,動手吧,跟著做,一行一行的跟著敲,再試著加一些自己的功能,按照自己的思路敲一些代碼,收獲遠比干聽大的多。 如果遇到暫時對于一些思路不能理解的,動手寫,先寫代碼,慢慢你就會懂了。這套視頻還贈送了11個頂級企業(yè)項目,對于我沒有任何經(jīng)驗的人來說,這個太重要了,還有在學習項目是提升能力最快的方法。項目能把所有的知識點全都連到一起了,不再是分散的,而是形成一個整體了。那種感覺是僅僅深入鉆研知識點而不寫真實項目的人所不能體會的。一個項目就是一根繩子可以把大片的知識串到一起。 就這樣,我用了兩個月也把項目給學完了。其實學完教程差不錯就達到就業(yè)水平,但是我可能覺得自己學歷低還是把那11個頂級企業(yè)項目才去找工作。
接著我就到51job瘋狂的投簡歷,因為我的學歷問題,初中畢業(yè),說真的,大公司沒有人會要我。所以我頭的都是民營的小公司,我希望自己的努力有所回報。沒有想過幾天后,就有面試了,但是第一次面試我失敗了,雖然我自認為筆試很好,因為我之前做了準備,但是他們的要求比價嚴格,需要有一年的項目經(jīng)驗,所以我沒有被選中。 后來陸續(xù)面試了幾加公司,終于功夫不負有心人,我終于面試上了一家民營的企業(yè)。公司規(guī)模比較小,我的職務是Java程序員。我想我比較幸運,經(jīng)理看中我的努力,就決定呂勇我,開的工資是3500一個月,雖然我知道在北京3500只能過溫飽的生化,但是我想我足夠了,比起以前的工資好了些,以后可以多寄些錢回家。我想只要我繼續(xù)努力。我工資一定會翻倍的。 把本文寫出來,希望能讓和我一樣的沒有基礎的朋友有信心,其實我們沒有自卑,我們不比別人笨,只有我們肯努力,我們一樣會成功。
……………………………………………………
希望我的答案能幫助你。
最簡單的java代碼肯定就是這個了,如下:
public class MyFirstApp
{
public static void main(String[] args)
{
System.out.print("Hello world");
}
}
“hello world”就是應該是所有學java的新手看的第一個代碼了。如果是零基礎的新手朋友們可以來我們的java實驗班試聽,有免費的試聽課程幫助學習java必備基礎知識,有助教老師為零基礎的人提供個人學習方案,學習完成后有考評團進行專業(yè)測試,幫助測評學員是否適合繼續(xù)學習java,15天內(nèi)免費幫助來報名體驗實驗班的新手快速入門java,更好的學習java!
import javax.swing.*;
import javax.swing.border.Border;
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.HashMap;
/**
* 我的計算器。Cheshi 繼承于 JFrame,是計算器的界面
c*/
public class Cheshi extends JFrame {
private Border border = BorderFactory.createEmptyBorder(5, 5, 5, 5);
private JTextField textbox = new JTextField("0");
private CalculatorCore core = new CalculatorCore();
private ActionListener listener = new ActionListener() {
public void actionPerformed(ActionEvent e) {
JButton b = (JButton) e.getSource();
String label = b.getText();
String result = core.process(label);
textbox.setText(result);
}
};
public Cheshi(String title) throws HeadlessException {
super(title); // 調(diào)用父類構(gòu)造方法
setupFrame(); // 調(diào)整窗體屬性
setupControls(); // 創(chuàng)建控件
}
private void setupControls() {
setupDisplayPanel(); // 創(chuàng)建文本面板
setupButtonsPanel(); // 創(chuàng)建按鈕面板
}
// 創(chuàng)建按鈕面板并添加按鈕
private void setupButtonsPanel() {
JPanel panel = new JPanel();
panel.setBorder(border);
panel.setLayout(new GridLayout(4, 5, 3, 3));
createButtons(panel, new String[]{
"7", "8", "9", "+", "C",
"4", "5", "6", "-", "CE",
"1", "2", "3", "*", "", // 空字符串表示這個位置沒有按鈕
"0", ".", "=", "/", ""
});
this.add(panel, BorderLayout.CENTER);
}
/**
* 在指定的面板上創(chuàng)建按鈕
*
* @param panel 要創(chuàng)建按鈕的面板
* @param labels 按鈕文字
*/
private void createButtons(JPanel panel, String[] labels) {
for (String label : labels) {
// 如果 label 為空,則表示創(chuàng)建一個空面板。否則創(chuàng)建一個按鈕。
if (label.equals("")) {
panel.add(new JPanel());
} else {
JButton b = new JButton(label);
b.addActionListener(listener); // 為按鈕添加偵聽器
panel.add(b);
}
}
}
// 設置顯示面板,用一個文本框來作為計算器的顯示部分。
private void setupDisplayPanel() {
JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());
panel.setBorder(border);
setupTextbox();
panel.add(textbox, BorderLayout.CENTER);
this.add(panel, BorderLayout.NORTH);
}
// 調(diào)整文本框
private void setupTextbox() {
textbox.setHorizontalAlignment(JTextField.RIGHT); // 文本右對齊
textbox.setEditable(false); // 文本框只讀
textbox.setBackground(Color.white); // 文本框背景色為白色
}
// 調(diào)整窗體
private void setupFrame() {
this.setDefaultCloseOperation(EXIT_ON_CLOSE); // 當窗體關(guān)閉時程序結(jié)束
this.setLocation(100, 50); // 設置窗體顯示在桌面上的位置
this.setSize(300, 200); // 設置窗體大小
this.setResizable(false); // 窗體大小固定
}
// 程序入口
public static void main(String[] args) throws Exception {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
Cheshi frame = new Cheshi("我的計算器");
frame.setVisible(true); // 在桌面上顯示窗體
}
}
/**
* 計算器核心邏輯。這個邏輯只能處理 1~2 個數(shù)的運算。
*/
class CalculatorCore {
private String displayText = "0"; // 要顯示的文本
boolean reset = true;
private BigDecimal number1, number2;
private String operator;
private HashMapString, Operator operators = new HashMapString, Operator();
private HashMapString, Processor processors = new HashMapString, Processor();
CalculatorCore() {
setupOperators();
setupProcessors();
}
// 為每種命令添加處理方式
private void setupProcessors() {
processors.put("[0-9]", new Processor() {
public void calculate(String command) {
numberClicked(command);
}
});
processors.put("\\.", new Processor() {
public void calculate(String command) {
dotClicked();
}
});
processors.put("=", new Processor() {
public void calculate(String command) {
equalsClicked();
}
});
processors.put("[+\\-*/]", new Processor() {
public void calculate(String command) {
operatorClicked(command);
}
});
processors.put("C", new Processor() {
public void calculate(String command) {
clearClicked();
}
});
processors.put("CE", new Processor() {
public void calculate(String command) {
clearErrorClicked();
}
});
}
// 為每種 operator 添加處理方式
private void setupOperators() {
operators.put("+", new Operator() {
public BigDecimal process(BigDecimal number1, BigDecimal number2) {
return number1.add(number2);
}
});
operators.put("-", new Operator() {
public BigDecimal process(BigDecimal number1, BigDecimal number2) {
return number1.subtract(number2);
}
});
operators.put("*", new Operator() {
public BigDecimal process(BigDecimal number1, BigDecimal number2) {
return number1.multiply(number2);
}
});
operators.put("/", new Operator() {
public BigDecimal process(BigDecimal number1, BigDecimal number2) {
return number1.divide(number2, 30, RoundingMode.HALF_UP);
}
});
}
// 根據(jù)命令處理。這里的命令實際上就是按鈕文本。
public String process(String command) {
for (String pattern : processors.keySet()) {
if (command.matches(pattern)) {
processors.get(pattern).calculate(command);
break;
}
}
return displayText;
}
// 當按下 CE 時
private void clearErrorClicked() {
if (operator == null) {
number1 = null;
} else {
number2 = null;
}
displayText = "0";
reset = true;
}
// 當按下 C 時,將計算器置為初始狀態(tài)。
private void clearClicked() {
number1 = null;
number2 = null;
operator = null;
displayText = "0";
reset = true;
}
// 當按下 = 時
private void equalsClicked() {
calculateResult();
number1 = null;
number2 = null;
operator = null;
reset = true;
}
// 計算結(jié)果
private void calculateResult() {
number2 = new BigDecimal(displayText);
Operator oper = operators.get(operator);
if (oper != null) {
BigDecimal result = oper.process(number1, number2);
displayText = result.toString();
}
}
// 當按下 +-*/ 時(這里也可以擴展成其他中間操作符)
private void operatorClicked(String command) {
if (operator != null) {
calculateResult();
}
number1 = new BigDecimal(displayText);
operator = command;
reset = true;
}
// 當按下 . 時
private void dotClicked() {
if (displayText.indexOf(".") == -1) {
displayText += ".";
} else if (reset) {
displayText = "0.";
}
reset = false;
}
// 當按下 0-9 時
private void numberClicked(String command) {
if (reset) {
displayText = command;
} else {
displayText += command;
}
reset = false;
}
// 運算符處理接口
interface Operator {
BigDecimal process(BigDecimal number1, BigDecimal number2);
}
// 按鈕處理接口
interface Processor {
void calculate(String command);
}
}