- 博客(12)
- 资源 (1)
- 收藏
- 关注
原创 最全的Spring cloud面试题
1. 什么是 spring cloud?spring cloud 是一系列框架的有序集合。它利用 spring boot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 spring boot 的开发风格做到一键启动和部署。2. spring cloud 断路器的作用是什么?在分布式架构中,断路器模式的作用也是类似的,当某个服务单元发生故障(类似用电器发生短路)之后,通过断路器的故障监控(类似熔断保险丝),向调用方返回
2021-03-23 14:38:20 257
原创 最全的Java多线程面试题
1.线程和进程的区别是什么?根本区别:进程是资源分配最小单位,线程是程序执行的最小单位。计算机在执行程序时,会为程序创建相应的进程,进行资源分配时,是以进程为单位进行相应的分配。每个进程都有相应的线程,在执行程序时,实际上是执行相应的一系列线程。 地址空间:进程有自己独立的地址空间,每启动一个进程,系统都会为其分配地址空间,建立数据表来维护代码段、堆栈段和数据段;线程没有独立的地址空间,同一进程的线程共享本进程的地址空间。 资源拥有:进程之间的资源是独立的;同一进程内的线程共享本进程的资源。 执.
2021-03-23 13:57:08 688
转载 jvm内存模型--方法区
栈、堆、方法区的交互关系方法区理解《Java虚拟机规范》中明确说明:“尽管所有的方法区在逻辑上是属于堆的一部分,但一些简单的实现可能不会选择去进行垃圾收集或者进行压缩。”但对于HotSpotJVM而言,方法区还有一个别名叫做Non- Heap (非堆),目的就是要和堆分开。所以,方法区看作是一块独立于Java堆的内存空间。方法区(Method Area) 与Java堆一样,是各个线程共享的内存区域 方法区在JVM启动的时候被创建,并且它的实际的物理内存空间中和Java堆区一样都可以是不连
2021-03-18 17:28:32 281
转载 java代码如何运行?
前言作为一名Java程序员,我们需要知道Java代码是怎么运行的。最近复习了深入理解Java虚拟机,做了一下总结,希望对大家有帮助,如果有不正确的地方,欢迎提出,感激不尽。java 代码运行主要流程本文主要讲解流程如下: java源文件编译为class字节码 类加载器把字节码加载到虚拟机的方法区。 运行时创建对象 方法调用,执行引擎解释为机器码 CPU执行指令 多线程切换上下文 编译我们都知道,java代码是运行在Java虚拟.
2021-03-18 15:47:19 1478
转载 java对象的实例化过程
对象的实例化过程类的生命周期一个类的完整生命周期如下:其中使用就是对象的过程加载类加载过程的第一步,主要完成下面3件事情通过全类名获取定义此类的二进制字节流 将字节流所代表的静态存储结构转换为方法区的运行时数据结构 在内存中生成一个代表该类的 Class 对象,作为方法区这些数据的访问入口加载阶段和连接阶段的部分内容是交叉进行的,加载阶段尚未结束,连接阶段可能就已经开始了。验证准备准备阶段是正式为类变量(静态变量)分配内存并设置...
2021-03-17 16:33:56 612
转载 JVM–静态链接、动态链接
静态链接那么,首先,咱们先来聊聊静态链接。如上面的概念所述,在C/C++中静态链接就是在编译期将所有类加载并找到他们的直接引用,不论是否使用到。而在Java中我们知道,编译Java程序之后,会得到程序中每一个类或者接口的独立的class文件。虽然独立看上去毫无关联,但是他们之间通过接口(harbor)符号互相联系,或者与Java API的class文件相联系。我们之前也讲述了类加载机制中的一个过程—解析,并在其中提到了解析就是将class文件中的一部分符号引用直接解析为直接引用的过程,但是当时我
2021-03-16 15:17:25 2337
原创 python如何引用另外一个项目
1.场景(when):当我们基于一个已存在的项目(以下称为项目B)开发新项目(以下称为项目A)的时候,需要将已存在的项目加入到新项目的依赖中。2.如何做(how):如果你用PyCharm开发python,那么会非常简单,你只需要把B项目加入到项目A的Content Root中,就可以了操作顺序:File->Settings->Project->Projiect Structure假如没有使用PyCharm,可以把项目B加入到运行环境中(这个方法自行百度)..
2021-03-16 14:24:42 10126 6
原创 java指令集-dup
通过查看api文档,翻译可知:dup指令复制操作数堆栈的顶部值,并将复制的值压入操作数堆栈 dup只能用于操作value是第一类计算类型的值我们通过一个例子具体学习一下这个指令,如图:我们新建了一个JMMTest对象,语句为:JMMTest test = new JMMTest();对应字节码中的语句为:new #5 <com/xinyun/httpclent/test/jmm/test/JMMTest>dupinvokespeci...
2021-03-12 17:45:37 803
原创 java指令-astore
通过查看api文档,翻译可知:astore操作的index必须位于局部变量表中 astore指令操作的是栈顶的returnAddress类型或reference类型的数据 astore用于弹出栈顶元素,赋值给局部变量(index)我们通过一个例子具体学习一下这个指令,如图:我们新建了一个JMMTest对象,语句为:JMMTest test = new JMMTest();对应字节码中的语句为:new #5 <com/xinyun/...
2021-03-12 17:32:01 2180 3
原创 maven中的parent标签
简介(what)parent标签类似java中的继承,复用依赖,减少冗余配置使用场景(when):在多模块(module)的项目中,有很多模块中的pom中存在相同的引用,如果此时声明一个父pom文件,将公用的依赖提取到父pom文件中(即使用<parent>标签),将大大减少其他pom文件中的依赖的配置如何使用(how):假如有此时有一个项目中有2个module我们可以这样使用(step):创建一个新的module,名为parent(当然也可以叫其他名字),..
2021-03-09 13:41:35 33483 4
原创 java继承中方法的执行顺序
今天看代码的时候发现自己对于继承中方法的执行顺序不太清楚,查了下资料,然后又写了个测试类。代码如下,其中包含了重写,子类重写父类的方法时,会覆盖父类中的方法,父类中的该方法不会被执行。public class Methods { static { System.out.println("父类的static块"); } { System.out.
2017-09-24 11:04:13 298
原创 JAVA打开本地应用
第一次写博客,不喜勿喷哈。 今天周末,没课。 整理了两个打开本地应用的两个方法。 第一个适合用于打开系统应用,如计算器,画图工具等; 第二个方法适合用于工具类软件。import java.awt.Desktop;import java.io.File;import java.io.IOException;public class test { void openCalculat
2017-04-09 14:57:55 672
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人