
Java基础
只有魔法才能对抗魔法
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
double类型的两个数不能直接用==比较大小
因为double是有精度的,是近似的;Java里可以用大数封装比较或者可以 a-b>0 这种形式比较原创 2020-03-14 16:20:36 · 2361 阅读 · 0 评论 -
Java基础_equals 和 “==”
对于基础数据类型:“==” 就是比较具体值的大小;而对于引用型数据类型:“==”比较的是两对象的引用地址。且引用型数据类型总是需要重写equals方法,导致equals()比较的就是对象的内容。(String已重写好,即比较的是内容大小),当然如果没有重写,则默认继承Object,比较的是地址,...原创 2020-02-24 14:32:52 · 112 阅读 · 0 评论 -
Java_多线程之Semaphore
转载自大佬https://www.cnblogs.com/klbc/p/9500947.html总结了一下:Semaphore实现为一种基于计数的信号量,Semaphore管理着一组虚拟的许可集合,这种许可可以作为某种凭证,来管理资源,以及线程池的最大并发线程。Semaphore 是 synchronized 的加强版,作用是控制线程的并发数量。具体方法及解释大佬博客都有。这里贴上...转载 2020-02-22 15:12:50 · 162 阅读 · 0 评论 -
Java_多线程之shutdownNow()的小问题
关于shutdown和shutdownNow区别在这https://blog.youkuaiyun.com/lq_91/article/details/81294767这里只是说一下shutdownNow()的问题;调用 Executor 的 shutdown() 方法会等待线程都执行完毕之后再关闭,但是如果调用的是 shutdownNow() 方法,则相当于调用每个线程的 interrupt() 方...原创 2020-02-21 19:59:31 · 566 阅读 · 0 评论 -
Java_多线程之interrupt()
转载大佬的https://www.cnblogs.com/skywang12345/p/3479949.html、特别好。自己的一点理解:最终作用是中断线程。Thread.interrupt(),设置当前中断标记为true Thread.isInterrupted(),检测当前的中断标记 Thread.interrupted(),检测当前的中断标记,然后重置中断标记为fa...转载 2020-02-20 21:56:57 · 303 阅读 · 0 评论 -
Java_可重入锁介绍以及原理
转载https://blog.youkuaiyun.com/mulinsen77/article/details/88632409?utm_source=distribute.pc_relevant.none-task转载 2020-02-20 20:26:12 · 296 阅读 · 0 评论 -
Java_多线程之生产者消费者
等待唤醒机制的应用;一次生产一次消费一,前置知识在线程通信中,对于synchronized的锁对象来说,每个锁对象都有一个线程池;其次对于传统的线程通信手段就是:wait()方法:导致当前线程等待,该线程进入线程池知道notify()和notifyAll()唤醒,且等待后当前线程会释放锁对象;notify()方法:唤醒此锁对象上等待的线程,即从该线程池唤醒且是任意唤醒一个等待线程,...原创 2020-02-20 15:37:50 · 134 阅读 · 0 评论 -
Java_synchronized的锁对象之对象锁和类锁
具体知识学习与https://blog.youkuaiyun.com/yansuoo/article/details/51248281https://www.jianshu.com/p/6586d9f3b515下面是自己的理解+代码:一.前置知识: java的对象锁和类锁:java的对象锁和类锁在锁的概念上基本上和内置锁是一致的,但是,两个锁实际是有很大的区别的,对象锁是用于对...原创 2020-02-19 00:23:25 · 601 阅读 · 0 评论 -
Java_对线程安全的解释
线程安全问题前提:多个线程在操作共享数据; 操作共享数据的线程代码有多条;比如说:public Ticket implements Runnable{ private int count = 0;//共享数据 public void run() { count ++; System.out.println(count); }}当...原创 2020-02-15 15:31:23 · 130 阅读 · 0 评论 -
Java_多线程的两种实现方式对各种变量的共享
一.前置知识:静态变量:静态变量即类变量,位于方法区,为所有该类下的对象共享,共享一份内存,一旦静态变量被修改,其他对象均对修改可见,故线程非安全。 实例变量:单例模式(只有一个对象实例存在)线程非安全,非单例线程安全。 实例变量为对象实例私有,在虚拟机的堆中分配,若在系统中只存在一个此对象的实例,在多线程环境下,“犹如”静态变量那样,被某个线程修改后,其他线程对修改均可见,故线...原创 2020-02-14 23:00:06 · 445 阅读 · 0 评论 -
Java堆栈
转载自https://baijiahao.baidu.com/s?id=1631954351623041461&wfr=spider&for=pc先用一张图展示一下Java堆栈的概况堆方法区:class文件信息,运行时常量池,以及编译器编译后的代码堆:存储对象,对象包含类的信息,指向方法区栈虚拟机栈:表示Java方法执行的内存模型,每调用一个方法就会为每个方...转载 2020-02-14 18:31:41 · 167 阅读 · 0 评论 -
java泛型常见问题
转载自https://www.cnblogs.com/lixuwu/p/10829368.html背景:泛型这个知识点平时用的不多,但是在面试的时候很容就被问到,所以还是要准备一些基础的知识储备。面试旧敌之 Java 泛型 :主要概念及特点“泛型” 意味着编写的代码可以被不同类型的对象所重用。泛型是在JDK1.5之后出现的。泛型的本质是参数化类型,也就是说所操作的数据类型被指定...转载 2020-02-14 15:42:29 · 275 阅读 · 0 评论 -
TreeSet/TreeMap的排序规则与涉及泛型约数的解释
首先TreeSet底层构造器实际是TreeMap(有key.value为null);TreeMap的底层是红黑树(二叉树);这里并没有分析底层,只是说明我的一些问题。一.前置技能 排序分为自然排序和定制排序。自然排序(按元素值大小)需该对象所属类实现comparable<T>接口,定制排序自定义比较器实现comparator<T>接口。 TreeSet/...原创 2020-02-14 15:16:17 · 231 阅读 · 0 评论