java面试开发过程中用到的问题
1.如何解决线程安全问题?
使用同步关键字synchronized。
2.类的加载过程:加载、验证、准备、解析、初始化。
3.java中的集合,有何区别?
LIst:有序排列元素,元素可以重复。
Set:无序排列元素,元素不可以重复。
Map:key-value存储值。
4.分布式服务特征:
5.dubbo和zookeeper的作用。
6.IO流。
7.mysql、Oracle的使用,存储过程的使用,视图的使用。
8.反射机制:在运行状态中,对于任意一个类,都能够获取到这个类的所有属性和方法,对于任意一个对象,都能够调用它的任意一个方法和属性(包括私有的方法和属性),这种动态获取的信息以及动态调用对象的方法的功能就称为java语言的反射机制。通俗点讲,通过反射,该类对我们来说是完全透明的,想要获取任何东西都可以。
获取字节码文件对象的三种方式。
1、Class clazz1 = Class.forName("全限定类名"); //通过Class类中的静态方法forName,直接获取到一个类的字节码文件对象,此时该类还是源文件阶段,并没有变为字节码文件。
2、Class clazz2 = Person.class; //当类被加载成.class文件时,此时Person类变成了.class,在获取该字节码文件对象,也就是获取自己, 该类处于字节码阶段。
3、Class clazz3 = p.getClass(); //通过类的实例获取该类的字节码文件对象,该类处于创建对象阶段
9.设计模式:代理模式、工厂模式、单例模式等。
10.spring的工作原理。
11.spring中IOC和AOP的使用。
12.bean的注入方式:属性注入、构造器注入、工厂注入。
13.曾经使用过的注解。
14.用过的数据库连接池有哪些。c3p0,Druid等。
15.多线程相关的问题。
16.注解注入的方式。bytype、byname
17.css的层级关系。
18.mybatis的缓存机制。
19.代理模式中是否自己写过代理。jdk代理,cglib代理。
20.单点登录。
21.使用BI技术实现大屏。
22.echarts的使用。
23.分页的实现。
24.JVM性能调优。使用过的服务器。
25.使用过的Linux命令。
26.NGINX的使用:1.首先去Nginx官网下载一个最新版本的Nginx,下载完成之后,得到一个.zip的压缩包,然后解压到某个文件夹下;2.修改配置文件。打开“conf”文件夹下的“nginx.conf”文件,如下图
3.打开命令行,定位到Nginx当前目录,使用“start nginx”命令启动nginx;
4.打开浏览器,输入:http://localhost/。可以发现,浏览的网站,会在两个站点见不停的切换,并且站点2的使用几率会稍高一些,因为站点2的权重设置的比站点1的大。
27.测试系统性能的工具:jmeter
28.常用的服务器参数:服务器内存是16G的,负载均衡前,在线人数是300左右,做了负载均衡后,大概在1000左右。
29.postman工具的使用,是否可以进行导出导出数据?可以进行导入导出。
30.大学时学过的和计算机相关的课程。
31.在进行迁移数据库时,有进行日志记录吗?
32.对于在服务器上产生的大量的日志,怎么处理?是否有写监控器,在达到某种级别时,自动清理?
33.跨域问题如何解决?通过配置过滤器。
34.如何引用js?使用script标签:<script type="text/javascript" src="/assets/pages/banner_list.js"></script>
35如何引用css?使用link标签:<link rel="stylesheet" type="text/css" href="/assets/static/h-ui.admin/css/style.css" />
36.mybatis中使用过的标签:set,update,trim,where,if等等。
37.是否会使用MongoDB?
38.是否会使用Git?