Java进阶笔记(高级)

-----接Java进阶笔记(中级)-----

  • JDBC

    • 导入mysql-jdbc的jar包

    • 初始化驱动:Class.forName(“com.mysql.jdbc.Driver”)

    • Connection conn = DriverManager.getConnection(url, username, password);

    • 创建Statement对象: Statement s = conn.createStatement();

    • s.execute执行sql语句

    • // 从数据库查询,结果集返回给ResultSet
      ResultSet rs = s.executeQuery(sql);
      while(rs.next()){
      //rs对应的get方法
      }

    • 关闭连接:先关闭Statement,后关闭Connection

    • 数据库分页

      • mysql:使用limit,例如:select * from table limit 0,5; (返回前5行)
      • oracle:使用ROWNUM函数
    • PreparedStatement

      • //根据sql语句创建PreparedStatement
        PreparedStatement ps = c.prepareStatement(sql);
      • 特点:使用参数设置,预编译,速度比Statement快
  • GUI

    • GUI事件监听
    关键字作用
    Adapter适配器
    ActionListener按钮被点击时触发 ActionEvent事件
    KeyListener键盘监听
    MouseListener鼠标监听
    • GUI容器
      • JFrame:右上角有最大化最小化按钮
      • JDialog :右上角没有最大和最小化按钮
      • 模态Jdialog
        • 图片内容摘自how2j.cn
          在这里插入图片描述
    • GUI常用布局
      • FlowLayout(流布局)
      • BorderLayout(边框布局)
      • GridLayout(网格布局)
    • 常用面板
      • JPanel:基本面板
      • JSplitPane:分为两部分,左边是pLeft,右边是pRight
        例如:JSplitPane sp = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, pLeft, pRight);
      • JScrollPanel:带滚动条的面板
      • TabbedPanel:顶部带tab的面板
    • 工具栏
      • JToolBar tb = new JToolBar(); //创建工具栏
      • tb.add(组件对象); //添加工具
    • JTable
      • 图片内容摘自how2j.cn
        在这里插入图片描述
      • JTable t = new JTable(heros, columnNames);
    • 日期
      • 第三方的类: DatePicker 和 JXDatePicker
  • 反射机制

    • 获取类对象
      • 有3种方式获取类对象:
      1. Class.forName(类名)
      2. 类名.class
      3. new 类名.getClass()
      • 获取类对象的时候,会初始化类属性
      • 在静态方法前面加synchronize,同步对象是当前类对象
    • 创建类对象
      • //使用反射的方式创建对象
        String className = “类名”;
        //类对象
        Class pClass=Class.forName(className);
        //构造器
        Constructor c= pClass.getConstructor();
        //通过构造器实例化
        类名 class = (类名) c.newInstance();
      • 修改对象属性
        • //获取类的字段
          Class c =new Class();
          Field f= c.getClass().getDeclaredField(“字段名”);
          //修改这个字段的值
          f.set(c, “新属性”);
        • 图片内容摘自how2j.cn
          修改对象属性
      • 调用方法
        • Class c =new Class();
          // 获取名称是xxx,参数类型是String的方法
          Method m = c.getClass().getMethod(“xxx”, String.class);
          // 对c对象,调用这个方法
          m.invoke(c, “参数值”);
  • 常用注解

    名称作用
    @Override重写父类方法
    @SuppressWarnings忽略警告信息
  • JVM垃圾回收

    • 判断对象是否存活(截图来源:博客园)
      对象存活
    • 回收算法
      • 标记-清除
        • 标记存活的对象,清除未标记的对象
        • 缺点
          • 标记和清除过程效率低
          • 产生较多不连续的碎片,无法为大的对象分配空间
      • 标记-整理
        • 让所有存活对象向一端移动,然后直接清理掉端边界以外的内存
      • 标记-复制
        • 将内存划分为大小相等的两块,每次只使用其中一块,
          当这一块内存用完了就将还存活的对象复制到另一块上面,
          然后再把使用过的内存空间进行一次清理
        • 缺点:只使用了一半的内存
      • 分代收集
        • 根据对象存活的生命周期将内存划分为年轻代、老年代和永久代。
          然后根据不同的区域采用合适的收集算法。
        • Java一般将堆区分为年轻代和老年代,将方法区划为永久代。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值