Java基础

书中人 2019年04月12日 1,758次浏览

##java基础

1,重载和重写的区别

注: 
    (1)子类中不能重写父类中的final方法 
    (2)子类中必须重写父类中的abstract方法 
    重载:创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。
    重写:子父类之间的关系,子类重写父类的方法,方法名和返回值参数都相同。

2,说说反射的用途及实现:

反射就是动态的对运行中的对象进行操作。如spring的注解配置,就是动态利用反射进行获取对象而做出的动作。

3,说说自定义注解的场景及实现:

缓存、权限拦截、日志处理,以及各种 Java 框架,如 Spring,Hibernate,JUnit 提到注解就不能不说反射,
Java 自定义注解是通过运行时靠反射获取注解。实际开发中,例如我们要获取某个方法的调用日志,
可以通过 AOP(动态代理机制)给方法添加切面,通过反射来获取方法包含的注解,如果包含日志注解,就进行日志记录。
反射的实现在 Java 应用层面上讲,是通过对 Class 对象的操作实现的,Class 对象为我们提供了一系列方法对类进行操作。
在 JVM 这个角度来说,Class 文件是一组以 8 位字节为基础单位的二进制流,各个数据项目按严格的顺序紧凑的排列在 Class 文件中,
里面包含了类、方法、字段等等相关数据。通过对 Class 数据流的处理我们即可得到字段、方法等数据。

4,HTTP 请求的 GET 与 POST 方式的区别:

1、GET在浏览器回退时是无害的,而POST会再次提交请求。
2、GET产生的URL地址可以被Bookmark,而POST不可以。
3、GET请求会被浏览器主动cache,而POST不会,除非手动设置。
4、GET请求只能进行url编码,而POST支持多种编码方式。
5、GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。
6、GET请求在URL中传送的参数是有长度限制的,而POST么有。
7、对参数的数据类型,GET只接受ASCII字符,而POST没有限制。
8、GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。
9、GET参数通过URL传递,POST放在Request body中。

5、session 与 cookie 区别:

1、cookie数据存放在客户的浏览器上,session数据放在服务器上。
2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗考虑到安全应当使用session。
3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用COOKIE配置session一起使用。
4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

6、session 分布式处理:

1、使用缓存nosql进行服务器端session复制
2、session持久化到数据库中
3.。。。。。

7、JDBC 流程:

第一步:加载Driver类,注册数据库驱动;
第二步:通过DriverManager,使用url,用户名和密码建立连接(Connection);
第三步:通过Connection,使用sql语句打开Statement对象;
第四步:执行语句,将结果返回resultSet;
第五步:对结果resultSet进行处理;
第六步:倒叙释放资源resultSet-》preparedStatement-》connection。

8、MVC 设计思想:

前后端分离的产物,分开开发,提高效率,通过数据进行前后端结合,但是相应的内部代码量比较大,不利于维护。

9、equals 与 == 的区别:

== 比较的是对象的引用,equals是object提供的方法,供子类覆盖,默认和==相同比较地址值,但是重写后可以值比较。
Java中很多类(String类  Date类  File类)等都对equals方法进行了重写。