自定义博客皮肤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 432 1

原创 一些stream流用法

一些stream流用法 ```java // An highlighted block departmentMap = 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 92

原创 2021-06-24

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

2021-06-24 19:10:32 93

原创 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 144

原创 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 75

原创 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 88

原创 关于一些锁的结论

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

2021-05-11 19:30:32 94

原创 2021-05-11

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

2021-05-11 09:12:58 71

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

// 读取配置文件工具类 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 147

原创 java中“...“ 用法

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

2021-05-08 11:06:04 2060

原创 生产常用命令

查看指定端口的进程: # netstat -anp | grep -w 8161 tcp6 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 74

原创 @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 168

原创 关于一些注解的含义

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

2021-05-08 09:29:13 133

原创 笔记(判空的用法)

笔记 // 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 88

空空如也

空空如也

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

TA关注的人

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