赞
踩
个人背景、项目经历、实习经历。
注解 | 作用 |
---|---|
@SpringBootApplication | springboot的核心注解,用于开启自动配置。 |
@RequestMapping | 提供路由信息,负责URL到Controller中的具体函数的映射。 |
@ResponseBody | 将请求返回的结果为json形式。 |
@Controller | 用于定义控制器类。 |
@Service | 表示Service层。 |
@Repository | 表示数据关系映射层。 |
@ComponentScan | 将该类自动发现扫描组件。 |
@Bean | 用在方法上来生成一个bean示例,交给Spring容器托管。 |
@Component | 表示组件。 |
@Autowired | 自动导入依赖的bean。 |
@Value | 获取配置application文件的内容。 |
索引的优点:减少了服务器需要扫描的数据量、帮助服务器避免排序和临时表、将随机I/O变成顺序I/O。
Java Servlet是运行在Web服务器或应用服务器上的程序,它是作为来自Web浏览器或其他HTTP客户端的请求和HTTP服务器上的数据库或应用程序之间的中间层。使用Servlet可以收集来自网页表单用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。
微服务是由单一应用程序构成的小服务,拥有自己的进程与轻量化处理,服务依业务功能设计,以全自动的方式部署,与其他服务使用HTTP API通讯。同时,服务会使用最小规模的集中管理(例如Docker)技术,服务可以用不同的编程语言与数据库等。
软件生命周期四个阶段:
起始阶段(Inception):有一个好的想法,具体构想出终于产品的设想和它的业务案例,确定项目的范围 。
细化阶段(Elaboration):计划必要的活动和所需资源,具体确定功能并设计构架 。
构建阶段(Construction):构建产品, 发展最初设想构架和计划,直到一个能够交付给用户的产品(或设想)完毕。
移交阶段(Transition):将产品移交用户使用,包含:制造、交付、培训、支持、维护,直到用户惬意。
开发流程:
需求分析、概要设计、详细设计、编码、测试、软件交付、验收、维护。
ConcurrentHashMap在JDK1.8
的时候将put()方法中的分段锁Segment移除,转而采用一种CAS锁
和synchronized
来实现插入方法的线程安全。
ConcurrentHashMap是直接采用数组
+链表
+红黑树
来实现,时间复杂度在O(1)和O(n)之间,如果链表转化为红黑树了,那么就是O(1)到O(nlogn)。ConcurrentHashMap会判断tabAt(tab, i = (n - 1) & hash)
是不是 null,是的话就直接采用CAS
进行插入,而如果不为空的话,则是synchronized
锁住当前Node
的首节点,这是因为当该Node不为空的时候,证明了此时出现了Hash碰撞
,就会涉及到链表
的尾节点新增或者红黑树
的节点新增以及红黑树
的平衡,这些操作自然都是非原子性的。
由于每一个Node
的首节点都会被synchronized
修饰,从而将一个元素的新增转化为一个原子操作
,同时Node
的value
和next
都是由volatile
关键字进行修饰,从而可以保证可见性
。
1、GitHub使用情况及最近点赞项目。
2、职业规划。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。