String、StringBuffer、StringBuilder的区别:
String是字符串常量,stringbuff是字符串变量,相对于stringbuilder来说stringBuffer是线程安全的(synchronize),stringBuilder是线程非安全。
Object类里有哪些方法?
toString(),clone(),hashcode().getClass().notify(),notifyAll()wait() finalize()
hashcode、equals和==之间的区别
“==”比较对象是否引用了同一个对象,或者比较简单类型变量值是否相等。
Object类的equals()方法用来比较是否一个对象(内存地址比较),可以重写。
JDK中有些类重写了equals()方法,只要类型、内容都相同,就认为相等。
== 是简单比较数字类型是否相等,当比较对象为对象时,比较的对象为引用。
Equals是用来判断从表面上看或者从内容上看例如一个学生类实例,它的学号和姓名是不是都是相等的。
Object类中的hashCode是返回对象在内存中地址转换成的一个int值(可以就当做地址看)
Hascode 常规规定:2个相等的对象
classloader加载机制
运行java程序是会启动一个jvm线程,会首先加载bootloader。在ExtClassLoader和AppClassLoader。
你知道哪几种创建线程类的方法(其实有好多,框架答出来肯定加分)
1. 继承thread类。实现run()。
2. 事项Runable接口,实现run();
3. 线程池。
数组与链表的相同点和不同点,为什么
相同:同样是顺序构造出的结果呈线性结构。
不相同:链表是链式结构。数组是线性结果
链表:优点便于插入和删除
数组:便于查找
简述一下List、Set、Map的区别
Set中的对象不按特定方式排序,并且没有重复对象。但它的有些实现类能对集合中的对象按特定方式排序,例如TreeSet类,它可以按照默认排序,也可以通过实现java.util.Comparator<Type>接口来自定义排序方式。
List中的对象按照索引位置排序,可以有重复对象,允许按照对象在集合中的索引位置检索对象,如通过list.get(i)方式来获得List集合中的元素。
Map中的每一个元素包含一个键对象和值对象,它们成对出现。键对象不能重复,值对象可以重复。
说出ArrayList,Vector, LinkedList的存储性能和特性
ArrayList和Vector 底层都是用数组实现的。比较适合做遍历操作。ArrayList是线程不安全的。Vector线程安全的。不考虑,线程问题。使用ArrayList比较快速。
LinkedList是用链表来写的,相对ArrayList和Vector来说,更适合做删除和添加操作。
对象序列化机制 Java 的序列化做什么用的 序列化id会出现哪些问题?
保存在内存中的各种对象的状态,并且可以把保存的对象状态再读出来
Java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体(类)的serialVersionUID进行比较,如果相同就认为是一致的,可以进行反序列化,否则就会出现序列化版本不一致的异常
TCP三次握手的过程如下:
1.客户端发送SYN(SEQ=x)报文给服务器端,进入SYN_SEND状态。
2.服务器端收到SYN报文,回应一个SYN(SEQ=y)ACK(ACK=x+1)报文,进入S YN_RECV状态。
3.客户端收到服务器端的SYN报文,回应一个ACK(ACK=y+1)报文,进入Established状态。
Session,Cookie区别
1、session保存在服务器,客户端不知道其中的信息;cookie保存在客户端,服务器能够知道其中的信息。
2、session中保存的是对象,cookie中保存的是字符串。
时效:cookie若不设定生存周期,关闭游览器即销毁。
hibernate和ibatis区别?
Hibernate 基本可以自己生成sql语句,但是对于二次开发,可能不够灵活。
Ibaits,需要程序员自己写sql语句,但是更加灵活。
设计模式:
创建型模式:单例模式、抽象工厂模式、建造者模式、工厂模式、原型模式。
结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。
行为型模式:模版方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式(Interpreter模式)、状态模式、策略模式、职责链模式(责任链模式)、访问者模式。