回顾 Java IO

1、回顾 Java IO
    使用 IO 流来完成文件内容的读取、复制等操作的步骤:
    (1)新建  File 对象(节点,包含很多要传输的数据)
    File f = new File(url);
    (2)新建 节点流对象 ,把 File 对象放入流对象的构造方法
       FileInputStream in = new FileInputStream(f); 
 (3)新建 处理流对象,把 节点流对象,放入 后者的构造方法中
        BufferedInputStream bis = new BufferedInputStream(in);
 (4)使用  处理流对象,对文件中的数据进行读取
        bis.readLine();   //读到内存中,可被程序直接使用
  
 (5)处理完毕,扫尾,释放资源。
    bis.flush();   //把流中的数据全部挤出
       bis.close();   //按照打开流相反的顺序关闭流
       in.close();   
  
    装饰者模式:
   卖奶茶:基础组成:水、奶粉、糖、

珍珠奶茶类:薰衣草奶茶、西瓜奶茶、香蕉奶茶、凤梨奶茶、
柳橙奶茶、青苹果奶茶、水蜜桃奶茶、蓝莓奶茶、韩国饮品、
哈密瓜奶茶、香草奶茶、玫瑰奶茶、芒果奶茶、椰子奶茶、咖啡奶茶、
韩国饮品、香芋奶茶、草莓奶茶、鸳鸯奶茶、巧克力奶茶
青苹果果汁、凤梨果汁、奇异果果汁、水蜜桃果汁、玫瑰果汁、
草莓果汁、哈密瓜果汁、石榴果汁、葡萄果汁、水晶酸奶


    装饰者模式能够动态的把责任(功能),添加到对象上面,如果要对
一个对象进行扩展,装饰者比继承要灵活。
 
    一般通过构造方法来组合多个对象

    BufferedInputStream(new InputStream(new File()))

2、理解 Java 的线程           (*)
   java.lang.Thread

   例子:肚子饿
   进入一条美食街,有各种小吃店。每一家小吃店就叫一个进程。
挑选一家,叫当前进程。
    进入这家小吃店后,发现人很多(100),服务员很少(2)、厨师更少(1)
大多数人排队等候,等待吃饭的人是线程。服务员是线程调度程序。
厨师是机器的核心 CPU。

   进程:指能够有独立代码和数据空间的程序,进程之间切换消耗较大。
   线程:轻量级的进程,一个进程中能够同时执行的多个控制流。
  
  
   开发步骤:
   (1)继承 Thread 类  也有一个可以重写的方法 run(){}
      通过 t.start() 启动线程
   (2)实现 Runnable 接口,只有一个必须实现的方法 run(){}
      通过 r.run() 启动线程
  
   我们需要进行线程控制的代码写在  run(){}  方法中,run() 线程体
  
   线程状态:
                        |------阻塞态---------|
                        |                     |
   开始---t.start()--->就绪--->服务员调度--->运行态--->终止
  
  
   控制方法:
      t.isAlive()  判断线程是否终止
   t.getPriority() 得到当前线程的优先级
   t.setPriority()  设置当前线程的优先级(给服务员小费)
   t.sleep()        让当前线程休息,从运行态到阻塞态
   t.notify()       通知等待状态的一个线程,可以使用 CPU
   t.notifyAll()    通知等待状态的所有线程,可以使用 CPU
   t.join()         线程合并
   t.yield()        主动退出 CPU 时间片
  
    //打断一个线程对象的睡眠
 r.interrupt();
 try {
  sleep(1000); //1 second
 } catch (InterruptedException e) {
    //InterruptedException 打断睡觉的异常类型
    System.out.println("Runner3 的睡眠被打断........");
    return;
 } 
  
 同步:
       为防止两个线程,同时使用相同的资源,当一个线程使用 CPU 时间片
 时,把相关的资源上锁。当该线程执行完毕,解锁。
    上锁有两种方式:
    (1)在代码段上面添加 synchronized (线程对象) {//上锁的代码}
    (2)在方法上面添加 public synchronized void run(){}

3、了解 Java 的反射
   反射是通过类的完整名称,反向得到类的详细信息的手段。
  
   例如:破案高手,看到犯罪分子留下的“脚印”。反向推断,人的身高、
体重、是否残疾、走路的习惯、

   java.lang.Class
   Java 中反射从 Class 类开始,能够通过一个类名,得到该类中所有的
属性、方法、构造函数、得到类的对象

   面向对象,每个对象都是对象,每一个类也是对象。Class
  
   Class c = null;
   try{
  c = Class.forName("aa.bb.cc.Test");
  
  Test t = new Test();
  Class cc = t.getClass();
  
   }catch(ClassNoFoundException e){}

   深入一点:通过 Class 对象可以得到一个类的:构造函数、属性、方法
    java.lang.reflect.Constructor[]   c.getConstructors()
    java.lang.reflect.Field[]         c.getDeclaredFields()
    java.lang.reflect.Method[]        c.getDeclaredMethods()

4、了解 Java 的网络编程
   服务器、客户端、网络
  
   上缴周报:客户端(窗口)、网络(安博昆山局域网)、服务器(FTP软件)、
  
   使用 Socket 主要用于进行网络之间的远距离通讯。
  
   实现过程:
   (1)先编写 服务器端代码
     ServerSocket ss= new ServerSocket(6666);
     Socket s = ss.accept();
 
   (2)编写 客户端代码
     Socket s = new Socket("127.0.0.1",6666);
 
   (3)先运行服务器端代码,一直运行,等待客户访问
   (4)随时访问服务器
  
   http://www.iciba.com/yield/  域名解析--->
   http://172.4.11.44:8080/iciba  真实地址
  
   http:                  网络协议
   172.4.11.44:           服务器所在 IP 地址
   8080                   服务器访问端口号
   iciba                  服务器上运行的程序名

   客户端代码: IP 地址、端口号
   服务器:端口号、协议

5、掌握 JDBC 开发的基本步骤    (*)
   JDBC 开发步骤:
   (1)打开数据库服务器
   (2)在项目中加入 数据库驱动程序文件
   (3)写数据库连接类
   (4)加载驱动   Class.forName();
   (5)得到连接  DriverManager.getConnection(url,user,password);
   (6)准备 SQL 语句
   (7)得到 Statement 对象
   (8)通过 Statement 对象执行 SQL 语句,得到返回值
   (9)处理返回结果。
   (10)关闭数据库连接。
  


    
    
   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值