5. java编程思想读书笔记(四)
来源:互联网 发布:淘宝联盟怎么省钱 编辑:程序博客网 时间:2024/05/30 02:22
1、java的多线程和其他的语言有明显的不同,多线程的类是采用一个继承的方法。
1 import java.io.File; 2 import java.lang.reflect.Constructor; 3 import java.util.*; 4 5 class MyThread extends Thread{ 6 public void run(){ 7 System.out.println("This is Hellow world from thread"); 8 } 9 }10 public class HellowWorld {11 12 public static void main(String[] args){13 MyThread mt = new MyThread();14 mt.start();15 }16 }
输出会显示“This is Hellow world from thread”。
如果想把一个函数或者代码段进行枷锁就要用到synchronized,
上面的函数可以写成
1 class MyThread extends Thread{2 public synchronized void run(){3 System.out.println("This is Hellow world from thread");4 }5 }
或者
1 class MyThread extends Thread{2 public void run(){3 synchronized (this){4 System.out.println("This is Hellow world from thread");5 }6 }7 }
线程发生阻塞会有一下场景:
(1) 调用sleep(毫秒数),使线程进入“睡眠”状态。在规定的时间内,这个线程是不会运行的。
(2) 用suspend()暂停了线程的执行。除非线程收到resume()消息,否则不会返回“可运行”状态。
(3) 用wait()暂停了线程的执行。除非线程收到nofify()或者notifyAll()消息,否则不会变成“可运行”
(是的,这看起来同原因2非常相象,但有一个明显的区别是我们马上要揭示的)。
(4) 线程正在等候一些IO(输入输出)操作完成。
(5) 线程试图调用另一个对象的“同步”方法,但那个对象处于锁定状态,暂时无法使用。
其中wait也可以加一个时间,等时间过了以后如果还没有收到notify消息,则继续运行。
2、java的socket通信
java的socket通信的服务器类不需要知道具体的IP地址,仅仅需要设置一个端口号就可以了。
ServerSocket s = new ServerSocket(PORT); //建立一个socket类Socket socket = s.accept(); //获取一个socket连接BufferedReader in = new BufferedReader( new InputStreamReader( socket.getInputStream()));//获取socket的数据流PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter( socket.getOutputStream())), true);//写入数据流String str = in.readLine(); //读数据out.println(str); //发数据
不过当然了,客户端肯定是需要Ip地址了
1 InetAddress addr =2 InetAddress.getByName(null);3 4 Socket socket =5 new Socket(addr,8080);
读取数据和服务器端是一样的,这里就不赘述了。
3、连接数据库
JDBC Java数据库连接的缩写
连接一个数据库需要三方面的内容
(1) 用“jdbc”指出要使用JDBC。
(2) “子协议”:驱动程序的名字或者一种数据库连接机制的名称。由于JDBC的设计从ODBC吸收了许多灵
感,所以可以选用的第一种子协议就是“jdbc-odbc桥”,它用“odbc”关键字即可指定。
(3) 数据库标识符:随使用的数据库驱动程序的不同而变化,但一般都提供了一个比较符合逻辑的名称,由
数据库管理软件映射(对应)到保存了数据表的一个物理目录。为使自己的数据库标识符具有任何含义,必
须用自己的数据库管理软件为自己喜欢的名字注册(注册的具体过程又随运行平台的不同而变化)。
所有这些信息都统一编译到一个字串里,即“数据库URL”。举个例子来说,若想通过ODBC子协议同一个标
识为“people”的数据库连接,相应的数据库URL可设为:
String dbUrl = "jdbc:odbc:people"
如果通过一个网络连接,数据库URL也需要包含对远程机器进行标识的信息。
准备好同数据库连接后,可调用静态方法DriverManager.getConnection(),将数据库的URL以及进入那个
数据库所需的用户名密码传递给它。得到的返回结果是一个Connection对象,利用它即可查询和操纵数据
库。
1 class Lookup { 2 public static void main(String[] args) { 3 String dbUrl = "jdbc:odbc:people"; 4 String user = ""; 5 String password = ""; 6 try { 7 // Load the driver (registers itself) 8 Class.forName( 9 "sun.jdbc.odbc.JdbcOdbcDriver");10 Connection c = DriverManager.getConnection(11 dbUrl, user, password);12 Statement s = c.createStatement();13 // SQL code:14 ResultSet r =15 s.executeQuery(16 "SELECT FIRST, LAST, EMAIL " +17 "FROM people.csv people " +18 "WHERE " +19 "(LAST='" + args[0] + "') " +20 " AND (EMAIL Is Not Null) " +21 "ORDER BY FIRST");22 while(r.next()) {23 // Capitalization doesn't matter:24 System.out.println(25 r.getString("Last") + ", "26 + r.getString("fIRST")27 + ": " + r.getString("EMAIL") );28 }29 s.close(); // Also closes ResultSet30 } catch(Exception e) {31 e.printStackTrace();32 }33 }34 } ///:~
这个操作的流程基本上和C#差不多,不过好像比C#要简单一些。
- 5. java编程思想读书笔记(四)
- java编程思想读书笔记(四)
- JAVA编程思想读书笔记四(控制程序流程)
- Java编程思想读书笔记
- java编程思想读书笔记
- java 编程思想 读书笔记
- <<java编程思想>>读书笔记
- java编程思想读书笔记
- java编程思想读书笔记
- 《Java编程思想》读书笔记
- Java 编程思想 - 读书笔记
- JAVA编程思想读书笔记
- 《java编程思想》读书笔记
- java编程思想读书笔记
- java 编程思想 读书笔记
- 《Java编程思想》读书笔记
- java编程思想(读书笔记):5.隐藏实现细目
- Java编程思想读书笔记(对象)
- 9. c++异常说明
- 8. java编程思想读书笔记(一)
- 7. java编程思想读书笔记(二)
- 6. java编程思想读书笔记(三)
- 软件项目管理系统-项目管理-模块定义-测试记录
- 5. java编程思想读书笔记(四)
- 4. java编程思想读书笔记(五)
- 3. 从windows8的微软扫雷看创新——跳出现有的框架,换个角度看问题
- 统计随机数的个数
- 2. WPF中的依赖属性
- 如何把word文档中的图片复制出来?
- Java多线程 原子变量:最简单高效的tryLock
- override和overload
- Struts2源码阅读(五)_FilterDispatcher核心控制器 .