第二天早上,激情亲切的HR关照我放工去二面,人事面,谈人为福利,哇哦,这意思是不是便是通过啦,心里窃喜,不负众望,果真,通过了,薪资和我心里的价码相差无几,新的生活即将开始!
byte的范围是-128~127。
字节长度为8位,最左边的是符号位,而127的二进制为01111111,以是实行+1操作时,01111111变为10000000。
大家知道,打算机中存储负数,存的是补码的兴衰。左边第一位为符号位。
那么负数的补码转换成十进制如下:
一个数如果为正,则它的原码、反码、补码相同;一个正数的补码,将其转化为十进制,可以直接转换。
已知一个负数的补码,将其转换为十进制数,步骤如下:
先对各位取反;将其转换为十进制数;加上符号,再减去1;例如10000000,最高位是1,是负数,①对各位取反得01111111,转换为十进制便是127,加上负号得-127,再减去1个-128;
二、数据库一样平常会采纳什么样的优化方法?1、选取适宜的字段属性
为了获取更好的性能,可以将表中的字段宽度设得尽可能小。只管即便把字段设置成not null实行查询的时候,数据库不用去比较null值。对某些省份或者性别字段,将他们定义为enum类型,enum类型被当做数值型数据来处理,而数值型数据被处理起来的速率要比文本类型快很多。2、利用join连接代替子查询
3、利用联合union来代替手动创建的临时表
把稳:union用法中,两个select语句的字段类型要匹配,而且字段个数要相同。
4、事务
要么都成功,要么都失落败。
可以担保数据库中数据的同等性和完全性。事务以begin开始,commit关键字结束。
如果出错,rollback命令可以将数据库规复到begin开始之前的状态。
事务的另一个主要浸染是当多个用户同时利用相同的数据源时,它可以利用锁天命据库的办法为用户供应一种安全的访问办法,这样就可以担保用户的操作不被其他的用户滋扰。
5、锁定表
只管事务是掩护数据库完全性的一个非常好的方法,但却由于它的独占性,有时会影响数据库的性能,尤其是在大运用中。
由于在事务实行的过程中,数据库会被锁定,因此其它用户只能暂时等待直到事务结束。
有的时候可以用锁定表的方法来得到更好的性能,
共享锁:其它用户只能看,不能修正
lock table person in share mode;
对付通过lock table 命令主动添加的锁来说,如果要开释它们,只需发出rollback命令即可。
6、利用外键
锁定表的方法可以掩护数据的完全性,但是它却不能担保数据的关联性,这个时候可以利用外键。
7、利用索引
索引是提高数据库查询速率的常用方法,尤其是查询语句中包含max()、min()、order by这些命令的时候,性能提高更为显著。
一样平常来说索引该当建在常用于join、where、order by的字段上。只管即便不要对数据库中含有大量重复的值得字段建立索引。
8、优化的查询语句
在索引的字段上只管即便不要利用函数进行操作。
只管即便不要利用like关键字和通配符,这样做法很大略,但却是以捐躯性能为代价的。
避免在查询中进行自动类型转换,由于类型转换也会使索引失落效。
三、项目中会有生产环境、测试环境等,问配置文件中该怎么配置四、怎么的处理service的事务传播
Spring事务传播机制详解
五、说一下事务的隔离级别数据库事务的隔离级别有4种,由低到高分别为Read uncommitted 、Read committed 、Repeatable read 、Serializable 。
六、Object常用方法getClass、equals、hashcode、clone、wait、notify、notifyAll、
七、在线人员统计通过监听session工具的办法来实现在线人数的统计和在线人信息展示,并且让超时的自动销毁。
对session工具实现监听,首先必须继续HttpSessionListener类,该程序的基本事理便是当浏览器访问页面的时候必定会产生一个session工具,当关闭该页面的时候一定会删除session工具。以是每当产生一个新的session工具就让在线人数+1,当删除一个session工具就让在线人数-1。
还要继续一个HttpSessionAttributeListener,来实现对其属性的监听。分别实现attributeAdded方法,attributeReplace方法以及attributeRemove方法。
sessionCreated//新建一个会话的时候触发,也可以说是客户端第一次和做事器交互时触发。
sessionDestroyed//销毁会话的时候,一样平常来说只有某个按钮触发进行销毁,或者配置定时销毁。
HttpSessionAttributeListener有三个方法须要实现
attributeAdded//在session中添加工具时触发此操作 笼统的说便是调用setAttribute这个方法时候会触发的attributeRemoved//修正、删除session中添加工具时触发此操作 笼统的说便是调用 removeAttribute这个方法时候会触发的attributeReplaced//在Session属性被重新设置时八、单点登录cookie办法,线程不屈安、不跨域jsonp办法,线程安全,不跨域重定向办法,线程安全,跨域,较繁琐九、项目是如何发布的IDEA打包成jar包cmd命令打包成jar包通过java -jar target/service_edu.jar命令启动springboot启动类。【Spring Boot 21】Spring Boot 项目如何支配
十、Redis有哪些运用用于缓存高速读写场合,如秒杀,抢红包等高并发场景十一、SpringMVC和SpringBoot的差异SpringMVC和SpringBoot都是Spring的衍生产品;Spring MVC是基于servlet的一个MVC框架,紧张运用于web开拓。Spring Boot办理的是Spring配置繁琐的问题,为简化开拓而生;十二、Spring IOC和AOPIOC可以称为掌握反转或依赖注入,通过引入IOC容器,利用依赖注入的办法,实现工具之间的解耦。
AOP是面向切面编程,在不改变原有逻辑的根本上,增加一些额外功能。
AOP适用于办理日志、事务、权限方面的问题,这种散布在各处的无关的代码称为横切,在OOP的设计中,它导致了大量代码的重复,而不利于各个模块的重用。
AOP是面向切面编程,将影响多个类的共同行为封装到一个可重用的模块,并将其命名为“Aspect”,即切面。
关于切面是将那些与业务无关,却被业务模块所共同调用的逻辑或任务封装起来,便于减少系统的重复代码,降落模块间的耦合度,并有利于未来的可操作性和可掩护性。
十三、beanFactory和factoryBean的差异beanFactory是Spring关于容器的父接口,用来管理bean的接口,管理bean的注入和销毁;
factoryBean是Spring用来对beanFactory中的bean进行润色的类,相称于装饰器模式;
十四、springboot项目等分为哪几个模块公共方法模块职员基本信息系统安全监控模块应急广播模块gis舆图模块视频监控模块统计模块十五、JSP取值的办法通过表单提交,前台今后台传值,在后台利用set,get方法,可以直接获取。如果通过request.getParameter(paramName)去获取前台传过来的要求参数值。有name属性的表单才会天生要求参数,如果某个表单设置了disable=“disabled”,则该表单不会天生要求参数。EL表达式${param}jsp输出表达式 :① 参数:<%=request.getParameter(paramName)%>
② 属性值:<%=request.getAttribute("attributeName")%>
十六、分页sql无排序的版本:
SELECT FROM (SELECT rownum AS rowno,w. FROM ct_worker w WHERE rownum <=20) worker WHERE worker.rowno>10
有排序的版本:
SELECT FROM (SELECT rownum AS rowno,w. FROM (SELECT ctw. FROM CT_WORKER ctw ORDER BY capid desc) w WHERE rownum <=20) worker WHERE worker.rowno>10
十七、分组sql
where利用在group by之前,where子句不能有分组函数;
group by 进行分组,having进行分组之后的过滤,having中可以利用聚合函数;
select t1.name 学生姓名, sum(t2.score) 总分, avg(t2.score) 均匀分, max(t2.score) 最高分, min(t2.score) 最低分 from t_student t1, t_score t2 where t1.studentid = t2.studentid group by t1.name having sum(t2.score)>250;
十八、索引怎么定义,分哪几种b-tree索引,如果不建立索引的情形下,oracle就自动给每一列都加一个B 树索引;normal:普通索引unique:唯一索引bitmap:位图索引,位图索引特定于只有几个列举值的情形,比如性别字段;基于函数的索引十九、Java多线程
1、线程的实现办法
(1)继续Thread类;
(2)实现Runnable接口;
该办法的优点:
可以避免由于java单继续带来的局限性,适宜多个相同程序的代码去处理同一个资源的情形,把线程和程序的代码、数据有效分离,较好的表示了面向工具的设计思想。
2、线程生命周期
创建、就绪、运行、壅塞、去世亡
3、线程掌握
线程休眠sleep、线程加入join、线程礼让yield
二十、easyExcel如何实现异步读取新建一个 ExcelModelListener 监听类出来,并且 继续 AnalysisEventListener 类
package com.zh.oukele.listener; import com.alibaba.excel.context.AnalysisContext;import com.alibaba.excel.event.AnalysisEventListener;import com.zh.oukele.model.ExcelMode; import java.util.ArrayList;import java.util.List; / 监听器 /public class ExcelModelListener extends AnalysisEventListener<ExcelMode> { / 每隔5条存储数据库,实际利用中可以3000条,然后清理list ,方便内存回收 / private static final int BATCH_COUNT = 5; List<ExcelMode> list = new ArrayList<ExcelMode>(); private static int count = 1; @Override public void invoke(ExcelMode data, AnalysisContext context) { System.out.println("解析到一条数据:{ "+ data.toString() +" }"); list.add(data); count ++; if (list.size() >= BATCH_COUNT) { saveData( count ); list.clear(); } } @Override public void doAfterAllAnalysed(AnalysisContext context) { saveData( count ); System.out.println("所有数据解析完成!
"); System.out.println(" count :" + count); } / 加上存储数据库 / private void saveData(int count) { System.out.println("{ "+ count +" }条数据,开始存储数据库!
" + list.size()); System.out.println("存储数据库成功!
"); } }