![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
文章平均质量分 79
java.雅玲
IT互联网
展开
-
Java SE6调用动态编译
一、使用JavaCompiler接口编译java源程序我们可以通过ToolProvider类的静态方法getSystemJavaCompiler来得到一个JavaCompiler接口的实例。JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); JavaCompiler中最核心的方法是run。通过这个方法可以编译java源程序。这个方法有3个固定参数和1个可变参数(可变参数是从Jave SE5开始提供的一个新的参数类型,用type原创 2021-02-03 22:21:51 · 88 阅读 · 0 评论 -
【JVM】浅谈双亲委派和破坏双亲委派
一、前言笔者曾经阅读过周志明的《深入理解Java虚拟机》这本书,阅读完后自以为对jvm有了一定的了解,然而当真正碰到问题的时候,才发现自己读的有多粗糙,也体会到只有实践才能加深理解,正应对了那句话——“Talk is cheap, show me the code”。前段时间,笔者同事提出了一个关于类加载器破坏双亲委派的问题,以我们常见到的数据库驱动Driver为例,为什么要实现破坏双亲委派,下面一起来重温一下。二、双亲委派想要知道为什么要破坏双亲委派,就要先从什么是双亲委派说起,在此之前,我们先要了原创 2020-12-28 20:54:50 · 952 阅读 · 8 评论 -
Java终止线程的三种方式
停止一个线程通常意味着在线程处理任务完成之前停掉正在做的操作,也就是放弃当前的操作。在 Java 中有以下 3 种方法可以终止正在运行的线程:使用退出标志,使线程正常退出,也就是当 run() 方法完成后线程中止。使用 stop() 方法强行终止线程,但是不推荐使用这个方法,该方法已被弃用。使用 interrupt 方法中断线程。1. 使用标志位终止线程在 run() 方法执行完毕后,该线程就终止了。但是在某些特殊的情况下,run() 方法会被一直执行;比如在服务端程序中可能会使用 while(原创 2020-12-25 21:22:10 · 650 阅读 · 2 评论 -
java动态代理: JDK和cglib
JAVA的动态代理代理模式代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。按照代理的创建时期,代理类可以分为两种。静态代理:由程序员创建或特定工具自动生成源代码,再对其编译。在程序运行前,代理类的.class文件就已经存在了。原创 2020-12-25 19:42:32 · 206 阅读 · 0 评论 -
Java中继承多数是有害的
最近研究java的方法覆盖时发现了一篇蛮好的文章,记录下来分享下:首先申明:static的方法和变量只能隐藏,不能覆盖大多数好的设计者象躲避瘟疫一样来避免使用实现继承(extends 关系)。实际上80%的代码应该完全用interfaces写,而不是通过extends。“Java设计模式”一书详细阐述了怎样用接口继承代替实现继承。这篇文章描述设计者为什么会这么作。xtends是有害的;也许对于Charles Manson这个级别的不是,但是足够糟糕的它应该在任何可能的时候被避开。“JAVA设计模式”原创 2020-12-24 21:00:27 · 212 阅读 · 2 评论 -
java中的foreach循环
foreach语句是java5的新特征之一,在遍历数组、集合方面,foreach为开发人员提供了极大的方便。foreach语句是for语句的特殊简化版本,但是foreach语句并不能完全取代for语句,然而,任何的foreach语句都可以改写为for语句版本。foreach并不是一个关键字,习惯上将这种特殊的for语句格式称之为“foreach”语句。从英文字面意思理解foreach也就是“for 每一个”的意思。实际上也就是这个意思。foreach的语句格式:for(元素类型t 元素变量x :原创 2020-12-24 20:06:55 · 1207 阅读 · 0 评论 -
面试官:兄弟,说说Java到底是值传递还是引用传递
面试官:兄弟,说说Java到底是值传递还是引用传递七年前,我从温和湿润的苏州回到古色古香的洛阳,抱着一幅“天下我有”的心态“约谈”了几位面试官。其中有一位叫老马,让我印象深刻。因为他当时扔了一个面试题把我砸懵了:说说 Java 到底是值传递还是引用传递吧。我当时年轻气盛,自认为所有的面试题都能对答如流,没想到被老马“刁难”了——原来洛阳这块互联网的荒漠也有技术专家啊。现在回想起来,脸上不自觉地就泛起了羞愧的红晕:当时真菜!不管怎么说,是时候写篇文章剖析一下值传递还是引用传递的区别了。将参数传递给方法原创 2020-12-22 17:00:08 · 161 阅读 · 1 评论 -
谈谈JAVA中的Voletile
谈谈JAVA中的Voletile内存可见性volatile是Java提供的一种轻量级的同步机制,在并发编程中,它也扮演着比较重要的角色。同synchronized相比(synchronized通常称为重量级锁),volatile更轻量级,相比使用synchronized所带来的庞大开销,倘若能恰当的合理的使用volatile,自然是美事一桩。为了能比较清晰彻底的理解volatile,我们一步一步来分析。首先来看看如下代码public class TestVolatile { boolean原创 2020-12-17 17:06:05 · 348 阅读 · 0 评论 -
狗屎的Java规范
狗屎的Java规范规范标题真有点侮辱了狗。贴内容:把五只猴子关在一个笼子里,上头有一串香蕉实验人员装了一个自动装置。一旦侦测到有猴子要去拿香蕉,马上就会有水喷向笼子,而这五只猴子都会一身湿。首先有只猴子想去拿香蕉,当然,结果就是每只猴子都淋湿了。之后每只猴子在几次的尝试后,发现莫不如此。于是猴子们达到一个共识:不要去拿香蕉,以避免被水喷到。后来实验人员把其中的一只猴子释放,换进去一只新猴子A。这只猴子A看到香蕉,马上想要去拿。结果,被其他四只猴子海K了一顿。因为其他四只猴子认为猴子A原创 2020-12-17 14:18:39 · 1061 阅读 · 1 评论 -
阿里P8大佬带你深入解析JVM与java
大佬带你了解java虚拟机与java是什么什么是Java经过了多年的发展,Java早已由一门单纯的计算机编程语言,演变为了一套强大的技术体系。是的,什么是Java,我想技术体系四个字应该是最好的概括了吧。Java设计者们将Java划分为3种结构独立但却彼此依赖的技术体系分支,它们分别对应着不同的规范集合和组件:1、Java SE(标准版),主要活跃在桌面领域,主要包含了Java API组件。2、Java EE(企业版),活跃在企业级领域,除了包含JavaAPI组件外,还扩充有Web组件、事务组件、原创 2020-12-12 20:38:04 · 347 阅读 · 1 评论