1.arraylist和linkedlist

区别:

概念上:ArrayList是实现了基于动态数组的数据结构,LinkedList是基于链表结构。

性能上: ArrayList 的查询效率比较高,增删动作的效率比较差,适用于查询比较频繁,增删动作较少的元素管理的集合。LinkedList 的查询效率低,但是增删效率很高。适用于增删动作的比较频繁,查询次数较少的元素管理集合。

ArrayList ,LinkedList 都是线程不安全的。

2.StringBuffer 和 StringBuilder

区别:

1. 线程安全:StringBuffer线程安全,StringBuilder线程不安全。因为StringBuffer的所有公开方法都是synchronized修饰的。

2. 缓冲区:StringBuffer每次获取toString都会直接使用缓存区的toStringCache值来构造一个字符串。而StringBuilder则每次都需要复制一次字符数组,再构造一个字符串。

3. 性能:既然StringBuffer是线程安全的,他的所有公开方法都是同步的,StringBuilder是没有对方法加锁同步的,所以毫无疑问,StringBuilder的性能要远大于StringBuffer。

总结:

       StringBuffer适用于在多线程操作同一个StringBuffer的场景,如果是单线程场合StringBuilder更合适。

3.super和this关键字

在java类中使用super引用父类的成分,用this引用当前对象

          this可以修饰属性、构造器、方法

          super可以修饰属性、构造器、方法

4.基本数据类型

byte,short,int,long,float,double,boolean,char

5.创建一个对象有几种方法?

4种方法:

  1. 用new语句创建,最常见的创建方法;
  2. 反射手段,调用Java.lang.Class类的newInstance实例方法;
  3. 调用对象的clone()方法;
  4. 运用反序列化手段,调用Java.io.objectinputStream对象的readObject()方法。

6.==和equals()的区别

  1. == 表示 判断2个变量或对象实例是否指向同一个内存空间; equals()表示 判断2个变量或对象实例所指向的内存空间的值是否相同。
  2. == 表示 对内存地址进行比较,equals()表示 对字符串的内容进行比较。
  3. == 表示引用是否相同,equals() 表示值是否相同。

7.jquery如何获取class属性

  1. attr获取属性 ;
  2. text获取文本内容元素;
  3. val获取表单字段的值;
  4. html获取所选元素的内容;

8.获取时间的四种方式

//1 通过Date类来获取当前时间,通过SimpleDateFormat来设置时间格式

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式

System.out.println(df.format(new Date()));// new Date()为获取当前系统时间


//2 通过System类中的currentTimeMillis方法来获取当前时间

long date2 = System.currentTimeMillis();

String currentTime2 = dateFormat.format(date2);

System.out.println(currentTime2);


//3 通过Calendar类来获取当前时间 ,Calendar获取的MONTH范围是0-11,0代表1月,11代表12月

Calendar date3 = Calendar.getInstance();

//date3.add(Calendar.MONTH, 12);

String month = date3.get(Calendar.MONTH)<10?"0"+(date3.get(Calendar.MONTH)+1):(date3.get(Calendar.MONTH)+1)+"";

System.out.println(date3.get(Calendar.YEAR)+"-"+month+"-"+date3.get(Calendar.DATE)+" ");

//将Calendar的对象转为Date对象

Date dateC = date3.getTime(); 

//4 通过Date类来获取当前时间 

Date date = new Date(); 

String year = String.format("%tY", date); 

String month4 = String.format("%tm", date); 

String day = String.format("%te", date); 

System.out.println(year+"-"+month4+"-"+day);

9.Java8新特性

       Lambda表达式(也称为闭包)是Java 8中最大和最令人期待的语言改变。它允许我们将函数当成参数传递给某个方法,或者把代码本身当作数据处理,最简单的Lambda表达式可由逗号分隔的参数列表、->符号和语句块组成。

10.tomcat有几种connector优化方式?

bio 、nio 、aio 、apr。