【转载】不可不说的Java“锁”事

Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率。本文旨在对锁相关源码(本文中的源码来自JDK 8)、使用场景进行举例,为读者介绍主流锁的知识点,以及不同的锁的适用场景。

Java中往往是按照是否含有某一特性来定义锁,我们通过特性将锁进行分组归类,再使用对比的方式进行介绍,帮助大家更快捷的理解相关知识。下面给出本文内容的总体分类目录:
java主流锁

阅读全文

单例模式

单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。

单例模式

阅读全文

JVM学习笔记(三)——类加载机制

虚拟机的类加载机制就是虚拟机把Java类的源码编译为字节码后,将其读取进内存,并对数据进行校验、转换解析和初始化、最终形成可以被虚拟机直接使用的Java类型。

类加载机制

阅读全文

JVM学习笔记(二)——垃圾收集器和内存分配策略

Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的“高墙”,墙外的人想进去,墙内的人却想出去。
垃圾收集器和内存分配策略

阅读全文

JVM学习笔记——推荐文章

阅读全文

网络

NetWork

阅读全文

死锁

思维导图

阅读全文

Spring Data JPA分页查询

控制层

1
2
3
4
5
6
7
8
9
10
11
@RequestMapping("/allUser")
public ModelAndView listByPages(@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum) {
ModelAndView mav = new ModelAndView();
Sort sort = Sort.by(Sort.Direction.ASC, "id");
Pageable pageable = PageRequest.of(pageNum - 1, 4, sort); //页数、每页大小、排序方法
Page<User> users = userService.findAll(pageable);
mav.addObject("allUser", users);
mav.setViewName("allUser");
return mav;

}

阅读全文