
Java面试题
全栈Demo
这个作者很懒,什么都没留下…
展开
-
Java中Vector和ArrayList主要区别
这里补充一下,由于Arraylist和Vector都是由数组实现的,所以他们有一个共同点,索引,这就提供了在进行查找的时候,速度就相对会快一些,不过在考虑查询的时候,又要考虑两者之间的线程问题(Vector会慢一些),但在增加的时候,同样是由List接口实现而来的LinkList不同的是,LinkList的底层是由双向链表实现而来的,所以在插入、删除、修改操作时,使用LinkList的速度又会比Arraylist和Vector都快!首先先讲解一下Java中vector。原创 2022-10-26 00:08:09 · 1914 阅读 · 0 评论 -
深拷贝与浅拷贝的区别
浅拷贝:对于基础数据类型:直接复制数据值;对于引用数据类型:只是复制了对象的引用地址,新旧对象指向同一个内存地址,修改其中一个对象的值,另一个对象的值随之改变。深拷贝:对于基础数据类型:直接复制数据值;对于引用数据类型:开辟新的内存空间,在新的内存空间里复制一个一模一样的对象,修改其中一个对象的值,不会影响另一个对象。深拷贝相比于浅拷贝速度较慢。原创 2022-10-24 17:03:07 · 168 阅读 · 0 评论 -
String a = new String(“a“)创建几个字符串对象
当我们在创建字符串的时候会出现这两种情况,一种是常量池中已经有该字符串,一种是常量池中没有该字符串。当没有的时候会先在常量池中先创建一个字符串对象,然后再在堆中也创建一个字符串对象,然后将常量池中的对象内容拷贝到堆中的字符串对象,在堆内存中的字符串对象返回该地址,所以一共是创建了两个对象,但如果常量池中已经有了字符串对象,就不会在常量池中创建,所以创建了一个对象。所以创建1或者2个对象。原创 2022-10-18 22:54:57 · 413 阅读 · 1 评论 -
string、stringBuilder、stringBuffer区别
string内部是由final修饰的,所以当中的字符串是不可变的,并且每次对其进行操作时都会创建新的对象,内存的话占比就比较大。通常不经常变动的字符串采用string。stringBuilder和stringBuffer都可以任意的更改字符串,但是stringbuffer中的方法都是sychronized修饰的,所以线程会比较安全。在性能方面StringBuilder>StringBuffer>String,我们更推荐使用StringBuilder。原创 2022-10-08 16:36:47 · 125 阅读 · 0 评论