自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 一些面试题整理

那么为什么添加 synchronized 也能保证变量的可见性呢?因为:线程解锁前,必须把共享变量的最新值刷新到主内存中。线程加锁前,将清空工作内存中共享变量的值,从而使用共享变量时需要从主内存中重新读取最新的值。volatile 的可见性都是通过内存屏障(Memnory Barrier)来实现的。synchronized 靠操作系统内核互斥锁实现,相当于 JMM 中的 lock、unlock。退出代码块时刷新变量到主内存。...

2022-02-11 09:31:37 380 1

原创 一些stream流用法

一些stream流用法```java// An highlighted blockdepartmentMap = departmentList.stream().collect(Collectors.toMap(Department::getId, Function.identity(), (key1, key2) -> key2));tables=rset.stream().map(TableInfo::getTableName).collect(Collectors.toList()

2021-07-01 11:05:16 52

原创 2021-06-24

@Accessors(chain=true)链式访问,该注解设置chain=true,生成setter方法返回this(也就是返回的是对象),代替了默认的返回void。// An highlighted blockpackage com.pollyduan;import lombok.Data;import lombok.experimental.Accessors;@Data@Accessors(chain=true)public class User { private In

2021-06-24 19:10:32 55

原创 Timer的用法以及一些理论

TimeTask是以队列的方式一个一个被顺序执行的,所以执行的时间有可能和预期的时间不一致,因为前面的任务有可能消耗的时间较长,则后面的任务运行的时间也会被延迟。schedule(TimerTask task,Date firstTime,long period)该方法的作用是指在指定的日期后,按指定的间隔周期无限循环的执行某一任务。public class Run { static public class MyTask extends TimerTask { @Override publi

2021-05-13 15:58:51 103

原创 2021-05-13

方法boolean tryLock(long timeout,TimeUnit unit)的作用,如果锁给定等待时间内没有被另一个线程保持,且当前线程未中断,则获取该锁。public ReentrantLock lock = new ReentrantLock(); public void waitMethod() { try { if (lock.tryLock(3, TimeUnit.SECONDS)) { System.out.println(" " + Thread.

2021-05-13 13:38:24 43

原创 thread的一些api

Thread.activeCount():获取当前程序中存活的线程数public Thread[] findAllThread(){ ThreadGroup currentGroup =Thread.currentThread().getThreadGroup(); while (currentGroup.getParent()!=null){ // 返回此线程组的父线程组 currentGroup=currentGroup.getParent();

2021-05-12 10:17:40 43

原创 关于一些锁的结论

notify方法执行后锁不会自动释放,但是wait()会

2021-05-11 19:30:32 59

原创 2021-05-11

可用命令jps来查找当前运行的进程C:\Program Files (x86)\Java\jre6\bin>jps查询堆栈信息jstack -l 3032jstack -l 3032Java stack information for the threads listed above:==================================================="Thread-1": at test.DealThread.run(DealThr

2021-05-11 09:12:58 45

原创 读取配置文件属性工具类

// 读取配置文件工具类public Prop(File file, String encoding) { this.properties = null; if (file == null) { throw new IllegalArgumentException("File can not be null."); } else if (!file.isFile()) { throw new IllegalAr

2021-05-08 15:49:37 97

原创 java中“...“ 用法

java 中"…"是Java语言对方法参数支持一种新写法,叫可变长度参数列表,其语法就是类型后跟…,表示此处接受的参数为0到多个Object类型的对象,或者是一个Object[]。上测试代码// An highlighted blockpublic class Jctest2 { public static void main(String[] args) { // TODO Auto-generated method stub //测试可变长度的参数列表与数组

2021-05-08 11:06:04 1765

原创 生产常用命令

查看指定端口的进程:# netstat -anp | grep -w 8161tcp6 0 0 :::8161 :::* LISTEN 13012/java # ps -ef | grep 13012指定文件查看配置文件# cat /opt/mysql/etc/.account.cnf |grep mysql:mysql:R70uSjEM查看指定端口的连接情况

2021-05-08 10:36:03 41

原创 @ConditionalOnProperty的作用和用法

在spring boot中有时候需要控制配置类是否生效,可以使用@ConditionalOnProperty注解来控制@Configuration是否生效.@Configuration@ConditionalOnProperty(prefix = "filter",name = "loginFilter",havingValue = "true")public class FilterConfig { //prefix为配置文件中的前缀, //name为配置的名字 //havingValue是与

2021-05-08 10:32:15 121

原创 关于一些注解的含义

关于一些注解的含义1.标记在接口上,“函数式接口”是指仅仅只包含一个抽象方法的接口// An highlighted block@FunctionalInterface2.这其中提到了 @Deprecated 注解,在之前的开发过程中没遇到过这个注解,于是查了下他的功能:简单来讲就是,若某类或某方法加上该注解之后,表示此方法或类不再建议使用,调用时也会出现删除线,但并不代表不能用,只是说,不推荐使用,因为还有更好的方法可以调用。// An highlighted block@Deprecat

2021-05-08 09:29:13 87

原创 笔记(判空的用法)

笔记// An highlighted block判空新用法public static void validateQueueNameAndMessage(String queueName, Object message) {Assert.notNull(queueName, "queueName can not be null");Assert.notNull(message, "message can not be null");}//三目运算符:嵌套层数深,可读性不好 i

2021-05-08 09:21:28 52

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除