1.Java中只有整形才能使用的运算符为%
2.@SuppresWarnings("deprecation")的功能是什么?
答:屏蔽不赞同使用的类和方法的警告
拓展:Java中常用的三大注解分别是 @Override @SuppresWarnings @Deprecated
@Override 表明子类中的方法覆写了父类中的方法,如果写错了覆盖形式,,编译器会报错
@SuppresWarnings 达到抑制编译器产生警告的目的,但是不建议使用,因为后期编码人员看不懂编译器的警告,不能更好的选择更好的类去完成任务
@Deprecated 表明不希望别人在以后使用这个类,方法,变量
3.下列关于volatile功能说法正确的是哪个?
答:有序,可见性
拓展:synchronized和volatile的区别
synchronized有三大特性:原子性,可见性,有序性 volatile有两大特性:可见性,有 序性(通过在指令序列中插入内存屏障来禁止重排序)
volatile关键字是线程同步的轻量级实现,所以volatile的性能肯定比synchronized性能
要好
volatile关键字只能修饰变量,而synchronized关键字用来修饰方法和代码块
synchronized关键字在jdk1.6之后进行了主要包括为了减少获取和释放锁带来的性能消耗而引入的偏向锁和轻量级锁以及各种优化之后效率有了明显的提升,实际开发中使用synchronized的场景还是要多一点
多线程访问volatile关键字不会发生阻塞,而访问synchronized关键字会发生阻塞,故volatile关键字线程不安全,synchronized是线程安全的
volatile主要用来解决变量在多个线程之间的可见性题,synchronized主要用来解决多个线程访问资源同步的问题
4.Servlet生命周期可以分为初始化阶段,运行阶段,销毁阶段,以下过程属于初始化阶段的是:
答:加载Servlet类及.class对应的数据,创建ServletConfig对象,创建Servlet对象
拓展:Servlet生命周期一般可以用三个方法来表示,init(),service(),destroy()
init():仅执行一次,负责在装载Servlet初始化Servlet对象,
service():核心方法,一般HttpServlet中会有get和post两种处理方式,在调用doGet和doPost两种方法时,会构造HttpServletRequest和HttpServletResponse请求和响应对象作为参数
destroy():在停止并且卸载Servlet时执行