Java
未读
LocalDate、LocalDateTime
1、 获取当前的日期 Java 8 中的LocalDate用于表示当天日期。和 java.util.Date不同,它只有日期,不包含时间。当你仅需要表示日期时就用这个类。 //获取今天的日期
public void getCurrentDate(){
LocalDate today = Lo
Java
未读
Java 多线程常用API
这是一篇关于Java多线程及并发工具类的文章。文章首先介绍了Object和Thread类的常用API,如wait()、notify()、interrupt()、join()等,重点描述了线程间的同步与通信方法。接着,文章讲解了JDK5之后新增的一些并发工具类,包括线程池操作方法、阻塞队列、ConcurrentHashMap、CountDownLatch、CyclicBarrier、Exchanger、Semaphore、Lock、ReadWriteLock等。每个工具类的功能和应用场景进行了简要说明,如线程池的管理、任务的等待和通知机制、锁的使用等。最后,介绍了ForkJoinPool和原子类(AtomicBoolean、AtomicInteger等),这些工具有助于更高效和安全地进行多线程编程。
Java
未读
模板方法模式(行为)
这是一篇关于模板方法模式(Template Method Pattern)的文章。模板方法模式是一种行为型设计模式,它定义了一个算法的骨架,将部分步骤延迟到子类中实现。通过这种方式,子类可以在不改变算法结构的前提下重定义特定步骤。文章介绍了模板方法模式的结构,包括抽象类中的模板方法和基本方法,并讨论了其优缺点。优点包括提高代码复用性、符合开闭原则和易于维护,而缺点则是可能不适用于所有子类,且会增加类的数量。使用场景包括算法步骤固定但部分变动时,以及多个子类有共同行为时。文章还通过代码示例展示了如何实现模板方法模式,并介绍了钩子方法的应用,允许子类在特定点进行定制,如VIP用户可以跳过排队流程。
Java
未读
JUnit
这是一篇关于JUnit框架的文章。JUnit 是一种测试框架,允许开发人员编写、运行、分析和报告测试用例。它通过注解、参数化和测试套件三个方面进行使用。JUnit 提供了易用性、支持多类测试、断言功能和可扩展性,支持 JUnit3、JUnit4 和 JUnit5 等版本。常见的注解包括 @Test、@BeforeAll、@AfterEach 等,用于控制测试方法的执行。参数化测试允许传递不同的测试数据,支持单参数、多参数、CSV文件和方法传参。JUnit 还提供了 @TestMethodOrder 注解用于控制测试顺序,以及 @Suite 用于运行多个测试类的测试套件。
Java
未读
Java 并发编程模式、技术
这是一篇关于并发编程模式和技术的文章。在并发编程中,使用多种模式和技术来提高应用程序的效率和线程安全性。并发集合类如 ConcurrentHashMap 和 ConcurrentLinkedQueue 提供线程安全的数据结构,避免手动加锁。Executor框架简化了线程管理和任务调度,常见的实现包括 ThreadPoolExecutor 和 ScheduledThreadPoolExecutor。线程池通过复用线程来减少开销,提高性能。Callable 和 Future 用于异步执行带有返回值的任务。并行计算通过 Fork/Join 框架和 Work-Stealing 算法优化多核处理器的性能。信号量和倒计数器用于线程同步和通信,控制线程访问共享资源或等待任务完成。
Java
未读
Spring Cloud中RESTful API设计和开发
这是一篇关于RESTful API的文章。RESTful API是一种基于HTTP协议的Web服务设计风格,强调资源的访问与操作,并遵循无状态的设计原则。设计RESTful API时,首先需要定义资源并设计URI,URI使用名词表示资源,支持复数形式和层级结构。通过HTTP方法(如GET、POST、PUT、DELETE)对资源进行操作,并根据请求和响应处理业务逻辑。错误处理和安全性(如身份验证、授权、数据加密)是设计中的重要部分。遵循RESTful原则可使API更具可读性、可维护性与可伸缩性。
Java
未读
Java 并发编程基础
这是一篇关于并发编程的文章。并发编程是指同时执行多个独立任务,能够提高系统性能、资源利用率和响应能力。它主要通过进程和线程的方式实现,进程是独立的执行单元,而线程是进程内的执行流,共享资源。并发编程包括并发、同步和异步三种执行方式,分别对应任务同时执行、任务按顺序执行和任务独立执行。并发编程面临的挑战包括竞态条件、死锁、线程安全性和上下文切换开销,需要通过适当的同步机制和工具如锁、线程池等来解决。
Java
未读
Spring Cloud中缓存的使用、缓存一致性
这是一篇关于Spring Cloud缓存使用及一致性问题的文章。文章首先介绍了Spring Cloud如何通过集成Spring框架的缓存抽象,帮助开发人员简化缓存功能的实现,包括添加依赖、配置缓存管理器和使用缓存注解(如@Cacheable、@CachePut、@CacheEvict)。接着,文章讨论了缓存一致性问题,如缓存穿透、缓存击穿、缓存雪崩、缓存更新及缓存降级,并提出了解决方案,如使用布隆过滤器、分布式锁、随机化过期时间和缓存更新等策略。