
java
文章平均质量分 84
木木大人啊
这个作者很懒,什么都没留下…
展开
-
JAVA线程的中断
每个线程都有一个boolean类型的标志来表明线程是否发生了中断,并且包含了中断相关的函数:interrupt()用于设置线程的中断状态为true,isInterrupted()用于返回线程的中断状态,interrupted()方法用于清除中断状态,并返回之前的中断状态。 当线程在调用sleep()或者wait()时,对中断的表现为抛出InterruptedException异常并清除中断状态,所...原创 2019-11-10 23:09:35 · 288 阅读 · 0 评论 -
JAVA的Synchronizer
一、闭锁: 可以延迟某一组或一个线程的执行到另一组或另一个线程运行至某一特定点,例如一个服务需要等待它所依赖的服务都已经开始、一个用于计算的线程需要等待另外几项资源准备完毕。CountDownLatch是实现类之一,在CountDownLatch类中,countDown方法用于将计数器减一,await方法则会在调用位置阻塞到计数器为0或者被Interrupt。 import java.util.c...原创 2019-11-06 23:48:50 · 269 阅读 · 0 评论 -
JAVA同步容器和并发容器
一、同步容器: 包括Vector、HashTable,以及Collections.synchronizedXXX方法包装过的容器类,同步容器对其类中的每一个对外的方法都使用synchronized关键字进行修饰,以此来保证同步,以Hashtable为栗子: 虽然保证了线程安全,但这样每次只有一个线程访问容器,所以在并发的情况下性能上会削弱许多,仍需要在方法中加锁。并且迭代时如果数据发生变动仍然会...原创 2019-11-02 21:59:33 · 224 阅读 · 0 评论 -
Java的各种锁
1.悲观锁:是一种设计思想,并不是指具体实现出来的锁,永远都假设最坏的情况:每次对数据时操作时都会有另一线程前来修改当前数据,所以每次对数据进行操作时都会上锁,这时如果有其他线程对当前数据进行修改,只能等待或阻塞直到锁解开,例如Synchronized、ReentrantLock,按照实现方式这两个也可以叫做阻塞锁。 2.乐观锁:是一种设计思想,并不是指具体实现出来的锁,每次操作数据时都认为不会有...原创 2019-07-31 08:09:51 · 140 阅读 · 0 评论 -
Spring Cloud Ribbon无法将服务名转换为地址
试了许多网上说的,都不管用,后来发现是spring-cloud-starter-eureka依赖项的版本问题,将版本降低后正常运行。原创 2019-07-16 22:29:22 · 500 阅读 · 0 评论 -
Spring Cloud环境搭建
1.首先在https://start.spring.io/填写artifactId和groupId等相关信息,填写完后下载zip包,解压后用导入到Eclipse,当然也可以在eclipse中自己新建一个maven项目,将以下的pom.xml复制一下。此时pom.xml如下: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xs...原创 2019-07-16 17:27:56 · 187 阅读 · 0 评论 -
JVM回收算法
堆保存年轻代和年老代。 年轻代:年轻代又分为三个区,一个Eden区,两个Survivor区(也可以称为From和To区),默认大小比例为8:1。 回收算法: 1.起始状态下,年轻代为空,此时new出新对象实例后,放在Eden区(如果是大对象,直接放在年老区),此时From和To区为空。 2.程序继续运行,new出来的对象越来越多,当Eden区无法装下新的对象后,触发Minor GC(即对年轻代进行...原创 2019-06-29 00:09:45 · 406 阅读 · 0 评论 -
java引用ScriptEngine解析表达式实现计算器功能
包名:import javax.script.*; 使用: String str="2+6%7"; ScriptEngine se=new ScriptEngineManager().getEngineByName("JavaScript"); try{ double d=(Double)se.eval(str); double d=(D...原创 2017-11-06 13:13:05 · 845 阅读 · 0 评论 -
JVM内存划分
1.程序计数器:每一个线程都有自己的一个程序计数器,创建线程时被一起创建,用于记录当前字节码执行位置,例如一个线程在执行过程中被挂起,一定时间片后,又继续执行,此时需要进行现场恢复,那么就可以在对应的程序记录器中找到被挂起时的执行地址。 2.方法区:用于保存:类结构信息、方法,JDK8之前,运行时常量池、静态变量、持久代也保存在这里,JDK8之后,运行时常量池和静态变量放在堆中,持久代移除。 常量...原创 2019-06-25 23:13:02 · 140 阅读 · 0 评论