synchronized

根据获取的锁的分类:获取对象锁和获取类锁 获取对象锁的两种用法 1、同步代码块(synchronized(this),synchronized(类实例对象)),锁是小括号()中的实例对象。 2、同步非静态方法(synchronized method),锁是当前对象的实例对象。 ...

2019-08-20 11:44:00

阅读数 6

评论数 0

如何实现处理线程的返回值

1、主线程等待法 实现起来比较简单,缺点是需要自己实现循环等待的逻辑,当需要等待的变量一多,代码便会显得异常的臃肿,无法做到精准的控制。 public class MyRunnable implements Runnable { private String name; ...

2019-08-20 10:04:10

阅读数 2

评论数 0

Java中的强引用、软引用、弱引用虚引用

强引用 > 软引用 > 弱引用 > 虚引用 1、强引用(Strong Reference) 最普遍的引用:Object obj = new Object() 当内存空间不足时,抛出OutOfMemoryError终止程序也不会回收强...

2019-08-19 19:16:27

阅读数 3

评论数 0

Object的finalize()方法的作用

Object的finalize()方法的作用 与C++的析构函数不同,析构函数调用确定,而它不确定的; 将未被引用的对象放置于F-Queue队列,并在稍后由虚拟机建立的低优先finalize线程去执行finalize()方法; 方法执行随时可能会被终止(优先级低) ...

2019-08-19 18:55:18

阅读数 5

评论数 0

常见的垃圾收集器

常见的垃圾收集器 1、Serial收集器(-XX:+UseSerialGC,复制算法) 单线程收集,进行垃圾收集时,必须暂停所有工作线程 简单高效,Client模式下默认的年轻代收集器 2、ParNew收集器(-XX:+UseParNewGC,复制算法) 多线程收集,...

2019-08-19 18:35:15

阅读数 9

评论数 0

Stop-the-World和Safepoint

Stop-the-World JVM由于要执行GC而停止了应用程序的执行; 任何一种GC算法中都会发生,除了GC所在线程以外,所有线程都处于等待状态,直 到GC任务完成; 多数GC优化通过减少Stop-the-World发生的时间来提升程序性能,从而使系统具有 高吞吐、低停...

2019-08-19 18:10:02

阅读数 4

评论数 0

垃圾回收算法

垃圾回收算法:标记-清除算法(Mark and Sweep)、复制算法(Copying)、标记-整理算法(Compacting)、分代收集算法(Generational Collector) 1、标记-清除算法(Mark and Sweep) 标记-清除算法(Mark and Swe...

2019-08-19 17:36:21

阅读数 6

评论数 0

GC垃圾标记算法

GC垃圾回收算法-引用计数算法和可达性分析算法 1、引用计数算法 判断对象的引用数量 通过判断对象的引用数量来决定对象是否可以被回收; 每个对象实例都有一个引用计数器,被引用则+1,完成引用则-1; 任何引用计数为0的对象实例可以被当作垃圾收集。 优点:执行...

2019-08-19 16:04:23

阅读数 4

评论数 0

MetaSpace相比PermGen的优势

jdk1.8之后,jvm移除了永久代,使用元空间。 MetaSpace相比PermGen的优势 字符串常量池存在永久代中,容易出现性能问题和内存溢出。 类和方法的信息大小难以确定,给永久代的大小指定带来困难。 永久代会为GC带来不...

2019-08-19 15:37:12

阅读数 11

评论数 0

不同JDK版本之间的intern()方法的区别-JDK6 VS JDK6+

今天看到一篇讲解不同版本intern()方法区别,截了一下图,分享一下。

2019-08-18 20:45:42

阅读数 4

评论数 0

元空间、堆、线程在内存中的联系

下面分析一下元空间、堆、线程在内存中的联系 以下面代码为例 public class HelloWorld { private String name; public void sayHello() { System.out.println(name); } ...

2019-08-18 20:41:04

阅读数 39

评论数 0

Java内存模型中堆和栈的区别

Java内存模型中堆和栈的区别 管理方式:栈自动释放,堆需要GC 空间大小:栈比堆小 碎片相关:栈产生的碎片远小于堆 分配方式:栈支持静态和动态分配,而堆仅支持动态分配 效率:栈的效率比堆高 ...

2019-08-18 20:30:12

阅读数 4

评论数 0

JVM三大性能调优参数

JVM三大性能调优参数 -Xms -Xmx -Xss的含义 java -Xms128m -Xmx128m -Xss256k -jar xxx.jar -Xss: 规定了每个线程虚拟机栈(堆栈)的大小,通常256k就足够了,此配置会影响此进程中并发线程数大小 -Xms...

2019-08-18 20:23:22

阅读数 4

评论数 0

我对Java语言的理解

去年七月初通过校招进入了现在的公司,转眼已经过去一年多了,经过一年多的实战开发,重新整理一下自己对java的理解,希望能对正在面试以及即将入职工作的blogger有所帮助。 1、平台无关性 Java源码首先被编译成字节码,再由不同的平台的JVM(Java Virtual Machi...

2019-08-18 16:58:40

阅读数 36

评论数 0

简单总结 Reactive Programming

Reactive Programming 作为观察者模式(Observer)的延伸,不同于传统的命 令编程方式(Imperative Programming)同步拉取数据的方式,如迭代器 (Iterator)。而是采用数据发布者同步或异步推送到数据流(Data Streams)的方 案。当该数据流...

2019-08-16 15:13:13

阅读数 11

评论数 0

IDEA实现序列化接口Serializable自动生成serialVersionUID

在Java中如果我们生成的对象要在网络中传输,就要序列化,实现接口: java.io.Serializable IDEA实现序列化接口Serializable自动生成serialVersionUID ...

2019-08-15 15:43:02

阅读数 9

评论数 0

The Reactive Manistro

响应式系统,感兴趣的可以了解一下 原文:https://www.reactivemanifesto.org/

2019-08-15 13:56:16

阅读数 9

评论数 0

@Async使用注意事项

使用注意事项: 启动类上添加注解@EnableAsync,用于开启异步; 方法上加@Async注解 ;   使用了@Async的方法,会被当成是一个子线程,所有整个@Async的方法,会在主线程执行完了之后执行; 同一个类中,一个方法调用另外一个有@Async的方...

2019-08-14 16:37:55

阅读数 6

评论数 0

spring web mvc rest 处理流程

2019-08-13 14:19:59

阅读数 11

评论数 0

如何发一条空白的朋友圈或者app昵称名

微信发送空白朋友圈以及昵称空白的原理是零宽字符,又或者叫零宽连字符 零宽空格(zero-width space, ZWSP)是一种不可打印的Unicode字符,用于可能需要换行处。 零宽连字符(zero-widthjoiner,ZWJ)是一个不打印字符,放在某些需要复杂排版...

2019-08-08 10:50:58

阅读数 39

评论数 0

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