自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 解决多消费者生产者的问题(两个方法)

利用同步代码块修饰public class Desk {private Integer count = 0; //定义线程是第几次运行private Boolean flag = false;//设置线程的一个状态 用来判断该调用哪个线程了//因为该方法用了synchronized修饰 所以不会出现线程安全问题 又叫同步方法public synchronized void makeFood() { // wait notifyAll 必须在同步代码块中synchronized .

2021-04-06 21:22:49 156

原创 生产者消费者问题

单线程模式注:生产者消费者模式之所有能够保持两个线程之间的通信 是因为有一个共享的内存(该案例中共享内存Desk类)生产者类 public class pruducer implements Runnable {private Desk desk;public pruducer(Desk desk) { this.desk = desk;}@Overridepublic void run() { while (true) { synchronized (de.

2021-04-06 21:10:25 74

原创 关于hashCode为什么要重写的问题以及在哈希表中运行的流程

Object类中的方法:@HotSpotIntrinsicCandidatepublic native int hashCode(); native修饰,实现这个方法的逻辑并不是通过Java代码.哈希值:通过hashCode方法可以计算出一串数字,数字被称为是调用者的哈希值.方法是在Object类中定义的,任何子类对象都可以调用这个方法,因为所有类都继承了Object类.如果子类没有重写hashCode方法,那么默认调用的就是Object类的hashCode方法 -> 根据对象的地址值计算出

2021-04-02 17:25:26 139

转载 为什么重写equals()就一定要重写hashCode()方法?

以下为本文目录:首先我们分别解释equals()方法和hashCode()方法分别是用来做什么的?我们再来看equals()方法和hashCode()方法两者有什么关系?最后来看为什么重写equals()就一定要重写hashCode()方法?1、首先我们分别解释equals()方法和hashCode()方法分别是用来做什么的?equals()方法:很明显,该方法就是用来判断两个对象是否是同一个对象。在Object类源码(如下所示)中,其底层是使用了“==”来实现,也就是说通过比较两个对象的内存地

2021-04-02 17:05:21 177

原创 idea小妙招

BigDecimal的用法运算//封装2个BigDecimal对象用于运算.BigDecimal biOne = new BigDecimal(“0.2”);BigDecimal biTwo = new BigDecimal(“0.1”);//相加 必须试同一个类型才能相加System.out.println(biOne.add(biTwo));//相减System.out.println(biOne.subtract(biTwo));//相乘System.out.println(biO

2021-04-02 11:44:16 67

原创 for循环遍历使用 remove索引下标的问题

for循环遍历使用 remove索引下标的问题 ArrayList<String> bookList =new ArrayList<>(); bookList.add("Java入门到入土"); bookList.add("MySQL从删库到跑路"); bookList.add("JavaEE进阶"); bookList.add("计算机网络:由上而下的组成"); bookList.add("小绅绅的私密笔记本:纯情的男孩");

2021-04-02 11:43:16 263

原创 BigDecimal的用法

BigDecimal的用法 封装2个BigDecimal对象用于运算. BigDecimal biOne = new BigDecimal("0.2"); BigDecimal biTwo = new BigDecimal("0.1"); //相加 必须试同一个类型才能相加 System.out.println(biOne.add(biTwo)); //相减 System.out.println(biOne.subtract(biTwo));

2021-04-02 11:42:10 62

原创 冒泡 二分查找 排序的问题

冒泡 二分查找 排序的问题 public static void main(String[] args) { int [] arr ={4,3,7,1,6}; //冒泡 for (int i = 0; i < arr.length-1; i++) { //因为下面有 i+1(跟下一个元素作对比)需要减一 不然会出现数组下标越界 boolean flag = true; for (int j = 0; j < arr.lengt

2021-04-02 11:41:05 44

空空如也

空空如也

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

TA关注的人

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