1.arraylist和linkedlist
区别:
概念上:ArrayList是基于动态数组的数据结构,LinkedList是基于链表结构的。
性能:Arraylist查询效率高,增删动作效率差,适用于查询频繁、增删动作少的元素管理集合。linkedlist查询效率低,但增删效率高。适用于频繁增删、查询次数少的元素管理集。
ArrayList,LinkedList是线程不安全的。
2.StringBuffer 和 StringBuilder区别:
1.线程安全:stringbuffer线程安全,stringbuilder线程不安全。因为stringbuffer的所有公开方法都是synchronized修改的。
2.缓冲区:Stringbuilder每次获得tostring,都会直接使用缓存区的tostringcache值构建字符串。而Stringbuilder每次都需要复制字符数组,然后构建字符串。
3.性能:由于Stringbuilder是线程安全的,他所有的开放方法都是同步的,Stringbuilder没有锁定同步方法,所以毫无疑问,Stringbuilder的性能远远大于Stringbuffer。
总结:
Stringbuilder适用于在多线程中操作同一Stringbuilder的场景,如果是单线程场合,Stringbuilder更合适。
3.super和this关键词使用super在java类中引用父类成分,使用this引用当前对象
this可以修改属性、构造器和方法
super可以修改属性、构造器和方法
4.基本数据类型byte,short,int,long,float,double,boolean,char
5.有多少方法可以创建一个对象?4种方法:
- 创建new语句最常见的方法;
- 调用Java反射手段.lang.classnewinstance实例方法;
- clone()调用对象的方法;
- 使用反序列化手段调用Java.io.objectinputstream对象的readobject()方法。
- == 表示 判断两个变量或对象实例是否指向同一内存空间;equals()表示 判断两个变量或对象实例所指向的内存空间值是否相同。
- == 表示 比较内存地址,equals()表示 比较字符串的内容。
- == 表示引用是否相同,equals() 表示值是否相同。
- attr获取属性 ;
- text获取文本内容元素;
- val获取表单字段的值;
- html获取所选元素的内容;
//1 通过Date类获取当前时间,通过SimpledateFormat设置时间格式
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
System.out.println(df.format(new Date()));// new Date()获得当前系统时间
//2 通过System类中的currentimemilis方法获取当前时间
long date2 = System.currentTimeMillis();
String currentime2 = dateFormat.format(date2);
System.out.println(currentime2);
//3 通过Calendar类获取当前时间 ,calendar获得的MONTH范围为0-11,0代表1月,11代表12月
Calendar date3 = Calendar.getInstance();
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有几种conector优化方法?bio 、nio 、aio 、apr。