欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java学习笔记(六)

程序员文章站 2022-05-12 22:37:00
...

二十、多线程

    在Java中要想实现多线程代码有两种手段:

        一种是继承Thread类:

            Thread类是在java.lang包中定义的,一个类只要继承了Thread类,此类就称为多线程操作类。在Thread子类之中,必须明确的覆写Thread类中的run()方法,此方法为线程的主体。如果要想正确的启动线程,是不能直接调用run()方法的,应该调用从Thread类中继承而来的start()方法,才可以启动线程。

        另一种就是实现Runnable接口

            在Java中也可以通过实现Runnable接口的方式实现多线程,Runnable接口中只定义了一个抽象方法:public void run() ;所以一定要覆写run()方法。此时,还是要依靠Thread类完成启动,在Thread类中提供了以下的两个构造方法:

                public Thread(Runnable target)

                public Thread(Runnable target,String name)

        Thread类和Runnable接口的区别:继承Thread的类不适合于多个线程共享资源,而实现Runnable的类则可以方便的实现资源的共享

       线程的休眠:

                在程序中允许一个线程进行暂时的休眠,直接使用Thread.sleep()方法即可

        线程同步:

               所谓的同步就是指多个操作在同一个时间段内只能有一个线程进行,其他线程要等待此线程完成之后才可以继续执行。

            同步代码块:

                    在代码块上加上“synchronized”关键字的话,则此代码块就称为同步代码块。

                    同步代码块格式:

                            synchronized(同步对象){

                                      需要同步的代码 ;

                           }

          同步方法:

                    可以使用synchronized关键字将一个方法声明成同步方法。

                同步方法定义格式:

                        synchronized 方法返回值 方法名称(参数列表){}

二十一、网络编程(java.net.*)

        端口号是一个标记机器的逻辑通信信道的正整数,端口号不是物理实体。IP地址和端口号组成了所谓的Socket,Socket是网络上运行的程序之间双向通信链路的最后终结点。

        端口号是用一个16位的整数来表达的,其范围为0~65535,其中0~1023为系统所保留。因此,当我们编写通信程序时,应选择一个大于1023的数作为端口号,以免发生冲突。

        Socket通信:

                在Java中,基于TCP协议实现网络通信的类有两个:在客户端的Socket类和在服务器端的ServerSocket类。

                在服务器端通过指定一个用来等待的连接的端口号创建一个 ServerSocket实例。

                在客户端通过规定一个主机和端口号创建一个 socket实例,连到服务器上。

                ServerSocket类的accept方法使服务器处于阻塞状态,等待用户请求。

 Java学习笔记(六)

Java学习笔记(六)

            支持多线程:

                    不同的处理线程为不同的客户端服务,主线程只负责循环等待,处理线程负责网络连接,接受客户端输入的信息

二十二、JDBC(基本操作:插查删改、连接数据库)

     主要的代码如下

  importjava.sql.DriverManager;

importjava.sql.SQLException;

importcom.mysql.jdbc.Connection;

importcom.mysql.jdbc.ResultSet;

importcom.mysql.jdbc.Statement;

 

//基本代码

private staticfinal StringURL="jdbc:mysql://localhost:3306/petshop?useUnicode=true&characterEncoding=UTF-8";

private staticfinal String NAME="root";

private staticfinal String PASSWORD="123456 ";

publicConnection conn =null;

//1.加载驱动

                     try {

                            Class.forName("com.mysql.jdbc.Driver");

                     }catch(ClassNotFoundExceptione) {

                            System.out.println("未能成功加载驱动程序,请检查是否导入驱动程序!");

                            e.printStackTrace();

                     }

                    

                     try {

                           conn= (Connection)DriverManager.getConnection(URL, NAME, PASSWORD);

                            System.out.println("获取数据库连接成功!");

                     } catch (SQLException e) {

                            // TODO: handleexception

                            System.out.println("获取数据库连接失败!");

                            e.printStackTrace();

                     }

//添加insert语句

Statementstatement=null;

                     String sql="INSERTINTO pet(kind,name,color,age)"+"VALUES('cat','"+information[0]+"','"+information[1]+"',"+Integer.parseInt(information[2])+")";

                     //System.out.println(sql);

                     try {

                            statement=(Statement)conn.createStatement();

                     } catch (SQLException e) {

                            // TODOAuto-generated catch block

                            e.printStackTrace();

                     }

                     try {

                            statement.executeUpdate(sql);

                     } catch (SQLException e1) {

                            // TODOAuto-generated catch block

                            e1.printStackTrace();

                     }

                     try {

                            statement.close();

                     } catch (SQLException e) {

                            // TODOAuto-generated catch block

                            e.printStackTrace();

                     }

//查询select操作

sql="SELECT* FROM pet WHERE age="+Integer.parseInt(information[2]);

ResultSetresultset=null;

statement=(Statement)conn.createStatement();

resultset=(ResultSet)statement.executeQuery(sql);

resultset.close();

statement.close();

//更新Update操作

sql="UPDATEpet SET age="+Integer.parseInt(information[2])+" WHEREid="+infor_id;

statement=(Statement)conn.createStatement();

statement.executeUpdate(sql);

statement.close();

//删除Delete操作

sql="DELETEFROM pet WHERE age="+Integer.parseInt(information[2]);

statement=(Statement)conn.createStatement();

statement.executeUpdate(sql);

statement.close();

 

 

//最后

conn.close()

 

相关标签: Java 笔记