深入理解Java多线程(四)锁、锁工具、并发容器

JUC提供了一套锁对象,分别时:Lock接口、AbstractQueuedSynchronizaer(队列同步器)、ReentrantLock、ReentrantReadWriteLock、Condition、LockSupport。Lock接口Lock接口定义了锁工具常用的方法,ReentrantLock、ReentrantReadWriteLock都是Lock的具体实现。lock()用于加锁unlock()释放锁lockInterruptibly()可中断加锁,线程持有锁后可被终端,中断后抛

又是一年毕业季

又是一年毕业季,今晚和毕业的学长学姐一起聚餐,常言往事,历历在目。明年这时候我们也要毕业了,感慨时间飞快大学即将结束,感思万千,我们也即将踏上求职之路,学长学姐在今年算是交出满意的答案,明年就看我们的了。

深入理解Java多线程(三)JUC基础篇

这篇文章主要侧重讲JUC的多数类的使用,文章里贴了很多练习的代码,可以通过代码更加深刻的了解这些类的功能。 这篇文章主要总结了volatile、原子类、ReentrantLock、CountDownLatch、CyclicBarrier、Phaser、Semphore、Exchanger的使用,然后进行了一些对比。

深入理解Java多线程(二) 多线程问题总结

学了一段时间多线程方面的知识了总感觉掌握的知识有些散乱,在网上搜了一些面试问题总结梳理一下。多线程java中有几种方法可以实现一个线程?Java中有四种方式实现一个线程。通过实现一个Runnable继承Thread并重写run方法继承Callable,用Future接收可以实现异步调用使用线程池(executer)提交作业如何停止一个正在运行的线程?使用suspend可以挂起一个线程,使用stop可以终结一个线程,但这些方法已经不推荐使用,存在安全性问题,停止一个线程最好的方式是让它自然结束,常

深入理解Java多线程(一)线程基础

文章主要内容有:Java 线程的实现、 线程的创建、 线程状态、 线程状态获取示例、 线程的优先级、 守护线程、 原子性 & 同步、 synchronized、 锁升级的过程、 volitail、 ThreadLocal

SMART原则

所谓SMART原则,即:目标必须是具体的(Specific)目标必须是可以衡量的(Measurable)目标必须是可以达到的(Attainable)目标必须和其他目标具有相关性(Relevant)目标必须具有明确的截止期限(Time-based)SMART原则一 S(Specific)——明确性  所谓明确就是要用具体的语言清楚地说明要达成的行为标准。明确的目标几乎是所有成功团队的一致特点。很多团队不成功的重要原因之一就因为目标定的模棱两可,或没有将目标有效的传达给相关成员。SMART原则二 M

深入理解Java集合框架

Java集合实现了常用数据结构,是开发中最常用的功能之一。Java集合主要的功能由三个接口:List、Set、Queue以及Collection组成。常见接口:List : 列表,顺序存储,可重复Set :集合,与数学中的集合有同样的特性:元素不能重复Queue:队列Collection:所有Java集合的接口,定义了“集合”的常用接口结构特征常用集合ArrayList 一种可以动态增长或缩减的索引集合,底层通过Ojbect[]数组实现,默认容量为10,在使用是如果确定仓储的数据容量应尽量为其初

Java内部类总结

介绍了四种内部类: 成员内部类、 静态内部类、 局部内部类、 匿名内部类,及它们的特点和使用。

【Java】Lambda表达式、函数式接口使用

Lambda是JDK8的新特性,Lambda让Java支持了函数式的编程,如JS那样可以在参数中使用函数(JS中函数是对象)。如何使用Lambda 示例在支持回调的方法中使用,典型的Runnable接口的run(),Comparator的compare()。 // 使用Lambda执行一个线程的run方法 new Thread(() -> { try { while (true) { System.out.pri

JVM内存区域

Java相交于C++具有内存自动管理功能,内存管理是个宽泛的概念,它即指实例化对象是的内存分配又指GC回收无用的类、对象、变量等。随着JVM不断发展,JVM内存区也在不断变化,这些变化在Java语言层面感知不到,因为字节码屏蔽了底层实现,了解JVM内存区域是深入学习Java的第一步,今天总结一下。JVM是《Java虚拟机规范》的实现《Java虚拟机规范》定义了Java字节码规范及实现Java的注意事项,而JVM是它的具体实现,它们是一对多的关系,很多公司(Sun、IBM、Redhat、甲骨文)都

【Apache POI】设置单元格字体、颜色、边框、对齐方式、Excel读取导入、解析工具类

这个工具类来源于我们项目的实践,简化了一些重复性的工作,欢迎尝试,欢迎提出问题。提供了设置单元格的基本背景颜色、字体、字号、字体颜色、边框等,还实现了导入导出、磁盘读写Excel。

将idea的Terminal改造为Git Bash

为了在每次使用Git时不打开GIt Bash窗口,可以对idea的Terminal进行改造,这样使用就方便许多了。不对idea Terminal改造也可以使用Git,但终端是Windows的CMD,对于一个习惯使用Linux总有些别扭。改造后idea的终端运行的是Git的Shell,可以使用Linux的常用命令,同时Git的操作输出也有色彩,开发体验直接起飞。

Controller中使用swagger注解的正确姿势

在使用swagger的时候有些注解没有正确使用会导致测试时不方便,导致测试时连数据都传入不到后端,或者swagger界面的接口显示了错误的输入组件,这些都是swagger的Comtroller注解使用的一些细节没有注意到,这篇文章主要针对这方面的注解进行总结,或许能解决使用swagger的一些小诟病。

【Spring】@Autowired、@Resource、@RequiredArgsConstructor 的使用、区别、最佳实践

Spring 的核心是Ioc容器和DI(Dependence Injection)思想,这些提供了 java 对象的管理以及他们之间依赖的管理。bean 的管理是Spring自动管理的,而我们只需要使用一些注解(Annotion)。常用的是 @Resource 和 @Autowired 以及 lambok 的构造器注入。使用@Resource 和 @Autowired 的使用相同,都是放在成员变量上的。lambok 的构造器注入需要使用 @RequireAl三者的区别经常遇到的问题最佳实践

什么是RSS

关于RSS,可能有很多人和我有一样的疑惑,见的很多却不知到它是什么,也不知道它的作用。我也属于好奇心比较强的人,经过一番搜索,解开了脑海中关于RSS的迷惑,觉得很有趣和实用。
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×