自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

天道酬勤

不忘初心,方得始终

原创 java如何抛出异常

1.什么时候抛出异常? 如果你觉得某些”问题”解决不了了,那么你就可以抛出异常了。比如,你在写一个service,其中在写到某段代码处,你发现可能会产生问题,那么就请抛出异常吧,相信我,你此时抛出异常将是一个最佳时机 2.抛出怎么样的异常? 异常的抛出不仅仅是throw掉或者catch掉,...

2019-02-27 21:12:22

阅读数 485

评论数 0

原创 线程中的wait()和Sleep()方法

/** * 线程间通信----也就是当达成某种条件的时候就开始二者之间调用, * 但是调用的话他们之间的关系是什么呢? * wait方法---线程挂起 * notify方法--线程唤醒 * sleep方法---线程休眠(相当于一个定时任务) */ public class Thre...

2019-02-27 18:02:29

阅读数 30

评论数 0

原创 Java中的CAS操作(乐观锁和悲观锁的解释)

第一: 独占锁是一种悲观锁,synchronized就是一种独占锁,会导致其它所有需要锁的线程挂起,等待持有锁的线程释放锁。而另一个更加有效的锁就是乐观锁。所谓乐观锁就是,每次不加锁而是假设没有冲突而去完成某项操作,如果因为冲突失败就重试,直到成功为止。乐观锁用到的机制就是CAS,Compare...

2019-02-27 17:33:05

阅读数 81

评论数 0

原创 java链表

public static void main(String[] args) { Node root = new Node("火车头"); Node n1 = new Node("车厢A");...

2019-02-27 17:27:40

阅读数 13

评论数 0

原创 HashMap数据结构的理解(同时为什么会有HashCode())

HashMap底层是数组加链表的组合体,那链表是怎么来的呢?数组又是怎么来的呢?   首先HashMap的底层是一个数组结构,而数组中的每一项又是一个链表.  与其说是数组结构,不如说是容纳key的一个数组; 比如put()方法来说: 首先根据key的hashCode重新计算Hash值,根...

2019-02-27 16:04:39

阅读数 36

评论数 0

原创 HashSet为什么确保了元素的唯一性

其实这个问题可以通过源码就是可以看到的, 首先看HashSet的add方法, public boolean add(E e) { return map.put(e, PRESENT)==null; } 调用add方法,内部调用的是HashMap,所以说:HashSet的底层是通过h...

2019-02-27 15:39:24

阅读数 41

评论数 0

原创 jdk1.8操作的api

实际项目当中根据需要进行选择 public class Jdk8Main { public static void main(String[] args) { List<Person> list = Lists.newArray...

2019-02-27 15:25:23

阅读数 40

评论数 0

原创 集合排序和比较

HashMap<String, String> map = Maps.newHashMap(); map.put("action", "action"); map.put(&...

2019-02-27 14:50:49

阅读数 21

评论数 0

原创 java生成签名---微信签名

1.生成签名的几个步骤:    1.对传入的参数进行排序(字典排序)    2.拼接成url中:key=value的格式    3.签名钥匙key=?商户key    4.对上面的四个进行md5加密 具体的详细见面的博客 https://blog.csdn.net/xb12369/ar...

2019-02-27 11:35:38

阅读数 520

评论数 0

原创 Java中的CAS操作

在JDK 5之前Java语言是靠synchronized关键字保证同步的,这会导致有锁 锁机制存在以下问题: (1)在多线程竞争下,加锁、释放锁会导致比较多的上下文切换和调度延时,引起性能问题。 (2)一个线程持有锁会导致其它所有需要此锁的线程挂起。 (3)如果一个优先级高的线程等待一个优先...

2019-02-26 17:19:32

阅读数 39

评论数 0

原创 HashTable和ConcurrentHashMap

我们经常说他们是线程安全的,效率之间的比较问题,那么他们究竟是什么呢?    1.他们都是线程安全的.     因为每一个put和get方法都有synchronized方法,从而是线程安全的. 2.效率问题:      这个与内部的实现机制有关系:      1.HashTable的每一...

2019-02-26 17:15:15

阅读数 27

评论数 0

原创 Java8处理List的双层循环

Java处理List的双层循环程序员经常遇到,一般都是当两个List某个值满足某条件时候,进行相应的处理; 1.list和map之间的相互转换; /** * 两个List对象当id相同的时候(注意是两个对象,而非两个集合) * @param husbands * @param wive...

2019-02-26 17:04:36

阅读数 1836

评论数 0

原创 Lambda 表达式有何用处?如何使用?(对多个if--else条件的判断)

Lambda 表达式有何用处?如何使用? 从知乎上获取的一篇文章值得一看 https://www.zhihu.com/question/20125256/answer/324121308

2019-02-26 16:40:16

阅读数 1882

评论数 0

原创 git常用命令

1.git add . 2.git commit -m "提交信息" 3.git push 4.git stash    -------------->本地代码加入到缓存区,(本地改变了代码,从远程拉取代码时,用这个命令解决错误) ...

2019-02-25 18:44:45

阅读数 20

评论数 0

原创 Git 从 master 分支拉新分支开发

一、 切换到被copy的分支(master),并且从远端拉取最新版本 $git checkout master $git pull 二、从当前分支拉copy开发分支 $git checkout -b dev Switched to a new branch 'dev' 三、 把新建的分支p...

2019-02-25 18:40:53

阅读数 281

评论数 0

原创 关于ThreadLocal的使用场景

直接上代码:   package com.weigu.zjp.ThreadLocal; public class BaseSignatureRequest { private String device; public String getDevice() { ...

2019-02-24 22:00:12

阅读数 183

评论数 0

原创 定时任务实现方式5-@Schedule

注意三个东西:    1.启动类上加:     @EnableSchedule    2:方法上:       1.方法没有返回值      2.方法上加注解:                 @Component                  @ @Cron表达式的加入...

2019-02-24 21:42:09

阅读数 51

评论数 0

原创 定时任务实现方式4-Quartz

需要对Quartz的几个名词要清楚代表什么意思 @Configuration public class QuartzConfig { @Bean public JobDetail quartzDetail(){ return JobBuilder.newJob(QuartzTest...

2019-02-24 21:38:36

阅读数 16

评论数 0

原创 定时任务实现方式3-ScheduledExecutorService

package com.weigu.zjp.schedule; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; /** * ScheduledExecutorService,是基于线...

2019-02-24 21:36:56

阅读数 22

评论数 0

原创 定时任务实现方式2-Thread

package com.weigu.zjp.schedule; /** * 用线程可以设定休眠时间的方式可以实现简单的定时任务逻辑。 */ public class Threads { public static void main(String[] args) { ...

2019-02-24 21:36:21

阅读数 40

评论数 0

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