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);

 

posted @ 2018-11-21 09:36  老年痴呆  阅读(182)  评论(0编辑  收藏  举报