java SE

作者: 李彬燊666 | 来源:发表于2019-07-13 11:12 被阅读0次

问题一:Java中是引用传递还是值传递?

值传递: 将方法实际参数值复制到另一个变量,然后复制的对象被传递,这就是为什么它被称为“值传递”

引用传递:将实际参数 的引用传递给该方法,这就是为什么它被引用称为“传递”的原因。

  答案:        java通过引用来操作对象,并且所有Object类型的变量都是引用一个地址。但是,java传递方法参数并不是引用传递,而是值传递。

问题二:JAVA中的深克隆和浅克隆

浅克隆:创建一个新对象,新对象的属性和原来对象完全相同,对于非基本类型属性,仍指向原有属性所指向的对象的内存地址。

深克隆:创建一个新对象,属性中引用的其他对象也会被克隆,不再指向原有对象地址。

问题三:java8  --新的时间函数

原因:java.util.Date和SimpleDateFormatter都不是线程安全的,而LocalDate和LocalTime和最基本的String一样,是不变类型,不但线程安全,而且不能修改。

问题四java8:java 8.Lambda表达式 和  Stream 流和函数式接口

推荐简书:https://www.jianshu.com/p/15ac2e9dc90f

在 Java 中,Lambda 表达式是对象,他们必须依附于一类特别的对象类型——函数式接口(functional interface)

()- > {}  :函数式接口是只包含一个抽象方法声明的接口

问题四:方法的重载和重写的区别

问题五:静态代码块的执行时机以 及他的内容会执行几次

静态代码块,在虚拟机加载类的时候就会加载执行,而且只执行一次;

非静态代码块,在创建对象的时候(即new一个对象的时候)执行,每次创建对象都会执行一次

问题六:复合索引的优点和注意事项:

https://www.cnblogs.com/Alex80/p/9716426.html

1:普通代码块和一般的语句执行顺序由他们在代码中出现的次序决定---》“先出现先执行”

2:

构造代码块:直接在类中定义且没有static修饰没有名字的{}代码称为构造代码块。

构造代码块在每次创建对象时都会被调用,并且构造代码块的执行次序优先于类构造函数。

3:

下面是一道

题的答案:

解析:静态>代码>构造方法,有一个前提:(静态的东西只加载一次) 

下边是SE的东西:

所以StringBuilder不能用于对同一对象的多线程操作。不过一般对字符串的操作,并不会用到多线程,所以绝大多数时候,用StringBuilder即可。

String、 StringBuilder 和  StringBuffer的区别

为什么说StringBuffer是线程安全的?:StringBuffer中的方法都加了synchronized关键字

说一下Collection集合【如下图

1:ArrayList和Linkedist和Vector的区别:

(1)ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。

(2)对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。

(3)对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。 这一点要看实际情况的。若只对单条数据插入或删除,ArrayList的速度反而优于LinkedList。但若是批量随机的插入删除数据,LinkedList的速度大大优于ArrayList. 因为ArrayList每插入一条数据,要移动插入点及之后的所有数据。 

2:HashTable和HashMap的区别

单例:

单例模式分为懒汉式单例和饿汉式单例

懒汉式单例:类加载时不初始化

饿汉式单例:类加载时就完成初始化,所以类加载比较慢,但是获取对象的速度比较快。

下面是一道面试题:

result:Exception in thread "main" java.util.ConcurrentModificationException

hashMap 中 key和value交换

=

HashTable 和ConcurrentHashMap的区别:

推荐博客:https://blog.csdn.net/zhanglei082319/article/details/87888250

HashMap 的底层原理:

https://blog.csdn.net/zhanglei082319/article/details/87872156

HashMap的面试题:

https://www.cnblogs.com/qfxydtk/p/8734784.html

HashMap中的index下标值的计算:

 index = [(hashCode)^ (HashCode>>>16) ] / 数组的长度

java 8.Lambda表达式

最出名的一个出错误:

Java中ArrayList循环遍历并删除元素的陷阱【还很重要】

map中的getOrDefault()方法;

java中Collection与Collections的区别

相关文章

网友评论

      本文标题:java SE

      本文链接:https://www.haomeiwen.com/subject/ktmgiqtx.html