zoukankan      html  css  js  c++  java
  • Java 高级点的东西

    Java高级

    类加载过程

    加载(创建class对象) -> 连接(验证-准备-解析) -> 类初始化

    类加载器类别

    根类加载器:加载java核心类

    扩展类加载器:加载JRE目录中的jar包

    系统类加载器:加载用户自定义类和classpath下的jar包

    Java反射机制基于什么原理

    通过反射我们可以直接操作类或者对象,比如获取某个对象的类定义,获取类声明的属性和方法,调用方法或者构造对象,甚至可以运行时修改类定义

    动态代理基于什么原理

    方便运行时动态构建代理、动态处理代理方法调用的机制

    动态代理和静态代理的区别

    静态代理:事先写好代理类,缺点是每个业务类都要对应一个代理类,不灵活

    动态代理:运行时自动生成代理对象,缺点是生产代理对象和调用代理方法需要额外时间

    有哪些字节流?

    InputStream,FileInputStream,BufferedInputStream

    OutputStream,FileOutputStream,BufferedOutputStream

    DataInputStream,DataOutputStream

    ByteArrayInputStream,ByteArrayOutputStream

    ObjectInputstream,ObjectOutputStream

    PrintStream,SequenceInputStream

    有哪些字符流?

    Reader,InputStreamReader,FileReader,BufferedReader

    Writer,OutputStreamWriter,FileWriter,BufferedWriter

    CharArrayReader,CharArrayWriter,PrintWriter

    还有哪些IO流?

    StringReader,StringWriter,RandomAccessFile,Properties

    常见网络小问题

    问题 答案
    TCP客户端socket是什么? Socket
    TCP服务端socket是什么? ServerSocket 
    UDP所用socket是什么? DatagramSocket
    UDP所发和收数据报的packet是什么? DatagramPacket

    GC主要算法

    GC主要对象是堆和方法区,堆中把短命对象归为新生代,长命对象归为老年代      

    • 根搜索算法
    • 标记-清除算法
    • 复制算法(新生代GC)
    • 标记-整理算法(老年代GC)
    • 分代收集算法(新生代+老年代GC)

    触发主GC(Garbage Collector)的条件

    1、当应用程序空闲时,即没有应用线程在运行时,GC会被调用

    2、Java堆内存不足时,GC会被调用。当应用线程在运行,并在运行过程中创建新对象,若这时内存空间不足,JVM就会强制地调用GC线程,以便回 收内存用于新的分配。

    内存泄漏的原因

    1. 数据库连接,网络连接,iod连接,不调用close方法,则不被GC
    2. 单例模式,持有外部对象的引用,长生命周期的对象
    3. vector,对象放入vector中
    4. 集合,对象放入集合中,对象被修改属性后remove对象失败
  • 相关阅读:
    平均值滤波之经典形式改进
    Matlab编程实例(4) 相位角与相关系数曲线
    Matlab编程实例(3) 函数向左或向右平移N点 左移右移
    Matlab编程实例(2) 同期平均
    Matlab编程实例(1) 移动平均
    使用js在网页上记录鼠标划圈的小程序
    《你不知道的JavaScript》整理(五)——值与原生函数
    Vuex 学习总结
    HTML移动端开发常见的兼容性总结
    一步一步实现字母索引导航栏
  • 原文地址:https://www.cnblogs.com/poloyy/p/12124289.html
Copyright © 2011-2022 走看看