zoukankan      html  css  js  c++  java
  • JAVA基础知识回顾(面试资料)

    关于数据库知识和面试:https://www.cnblogs.com/yanqb/p/9894943.html

    关于数据库知识和面试:https://www.cnblogs.com/yanqb/p/10001593.html

    1、JAVA程序优化;

    前端性能:http请求数量,CDN网络,使用压缩

    Java程序优化:单例,Future模式的非阻塞,线程池,使用NIO,减少上下文切换,减低锁竞争;使用redis缓存;若是springboot项目可以使用它的监控(spring-boot-admin-server),

    2、多态表现形式

          创建一个List list = new ArrayList(); 就是多态表现

    3、float比较是否相等(不是比较大小)

    float 类型不能比较相等或不等,但可以比较>,<,>=,<=

     应该:用俩个数差的绝对值比较

    if (fabs(price - p) < 0.000001)  代替  if (price == p);相当于pice和p很接近或者相等他们的值一定小于0.00001

    总结:定义一个精度,用差的绝对值比较,在精度范围内就认为是相等的;大小可以直接比较。

    4、SpringMVC特点

      1.@RestController注解  相当于@ResponseBody + @Controller合在一起的作用

    4、Springboot特点

    一、SpringBoot解决的问题
    1、编码变得简单; 2、配置变得简单; 3、部署变得简单; 4、监控变得简单 5、可以使用 RESTful 调试接口


    二、springboot主要特性
    1、遵循习惯优于配置的原则。使用springboot我们只需要很少的配置,大多数使用默认配置即可
    2、项目快速搭建。springboot帮助开发者快速搭建spring框架,可无需配置的自动整合第三方框架
    3、可以完全不使用xml配置,只需要自动配置和Java config
    4、内嵌servlet容器,降低了对环境的要求,可用命令直接执行项目
    5、提供了starter POM,能够非常方便的进行包管理
    6、对主流框架无配置集成

    三、springboot的核心功能
    1、独立运行spring项目。springboot可以以jar包的形式进行独立运行,使用java -jar xx.jar 就可以成功运行项目。
    2、内嵌servlet容器。内嵌容器,使得我们可以执行运行项目的主程序main函数,使得项目可以快速运行。
    3、提供starter简化Maven配置。springboot提供了一系列的start pol用来简化maven依赖。如:常用的spring-boot-starter-web、spring-boot-starter-tomcat、spring-boot-starter-actuator等
    4、自动配置spring。springboot会根据我们项目中类路径的jar包,为jar包的类进行自动装配bean。
    5、应用监控。springboot提供了基于HTTP、ssh、telnet对运行时的项目进行监控。
    springboot提供了actuator组件,只需要在配置中加入spring-boot-starter-actuator依赖,通过继承AbstractHealthIndicator这个抽象类,然后在doHealthCheck()方法中检测服务健康的方法,就可以实现一个简单的监控。具体可参考该博客:

    四、springboot的缺点
    1、高度集成,所以对于底层实现可能关注不多,导致项目出了问题会很难排查

    4、SpringCloud内容

      1.用注解定义一个接口@FeignClient(value = "users", path = "/users") public interface UserService 

    首先:

      @FeignClient(value = "users", path = "/users")
      public interface UserService {
      @RequestMapping(value = "/getUserDetail/{id}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
      User getUserById(@PathVariable Long id);
      }

    然后:@Autowired获取UserService,他会自动创建实现类

      2.SpringCloud服务间调用两种方式:RestTemplate和FeignClient  实际上都是通过REST形式 调用服务的http接口

    首先:RestTemplate的Bean @Configuration @Bean 创建一个RestTemplate  bean

    然后:使用的地方之间获取即可@Autowired获取RestTemplate         restTemplate.getForObject("http://users/getUserDetail/" + userId, UserDTO.class);

  • 相关阅读:
    java程序高CPU,如何直接定位(linux系统下命令行操作)
    HashMap源码解读(jdk1.8)
    mysql索引原理
    redis常见问题
    Bitmap算法
    list遍历时删除的坑
    接口和抽象类有什么区别?各在什么场景下使用?
    记录BigInteger犯过的一个错误
    CentOS7切换源
    map遍历性能记录
  • 原文地址:https://www.cnblogs.com/yanqb/p/9993136.html
Copyright © 2011-2022 走看看