• Java基础


    代理模式:就是在目标类和客户类之间起到中介的作用。
    分为静态代理和动态代理两种。
    静态代理是指,代理类在程序运行前就已经定义好, 其与目标类的关系在程序运行前就已经确立。
    PRD就是产品需求文档 Man day意思是一人一日的工作量
    AOP的源码中用到了两种动态代理来实现拦截切入功能:jdk动态代理和cglib动态代理。两种方法同时存在,各有优劣。jdk动态代理是由Java内部的反射机制来实现的,cglib动态代理底层则是借助asm来实现的。总的来说,反射机制在生成类的过程中比较高效,而asm在生成类之后的相关执行过程中比较高效(可以通过将asm生成的类进行缓存,这样解决asm生成类过程低效问题)。还有一点必须注意:jdk动态代理的应用前提,必须是目标类基于统一的接口。如果没有上述前提,jdk动态代理不能应用。由此可以看出,jdk动态代理有一定的局限性,cglib这种第三方类库实现的动态代理应用更加广泛,且在效率上更有优势。。
     
    1.什么是异常?什么时JAva的异常处理机制?Java中的异常分为几项?
    异常就是exception,异常处理机制有两种一种是积极处理方式一种是消极的处理方式
    积极处理就是使用try...catch 消极的就是使用throw
     
    2.抽象类和接口的区别
    抽象是abstruct 接口是interfsce
    抽象用extends集成 接口用implements实现
    抽象能够继承接口 接口不能继承抽象
    类只能继承一个类 类可实现多个接口
    抽象能够有字段 接口不能
    抽象强调所属关系 接口强调特定功能实现
    抽下类的成员可以有具体实现 二接口的常用全部public级别
    抽象的子类可以选择实现其基类的方法 接口得全部实现基类的方法
     
    3.简述GC是什么?为啥要有GC?
    GC是垃圾回收机制的意思,内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳当甚至奔溃
    Java提供的搜索GC功能在可以自动检测对象是否超过作用域从而达到在自动回收内存的目的Java语言没有提供释放已分配内存的显示操作
    就是说当程序员认为变量没用了就应当写一条代码释放它占用的内存。这样才能最大程度的避免内存泄漏,
    sleep和wait有什么区别?
    sleep方法属于thread,wait属于Object
    sleep不释放锁 wait释放锁
    sleep必须捕获异常 wait不需要
    sleep到处都可以使用 wait只能在同步块或者同步类中使用
     
    4.jsp和servlet的区别和相同
    jsp其实就是servlet的本质,servlet擅长事务控制和流程控制
    制作动态网页用jsp,jsp是由html和jsp标签组成的
     
    5.string stringbulider StrigBuffer的区别
    String是不可变字符串
    Stringbuidler是可变字符串
    StringBuffer是可变字符串
    StringBuffer同步线程
    StirngBuiler是非同步线程
    在不要求同步线程时用Stringilder比较好,Stringilder的效率高
     
    5.你所知道的开发模式有?
    工厂模式
    代理模式
    单例模式
    装配者模式
    适配器模式
    享元模式
     
    6.log4j如何配置
    1.导入jar包
    2.配置文件
    3.加载文件
    4.运行log4j
     
    7.debug模式
    在需要认证的语句前双击
    点击debug模式运行
    进入debug模式 按F5进入本句代码中  F6跳过本行代码执行下一行 F7跳出函数  F8执行到最后
     
    8.白盒测试
    白盒测试又叫结构测试透明测试  逻辑驱动测试或基于代码的测试,是一种测试用例设计方法
    包括代码检查法 静态结构分析法 逻辑覆盖方法
    优点:迫使测试人员去仔细思考软件的实现
    可以检测代码的每条分支和路径
    解释隐藏在代码中萃取
    对代码的测试比较彻底
     
    缺点无法检测代码中遗留的路径和数据敏感性错误
     
    9.final finally finalize的区别
    final修饰变量不可改
    final修饰类无法继承
    final修饰方法无法覆盖
    finally是在异常捕捉时try catch里必须要执行的代码块
    finalize是垃圾回收机制 这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的,因此所有的类都继承了它。
    ava 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。
     
    10.使用递归求5!的结果
    public static int jieCheng(int x){
        if(x==1){
         return x;
        }else{
           return x*jieCheng(x-1);
        }
    }
    public static void mian(String[]args){
         system.out.println(jieCheng(5));
    }
     
    11.Colletion 和 Colletions的区别,如何转换?
    java.util.colletion是集合接口它提供了对集合对象进行基本操作的通用接口方法
    其中直接继承接口的有list 和 set
    java.util.collections是一个包装类。它包含各种有关集合操作的静态多态方法,此类不能实例化就像一个工具类用于
    对集合中元素进行排序搜索以及线程安全等各种操作
    colletion转数组直接使用collection的tiArrat*()方法
     
    12.说说AOP和IOC的概念以及在是spring中国是如何应用的?
     
     
    IOC是控制反转,就是依赖注入,是一种接口编程,它不由new关键字命名而是用接口进行命名引用,通过某种方式把接口的某个实现类的实例化注入到引用里,进而实现类和接口的松耦合,它将控制权转移到外在的容器上,由此叫反转
    AOP是面向切面编程,是一种编程技术它允许程序员对日志和事务进行模块快,AOP advice 可以分为前置 后置通知 环绕通知 异常通知
    AOP很类似于filter ,就是在程序员正常的业务流当中向切面一样的切入很多代码
     
     
    13.拦截器有何作用?应用场景?拦截器的作用就相当于过滤器把不想要和不想展示的内容过滤掉。
    比如登录页面进行密码用户验证 只有符合者才能进行登录
     
    14.jsp有几个内置对象?
    request
    response
    out 
    pageContext
    session
    application
    config
    page
    exception
     
    15.Hibrnute为什么提供了延迟加载?
    hibernate提供的延迟加载也叫懒加载为程序提高效率而采用的一种机制
     
    16.自动拆箱和装箱
    例如:integer a=1;------自动装箱--实际上执行了Integer a=integer.valueOf(100)
    int b=a;---自动拆箱----实际上执行 了int   b=a.intValue
     
     
    17.连接分为哪几种
    内连接:等值连接  非等值连接 自连接
    外链接:左联接 右连接
     
     
    18.谈谈equals和hashcod的区别
    equals相等,hashcode一定相等,就是说equals不相等,hashcode有可能相等
    hashoceode不相等,equals一定不相等,hashcode相等,equals不一定相等
     
     
    GC是垃圾回收机制,当内存满了人员无法注意到或检测到,那么就会用到GC来及机制
    自适应的垃圾回收机制
    finalize()用于回收非new申请
    总结很重要哦 方法得当,坚持会有奇迹哦
  • 相关阅读:
    日报8.18
    Java web项目启动Tomcat报错
    eclipse导入项目报错问题解决方法
    软件架构实践阅读笔记3
    软件架构实践阅读笔记 2
    软件架构实践阅读笔记1
    架构漫谈阅读笔记3
    架构漫谈阅读笔记2
    架构漫谈阅读笔记1
    面向服务的架构SOA
  • 原文地址:https://www.cnblogs.com/sunyuhuan/p/7199499.html
Copyright © 2020-2023  润新知