国际化怎么实现?
a.新建Resource Boundle资源文件,包括中英文,不同语种的文件
b.添加配置类,加载加载不同国际化资源。
c.根据请求头的"Accept-Language"判断当前浏览器设置的语言偏好,获取对应语言的Locale。
d.根据不同语言的Locale,以及国际化key值,获取对应的语言值。幂等性怎么实现?
a.redission分布式锁
b.阻塞队列
c.利用库表主键唯一性阻塞队列有没有使用过?
数据库连接池,等待队列消息队列的使用?
kafka消费组组件和生产者组件数据调优?
a. instr 改成 like
b. 联合索引,区分度大的字段需要在左侧。
c. 子查询去重,
d. 避免回表
e. 多次查询库表,改成in()。js的闭包?
闭包是指有权访问另外一个函数作用域中的变量的函数
防抖,节流js的原型和原型链?
怎么获取线程的执行结果?
new FutureTask(new Thread());
Thread 线程内部传上下文的进度条参数;
数据库的锁有了解吗?
排他锁
间隙锁生产者消费者代码实例?
单元测试?
微服务过程中,遇到什么问题?
a. 网关获取登录信息以及部分校验耗时长。
b. 获取不同服务的数据,会比较耗时。需要本地做缓存。针对首页比较慢的原因
1.写代码的时候尽量减少读、写缓存操作。
2.注意@cache缓存如果value是null不会生效,如果存在空值,应该存入空字符串保证能生效。
3.查询数据尽量一次查询出来,不要for循环遍历查询库表数据。获取数据库连接的方法?
a.
Connection conn = DriverManager.getConnection(url, props);
b.
String driverClassName = (String)props.get("driver.class.name");
driver = (Driver)Class.forName(driverClassName).newInstance();
conn = driver.connect(url, props);线程安全的集合?
ConcurrentHashMapkafka如何保持消息的可靠性?
发送方:ack=-1/all ,等待确认所有broker接收到消息。防止数据丢失(broker可能没收到发送方发出的消息)
消费方:把offset自动提交改成手动提交(消费者收到消息后且还没真正消费消息,就已经提交offset,后宕机)箭头函数和普通函数的区别?
a.this指向不同,
全局函数非严格模式windows,严格模式指向undefined。对象函数指向调用函数的对象。
箭头函数会找外层的this,如果外层没有定义,那么指向全局对象。代码的单元测试?
代码review查什么内容?
前台:
1.debugger
2.console.log
3.模块化,对象化编程
4.对象/事件的销毁
- [1.资源的申请与释放]
- [2.Double-Checked Locking正确用法
- [3.finally代码中不要return]
- [4.list转array的处理]
- [5.使用list.isEmpty()判空]
- [6.合理选用对象类型]
- [7.循环中避免重复创建字符串]
- [8.构造方法内部异常处理]
- [9.不良注释]
- [10.输出有效日志信息]
- [11.遍历 List 删除元素]
- [12.魔法数字]
13.国际化
orm和jdbc怎么公用一个事务?
js闭包?
闭包是指有权访问另外一个函数作用域中的变量的函数
防抖/节流jvm调优?
导出数据db文件,数据较多,文件较大,导出时间很长。
如何优化?
检查代码逻辑有没有问题,服务部署的服务器,以及数据库服务器内存是否充足,cpu占用率是否异常。
检查jvm的gc情况,发现导出过程,频繁进行young gc,故增加年轻代的空间,减少ygc的次数,提高导出的效率javascript的es5,es6?
ES5(ECMAScript 5):这是JavaScript的一个早期版本,于2009年发布。ES5引入了许多重要的功能,包括“严格模式”(strict mode)和“JSON”(JavaScript Object Notation)格式化。
ES6(ECMAScript 2015):这是JavaScript的较新版本,于2015年发布。ES6引入了许多新的功能和语法,包括“类”(class)关键字、模块化、箭头函数、Promise对象等。
ES6的目标是使得JavaScript更加易于使用,并且更加适合大型应用程序和复杂网站的开发。许多现代浏览器都已经支持ES6的大部分功能,同时也可以通过使用Babel等工具将ES6代码转换为ES5代码,以确保代码在所有浏览器中都能够运行。