02 2020 档案

摘要:线程的五种状态 线程从创建到销毁一般分为五种状态,如下图: 1) 新建 当用new关键字创建一个线程时,就是新建状态。 2) 就绪 调用了 start 方法之后,线程就进入了就绪阶段。此时,线程不会立即执行run方法,需要等待获取CPU资源。 3) 运行 当线程获得CPU时间片后,就会进入运行状态, 阅读全文
posted @ 2020-02-29 22:39 烟雨星空 阅读(902) 评论(0) 推荐(0) 编辑
摘要:前言 在我们平时自己写线程的测试demo时,一般都是用new Thread的方式来创建线程。但是,我们知道创建线程对象,就会在内存中开辟空间,而线程中的任务执行完毕之后,就会销毁。 单个线程的话还好,如果线程的并发数量上来之后,就会频繁的创建和销毁对象。这样,势必会消耗大量的系统资源,进而影响执行效 阅读全文
posted @ 2020-02-27 23:15 烟雨星空 阅读(745) 评论(0) 推荐(1) 编辑
摘要:做Java开发的,现在普遍都用上idea了。可以说,idea是当之无愧的Java开发神器。如果,你现在还没用idea,那肯定是你还没有感受过它的强大。 好了,话不多说,今天的主题主要是教大家怎么通过idea快速的查看一个类的类图关系,即一个类继承了哪些类,实现了哪些接口,以及接口有哪些子接口和实现类 阅读全文
posted @ 2020-02-26 11:10 烟雨星空 阅读(5898) 评论(0) 推荐(4) 编辑
摘要:不知道你是否遇到过面试官让你手写生产者消费者代码。别说,前段时间有小伙伴还真的遇到了这种情况。当时是一脸懵逼。 但是,俗话说,从哪里跌倒就要从哪里爬起来。既然这次被问到了,那就回去好好研究一下,争取下一次不再被虐呗。 于是,今天我决定手敲一个生产者消费者模式压压惊。(因为我也不想以后被面试官血虐啊) 阅读全文
posted @ 2020-02-25 23:18 烟雨星空 阅读(2784) 评论(3) 推荐(5) 编辑
摘要:我们知道多线程可以实现同时执行多个任务(只是看起来是同时,其实是CPU的时间片切换特别快我们没感觉而已)。 现在假设一个做饭的场景,你没有厨具也没有食材。你可以去网上买一个厨具,但是这段时间,你不需要闲着啊,可以同时去超市买食材。 设想这是两个线程,主线程去买食材,然后开启一个子线程去买厨具。但是, 阅读全文
posted @ 2020-02-23 21:15 烟雨星空 阅读(913) 评论(0) 推荐(0) 编辑
摘要:我们知道,单个线程计算是串行的,只有等上一个任务结束之后,才能执行下一个任务,所以执行效率是比较低的。 那么,如果用多线程执行任务,就可以在单位时间内执行更多的任务,而Master Worker就是多线程并行计算的一种实现方式。 它的思想是,启动两个进程协同工作:Master和Worker进程。 M 阅读全文
posted @ 2020-02-21 14:04 烟雨星空 阅读(788) 评论(4) 推荐(0) 编辑
摘要:前言 也许,有的人看到上边这个标题,首先会觉得这肯定是一篇广告文吧。确实,我们可能见过有很多号主用类似于“你的同龄人已经XXX了,而你还在XXX”这种风格,来写软文。 但是,我可以明确的告诉你,这篇文章不是广告,只是记录我的一些感想而已。再说了,也没有广告主来找我合作呀(手动捂脸)。 正文 今天,无 阅读全文
posted @ 2020-02-17 20:21 烟雨星空 阅读(413) 评论(0) 推荐(1) 编辑
摘要:背景 最近,idea又被整治了,所以一大批激活码都失效了。我之前已经有2018版的永久激活了,所以非常淡定~,也没打算升级版本。但是,最近发现周围的人都在讨论这个问题。于是,我也找到了2019.3最新版的破解方法,感受了一下最新版有什么不同。 破解步骤 如果,你已经安装过最新版的idea了,就不需要 阅读全文
posted @ 2020-02-17 10:20 烟雨星空 阅读(4072) 评论(0) 推荐(0) 编辑
摘要:通常,我们在写java程序的时候,似乎很少关注内存分配和垃圾回收的问题。因为,这部分工作,JVM已经帮我们自动实现了。 这样看起来,好像很美好,但是任何事情都有两面性。虽然JVM会自动的进行垃圾回收,但是,如果遇到有些问题,JVM自己也处理不了呢? 因此,我们需要了解一下JVM垃圾回收是怎样运作的, 阅读全文
posted @ 2020-02-16 21:53 烟雨星空 阅读(664) 评论(0) 推荐(0) 编辑
摘要:前言 之前详细介绍了Java类的整个加载过程( "类加载机制详解" )。虽然,篇幅较长,但是也不要被内容吓到了,其实每个阶段都可以用一句话来概括。 1)加载:查找并加载类的二进制字节流数据。 2)验证:保证被加载的类的正确性。 3)准备:为类的静态变量分配内存,并设置默认初始值。 4)解析:把类中的 阅读全文
posted @ 2020-02-12 17:17 烟雨星空 阅读(577) 评论(0) 推荐(1) 编辑
摘要:之前在介绍JVM内存模型的时候(参看: "JVM内存模型" ),提到了在运行时数据区之前,有个Class Loader,这个就是类加载器。用以把Class文件中的描述信息加载到内存中运行和使用。以下是《深入理解Java虚拟机第二版》对类加载器机制的定义原文: 虚拟机把描述类的数据从Class文件加载 阅读全文
posted @ 2020-02-11 20:29 烟雨星空 阅读(2240) 评论(0) 推荐(0) 编辑
摘要:在JVM中,为了减少字符串对象的重复创建,维护了一块特殊的内存空间,这块内存就被称为字符串常量池。 在JDK1.6及之前,字符串常量池存放在方法区中。到JDK1.7之后,就从方法区中移除了,而存放在堆中。以下是《深入理解Java虚拟机》第二版原文: 对于HotSpot虚拟机,根据官方发布的路线图信息 阅读全文
posted @ 2020-02-08 21:36 烟雨星空 阅读(2434) 评论(0) 推荐(0) 编辑
摘要:如果想了解JVM内存模型,首先我们要知道JVM是什么?JVM全称 Java Virtual Machine ,即Java虚拟机,是用于运行Java程序编译后的字节码文件。 JVM最常见的三种有: 1.Sun公司的 HotSpot,是目前使用最广泛的Java虚拟机。 2.BEA公司的 JRockit, 阅读全文
posted @ 2020-02-07 21:51 烟雨星空 阅读(324) 评论(0) 推荐(0) 编辑
摘要:单例模式,是特别常见的一种设计模式,因此我们有必要对它的概念和几种常见的写法非常了解,而且这也是面试中常问的知识点。 所谓单例模式,就是所有的请求都用一个对象来处理,如我们常用的Spring默认就是单例的,而多例模式是每一次请求都创建一个新的对象来处理,如structs2中的action。 使用单例 阅读全文
posted @ 2020-02-04 22:33 烟雨星空 阅读(412) 评论(0) 推荐(2) 编辑

点击右上角即可分享
微信分享提示