• java笔试总结


    1. Java的IO操作中有面向字节(Byte)和面向字符(Character)两种方式。
    面向字节的操作为以8位为单位对二进制的数据进行操作,对数据不进行转换,这些类都是InputStream和OutputStream的子类。
    面向字符的操作为以字符为单位对数据进行操作,在读的时候将二进制数据转为字符,在写的时候将字符转为二进制数据,这些类都是Reader和Writer的子类。

    总结:以InputStream(输入)/OutputStream(输出)为后缀的是字节流;

              以Reader(输入)/Writer(输出)为后缀的是字符流。

    2. volatile关键字用在多线程同步中,可保证读取的可见性,JVM只是保证从主内存加载到线程工作内存的值是最新的读取值,而非cache中。但多个线程对

    volatile的写操作,无法保证线程安全。

    jdk动态代理和cglib动态代理。jdk动态代理是有java内部的反射机制实现的,前提是代理类和目标类必须实现统一的接口;cglib动态代理是借助asm来实现的。

    Spring AOP与IOC的实现原理

    ioc是spring最核心的内容,控制反转,也叫依赖注入,让一个对象的创建不需要new就能产生,实际上是通过反射机制,在对象调用的时候动态的创建和调用某个对象和方法;注入的方法有set注入,构造器注入和基于注解的注入。

    aop也是spring的一大特色,aop通过动态代理实现了切面编程,可以用于对某个类的监督和管理,从而达到了一个模块扩充的功能。

    spring的的目的就是让对象与对象之间的关系变成xml配置,从而实现了对象之间的解耦,spring就是一个容器,只有在容器中的对象才能提供这些功能和服务。

    反射的原理,反射创建类实例的三种方式是什么

    java反射机制实在运行当中,对任意一个类来说,能够知道它的所有属性和方法,都能调用它的任意一个属性和方法。

    三种方式:getClass()方式,调用类的静态属性class,Class.forName()。

     对于short s1 = 1; s1 += 1;由于 += 是java语言规定的运算符,java编译器会对它进行特殊处理,因此可以正确编译。

    下列java代码中的变量a、b、c分别在内存的___堆、栈、栈___存储区存放。

    class A{
         private   String a = "aa";
         public boolean methodB(){
          String b = "sb";
          final String c ="adsf";
       }
    }

    参考:https://blog.csdn.net/g1812453421/article/details/80466992

  • 相关阅读:
    解决Qt creator无法输入中文
    JSP 问题总结
    oracle锁与死锁概念,阻塞产生的原因以及解决方案
    QT学习记录
    使用函数式接口
    使用函数式接口来传递行为
    Prototype(原型)
    Singleton(单例)
    Factory
    Template
  • 原文地址:https://www.cnblogs.com/zhaoyanhaoBlog/p/9706429.html
Copyright © 2020-2023  润新知