1、Python比Java簡單,學習成本低,開發效率高。
蒸湘網站建設公司成都創新互聯,蒸湘網站設計制作,有大型網站制作公司豐富經驗。已為蒸湘上千家提供企業網站建設服務。企業網站搭建\成都外貿網站制作要多少錢,請找那個售后服務好的蒸湘做網站的公司定做!
2、Java運行效率高于Python,尤其是純Python開發的程序,效率極低。
3、Java相關資料多,尤其是中文資料。
4、Java版本比較穩定,Python2和3不兼容導致大量類庫失效。
5、Java開發偏向于軟件工程,團隊協同,Python更適合小型開發。
6、Java偏向于商業開發,Python適合于數據分析。
7、Java是一種靜態類型語言,Python是一種動態類型語言。
8、Java中的所有變量需要先聲明(類型)才能使用,Python中的變量不需要聲明類型。
/*這個相當詳細了.
程序也不算太難.而且給老師看的時候效果比較好.因為有圖形化界面,又實現一個比較實用的功能.老師會比較高興的.
建立一個文件名為Change.java就可以編譯了*/
/*
* 這個程序實現輸入身高算出標準體重,輸入體重,算出身高的功能
*/
import java.awt.*; //導入相關類包,這才樣使用相應awt圖形界面的類
import java.awt.event.*;//同上
public class Change extends Frame { //定義一個類Change, 父類是Frame(圖形界面的)
Button b = new Button("互查"); //創建一個按鈕的對象b,顯示為"互查"
Label l1 = new Label("身高(cm)");//創建一個lable.顯示身高
Label l2 = new Label("體重(kg)");//創建一個lable 顯示體重
double heigth, weigth; //定義變量
double x, y; //定義變量
TextField tf1 = new TextField(null, 10);//添加Text框
TextField tf2 = new TextField(null, 10);//添加Text框
public Change() {//類的構造函數,完成初始化
super("互查表");//創建窗口,標題為互查表
setLayout(new FlowLayout(FlowLayout.LEFT));//設置布局
add(l1);//把lable 身高放到window里
add(tf1);//把Text 框 放到窗口上
add(l2); //把lable 體重放到window里
add(tf2);//Test放到窗口里
add(b);//把button放到窗口上
pack();//自動放到窗口里排列上邊的組件
setVisible(true);//可以讓用戶看到窗口
addWindowListener(new WindowAdapter() {//如果按 X, 關閉窗口
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
b.addActionListener(new ButtonListener());//添加button監聽函數
}
class ButtonListener implements ActionListener {//實現click button時功能操作
public void actionPerformed(ActionEvent e) {//當click調用
if (tf1.getText()!=null) {//檢查tf1 test 是否為空
try {//取異常
x = Double.parseDouble(tf1.getText());//字符轉為double型
weigth = (x - 100) * 0.9;//算重量
tf2.setText("" + weigth);//顯示重量
} catch (NumberFormatException ex) {
tf1.setText("");//如果輸入不是數字,設為空
}
}
if (tf1.getText().equals("")==true){//tf1是否為空
y = Double.parseDouble(tf2.getText());//把tf2里的文本轉為double 型 的
heigth = y / 0.9 + 100; //算身高根據重量
tf1.setText("" + heigth);}//顯示身高
}
}
public static void main(String[] args) {//主函數,程序入口
new Change(); //建立類Change的對象,并調用他的構造函數Change().顯示窗口
}
}
《Effective Java中文版(第2版)》主要內容:在Java編程中78條極具實用價值的經驗規則,這些經驗規則涵蓋了大多數開發人員每天所面臨的問題的解決方案。通過對Java平臺設計專家所使用的技術的全面描述,揭示了應該做什么,不應該做什么才能產生清晰、健壯和高效的代碼。第2版反映了Java 5中最重要的變化,并刪去了過時的內容。
《Effective Java中文版(第2版)》中的每條規則都以簡短、獨立的小文章形式出現,并通過示例代碼加以進一步說明。
《Effective Java中文版(第2版)》的內容包括:
全新的泛型、枚舉、注解、自動裝箱、for-each循環、可變參數、并發機制,等等。
經典主題的全新技術和最佳實踐,包括對象.類、類庫、方法和序列化。
如何避免Java編程語言中常被誤解的細微之處:陷阱和缺陷。
點擊鏈接進入Java程序設計:
《深入理解Java虛擬機:JVM高級特性與最佳實踐》
《JAVA核心技術(卷1):基礎知識(原書第8版)》
《JAVA核心技術卷2:高級特征》
《Java語言程序設計(基礎篇)(原書第8版)》
《Java編程思想(第4版)》
《Effective Java中文版(第2版)》
《Java編程思想(英文版?第4版)》
《Java 實時編程》
《Java加密與解密的藝術》
《Eclipse插件開發(原書第3版)(暢銷插件開發指南新版)》
《Java語言程序設計:進階篇(原書第8版)》
《Maven實戰》
連連看java源代碼
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class lianliankan implements ActionListener
{
JFrame mainFrame; //主面板
Container thisContainer;
JPanel centerPanel,southPanel,northPanel; //子面板
JButton diamondsButton[][] = new JButton[6][5];//游戲按鈕數組
JButton exitButton,resetButton,newlyButton; //退出,重列,重新開始按鈕
JLabel fractionLable=new JLabel("0"); //分數標簽
JButton firstButton,secondButton; //分別記錄兩次被選中的按鈕
int grid[][] = new int[8][7];//儲存游戲按鈕位置
static boolean pressInformation=false; //判斷是否有按鈕被選中
int x0=0,y0=0,x=0,y=0,fristMsg=0,secondMsg=0,validateLV; //游戲按鈕的位置坐標
int i,j,k,n;//消除方法控制
public void init(){
mainFrame=new JFrame("JKJ連連看");
thisContainer = mainFrame.getContentPane();
thisContainer.setLayout(new BorderLayout());
centerPanel=new JPanel();
southPanel=new JPanel();
northPanel=new JPanel();
thisContainer.add(centerPanel,"Center");
thisContainer.add(southPanel,"South");
thisContainer.add(northPanel,"North");
centerPanel.setLayout(new GridLayout(6,5));
for(int cols = 0;cols 6;cols++){
for(int rows = 0;rows 5;rows++ ){
diamondsButton[cols][rows]=new JButton(String.valueOf(grid[cols+1][rows+1]));
diamondsButton[cols][rows].addActionListener(this);
centerPanel.add(diamondsButton[cols][rows]);
}
}
exitButton=new JButton("退出");
exitButton.addActionListener(this);
resetButton=new JButton("重列");
resetButton.addActionListener(this);
newlyButton=new JButton("再來一局");
newlyButton.addActionListener(this);
southPanel.add(exitButton);
southPanel.add(resetButton);
southPanel.add(newlyButton);
fractionLable.setText(String.valueOf(Integer.parseInt(fractionLable.getText())));
northPanel.add(fractionLable);
mainFrame.setBounds(280,100,500,450);
mainFrame.setVisible(true);
}
public void randomBuild() {
int randoms,cols,rows;
for(int twins=1;twins=15;twins++) {
randoms=(int)(Math.random()*25+1);
for(int alike=1;alike=2;alike++) {
cols=(int)(Math.random()*6+1);
rows=(int)(Math.random()*5+1);
while(grid[cols][rows]!=0) {
cols=(int)(Math.random()*6+1);
rows=(int)(Math.random()*5+1);
}
this.grid[cols][rows]=randoms;
}
}
}
public void fraction(){
fractionLable.setText(String.valueOf(Integer.parseInt(fractionLable.getText())+100));
}
public void reload() {
int save[] = new int[30];
int n=0,cols,rows;
int grid[][]= new int[8][7];
for(int i=0;i=6;i++) {
for(int j=0;j=5;j++) {
if(this.grid[i][j]!=0) {
save[n]=this.grid[i][j];
n++;
}
}
}
n=n-1;
this.grid=grid;
while(n=0) {
cols=(int)(Math.random()*6+1);
rows=(int)(Math.random()*5+1);
while(grid[cols][rows]!=0) {
cols=(int)(Math.random()*6+1);
rows=(int)(Math.random()*5+1);
}
this.grid[cols][rows]=save[n];
n--;
}
mainFrame.setVisible(false);
pressInformation=false; //這里一定要將按鈕點擊信息歸為初始
init();
for(int i = 0;i 6;i++){
for(int j = 0;j 5;j++ ){
if(grid[i+1][j+1]==0)
diamondsButton[i][j].setVisible(false);
}
}
}
public void estimateEven(int placeX,int placeY,JButton bz) {
if(pressInformation==false) {
x=placeX;
y=placeY;
secondMsg=grid[x][y];
secondButton=bz;
pressInformation=true;
}
else {
x0=x;
y0=y;
fristMsg=secondMsg;
firstButton=secondButton;
x=placeX;
y=placeY;
secondMsg=grid[x][y];
secondButton=bz;
if(fristMsg==secondMsg secondButton!=firstButton){
xiao();
}
}
}
public void xiao() { //相同的情況下能不能消去。仔細分析,不一條條注釋
if((x0==x (y0==y+1||y0==y-1)) || ((x0==x+1||x0==x-1)(y0==y))){ //判斷是否相鄰
remove();
}
else{
for (j=0;j7;j++ ) {
if (grid[x0][j]==0){ //判斷第一個按鈕同行哪個按鈕為空
if (yj) { //如果第二個按鈕的Y坐標大于空按鈕的Y坐標說明第一按鈕在第二按鈕左邊
for (i=y-1;i=j;i-- ){ //判斷第二按鈕左側直到第一按鈕中間有沒有按鈕
if (grid[x][i]!=0) {
k=0;
break;
}
else{ k=1; } //K=1說明通過了第一次驗證
}
if (k==1) {
linePassOne();
}
}
if (yj){ //如果第二個按鈕的Y坐標小于空按鈕的Y坐標說明第一按鈕在第二按鈕右邊
for (i=y+1;i=j ;i++ ){ //判斷第二按鈕左側直到第一按鈕中間有沒有按鈕
if (grid[x][i]!=0){
k=0;
break;
}
else { k=1; }
}
if (k==1){
linePassOne();
}
}
if (y==j ) {
linePassOne();
}
}
if (k==2) {
if (x0==x) {
remove();
}
if (x0x) {
for (n=x0;n=x-1;n++ ) {
if (grid[n][j]!=0) {
k=0;
break;
}
if(grid[n][j]==0 n==x-1) {
remove();
}
}
}
if (x0x) {
for (n=x0;n=x+1 ;n-- ) {
if (grid[n][j]!=0) {
k=0;
break;
}
if(grid[n][j]==0 n==x+1) {
remove();
}
}
}
}
}
for (i=0;i8;i++ ) { //列
if (grid[i][y0]==0) {
if (xi) {
for (j=x-1;j=i ;j-- ) {
if (grid[j][y]!=0) {
k=0;
break;
}
else { k=1; }
}
if (k==1) {
rowPassOne();
}
}
if (xi) {
for (j=x+1;j=i;j++ ) {
if (grid[j][y]!=0) {
k=0;
break;
}
else { k=1; }
}
if (k==1) {
rowPassOne();
}
}
if (x==i) {
rowPassOne();
}
}
if (k==2){
if (y0==y) {
remove();
}
if (y0y) {
for (n=y0;n=y-1 ;n++ ) {
if (grid[i][n]!=0) {
k=0;
break;
}
if(grid[i][n]==0 n==y-1) {
remove();
}
}
}
if (y0y) {
for (n=y0;n=y+1 ;n--) {
if (grid[i][n]!=0) {
k=0;
break;
}
if(grid[i][n]==0 n==y+1) {
remove();
}
}
}
}
}
}
}
public void linePassOne(){
if (y0j){ //第一按鈕同行空按鈕在左邊
for (i=y0-1;i=j ;i-- ){ //判斷第一按鈕同左側空按鈕之間有沒按鈕
if (grid[x0][i]!=0) {
k=0;
break;
}
else { k=2; } //K=2說明通過了第二次驗證
}
}
if (y0j){ //第一按鈕同行空按鈕在與第二按鈕之間
for (i=y0+1;i=j ;i++){
if (grid[x0][i]!=0) {
k=0;
break;
}
else{ k=2; }
}
}
}
public void rowPassOne(){
if (x0i) {
for (j=x0-1;j=i ;j-- ) {
if (grid[j][y0]!=0) {
k=0;
break;
}
else { k=2; }
}
}
if (x0i) {
for (j=x0+1;j=i ;j++ ) {
if (grid[j][y0]!=0) {
k=0;
break;
}
else { k=2; }
}
}
}
public void remove(){
firstButton.setVisible(false);
secondButton.setVisible(false);
fraction();
pressInformation=false;
k=0;
grid[x0][y0]=0;
grid[x][y]=0;
}
public void actionPerformed(ActionEvent e) {
if(e.getSource()==newlyButton){
int grid[][] = new int[8][7];
this.grid = grid;
randomBuild();
mainFrame.setVisible(false);
pressInformation=false;
init();
}
if(e.getSource()==exitButton)
System.exit(0);
if(e.getSource()==resetButton)
reload();
for(int cols = 0;cols 6;cols++){
for(int rows = 0;rows 5;rows++ ){
if(e.getSource()==diamondsButton[cols][rows])
estimateEven(cols+1,rows+1,diamondsButton[cols][rows]);
}
}
}
public static void main(String[] args) {
lianliankan llk = new lianliankan();
llk.randomBuild();
llk.init();
}
}
//old 998 lines
//new 318 lines
求采納為滿意回答。
名稱欄目:java代碼中文版 一段java代碼的詳細解說
網頁鏈接:http://vcdvsql.cn/article4/ddipiie.html
成都網站建設公司_創新互聯,為您提供Google、域名注冊、手機網站建設、全網營銷推廣、品牌網站設計、服務器托管
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯