当前位置: 首页 > 图灵资讯 > 技术篇> Java 基础面试笔记(二)

Java 基础面试笔记(二)

来源:图灵教育
时间:2023-06-12 09:24:35

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种方法:

  1. 创建new语句最常见的方法;
  2. 调用Java反射手段.lang.classnewinstance实例方法;
  3. clone()调用对象的方法;
  4. 使用反序列化手段调用Java.io.objectinputstream对象的readobject()方法。
6.==与equals()的区别
  1. == 表示 判断两个变量或对象实例是否指向同一内存空间;equals()表示 判断两个变量或对象实例所指向的内存空间值是否相同。
  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类中的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。