文章目录
一、API和AOP
1、API:
应用程序编程接口,API(Application Programming Interface)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
2、AOP
拦截器,AOP(Aspect-Oriented Programming)用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作。
拦截是AOP的一种实现策略。
二、HTTP 响应状态代码
HTTP 响应状态代码指示特定 HTTP 请求是否已成功完成。
响应分为五类:状态代码由 section 10 of RFC 2616定义
信息响应(100–199)
成功响应(200–299)
重定向(300–399)
客户端错误(400–499)
服务器错误 (500–599)
三、java变量规范
1、一般static修饰的常量都用大写字母来表示。
2、驼峰命名法
四、内存泄漏和内存溢出
1、内存泄漏memoryleak:
程序申请的内存空间在使用之后无法释放就造成了内存泄漏。一次内存泄漏似乎不会有大的影响,但内存泄漏堆积后的后果就是内存溢出。
2、内存溢出outofmemory:
程序申请内存时,没有足够的内存给申请程序使用,此时会报错OOM,即内存溢出错误。
五、进程和线程的区别
1、进程是执行着的应用程序,而线程是进程内部的一个执行序列。一个进程可以有多个线程。
2、线程又叫做轻量级进程。
六、同步和异步
同步:是指所有操作串行化执行,顺序不能改变,前一操作未完成,后个操作不执行。
异步:是指所有操作可以并行执行,顺序无关。
异步执行效率比同步高。
七、堆(heap)和栈(stack)
1、Java的内存分为两类,一类是栈内存(stack),一类是堆内存(heap)。
2、栈是程序运行时的单位,而堆是存储的单元。
3、栈中存储的是当前线程的方法调用、基本数据类型和对象的引用,栈是有序的。
4、堆中存储的是对象的值,堆是无序的。
5、方法中的局部变量存放在栈中,当使用final修饰后,会存放在堆中。
八、Java Object 类常用方法
public final native Class<?> getClass() //返回此 Object 运行时的类
public native int hashCode() //返回对象的哈希码
public boolean equals(Object obj) //判断其他对象与此对象是否“相等”
protected native Object clone() throws CloneNotSupportedException //创建并返回此对象的一个副本
public String toString() //返回对象的字符串表示
public final native void notify() //唤醒在此对象监视器上等待的单个线程
public final native void notifyAll() //唤醒在此对象监视器上等待的所有线程
public final native void wait(long timeout) throws InterruptedException //使当前对象的线程等待 timeout 时长
public final void wait(long timeout, int nanos) throws InterruptedException //使当前对象的线程等待 timeout 时长,或其他线程中断当前线程
public final void wait() throws InterruptedException //使当前对象的线程等待
protected void finalize() throws Throwable {} //垃圾回收时调用该方法
九、get和post请求乱码问题
1、在web.xml中配置一个编码过滤器(CharacterEncodingFiler),设置成utf-8;
2、设置开发工具的编码设置成utf-8
3、查看当前文件是否是utf-8;
4、Tomcat设置utf-8;
5、确定前端请求不是乱码;
6、确定数据库编码是utf-8;