![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java基础
Jensen_smile
这个作者很懒,什么都没留下…
展开
-
集合(list、set、map)
原创 2018-12-27 20:01:40 · 118 阅读 · 0 评论 -
线程池学习笔记
阻塞队列/非阻塞队列我们知道栈是先进后出、后进先出的,而队列不同,队列是先进先出、后进后出的。那么什么是阻塞队列和非阻塞队列?入队:非阻塞队列:如果入队时列容器已满,则将入队的数据将丢弃。阻塞队列:如果入队时列容器已满,则将入队的数据将等待,如果一旦有数据出队,则阻塞的数据可以入队。出队:非阻塞队列:如果入队时列容器为空,此时取数据,数据为null阻塞队列:如果入队时列容器为空,...原创 2019-05-17 11:27:16 · 115 阅读 · 0 评论 -
线程资源同步---ReentrantLock加锁
还是那个3个窗口卖100张票的问题,这次我们使用ReentrantLock类来帮助我们解决问题。卖票程序:import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public class ticketSell implements Runnable { Lock ...原创 2019-05-15 09:58:01 · 209 阅读 · 0 评论 -
为什么CPU切换线程状态会耗费资源
第一:因为CPU运行状态分为用户态和内核态。线程切换状态会使CPU运行状态从用户态转换到内核态。第二:每个线程在运行时的指令是被放在CPU的寄存器中的,如果切换内存状态,需要先把本线程的代码和变量写入内存。这样经常切换会耗费时间。...原创 2019-05-14 20:27:13 · 2562 阅读 · 0 评论 -
java多线程研究: 锁的概念
悲观锁和乐观锁悲观锁:我们假设在多线程使用同一资源时会互相抢占资源,这种态度引起的措施叫悲观锁。悲观锁一般用synchronized或者Lock来加锁。乐观锁:在使用资源时认为其他资源不会抢占资源,这就是乐观锁,一般使用CAS算法处理。CAS算法全名:Compare And Swap(比较与交换)无锁算法:基于硬件原语实现,在不使用锁(没有线程被阻塞)的清况下实现多线程之间的变量同步。...原创 2019-05-14 20:01:37 · 410 阅读 · 0 评论 -
线程资源同步---synchronized加锁
多线程读取一个静态资源是不安全的模拟一个卖票程序,有100张票,3个窗口在卖。卖票程序:public class ticketSell implements Runnable { static int num = 100; @Override public void run() { while (num > 0) { Sy...原创 2019-05-14 17:31:35 · 411 阅读 · 0 评论 -
进程和线程
转自我的OneNote笔记原创 2019-01-25 12:30:58 · 99 阅读 · 0 评论 -
java接口的意义
在java中接口interface定义了使用此接口的类的规范,也就是一些变量和抽象方法。在写接口时不用写abstract,因为是默认加的。用接口和父类都可以实现多态,也就是用父类或者接口声明变量,接收一个子类或实现类的实例,使用这种方式,使的变量的类型保持不变的情况下,只要生成实例的类调用了此接口,都可以用此接口生成的变量接收它,调用接口中声明的类,或者强转成实现类来调用实例中非接口定义的类。...原创 2019-05-14 09:37:51 · 1913 阅读 · 0 评论 -
java线程中断机制
java为程序员提供的一种控制线程中断(结束)的手段,通过调用interrupt方法即可,注意它只是修改了中断一个状态为true而已,并没立马结束线程。源码: public void interrupt() { if (this != Thread.currentThread()) { checkAccess(); // ...原创 2019-05-13 17:51:17 · 113 阅读 · 0 评论 -
String、StringBuffer与StringBuilder之间区别
1.三者在执行速度方面的比较:StringBuilder > StringBuffer > String为什么String执行速度小于StringBuffer和StringBuilder?首先,String是字符串常量,StringBuffer和StringBuilder是字符串变量。虽然下面的代码也可以执行。String s = "abcd";s = s+1;Sys...原创 2019-04-02 23:00:03 · 63 阅读 · 0 评论 -
java中equals和==的区别
1.==可以比较对象和属性,equals只用来比较对象,因为Object自带equals方法2.== 如果用来比较对象,则是判断两个对象的地址是否相同,即是否是指相同一个对象。但是Integer在-128-127之间是的值是保存在常量池中的,因此用这之间的任意一个数声明两个Integer对象用==都是true。如果用来比较属性,则只看属性值是否相同。3.equals用来比较对象也看对象是同一个...原创 2019-04-01 13:42:42 · 79 阅读 · 0 评论 -
java反射技术
什么是 Reflection 反射,为什么要用它Java 强类型语言,但是我们在运行时有了解、修改信息的需求,包括类信息、成员信息以及数组信息。反射的入口:java.lang.Class对每一种对象,JVM 都会实例化一个 java.lang.Class 的实例,java.lang.Class 为我们提供了在运行时访问对象的属性和类型信息的能力。Class 还提供了创建新的类和对象的...原创 2019-03-27 19:09:24 · 79 阅读 · 0 评论 -
java基础笔记(更新中)
1Java定义一个全局变量,如果没有附初始值,那么八种数据类型会有默认初值,其中:类型初始值整数类0小数类0.0string类nullchar类\u0000boolean类false所有引用类型null局部变量无初值2类型位数Byte1char2Short2f原创 2019-02-18 14:27:40 · 139 阅读 · 0 评论 -
java程序堆溢出
java程序在运行时,有可能报一种堆内存溢出异常:OutOfMemoryError:java heap space此时我们可以通过调整虚拟机最大堆内存帮助改善这种人问题:将以下参数添加到运行时虚拟机参数列表:-Xmx4096M也可以通过添加虚拟机运行参数得到堆内存快照,然后使用快照分析工具分析是哪一部分出了问题。-XX:+HeapDumpOnOutOfMemoryError该配置会...原创 2019-06-25 16:05:16 · 260 阅读 · 0 评论