zoukankan      html  css  js  c++  java
  • 20145204 《Java程序设计》第9周学习总结

    20145204 《Java程序设计》第9周学习总结

    教材学习内容总结

    JDBC

    Java语言访问数据库的一种规范,是一套API。JDBC (Java Database Connectivity) API,即Java数据库编程接口,是一组标准的Java语言中的接口和类,使用这些接口和类,Java客户端程序可以访问各种不同类型的数据库。比如建立数据库连接、执行SQL语句进行数据的存取操作。

    • 注册Driver操作
    
    DriverManager.registerDriver(new com.mysql.jdbc.Driver)
    
    

    与数据库建立连接的标准方法是调用DriverManager.getConnection方法。该方法接受含有某个URL的字符串。DriverManager类(即所谓的JDBC管理层)将尝试找到可与那个URL所代表的数据库进行连接的驱动程序。DriverManager类存有已注册的Driver类的清单。当调用方法getConnection时,它将检查清单中的每个驱动程序,直到找到可与URL中指定的数据库进行连接的驱动程序为止。Driver的方法connect使用这个URL来建立实际的连接。

    • 取得Connection操作对象
      要取得操作对象可以通过DriverManager的getConnection():
    
    Connection conn =DriverManager.getConnection(jdbcUrl,username,password);
    
    
    • 关闭Connection操作对象

    以下是撰写一个简单的实例,检测是否联机数据库并取得Connection连接,结果失败了。

    java反射机制

    AVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。

    class与.class文档

    Class

    Class类本身表示Java对象的类型,我们可以通过一个Object(子)对象的getClass方法取得一个对象的类型,此函数返回的就是一个Class类。

    得到Class类的方法:
    运用static method Class.forName()(最常被使用)

    Class c2 = Class.forName ("java.awt.Button");
    Class c3 = Class.forName ("java.util.LinkedList$Entry");
    Class c4 = Class.forName ("I");
    
    

    运用.class 语法

    Class c1 = String.class;
    
    

    .class
    在我们得到一个类的Class类对象之后,就可以操作class对象的公开方法取得基本类信息。可以通过object的getclass()方法,或者是通过.class常量取得每个对象的class对象。

    Java真正需要某个类时才会加载对应的.class文档,,而非在程序启动就加载所有类。java.lang.class的实例代表Java应用程序运行时加载的.class文档。
    以下是测试类验证的结果:

    在取得class对象后,就可以操作class对象的公开方法取得基本类信息。

    声明Some参考名称不会载入Some.class文档,使用new生成对象时才会加载类。课本SomeDemo执行结果如下:

    java动态生成对象

    动态语言,是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化。Java语言允许使用者在运行时加载、探知、使用编译期间完全未知的classes,所以我们说Java是“准动态”语言。

    JAVA的动态代理

    代理模式
    代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。
    按照代理的创建时期,代理类可以分为两种。
    静态代理:由程序员创建或特定工具自动生成源代码,再对其编译。在程序运行前,代理类的.class文件就已经存在了。
    可定义一个hello接口:

    public Interface Hello{
    void hello(String name);
    }
    
    

    有个hellospeaker类操作hello接口:

    
    public class HelloSpeaker implements Hello{
    
    public void hello(String name){
    System.out.printf("哈喽,%s%n",name);
    }
    
    

    动态代理:在程序运行时,运用反射机制动态创建而成。

    本周代码托管截图

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 3500行 30篇 400小时
    第一周 100/100 1/1 20/20
    第二周 200/300 1/2 30/50
    第三周 300/600 1/3 28/78
    第四周 400/1000 1/4 20/98
    第五周 350/1350 1/5 30/128
    第六周 450/1800 2/6 32/ 160
    第七周 350/2150 2/8 20/ 180
    第八周 250/2400 2/10 22/202
    第九周 400/2800 2/12 20/222

    参考资料

  • 相关阅读:
    Linux Hung Task分析
    Linux内存都去哪了:(1)分析memblock在启动过程中对内存的影响
    《Linux/UNIX系统编程手册》第63章 IO多路复用、信号驱动IO以及epoll
    Linux内核和用户空间通信之netlink
    Linux soft lockup分析
    一款DMA性能优化记录:异步传输和指定实时信号做async IO
    Linux下时钟框架实践---一款芯片的时钟树配置
    使用Kernel NetEm和tc模拟复杂网络环境
    使用Flame Graph进行系统性能分析
    sigsuspend()阻塞:异步信号SIGIO为什么会被截胡?
  • 原文地址:https://www.cnblogs.com/yayaer/p/5440123.html
Copyright © 2011-2022 走看看