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申请
总结很重要哦 方法得当,坚持会有奇迹哦
原文地址:https://www.cnblogs.com/sunyuhuan/p/7199499.html