亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

java實現簡單的俄羅斯方塊

 更新時間:2022年01月18日 15:06:50   作者:後物  
這篇文章主要為大家詳細介紹了java實現簡單的俄羅斯方塊,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了java實現簡單俄羅斯方塊的具體代碼,供大家參考,具體內容如下

結合網上的資料剛做完課程設計,具體代碼如下:

public class TetrisPanel extends JPanel{
? ? private final int[][] map = new int[13][23];// map[列號][行號]。真正的方塊區(qū)是:21行*10列。邊框(2列,1行)
? ? // 方塊的形狀:
? ? // 第一維代表方塊類型(包括7種:S、Z、L、J、I、O、T)
? ? // 第二`在這里插入代碼片`維代表旋轉次數
? ? // 第三四維代表方塊矩陣
? ? // shapes[type][turnState][i] i--> block[i/4][i%4]
? ? int[][][] shapes = new int[][][] {
? ? ? ? ? ? /*
? ? ? ? ? ? ?* 模板 { {0,0,0,0,0,0,0,0, 0,0,0,0, 0,0,0,0}, {0,0,0,0,0,0,0,0, 0,0,0,0,
? ? ? ? ? ? ?* 0,0,0,0}, {0,0,0,0,0,0,0,0, 0,0,0,0, 0,0,0,0}, {0,0,0,0,0,0,0,0, 0,0,0,0,
? ? ? ? ? ? ?* 0,0,0,0} }
? ? ? ? ? ? ?*/
? ? ? ? ? ? // I
? ? ? ? ? ? { { 1, 1, 1, 1,
? ? ? ? ? ? ? ? 0, 0, 0, 0,
? ? ? ? ? ? ? ? 0, 0, 0, 0,
? ? ? ? ? ? ? ? 0, 0, 0, 0 },
? ? ? ? ? ? ? { 0, 1, 0, 0,
? ? ? ? ? ? ? ? 0, 1, 0, 0,
? ? ? ? ? ? ? ? 0, 1, 0, 0,
? ? ? ? ? ? ? ? 0, 1, 0, 0 },
? ? ? ? ? ? ? { 1, 1, 1, 1,
? ? ? ? ? ? ? ? 0, 0, 0, 0,
? ? ? ? ? ? ? ? 0, 0, 0, 0,
? ? ? ? ? ? ? ? 0, 0, 0, 0 },
? ? ? ? ? ? ? { 0, 1, 0, 0,
? ? ? ? ? ? ? ? 0, 1, 0, 0,
? ? ? ? ? ? ? ? 0, 1, 0, 0,
? ? ? ? ? ? ? ? 0, 1, 0, 0 } },
? ? ? ? ? ? // S
? ? ? ? ? ? { { 0, 0, 1, 1,
? ? ? ? ? ? ? ? 0, 1, 1, 0,
? ? ? ? ? ? ? ? 0, 0, 0, 0,
? ? ? ? ? ? ? ? 0, 0, 0, 0 },
? ? ? ? ? ? ? { 0, 1, 0, 0,
? ? ? ? ? ? ? ? 0, 1, 1, 0,
? ? ? ? ? ? ? ? 0, 0, 1, 0,
? ? ? ? ? ? ? ? 0, 0, 0, 0 },
? ? ? ? ? ? ? { 0, 0, 1, 1,
? ? ? ? ? ? ? ? 0, 1, 1, 0,
? ? ? ? ? ? ? ? 0, 0, 0, 0,
? ? ? ? ? ? ? ? 0, 0, 0, 0 },
? ? ? ? ? ? ? { 0, 1, 0, 0,
? ? ? ? ? ? ? ? 0, 1, 1, 0,
? ? ? ? ? ? ? ? 0, 0, 1, 0,
? ? ? ? ? ? ? ? 0, 0, 0, 0 } },
? ? ? ? ? ? // Z 第3行: shapes[2][2][]
? ? ? ? ? ? { { 1, 1, 0, 0,
? ? ? ? ? ? ? ? 0, 1, 1, 0,
? ? ? ? ? ? ? ? 0, 0, 0, 0,
? ? ? ? ? ? ? ? 0, 0, 0, 0 },
? ? ? ? ? ? ? { 0, 1, 0, 0,
? ? ? ? ? ? ? ? 1, 1, 0, 0,
? ? ? ? ? ? ? ? 1, 0, 0, 0,
? ? ? ? ? ? ? ? 0, 0, 0, 0 },
? ? ? ? ? ? ? { 1, 1, 0, 0,
? ? ? ? ? ? ? ? 0, 1, 1, 0,
? ? ? ? ? ? ? ? 0, 0, 0, 0,
? ? ? ? ? ? ? ? 0, 0, 0, 0 },
? ? ? ? ? ? ? { 0, 1, 0, 0,
? ? ? ? ? ? ? ? 1, 1, 0, 0,
? ? ? ? ? ? ? ? 1, 0, 0, 0,
? ? ? ? ? ? ? ? 0, 0, 0, 0 } },
? ? ? ? ? ? // J
? ? ? ? ? ? { { 0, 0, 1, 0,
? ? ? ? ? ? ? ? 0, 0, 1, 0,
? ? ? ? ? ? ? ? 0, 1, 1, 0,
? ? ? ? ? ? ? ? 0, 0, 0, 0 },
? ? ? ? ? ? ? { 0, 1, 0, 0,
? ? ? ? ? ? ? ? 0, 1, 1, 1,
? ? ? ? ? ? ? ? 0, 0, 0, 0,
? ? ? ? ? ? ? ? 0, 0, 0, 0 },
? ? ? ? ? ? ? { 0, 1, 1, 0,
? ? ? ? ? ? ? ? 0, 1, 0, 0,
? ? ? ? ? ? ? ? 0, 1, 0, 0,
? ? ? ? ? ? ? ? 0, 0, 0, 0 },
? ? ? ? ? ? ? { 0, 1, 1, 1,
? ? ? ? ? ? ? ? 0, 0, 0, 1,
? ? ? ? ? ? ? ? 0, 0, 0, 0,
? ? ? ? ? ? ? ? 0, 0, 0, 0 } },
? ? ? ? ? ? // O
? ? ? ? ? ? { { 0, 1, 1, 0,
? ? ? ? ? ? ? ? 0, 1, 1, 0,
? ? ? ? ? ? ? ? 0, 0, 0, 0,
? ? ? ? ? ? ? ? 0, 0, 0, 0 },
? ? ? ? ? ? ? { 0, 1, 1, 0,
? ? ? ? ? ? ? ? 0, 1, 1, 0,
? ? ? ? ? ? ? ? 0, 0, 0, 0,
? ? ? ? ? ? ? ? 0, 0, 0, 0 },
? ? ? ? ? ? ? { 0, 1, 1, 0,
? ? ? ? ? ? ? ? 0, 1, 1, 0,
? ? ? ? ? ? ? ? 0, 0, 0, 0,
? ? ? ? ? ? ? ? 0, 0, 0, 0 },
? ? ? ? ? ? ? { 0, 1, 1, 0,
? ? ? ? ? ? ? ? 0, 1, 1, 0,
? ? ? ? ? ? ? ? 0, 0, 0, 0,
? ? ? ? ? ? ? ? 0, 0, 0, 0 } },
? ? ? ? ? ? // L
? ? ? ? ? ? { { 0, 1, 0, 0,
? ? ? ? ? ? ? ? 0, 1, 0, 0,
? ? ? ? ? ? ? ? 0, 1, 1, 0,
? ? ? ? ? ? ? ? 0, 0, 0, 0 },
? ? ? ? ? ? ? { 0, 1, 1, 1,
? ? ? ? ? ? ? ? 0, 1, 0, 0,
? ? ? ? ? ? ? ? 0, 0, 0, 0,
? ? ? ? ? ? ? ? 0, 0, 0, 0 },
? ? ? ? ? ? ? { 0, 1, 1, 0,
? ? ? ? ? ? ? ? 0, 0, 1, 0,
? ? ? ? ? ? ? ? 0, 0, 1, 0,
? ? ? ? ? ? ? ? 0, 0, 0, 0 },
? ? ? ? ? ? ? { 0, 0, 0, 1,
? ? ? ? ? ? ? ? 0, 1, 1, 1,
? ? ? ? ? ? ? ? 0, 0, 0, 0,
? ? ? ? ? ? ? ? 0, 0, 0, 0 } },
? ? ? ? ? ? // T
? ? ? ? ? ? { { 0, 1, 0, 0,
? ? ? ? ? ? ? ? 1, 1, 1, 0,
? ? ? ? ? ? ? ? 0, 0, 0, 0,
? ? ? ? ? ? ? ? 0, 0, 0, 0 },
? ? ? ? ? ? ? { 0, 1, 0, 0,
? ? ? ? ? ? ? ? 1, 1, 0, 0,
? ? ? ? ? ? ? ? 0, 1, 0, 0,
? ? ? ? ? ? ? ? 0, 0, 0, 0 },
? ? ? ? ? ? ? { 0, 0, 0, 0,
? ? ? ? ? ? ? ? 1, 1, 1, 0,
? ? ? ? ? ? ? ? 0, 1, 0, 0,
? ? ? ? ? ? ? ? 0, 0, 0, 0 },
? ? ? ? ? ? ? { 0, 1, 0, 0,
? ? ? ? ? ? ? ? 0, 1, 1, 0,
? ? ? ? ? ? ? ? 0, 1, 0, 0,
? ? ? ? ? ? ? ? 0, 0, 0, 0 } } };

? ? private int type;
? ? private int turnState;
? ? private int x, y;// 當前塊的位置---左上角的坐標
? ? private int score = 0;

? ? TimerListener listener1 = new TimerListener(); ? ?//監(jiān)聽器
? ? Timer timer = new Timer(1000, listener1); ?//定時器

? ? public TetrisPanel() {
? ? ? ? newGame();
? ? ? ? nextBlock();
? ? ? ? timer.start();
? ? }

? ? void newGame() {
? ? ? ? // 初始化游戲地圖
? ? ? ? for (int i = 0; i < 12; i++) { ?//列
? ? ? ? ? ? for (int j = 0; j < 21; j++) { ?//行
? ? ? ? ? ? ? ? if (i == 0 || i == 11) {// 邊框
? ? ? ? ? ? ? ? ? ? map[i][j] = 1; ?//透明度
? ? ? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? ? ? map[i][j] = 0;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? ? ? map[i][21] = 1;
? ? ? ? }
? ? ? ? score = 0;
? ? }

? ? void nextBlock() {
? ? ? ? type = (int) (Math.random() * 1000) % 7; // 總共七種類型
? ? ? ? turnState = (int) (Math.random() * 1000) % 4; // 總共四種轉換方法

? ? ? ? x = 3; ? //起始下落坐標
? ? ? ? y = 0;
? ? ? ? if (crash(x, y, type, turnState) == 0) {
? ? ? ? ? ? timer.stop();
? ? ? ? ? ? int op = JOptionPane.showConfirmDialog(null,
? ? ? ? ? ? ? ? ? ? "Game Over!...再來一局嗎?!","提示",JOptionPane.YES_NO_OPTION);
? ? ? ? ? ? if (op == JOptionPane.YES_OPTION) {
? ? ? ? ? ? ? ? newGame();
? ? ? ? ? ? ? ? listener1 = new TimerListener();
? ? ? ? ? ? ? ? Timer timer = new Timer(1000, listener1);
? ? ? ? ? ? ? ? timer.start();
? ? ? ? ? ? } else if (op == JOptionPane.NO_OPTION) {
? ? ? ? ? ? ? ? System.exit(0);
? ? ? ? ? ? }
? ? ? ? }
? ? }

? ? void down() {
? ? ? ? if (crash(x, y + 1, type, turnState) == 0) {// 判斷當前塊往下落一格后是否和地圖存在填充塊完全重合---注意實參:y+1
? ? ? ? ? ? add(x, y, type, turnState);// 把該塊加到地圖---形成堆積塊
? ? ? ? ? ? nextBlock();
? ? ? ? } else {
? ? ? ? ? ? y++;
? ? ? ? }
? ? ? ? repaint(); ? ?//刷新頁面
? ? }

? ? void left() {
? ? ? ? if (x >= 0) {
? ? ? ? ? ? x -= crash(x - 1, y, type, turnState);
? ? ? ? }
? ? ? ? repaint();
? ? }

? ? void right() {
? ? ? ? if (x < 8) {
? ? ? ? ? ? x += crash(x + 1, y, type, turnState);
? ? ? ? }
? ? ? ? repaint();
? ? }
? ? void turn() {
? ? ? ? if (crash(x, y, type, (turnState + 1) % 4) == 1) {
? ? ? ? ? ? turnState = (turnState + 1) % 4;
? ? ? ? }
? ? ? ? repaint();
? ? }

? ? // 讓一個塊堆積,其實是把當前塊中的填充塊信息記錄到map[][]中
? ? private void add(int x, int y, int type, int turnState) {
? ? ? ? for (int a = 0; a < 4; a++) {
? ? ? ? ? ? for (int b = 0; b < 4; b++) {
? ? ? ? ? ? ? ? if (shapes[type][turnState][a * 4 + b] == 1) {
? ? ? ? ? ? ? ? ? ? map[x + b + 1][y + a] = 1;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? tryDelLine();
? ? }

? ? // 消塊
? ? private void tryDelLine() {
? ? ? ? // 從上往下,一行行依次遍歷,如果某一行的map[i][j]值全是1,則把這一行消掉---上一行往下落
? ? ? ? for (int b = 0; b < 21; b++) {
? ? ? ? ? ? int c = 1;
? ? ? ? ? ? for (int a = 0; a < 12; a++) {
? ? ? ? ? ? ? ? c &= map[a][b];
? ? ? ? ? ? }
? ? ? ? ? ? if (c == 1) {// 全是1--下落一行
? ? ? ? ? ? ? ? score += 10;
? ? ? ? ? ? ? ? for (int d = b; d > 0; d--) {
? ? ? ? ? ? ? ? ? ? for (int e = 0; e < 11; e++) {
? ? ? ? ? ? ? ? ? ? ? ? map[e][d] = map[e][d - 1];
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? }
? ? }

? ? private int crash(int x, int y, int blockType, int turnState) {
? ? ? ? for (int a = 0; a < 4; a++) {
? ? ? ? ? ? for (int b = 0; b < 4; b++) {
? ? ? ? ? ? ? ? if ((shapes[blockType][turnState][a * 4 + b] & map[x + b + 1][y + a]) == 1) {// 和填充塊或框架重合,都算碰撞
? ? ? ? ? ? ? ? ? ? return 0; // 碰撞了---方塊的填充塊和地圖中的填充塊完全重合
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? return 1;// 沒有碰撞
? ? }

? ? // 表現層
? ? @Override
? ? public void paint(Graphics g) {
? ? ? ? super.paint(g);// 清除殘影

? ? ? ? // 畫當前塊
? ? ? ? for (int j = 0; j < 16; j++) {
? ? ? ? ? ? if (shapes[type][turnState][j] == 1) {
? ? ? ? ? ? ? ? g.setColor(Color.green);
? ? ? ? ? ? ? ? g.fillRect((j % 4 + x + 1) * 30, (j / 4 + y) * 30, 30, 30);
? ? ? ? ? ? }
? ? ? ? }

? ? ? ? // 畫地圖(整個游戲的方塊區(qū)和邊框)
? ? ? ? for (int i = 0; i < 12; i++) {
? ? ? ? ? ? for (int j = 0; j < 22; j++) {
? ? ? ? ? ? ? ? if (map[i][j] == 1) {
? ? ? ? ? ? ? ? ? ? g.setColor(Color.black); ? ?//邊框,墻體
? ? ? ? ? ? ? ? ? ? g.fillRect(i * 30, j * 30, 30, 30);// 填充
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? // 顯示分數,同時為版面美觀,在界面上再加點東西
? ? ? ? // 畫方塊區(qū)右側部分
? ? ? ? g.setColor(Color.blue);
? ? ? ? g.setFont(new Font("aa", Font.BOLD, 26));
? ? ? ? g.drawString("score : " + score, 395, 100);

? ? ? ? //畫游戲區(qū)的線格
? ? ? ? for (int i = 1; i < 11; i++) {
? ? ? ? ? ? for (int j = 0; j < 21; j++) {
? ? ? ? ? ? ? ? g.setColor(Color.CYAN);
? ? ? ? ? ? ? ? g.drawRect(i * 30, j * 30, 30, 30);
? ? ? ? ? ? }
? ? ? ? }
? ? }

? ? class TimerListener extends KeyAdapter implements ActionListener {
? ? ? ? @Override
? ? ? ? public void keyPressed(KeyEvent e) {
? ? ? ? ? ? switch (e.getKeyCode()) {
? ? ? ? ? ? ? ? case KeyEvent.VK_DOWN:
? ? ? ? ? ? ? ? case KeyEvent.VK_S:
? ? ? ? ? ? ? ? ? ? down();
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case KeyEvent.VK_LEFT:
? ? ? ? ? ? ? ? case KeyEvent.VK_A:
? ? ? ? ? ? ? ? ? ? left();
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case KeyEvent.VK_RIGHT:
? ? ? ? ? ? ? ? case KeyEvent.VK_D:
? ? ? ? ? ? ? ? ? ? right();
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case KeyEvent.VK_UP:
? ? ? ? ? ? ? ? case KeyEvent.VK_W:
? ? ? ? ? ? ? ? ? ? turn();
? ? ? ? ? ? }
? ? ? ? }

? ? ? ? @Override
? ? ? ? public void actionPerformed(ActionEvent e) {
? ? ? ? ? ? down();
? ? ? ? }
? ? }
}
public class Tetris extends JFrame {

? ? static JButton button1 = new JButton("重來");
? ? static JButton button2 = new JButton("暫停");
? ? static JButton button3 = new JButton("退出");

? ? static int flag = 0;
? ? Tetris(){
? ? ? ? setTitle("俄羅斯方塊");
? ? ? ? setVisible(true);
? ? ? ? setLocation(450, 100);
? ? ? ? setDefaultCloseOperation(EXIT_ON_CLOSE);
? ? ? ? setSize(550, 697);
? ? ? ? setResizable(false);
? ? ? ? setFocusable(true); ?//表明此 Component 是否可以獲得焦點
? ? }
? ? public static void main(String[] args) {
? ? ? ? Tetris te = new Tetris();
? ? ? ? TetrisPanel tp = new TetrisPanel();
? ? ? ? te.add(tp);

? ? ? ? button1.setBounds(390,300,120,40);
? ? ? ? button2.setBounds(390,390,120,40);
? ? ? ? button3.setBounds(390,480,120,40);
? ? ? ? button1.setFocusable(false);
? ? ? ? button2.setFocusable(false);
? ? ? ? tp.add(button1);
? ? ? ? tp.add(button2);
? ? ? ? tp.add(button3);
? ? ? ? tp.setLayout(null);
? ? ? ? te.addKeyListener(tp.listener1); // 讓框架來監(jiān)聽鍵盤

? ? ? ? button1.addActionListener(e -> {
? ? ? ? ? ? if(e.getSource() == button1){
? ? ? ? ? ? ? ? tp.timer.stop();
? ? ? ? ? ? ? ? int a = JOptionPane.showConfirmDialog(null, "確定要重新開始嗎?","提示",JOptionPane.YES_NO_OPTION);
? ? ? ? ? ? ? ? if(a == JOptionPane.YES_OPTION){
? ? ? ? ? ? ? ? ? ? button2.setText("暫停");
? ? ? ? ? ? ? ? ? ? tp.timer.start();
? ? ? ? ? ? ? ? ? ? tp.newGame();
? ? ? ? ? ? ? ? ? ? tp.nextBlock();
? ? ? ? ? ? ? ? }else if(a == JOptionPane.NO_OPTION){
? ? ? ? ? ? ? ? ? ? System.exit(0);
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? });
? ? ? ? button2.addActionListener(e -> {
? ? ? ? ? ? if(e.getSource() == button2){
? ? ? ? ? ? ? ? if(flag == 0){
? ? ? ? ? ? ? ? ? ? button2.setText("繼續(xù)游戲");
? ? ? ? ? ? ? ? ? ? tp.timer.stop();
? ? ? ? ? ? ? ? ? ? flag = 1;
? ? ? ? ? ? ? ? }else if(flag == 1){
? ? ? ? ? ? ? ? ? ? button2.setText("暫停");
? ? ? ? ? ? ? ? ? ? tp.timer.start();
? ? ? ? ? ? ? ? ? ? flag = 0;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? });
? ? ? ? button3.addActionListener(e -> {
? ? ? ? ? ? if(e.getSource() == button3){
? ? ? ? ? ? ? ? tp.timer.stop();
? ? ? ? ? ? ? ? int a = JOptionPane.showConfirmDialog(null,"確定要退出游戲嗎?","退出",JOptionPane.YES_NO_OPTION);
? ? ? ? ? ? ? ? if(a == JOptionPane.YES_OPTION){
? ? ? ? ? ? ? ? ? ? System.exit(0);
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? });
? ? }
}

代碼實現效果如下:

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Java線程死鎖實例及解決方法

    Java線程死鎖實例及解決方法

    這篇文章主要介紹了Java線程死鎖實例及解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-11-11
  • Java 創(chuàng)建動態(tài)類和查看方法列表信息的實例

    Java 創(chuàng)建動態(tài)類和查看方法列表信息的實例

    這篇文章主要介紹了 Java 創(chuàng)建動態(tài)類和查看方法列表信息的實例的相關資料,需要的朋友可以參考下
    2017-06-06
  • SpringBoot通過源碼探究靜態(tài)資源的映射規(guī)則實現

    SpringBoot通過源碼探究靜態(tài)資源的映射規(guī)則實現

    這篇文章主要介紹了SpringBoot通過源碼探究靜態(tài)資源的映射規(guī)則實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-05-05
  • Java內存結構和數據類型

    Java內存結構和數據類型

    本文重點給大家介紹java內存結構和數據類型知識,非常不錯,具有參考借鑒價值,需要的朋友參考下
    2016-12-12
  • SpringDataJpa寫原生sql遇到的問題及解決

    SpringDataJpa寫原生sql遇到的問題及解決

    這篇文章主要介紹了SpringDataJpa寫原生sql遇到的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • 使用chatgpt實現微信聊天小程序的代碼示例

    使用chatgpt實現微信聊天小程序的代碼示例

    這篇文章主要介紹了使用chatgpt實現微信聊天小程序(秒回復),文中有詳細的代碼示例,對大家了解chatgpt聊天有一定的幫助,感興趣的同學可以參考閱讀
    2023-05-05
  • 解析Mybatis判斷表達式源碼分析

    解析Mybatis判斷表達式源碼分析

    這篇文章主要介紹了Mybatis判斷表達式源碼分析,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-10-10
  • java中jdk的下載和安裝全過程

    java中jdk的下載和安裝全過程

    這篇文章主要給大家介紹了關于java中jdk的下載和安裝的相關資料,文中通過圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • IDEA POJO開發(fā)神器之Groovy的使用詳解

    IDEA POJO開發(fā)神器之Groovy的使用詳解

    這篇文章主要介紹了IDEA POJO開發(fā)神器之Groovy的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • 淺談java中為什么實體類需要實現序列化

    淺談java中為什么實體類需要實現序列化

    下面小編就為大家?guī)硪黄獪\談java中為什么實體類需要實現序列化。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05

最新評論