Java是高薪行业这是毋庸置疑的,因此很多人都会去学习java,学成之后就找java相关工作,在面试的时候,我们肯定会被一些java相关问题,那java工程师面试一般会问哪些问题?下面来我们就来给大家讲解一下。
1.什么是单例模式?
单例模式是指一个类仅允许创建其自身的一个实例,并提供对该实例的访问权限。它包含静态变量,可以容纳其自身的唯一和私有实例。它被应用于这种场景——用户希望类的实例被约束为一个对象。在需要单个对象来协调整个系统时,它会很有帮助。
2.什么是依赖注入?
依赖注入是spring框架中的解耦的一种策略,称为DI,主要有set方式(提供set和get方法)和constractor(构造方法)方式,它使得类与类之间以配置文件的形式组织在一起,而不是硬编码的方式
3.Mysql怎么增加一个索引?
创建索引:create index idx1 on table(col1, col2, col3);
添加索引:alter table tablename add index indexname(col1, col2);
4.使用线程池的好处?
(1)降低资源消耗。通过重复利用已创建的线程,降低线程创建和销毁造成的消耗。
(2)提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。
(3)提高线程的可管理性。线程是稀缺资源,如果无限制地创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一分配、调优和监控。
5.了解过线程池的工作原理吗?
当线程池中有任务需要执行时,线程池会判断如果线程数量没有超过核心数量就会新建线程池进行任务执行,如果线程池中的线程数量已经超过核心线程数,这时候任务就会被放入任务队列中排队等待执行;如果任务队列超过最大队列数,并且线程池没有达到最大线程数,就会新建线程来执行任务;如果超过了最大线程数,就会执行拒绝执行策略。
6.是否可以在static环境中访问非static变量?
static变量在Java中是属于类的,它在所有的实例中的值是一样的。当类被Java虚拟机载入的时候,会对static变量进行初始化。如果你的代码尝试不用实例来访问非static的变量,编译器会报错,因为这些变量还没有被创建出来,还没有跟任何实例关联上。
7.用一个例子解释垃圾回收?
比方说,下面这个方法就会从函数调用。
通过函数第一行代码中参考变量calendar,在堆上创建了GregorianCalendar类的一个对象。
函数结束执行后,引用变量calendar不再有效。因此,在方法中没有创建引用到对象。
JVM认识到这一点,会从堆中删除对象。这就是所谓的垃圾回收。
8.Java有没有goto?
答:goto 是Java中的保留字,在目前版本的Java中没有使用。(根据James Gosling(Java之父)编写的《The Java Programming Language》一书的附录中给出了一个Java关键字列表,其中有goto和const,但是这两个是目前无法使用的关键字,因此有些地方将其称之为保留字,其实保留字这个词应该有更广泛的意义,因为熟悉C语言的程序员都知道,在系统类库中使用过的有特殊意义的单词或单词的组合都被视为保留字)。
其实面试java无非就是问java相关问题,从询问中可以了解你对java知识的掌握程度,同时也会影响着是否能够通过面试,因此我们在面试之前,一定要多看些面试题!最后大家如果想要了解更多java架构师知识,敬请关注奇Q工具网。
推荐阅读: