• 面试


    1.maven 项目做聚合时先对父项目编译,然后在编译子项目。
    2.拦截器,过滤器,监听器

    //**spring mvc**//
    1.controller的参数什么意思?
    2.RequestParam注解使用,要求参数不能为空(但是可以设置),如何设置默认值,
    3. modelAndView.setView(new MappingJackson2JsonView())使用,modelAndView.setViewName();
    4.控制器 ,RESTful
    5.后台获取前端参数
    1.前端表单字段名 和 后台方法的参数名保持一致
    2.pojo的方式。就是把前端表单的字段放到一个对象中 属性一一对应,然后把对象给后台。
    3.@RequestParam注解
    4.url传参
    5.@RequestBody 把spring mvc传递过来的json(xml)数据转换为对应的java集合类型(或者是自己封装的javabean)

    6.Model
    6.spring mvc中 控制器,处理器,拦截器

    //**java基础**//


    2.什么时红黑树?
    1.先理解二叉树(Binary Search Tree)
    1.左子树上所有结点的值均小于或等于它的根结点的值。
    2.右子树上所有结点的值均大于或等于它的根结点的值。
    3.左、右子树也分别为二叉排序树。
    二叉树查找所需最大次数等同于二叉树的高度
    二叉树插入也是利用类似方法,一层一层比较大小,找到新节点适合插入的位置。
    二叉树缺陷:插入新节点导致左右树不平衡,进而导致查询效率会很低。

    2.红黑树(Red Black Tree)
    1.具有二叉树的特点
    2.节点是红色或黑色。
    3.根节点是黑色。
    4.每个叶子节点都是黑色的空节点(NIL节点)。
    5 每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色节点)
    6.从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点。

    这样规则保证红黑树的自平衡,红黑树从根到叶子的最长路径不会超过最短路径的2倍。
    当插入或删除节点时,红黑树的规则有可能被打破,这时候需要做调整:变色,旋转(左旋转,右旋转)

    红黑树应用:TreeMap,TreeSet底层用红黑树完成,java8中HashMap也用到红黑树。


    Comparator

    工具使用整理:

    1.java中线程安全的类,举例说明
    stringbuffer线程安全,stringbuilder线程不安全
    2.springboot怎么读取配置属性
    1.@Value("${属性名}")
    2.通过使用Environment方式{}
    @RestController
    public class WebController {
    @Autowired
    private Environment env;

    @RequestMapping("/index2")
    public String index2(){
    return "方式二:"+env.getProperty("test.msg");
    }
    }
    3.springboot修改端口
    1.在application.properties中修改server.port=8090
    2.实现EmbeddedServletContainerCustomizer ,修改端口
    3.使用命令行参数
    如果你只是想在启动的时候修改一次端口号的话,可以用命令行参数来修改端口号。配置如下:java -jar 打包之后的SpringBoot.jar --server.port=8000
    java -jar xxx.jar --server.port=8888
    4.使用虚拟机参数
    你同样也可以把修改端口号的配置放到JVM参数里。配置如下:-Dserver.port=8009。 这样启动的端口号就被修改为8009了。
    4.#,$符号的区别
    在mybatis中的$与#都是在sql中动态的传入参数。
    #{} 传入值时,sql解析时,参数是带引号的,
    ${}穿入值,sql解析时,参数是不带引号的,有sql注入风险问题
    order by 中会用$,因为$符号传入参数不会加上""
    特殊符号处理<![CDATA[ ....]]> 来处理>,<

    5.url和uri区别?

    url是一个地址,uri是一个资源
    URN(Uniform Resource Name):统一资源名称
    URI(Uniform Resource Identifier):统一资源标识符

    6.

    struts2是多例的,但是配合spring使用时会配置成单例的,bean配置时的scope属性
    springmvc是单例的,基于方法的开发

    7.soap,rest

    8.什么是高可用,高并发

    高可用:通过设计减少系统不能提供服务的时间
    高并发:通过设计保证系统能够同时并行处理很多请求
    高并发相关常用的一些指标有响应时间(Response Time),吞吐量(Throughput),每秒查询率QPS(Query Per Second),并发用户数等
    实现高实现可用引入集群
    高并发实现可用垂直扩展,水平扩展
    (1)增强单机硬件性能。例如:增加CPU核数如32核,网卡如万兆,硬盘如SSD,内存等。
    (2)提升单机架构性能。例如:使用Cache来减少IO次数,使用异步来增加单服务吞吐量,使用无锁数据结构来减少响应时间;
    水平扩展:只是增加服务器数量,就能线性扩充系统性能。水平扩展对系统架构设计是有要求的,如何在架构各层进行可水平扩展的设计,以及互联网公司架构各层常见的水平扩展实践

    9.redis

    redis 数据持久化-快照:
    Redis创建快照时,会将某一时刻存在于内存中的数据保存到本地文件中。快照文件以.rdb后缀保存。
    具体过程是:
    Redis调用fork创建一个子进程。(父子进程共享内存,直至其中一个进程对内存进行了写操作)
    子进程负责将数据写入一个临时文件,父进程则继续处理数据库读写请求。
    完全写入成功后,调用rename将新的RDB文件替换原来的RDB文件

    使用RDB快照进行持久化的优缺点
    优点
    1.通过合理的配置,可以让Redis每隔一段时间就保存一次数据库副本,
    也可以很方便地将数据还原到特定的时间点。
    2.RDB文件相比AOF占用的空间更小,恢复数据的速度也更快。
    3.如果创建RDB文件时出现了错误,Redis不会将它用于替换原来的文件,所以出错时不会影响到之前保存的版本。

    缺点
    1.如果硬件、系统、Redis三者其中之一出现问题而崩溃,Redis会丢失全部数据,
    保留下来的数据只有上一个时间点创建的快照。如果数据对于应用程序来说非常重要,
    那么出现错误时的损失会非常大。
    2.fork子进程占用的内存随着数据库中数据的增加而增加,耗费的时间也会越来越多

    10.redis分页

    中软

    1.string.substring的源码实现,会和内存泄漏以及强引用,弱引用有一定的联系

      1.公用一个数组,使用String的3个参数的构造方法string(char[],startIndex,endIndex)返回截取的数据(jdk1.6),jdk1.7会返回新的数组回来,有利于截取前数组的回收

      2.引起内存溢出问题。

          强引用:gc不会回收,表现是new出来的对象,当对象的引用被释放掉(引用释放掉有3中方式:引用上赋值新对象;将引用设置为null),对象才会被回收

         软引用:非必需引用,在内存溢出以前会被回收。软引用常用来实现缓存,这样在内存不足是会自动删除一些数据

         弱引用:

              虚引用:

        

    2.有工厂模式了为啥还要用抽象工厂模式

    3.多线程包concurrent,那个是调用线程池的

    4.hashmap是否是线程安全的?

    5.java的堆栈


    栈:存放速度快,放基本数据,数据可以共享

    堆:存放对象之类数据,可以动态分配内存,存放数据速度比较慢

    1.做的是agv系统吗?
    2.工作的指责?
    3.项目的一些框架?对应agv中的什么呢?
    4.出差问题?加班问题?

    5.所在部门是什么部门?大华机器人事业部?
    6.公积金全额,是16000*12%? 社保具体是怎么交的,3300的基数*12%
    7.餐补 交通补助 通讯补助

  • 相关阅读:
    站立会议08
    站立会议07
    站立会议06
    站立会议05
    SOA架构设计的案例分析
    java实现根据高德地图API接口进行地址位置解析,将地址转化为经纬度
    java实现根据起点终点和日期查询去哪儿网的火车车次和火车站点信息
    Cocos2d切换场景出现的问题-error C2653: “***”不是类或命名空间名称
    云时代架构之点融支付系统架构的演进
    云时代架构之百度万人协同规模下的代码管理架构演进
  • 原文地址:https://www.cnblogs.com/youdream/p/9008048.html
Copyright © 2020-2023  润新知