1、==和eques有什么区别?
答:双等号:如果是基本类型比较值,如果是对象类型则比较内存地址;
Eques:用于字符串的值比较。
2、hashMap和treeMap有什么区别?
答:HashMap 非线程安全 TreeMap 非线程安全
HashMap通常比TreeMap快一点(树和哈希表的数据结构使然),建议多使用HashMap,在需要排序的Map时候才用TreeMap。
HashMap的结果是没有排序的,而TreeMap输出的结果是排好序的。
3、hashcode和equals的区别?
答:hashcode返回一个对象在java虚拟机中的地址
Eques:用于字符串的值比较。
4、Arraylist有默认长度吗?是多少?如果超过这个数量会怎么办?
答:Arraylist的默认长度是10,如果超过这个数量arraylist会自动扩容1.5倍
5、怎么创建线程?
答:继承Thread类,重写run方法;实现Runnable接口
1.重载,重写是什么
(1)方法重写
①在具有继承关系的子类中
②方法名相同
③参数列表完全相同
1)参数的个数相同
2)参数的顺序相同
3)参数的类型相同
④与返回值类型无关
⑤访问修饰符不能严于父类
(2)方法重载
①在同一个类中
②方法名相同
③与返回值类型和访问修饰符无关
④参数列表不同
1)参数的个数不同
2)参数的顺序不同
3)参数的类型不同
2、Java面向对象编程的三大特征是什么?并分别解释好处是什么?
封装:隐藏了类的内部实现细节,对外提供接口访问,提高了安全性
继承:提高了代码的重用性
多态:提高了代码的可维护性和可扩展性
3、Java中的static关键字有哪些用法?
修饰属性:静态属性,也称为类属性,通过类名直接调用
修饰方法:静态方法,也称为类方法,通过类名直接调用,一般用于工具类中
修饰代码块:代码执行一次,比如加载驱动
4、请简述java中四种访问修饰符的区别。
答:private 只能本类访问
默认的(friendly) 在同包内可以被访问
protected 在同包,或者子类中可以被访问
public 所有类均可访问
5、抽象类和接口有哪些相同点和不同点?
答:相同点:(1)都可以存在抽象方法;
(2)都可以被继承;
(3)普通子类都需要重写抽象方法;
(4)不能实例化
不同点:(1)关键字:abstract(抽象类),interface(接口);
(2)抽象类中可以有普通方法,接口中不可以;
(3)类能继承抽象类,接口继承接口
6、Java中的final关键字有哪些用法?
答:(1)修饰类:类不能被继承;(2)修饰变量:变量变常量;(3)修饰方法:不能被重写
7、简述Java集合框架的三大类接口及其区别?
答:1、分别为:List、Set和Map
2、Set 接口继承Collection接口,存储一组唯一(不允许重复),无序的对象。
3、List 接口继承Collection接口,存储一组不唯一(允许重复),有序(以元素插入的次序来放置元素,不会重新排 列)的对象。
4、Map接口存储一组(键-值)对象,提供key(键)到value(值)的映射。Map中的key不要求有序,不允许重复。value同样不要求有序,但允许重复
8、根据你的理解,请说明ArrayList和LinkedList的区别
1、 ArrayList是List接口的一个具体实现类,它实现了可变大小的数组,在进行随机访问和遍历元素时,它提供更好的性能。
2、LinkedList是List接口的一个具体实现类,它提供了额外的addFirst()、addLast()、removeFirst()、removeLast()等方法,可以在LinkedList的首部或尾部进行插入或者删除操作。而且,相较于ArrayList,在插入或者删除元素时,LinkedList提供更好的性能。
9. Get和Post的区别
1.get是从服务器上获取数据,post是向服务器传送数据,
2.get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。
3.get安全性非常低,post安全性较高。但是执行效率却比Post方法好。
4.在进行文件上传时只能使用post而不能是get
10.什么是java序列化?如何实现java序列化?
Java 串行化技术可以使你将一个对象的状态写入一个Byte 流里,
并且可以从其它地方把该Byte 流里的数据读出来,重新构造一个相同的对象。
11、Hashtable HashMap 区别
- Hashtablie 继承 dictionary(得k森哪瑞) 类, 而 hashMap 实现 Map 接口。
Hashtable 方法是同步的,而 hashmap 不是,hashtable不允许 null 值。
HashMap 重速度,轻安全,是线程非安全的,hash 允许 null 值。
12、int - Integeer 区别
Integer 是 int 的包装类型、在拆箱和装箱中、二者自动转换 、int 是基本数据类型直接存数值、而 Integer 是对象、用一个引用指向这个对象、由于 Integer 是一个对象、在 JVM 中对象需要一定的数据结构进行描述、相比 int 而言、其占用的内存更大一些
13、String - StringBuilder (建造者模式) - StringBuffer 区别(🔔)
- String 字符串常量、不可变、使用字符串拼接是不同的 2 个空间
2. StringBuffer 字符串变量、可变、线程安全、字符串拼接直接在字符串追加
3. StringBuilder 字符串变量、可变、非线程安全、字符串拼接直接在字符串后追加
4. String 是一个常量、是不可变的、对于大批量的字符串拼接、采用 StringBuffer、StringBuilder
5. StringBuilder 执行效率高于 StringBuffer 高于 String
14、String 是最基本的数据类型吗?
答:不是。Java中的基本数据类型只有8个:byte、short、int、long、float、double、char、boolean;除了基本类型(primitive type),剩下的都是引用类型(reference type),Java 5以后引入的枚举类型也算是一种比较特殊的引用类型。