先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024b (备注Java)
正文
=====================================================================
package com.sjsq;
/**
-
此类用以载入数据库
-
@author 郑伟
-
*/
import java.sql.Connection;
import java.sql.DriverManager;
import javax.swing.JOptionPane;
public class DBUtil {
// 数据库驱动名
private static String DriverName = “com.mysql.cj.jdbc.Driver”;
// 数据库协议
private static String dbUril = “jdbc:mysql://localhost:3306/teachbook_management_swing?serverTimezone=UTC”;
// 数据库用户名
private static String dbName = “root”;
// 数据库密码
private static String dbPassword = “admin”;
public static Connection getlink() {
try {
Class.forName(DriverName);
System.out.println(“正在加载…”);
Connection connection = DriverManager.getConnection(dbUril, dbName, dbPassword);
System.out.println(“连接成功!”);
// ResultSet rs = stmt.executeQuery(sql);
return connection;
} catch (Exception e) {
JOptionPane.showMessageDialog(null, “数据库链接失败!”, “警告”, JOptionPane.ERROR_MESSAGE);
System.out.println(“连接失败”);
e.printStackTrace();
return null;
}
}
public static void main(String args[]) {
getlink();
}
}
package com.sjsq;
/**
-
此类为登录窗口类
-
由Visual Editor 生成
-
@author 郑伟
-
@author shuijianshiqing
-
@date 2020-12-30
-
*/
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import org.jvnet.substance.skin.SubstanceCremeLookAndFeel;
public class Login extends JFrame implements WindowListener, ActionListener, KeyListener {
private static final long serialVersionUID = 1L;
private JPanel jContentPane = null;
private JButton jButton = null;
private JButton jButton1 = null;
private JLabel jLabel = null;
private JLabel jLabel1 = null;
private JLabel jLabel2 = null;
private JTextField jTextField = null;
private JPasswordField jPasswordField = null;
private Connection connection; // @jve:decl-index=0:
private Statement stmt;
private String username;
private int flag = 0;
/**
- This is the default constructor
*/
public Login() {
super();
try {
UIManager.setLookAndFeel(new SubstanceCremeLookAndFeel());
} catch (UnsupportedLookAndFeelException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
initialize();
Dimension screen = getToolkit().getScreenSize(); // 得到屏幕尺寸
// pack(); //窗口适应组件尺寸
setLocation((screen.width - getWidth()) / 2, (screen.height - getHeight()) / 2);// 使窗口出现在屏幕中间
this.setResizable(false);// 不可缩放~~
this.addWindowListener(this);
connection = DBUtil.getlink();
try {
stmt = connection.createStatement();
} catch (SQLException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
} // 链接数据库
}
/**
-
This method initializes this
-
@return void
*/
private void initialize() {
// 登录窗口大小
this.setSize(500, 308);
this.setContentPane(getJContentPane());
this.setTitle(“欢迎登录教材管理系统”);
}
// 登录函数
private void denglu() {
if (flag > 2) {
jButton.setEnabled(false);
}
this.jLabel.setText(“登录中请稍候。。”);
username = jTextField.getText();
String pwd = String.valueOf(jPasswordField.getPassword());
String yz = new String(“Select username,pswd,yanzheng from login where username='” + username + “'”);
try {
ResultSet result = stmt.executeQuery(yz);
if (result.next()) { // 用户名存在~
if (pwd.equals(result.getString(2))) {
if (result.getString(3).equals(“1”)) { // 验证权限
this.jLabel.setText(" 登录成功");
this.flag = 1; // 若取得数据的第三项是1的话,则把flag设置为1
this.setVisible(false);
XFlashScreen splash = new XFlashScreen();
splash.start(); // 运行启动界面
} else if (result.getString(3).equals(“4”)) { // 验证权限
this.jLabel.setText(" 登录成功");
this.flag = 4; // 若取得数据的第三项是4的话,则把flag设置为4
this.setVisible(false);
}
} else {
this.jLabel.setText(" 密码错误 -_-!");
flag++;
}
} else {
this.jLabel.setText(" 没有此用户 -_-!");
flag++;
}
} catch (SQLException e1) {
e1.printStackTrace();
}
}
/**
-
This method initializes jContentPane
-
@return javax.swing.JPanel
*/
private JPanel getJContentPane() {
if (jContentPane == null) {
jLabel1 = new JLabel();
jLabel1.setBounds(new Rectangle(160, 55, 57, 17));
jLabel1.setText(“账号:”);
jLabel2 = new JLabel();
jLabel2.setBounds(new Rectangle(160, 100, 55, 17));
jLabel2.setText(“密码:”);
jLabel = new JLabel();
jLabel.setBounds(new Rectangle(180, 150, 177, 14));
jLabel.setText("不能尝试超过4次哦~(__) ");
jContentPane = new JPanel();
jContentPane.setLayout(null);
jContentPane.setBackground(new Color(255, 255, 225));
jContentPane.add(getJButton(), null);
jContentPane.add(getJButton1(), null);
jContentPane.add(jLabel, null);
jContentPane.add(jLabel1, null);
jContentPane.add(jLabel2, null);
jContentPane.add(getJTextField(), null);
jContentPane.add(getJPasswordField(), null);
}
return jContentPane;
}
public void windowActivated(WindowEvent arg0) {
}
public void windowClosed(WindowEvent arg0) {
System.exit(0);
}
public void windowClosing(WindowEvent arg0) {
}
public void windowDeactivated(WindowEvent arg0) {
}
public void windowDeiconified(WindowEvent arg0) {
}
public void windowIconified(WindowEvent arg0) {
}
public void windowOpened(WindowEvent arg0) {
}
/**
-
This method initializes jButton
-
@return javax.swing.JButton
*/
private JButton getJButton() {
if (jButton == null) {
jButton = new JButton(new ImageIcon(“./pic/key.gif”));
jButton.setBounds(new Rectangle(120, 180, 83, 25));
// jButton.setFont(new Font(“Dialog”, Font.BOLD, 11));
jButton.setText(“登录”);
jButton.addActionListener(this);
}
return jButton;
}
/**
-
This method initializes jButton1
-
@return javax.swing.JButton
*/
private JButton getJButton1() {
if (jButton1 == null) {
jButton1 = new JButton(new ImageIcon(“./pic/exit.gif”));
jButton1.addActionListener(this);
jButton1.setBounds(new Rectangle(300, 180, 83, 25));
// jButton1.setFont(new Font(“Dialog”, Font.BOLD, 11));
jButton1.setText(“退出”);
}
return jButton1;
}
/**
-
This method initializes jTextField
-
@return javax.swing.JTextField
*/
private JTextField getJTextField() {
if (jTextField == null) {
jTextField = new JTextField();
jTextField.setBounds(new Rectangle(200, 45, 156, 35));
jTextField.addKeyListener(this);
}
return jTextField;
}
/**
-
This method initializes jPasswordField
-
@return javax.swing.JPasswordField
*/
private JPasswordField getJPasswordField() {
if (jPasswordField == null) {
jPasswordField = new JPasswordField();
jPasswordField.setBounds(new Rectangle(200, 90, 156, 35));
jPasswordField.addKeyListener(this);
}
return jPasswordField;
}
public void actionPerformed(ActionEvent e) {
if ((JButton) e.getSource() == jButton1) {
this.dispose();
System.exit(0);
} else if ((JButton) e.getSource() == jButton) {
denglu();
}
}
public void keyPressed(KeyEvent arg0) {
}
public void keyReleased(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER)/** 判断是否回车 */
denglu();
}
public void keyTyped(KeyEvent arg0) {
}
public static void main(String[] args) {
Login aaa = new Login();
aaa.setVisible(true);
}
}
package com.sjsq;
import javax.swing.table.AbstractTableModel;
class MyTable extends AbstractTableModel {
Object[][] p = null;
String[] n = null;
MyTable(Object[][] p, String[] n) {
this.p = p;
this.n = n;
}
public int getColumnCount() {
return n.length;
}
public int getRowCount() {
return p.length;
}
public Object getValueAt(int row, int col) {
return p[row][col];
}
public String getColumnName(int col) {
return n[col];
}
public Class getColumnClass(int c) {
return getValueAt(0, c).getClass();
}
public boolean isCellEditable(int row, int col) {
if (col == 0) {
return false;
} else {
return true;
}
}
public void setValueAt(Object value, int row, int col) {
最后
按照上面的过程,4个月的时间刚刚好。当然Java的体系是很庞大的,还有很多更高级的技能需要掌握,但不要着急,这些完全可以放到以后工作中边用别学。
学习编程就是一个由混沌到有序的过程,所以你在学习过程中,如果一时碰到理解不了的知识点,大可不必沮丧,更不要气馁,这都是正常的不能再正常的事情了,不过是“人同此心,心同此理”的暂时而已。
“道路是曲折的,前途是光明的!”
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
ame(int col) {
return n[col];
}
public Class getColumnClass(int c) {
return getValueAt(0, c).getClass();
}
public boolean isCellEditable(int row, int col) {
if (col == 0) {
return false;
} else {
return true;
}
}
public void setValueAt(Object value, int row, int col) {
最后
按照上面的过程,4个月的时间刚刚好。当然Java的体系是很庞大的,还有很多更高级的技能需要掌握,但不要着急,这些完全可以放到以后工作中边用别学。
学习编程就是一个由混沌到有序的过程,所以你在学习过程中,如果一时碰到理解不了的知识点,大可不必沮丧,更不要气馁,这都是正常的不能再正常的事情了,不过是“人同此心,心同此理”的暂时而已。
“道路是曲折的,前途是光明的!”
[外链图片转存中…(img-1i7wuC33-1713383898170)]
[外链图片转存中…(img-nSNkW3Vg-1713383898170)]
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
[外链图片转存中…(img-cpnqAalU-1713383898170)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!