logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

java程序如何执行(原理)

1、java源程序编译成.class文件(类字节码文件)2、JVM装载.class文件,执行下面详细说一下装载过程1)基础类的加载机制java基础类是程序运行的基础,因此采用预先加载的机制。当启动一个程序时,java首先在JDK目录下找到并载入jvm.dll,然后启动虚拟机。当启动虚拟机时会做一些初始化操作,如设置系统参数等。接着会创建一个Bootstrap Loa

在监视器(Monitor)内部,是如何做到线程同步的

转自:牛客网在java虚拟机中,每个对象(object和class)通过某种逻辑关联监视器,每个监视器和一个对象引用相关联,为了实现监视器的互斥功能,每个对象都关联着一把锁一旦方法或者代码块被synchronized修饰,那么这个部分就放入了监视器的监视区域,确保一次只能有一个线程执行该部分的代码,线程在获取锁之前不允许执行该部分的代码

#java
什么是Java虚拟机?为什么Java被称为平台无关的编程语言

一、什么是java虚拟机?java虚拟机是执行字节码文件(.class)的虚拟机进程。java源程序(.java)被编译器编译成字节码文件(.class)。然后字节码文件,将由java虚拟机,解释成机器码(不同平台的机器码不同)。利用机器码操作硬件和操作系统二、为什么java被称为平台无关的编程语言?因为不同的平台装有不同的JVM,它们能够将相同的.class文件,解释成不

Bean的实例化过程

一、Spring容器的容器启动阶段和Bean实例化阶段 1.1 容器启动阶段   容器启动阶段,主要是将利用某种工具(如XmlBeanDefinitionReader),将XML配置信息,映射为BeanDefinition,并将其注册到相应的BeanDefinitionRegistry。1.2 Bean实例化阶段  本文主要探索此阶段,也就是上图Abstract...

#spring
operands could not be broadcast together with shapes

今天在对着http://cs231n.github.io/python-numpy-tutorial练习matplotlib显示图片的时候,      img_tinted = img * [1, 0.95, 0.9] 这条语句就出错了,ValueError: operands could not be broadcast together with shapes (200,200,4)

周志华《机器学习》版本空间

转自:https://www.zhihu.com/question/40237283/answer/92414386版本空间定义:版本空间(version space)是概念学习中与已知数据集一致的所有假设(hypothesis)的子集集合。对于二维空间中的“矩形”假设(上图),绿色加号代表正类样本,红色小圈代表负类样本。 GB 是最大泛化正假设边界

#机器学习
java堆结构,以及堆中的永久代

转自:java堆的结构以及堆中的永久代java堆不是数据接口意义上的堆(一种有序的树),而是jvm的堆,也即是运行时的数据区。所有类的实例和数组都是在堆上分配内存,它在JVM启动时被创建,对象所占的内存是由自动内存管理系统也就是垃圾回收器回收。堆内存是由存活的对象以及死亡的对象组成的。存活的对象不会被垃圾回收器回收;死亡的对象是还没有被垃圾回收器回收的对象,等下一个周期回收永久代:永久

#java
如何获取自定义注解标记的类

1、如何把一个包里所有自己想要的自定义注解标记的类,放入容器(一个Set<Class<?>>)中?@Controller //比如@Controller是自定义的注解public class HelloController{ //在A包下// ....}@Controllerpublic class TestController{//在B包下

#java
到底了