今天偶然看到接口中不能包含实例域或静态方法,但是却可以包含常量。
其实在之前,就知道这么回事,但是一直只是当做知道而已,现在回过头来巩固基础,觉得有必要多想想。
Java反射学习总结(五)
使用反射实例对象
使用反射机制,我们可以在运行时动态加载类并且实例化对象,操作对象的方法、改变类成员的值,甚至还可以改变私有(private)成员的值。
我们可以用 Class 的 newInstance() 方法来实例化一个对象,实例化的对象是以 Object 传回的,例如:
Java反射学习总结(四)
类加载器
Java在需要使用类的时候,才会将类加载,Java的类加载是由类加载器(Class loader)来完成的。
当我们在命令模式下执行java xxx指令后,Java执行程序会尝试找到jre安装的所在目录,然后找到jvm.dll(假设在jre目录下的bin\client下),接着启动jvm并进行初始化操作,接着会产生bootstrap loader,bootstrap loader则会加载 extended loader,并设定 extended loader的parent为bootstrap loader,接着bootstrap loader会加载system loader,并将system loader的parent设为 extended loader。
Java反射学习总结(三)
Class对象表示所加载的类,取得Class对象后,我们就可以愉快的取得与类相关的信息了,就像包(package,package也是类名的一部分哦~),构造方法,方法,属性等信息,而每一个信息,也会有相应的类别形态,比如包对应的是 java.lang.Package,构造方法对应的是java.lang.reflect.Constructor,成员方法对应的是 java.lang.reflect.Method,属性对应的是 java.lang.reflect.Field等。
Java反射学习总结(二)
使用 Class.forName() 加载类
在一些应用中,我们无法事先知道使用者将会加载什么类,而必须让使用者指定类名类加载类,我们就可以用Class的静态forName()方法来实现动态加载类,如下:
Java反射学习总结(一)
Java提供的反射机制允许我们在运行时期动态加载类,检测和修改它本身状态或行为,要举反射机制的一个实例的话,就是在整合开发环境中所提供的方法提示或者类的检查工具,另外像jsp中的javabean自动收集请求也用到了反射,还有我们经常用的框架也可以看到反射机制的使用,这样可以达到动态加载使用者自己定义的类的目的。
我们为什么要用Spring,SpringMVC
今天被公司派到别的公司谈项目,刚去就先被面试了一波(原来是把我外包到别的公司做项目了 -。-),面试时候问了我一个问题,很简单,就是问我java开发web项目为什么要用spring,springmvc?
好吧,当时我人直接懵逼了,什么鬼问我这个!!不就是可以省去很多功夫让我们踏踏实实写业务代码嘛?
Java的静态/动态绑定
今天看到《Java核心技术I》书上的动态绑定,意思就是当子类和父类存在同一个方法,子类重写了父类的方法,程序在运行时调用方法是调用父类的方法还是子类的重写方法呢?程序会在运行的时候自动选择调用某个方法(根据方法表)。
看完这里不由自主的想到,有动态肯定也就有静态吧,于是去求助了下google,首先看了下什么是绑定:
绑定指的是一个方法的调用与方法所在的类(方法主体)关联起来。对java来说,绑定分为静态绑定和动态绑定;或者叫做前期绑定和后期绑定。
mysql 如何插入一列自增序号
今天看到朋友问的一个问题,“mysql 加一列 叫序号 然后序号自增 怎么搞?”,由于他主要用的是oracle,所以不太了解mysql的用法,然后我就告诉他用rownum就好了,但是他说用了这个没得到效果。
关于Ajax的cache参数的测试
其实这次做这个测试是因为和同学谈论@requestbody时引发的一个笑话,我之前一直以为ajax中的dataType: 'json'
是传输去后台的数据格式,后来分分钟被打脸,查了一下百度,才知道原来dataType: 'json'
是期望返回的数据类型,由此才发现原来ajax并没有平常用的那么简单。