java基础知识
dragon@oo
糟糕的坚持也好过放弃
展开
-
java8 lambda-list转map、过滤、求和、分组等
java8中开始引入了lambda表达式,该表达式大大简化了代码量,使用lambda处理list列表很方便,下面介绍一些常用的使用方式数据对象:import java.io.Serializable;import java.math.BigDecimal;import java.util.Objects;import lombok.AllArgsConstructor;impor...原创 2019-08-21 16:05:06 · 7413 阅读 · 0 评论 -
fastjson对象的序列化与反序列化踩得坑
现象最近使用RabbitMq发送消息时,遇到了提供者发送的消息(使用fastjson序列化数据对象)在消费者端转成(使用fastjson反序列化)数据对象后,属性缺失了发送的消息对象:/** * 课本 **/@Datapublic class Book implements Serializable { private static final long seria...原创 2019-07-25 17:19:28 · 4948 阅读 · 2 评论 -
HashMap和HashSet踩过的坑你知道多少
HashMap 是我们最常用的数据结构,那么使用起来有哪些注意事项呢(或者是那些坑呢),今天咱们就简单聊一下,如果想要了解HashMap源码,请阅读HashMap这篇文章一、HashMap自定义key对象必须要重写 hashCode 和 equals 方法hashCode 方法下面来看一个例子:上述例子说明了一个问题,两个自定义的key p1 和 p2 虽然 id 值一样...原创 2019-07-17 18:05:44 · 968 阅读 · 0 评论 -
同步栈Stack示例demo
背景多线程中的生产者和消费者我们经常会使用到,而嫁接生产者和消费者之前的桥梁可以是队列也可以是栈,我们今天就使用栈来手写一个栈demo栈特点:FILO(先进后出)示例demo同步栈:/** * 同步栈 **/public class SynchronizedStack<T> { private static final int DEFAULT_SIZ...原创 2019-07-17 11:37:56 · 354 阅读 · 0 评论 -
同步循环队列Queue示例demo
背景多线程中的生产者和消费者我们经常会使用到,而嫁接生产者和消费者之前的桥梁可以是队列也可以是栈,我们今天就使用循环队列来手写一个同步循环队列demo循环队列特点:FIFO(先进先出)示例demo同步循环队列:/** * 同步队列 **/public class SynchronizedQueue<T> { private static final ...原创 2019-07-17 10:41:28 · 276 阅读 · 0 评论 -
浅谈sleep、wait、yield、join区别
sleepsleep 方法是属于Thread 类中的,sleep 过程中线程不会释放锁,只会阻塞线程,让出cpu给其他线程,但是他的监控状态依然保持着,当指定的时间到了又会自动恢复运行状态,可中断,sleep 给其他线程运行机会时不考虑线程的优先级,因此会给低优先级的线程以运行的机会示例代码:/** * 线程sleep测试 * * @author supu * @date ...原创 2019-07-01 11:12:00 · 22032 阅读 · 14 评论 -
面向对象的设计原则
一、开闭原则含义:对扩展开放,对修改关闭。也就是我们写完的代码,不能因为需求变化就修改,我们可以通过新增代码来解决变化的需求开闭原则是设计模式的第一大原则,它的潜台词是:控制需求变动风险,缩小维护成本。以下 原则都是为此原则服务的二、里氏替换原则含义:子类可以在任何地方替换它的父类,不改变声明类型的情况下,改变实例化类来完成需求变更潜台词:尽量使用精准的抽象类或者接口...原创 2019-06-19 17:48:49 · 121 阅读 · 0 评论 -
Serializable序列化
Serializable关键字对象的序列化可以通过实现两种接口来实现,若实现的是Serializable接口,则所有的序列化将会自动进行,若实现的是Externalizable接口,则没有任何东西可以自动序列化,需要在writeExternal方法中进行手工指定所要序列化的变量,这与是否被transient修饰无关。java 类实现序列化接口 Serializable 的时候,如果不指...原创 2019-06-19 17:46:32 · 259 阅读 · 0 评论