https://blog.csdn.net/SongYuxinIT/article/details/81872066 反射的核心是JVM在运行时才动态加载类或调用方法/访问属性,它不需要事先(写代码的时候或编译期)知道运行对象是谁. java反射框架主要提供以下功能: 在运行时判断任意一个对象所属的类 在运行时构造任意一个类的对象 在运行时判断任意一个类所具有的成员变量和方法(通过反射甚至可以调用private方法) 在运行时调用任意一个对象的方法 主要用途: 反射最重要的用途就是开发各种通用框…
面向对象的特征 封装.继承和多态 https://blog.csdn.net/jianyuerensheng/article/details/51602015 封装: 定义:封装就是将数据或函数等集合在一个个的单元中(我们称之为类).被封装的对象通常被称为抽象数据类型. 优点:1.保护数据成员,不让类以外的程序直接访问或修改,只能通过提供的公共的接口访问==>数据封装. 2.方法的细节对用户是隐藏的,只要接口不变,内容的修改不会影响到外部的调用者==>方法封装. 3.良好的封装可以降低程序的耦…
http://www.cnblogs.com/logsharing/p/8448446.html 转载的这篇文章,很有意思,说的也很全面,学习下,防丢失,备份记录下 GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二. 最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数. 你可能自己写过无数个GET和POST请求,或者已经看过很多权威网站总结出的他们的区别,你非常清楚知道什么时候该用什么. 当你在面试中被问到这个问…
自定义注解使用场景: 类属性自动赋值,例如对上下文.传入参数等赋值 验证对象属性完整性,例如,对参数的校验 代替配置文件功能,像spring基于注解的配置 可以生成文档,例如java 最早提供的注解.常用的有@param @return 等 利用注解针对性做一些前置或者后置的处理,例如记录日志.检验权限等 自定义注解会需要元注解,此处先介绍元注解. 元注解包含四种:@Retention.@Inherited.@Documented.@Target @Documented –注解是否将包含在Jav…
在一个表达式中可能包含多个有不同运算符连接起来的.具有不同数据类型的数据对象:由于表达式有多种运算,不同的结合顺序可能得出不同结果甚至出现错误运算错误,因为当表达式中含多种运算时,必须按一定顺序进行结合,才能保证运算的合理性和结果的正确性.唯一性. 优先级 1.优先级与求值顺序无关.如a+b && bc,虽然优先级最高,但这个表达式求值顺序是从左到右. 2.优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级. 3.相同优先级中,按结合性进行结合.大多数运算符结合性是…
这是个设计相关的问题,它考察的是面试者对现有系统和一些普遍存在但看起来不合理的事物的看法.回答这些问题的时候,你要说明为什么把这些方法放在Object类里是有意义的,还有不把它放在Thread类里的原因.一个很明显的原因是JAVA提供的锁是对象级的而不是线程级的,每个对象都有锁,通过线程获得.如果线程需要等待某些锁那么调用对象中的wait()方法就有意义了.如果wait()方法定义在Thread类中,线程正在等待的是哪个锁就不明显了.简单的说,由于wait,notify和notifyAll都是锁…
 什么是序列化和反序列化 序列化:把堆内存中的java对象数据,通过某种方式把对象存储到磁盘文件或者传递给其他网络节点.这个过程称为序列化.简单来说呢,就是将对象转换成二进流的过程. 反序列化:把磁盘文件或网络节点上的对象数据恢复成java模型的过程,也就是将序列化过程中产生的二进制串转化为数据结构或者对象的过程. 为什么要序列化 1.在分布式系统或者需要远程调用,此时就需要把对象在网络上传输,需要把对象转为二进制形式,需要共享的JavaBean对象,都需要做序列化. 2.服务器钝化:如果服务器…
 hashCode和equals方法的区别和联系  两个方法的定义 equals(Object obj)方法用来判断两个对象是否"相同",如果"相同"则返回true,否则返回false. hashCode()方法返回一个int数,在Object类中的默认实现是"将该对象的内部地址转换成一个整数返回.  官方给出的一些说明: 在 Java 应用程序执行期间,在同一对象上多次调用 hashCode 方法时,必须一致地返回相同的整数,前提是对象上 equals…
==: ==比较的是变量内存中存放的对象的内存地址,用来判断两个对象地址是否相同,比较的是否是同一个对象. 1.两边的操作数必须是同一类型,不然编译不通过. 2.如果是基本数据类型比较,值相等则为true.因为基本类型不存在引用的概念,都是直接存储在内存中的内存栈上的,数据本身的值就是存储在栈空间. equals: equals比较的是两个对象的内容是否相等,由于所有的类都是继承自java.lang.Object类的,所以适用于所有的对象.如果没有对equals方法重写,调用的就是Object类…
MVC简介: MVC(Model View Controller) 是模型(model)-视图(view)-控制器(controller)的缩写.一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑.MVC被独特的发展起来用于映射传统的输入.处理和输出功能在一个逻辑的图形化用户界面的结构中. 为什么要用MVC: 重用性高.不同的视图可以共用一个模型. 耦合性低.视图层和业务层分离,这样就允…