
获得徽章 0
- 补充一下自动装箱和拆箱:
Integer a=1;//这就是一个自动装箱,如果没有自动装箱的话,需要这样Integer a=new Integer(1)
int b=a;//这就是一个自动拆箱,如果没有自动拆箱的话,需要这样:int b=a.intValue()展开评论点赞 - 补充一下自动拆箱跟自动装箱:Integer a=1;//这就是一个自动装箱,如果没有自动装箱的话,需要这样Integer a=new Integer(1)
int b=a;//这就是一个自动拆箱,如果没有自动拆箱的话,需要这样:int b=a.intValue()评论点赞 - Servlet 生命周期、工作原理1、Servlet 生命周期:Servlet 加载--->实例化--->服务--->销毁。
2、init():在Servlet的生命周期中,仅执行一次init()方法。
3、ervice():它是Servlet的核心,负责响应客户的请求。
4、destroy(): 仅执行一次,在服务器端停止且卸载Servlet时执行该方法。展开评论点赞 - 位运算符:
将一个数左移n位,就相当于乘以了2的n次方,
一个数乘以8只要将其左移3位即可,2乘以8等於几的最效率的方法是2 << 3。
System.out.println(2 << 3); //16 2*2^3赞过评论2 - IOC:控制反转,将对象创建的权利转移到第三方的容器来管理
AOP(Aspect Oriented Programming):面向切面编程
什么时候会出现面向切面编程的需求?
按照软件重构的思想,如果多个类中出现重复的代码,就应该考虑定义一个共同的抽象类,将这些共同的代码提取到抽象类中,比如Teacher,Student都有username,那么就可以把username及相关的get、set方法抽取到SysUser中,这种情况,我们称为纵向抽取。展开赞过评论3 - Java多线程实现方式主要有四种:
1、继承Thread类
2、实现Runnable接口
3、实现Callable接口通过FutureTask包装器来创建Thread线程
4、使用ExecutorService、Callable、Future实现有返回结果的多线程
其中前两种方式线程执行完后都没有返回值,后两种是带返回值的。展开评论点赞 - GCRoot包括:局部变量,静态变量,Native 方法所引用的对象,活动线程
垃圾回收的算法:Mark and sweep(标记清除)、Compact(压缩)、Copy(复制)
Java还有分代垃圾回收算法:大体分为新生代、持久代和老生代。评论点赞 - Java数据类型,装箱和拆箱
primitive type是值类型,例如int,long
判断相等:
a==b
Object为引用类型,例如Integer,Long
1、用a==b判断是否为同一个对象
2、用a.equals(b)或Objects.equals(a,b)判断是否相等
装箱:
Integer a=2;//将2装到一个箱子类型为int,然后a指向这个箱子
Integer b=new integer(2);//生成一个空的箱子里面装着2,然后b指向这个箱子
拆箱:
int c==a.intValue();展开评论点赞