zoukankan      html  css  js  c++  java
  • java复习小知识(基础不算,有反射,递归)

    顺序选择循环,三种

    1、至于循环和递归

    循环效率更高,但是递归在处理文件递归的时候更为常见快捷

    在java中实现传多参

    2、public static void main(String[]  args)

    即数组就是传多参

    在scala中用的*符号

    def fun4(elements :Int*)={}

    3、

    1多态(polymorphism)的定义
    多态是面向对象的必备特性,
    指的是同一接口的不同实现方式,多态允许基类的指针指向子类方法。
    在C++中通过虚函数实现。

    2多态的作用

    1 不必编写每一子类的功能调用,可以直接把不同子类当父类看,
    屏蔽子类间的差异,提高代码的通用率/复用率
    2 父类引用可以调用不同子类的功能,提高了代码的扩充性和可维护性

    4、在针对io流时,字符流速度快,但是有的非明文文件,无法用字符解析

    这时候用字节流(要捕获异常)

     

     5、下面的构造方法和静态方法,可以参考上一步的构造时顺序(static在类编译时已经加载)

     

     https://www.cnblogs.com/Essence/p/3961857.html

     

    递归查出文件

     以及文件过滤

     递归删除

     反射

    package day1207;

    import java.lang.reflect.Field;
    import java.lang.reflect.Method;
    import java.lang.reflect.Modifier;

    public class Refactor {
    public static void main(String[] args) {
    try {
    Class c=Class.forName("day1207.Demo");//映射一个类,反射
    // Field[] fields=c.getDeclaredFields();//可以访问所有字段声明
    // for (Field f:fields){//分别访问:字段类型、字段名、字段修饰符
    // System.out.println(f.getType()+" "+f.getName()+" "+Modifier.toString(f.getModifiers()));
    // }
    // Field[] fields1=c.getFields();//只能非私有的访问字段
    // for (Field f:fields1){
    // System.out.println(f.getType()+" "+f.getName());
    // }
    //Method[] methods=c.getMethods();//全部的方法包括父类
    Method[]methods1=c.getDeclaredMethods();//全部方法,不包括父类
    // for (Method m:methods){
    // System.out.println(Modifier.toString(m.getModifiers())+" "+m.getName()+""+m.getGenericReturnType());
    // }
    for (Method m:methods1){//分别拿到:方法访问修饰符、方法名、方法类型
    System.out.println(Modifier.toString(m.getModifiers())+" "+m.getName()+" "+m.getGenericReturnType());
    }
    try {
    Demo d=(Demo)c.newInstance();//映射一个类的对象,但是拿不到静态和私有
    Demo d2=new Demo();
    d.setAcccount("s");
    d.setName("张三");
    System.out.println(d.getName()+" "+d.getAcccount());
    String account="456";
    String name="李四";
    Method method=c.getMethod("setAcccount", String.class);
    //用invoke方法,使用反射给类的对象注值
    method.invoke(d,account);
    method=c.getMethod("setName", String.class);
    method.invoke(d2,name);
    //javaoop面向对象aop面向切面
    System.out.println(d2.getName());
    System.out.println(d.getAcccount());
    method=c.getMethod("getName");
    System.out.println(method.getName());
    } catch (InstantiationException e) {
    e.printStackTrace();
    } catch (Exception e) {
    e.printStackTrace();
    }
    } catch (ClassNotFoundException e) {
    e.printStackTrace();
    }
    }
    }
  • 相关阅读:
    微信支付
    JVM调优的正确姿势
    JVM常用调优案例
    JVM调优实践
    jvm优化必知系列——监控工具
    JVM 调优案例分析1
    一次生产的JVM优化
    记录一次JVM配置优化的案例
    JVM之内存和对象创建过程
    Java类加载过程
  • 原文地址:https://www.cnblogs.com/pursue339/p/10641127.html
Copyright © 2011-2022 走看看