动态分配内存的概述 在数组一章中,介绍过数组的长度是预先定义好的,在整个程序中固定不变,但是在实际的编程中,往往会发生这种情况,即所需内存空间取决于实际输入的数据,而无法预先确定。为了解决上述问题,c语言提供了一些内存管理函数,这些内存管理函数可以按需要动态的分配内存空间,也可把不再使用的空间回收再 ...
分类:
编程语言 时间:
2019-10-03 01:05:33
阅读次数:
107
1.类加载过程 加载-验证-准备-解析-初始化 1)加载:指的是将类的class文件读入到内存,并为之创建一个java.lang.Class对象 2)验证:验证阶段用于检验被加载的类是否有正确的内部结构,并和其他类协调一致 3)准备:类准备阶段负责为类的静态变量分配内存,并设置默认初始值。 4)解析 ...
分类:
编程语言 时间:
2019-10-02 18:44:41
阅读次数:
104
1、JSP的运行流程: 第一次请求一个JSP页面时,需要将JSP文件编译为class文件,在以后的请求中如果页面没有经过任何改动,那么可以直接调用class文件,这就是第一次请求JSP页面会有延迟的原因。 2、JSP与Servlet: JSP本质上是实现了javax.servlet.jsp.Http ...
分类:
Web程序 时间:
2019-10-01 23:02:06
阅读次数:
125
一、ClassLoader概念 ClassLoader是用来动态的加载class文件到虚拟机中,并转换成java.lang.class类的一个实例,每个这样的实例用来表示一个java类,我们可以根据Class的实例得到该类的信息,并通过实例的newInstance()方法创建出该类的一个对象,除此之 ...
分类:
其他好文 时间:
2019-10-01 18:07:07
阅读次数:
75
1.反射实现过程和作用 答:Java语言在编译之后会生成一个.class文件,反射就是通过字节码文件找到某一个类、类中的方法以及属性等。反射实现主要借助四个类:Class(类的对象)、Constructor(类的构造方法) Field(类中的属性对象)、Method(类中的方法对象)。作用:反射机制 ...
分类:
编程语言 时间:
2019-09-30 12:27:35
阅读次数:
76
实战性能优化 1 重新认知JVM 之前我们画过一张图,是从Class文件到类装载器,再到运行时数据区的过程,现在咱们把这张图不妨丰富完善一下,展示了JVM的大体物理结构图。 执行引擎:用于执行JVM字节码指令 主要由两种实现方式: (1)将输入的字节码指令在加载时或执行时翻译成另外一种虚拟机指令; ...
分类:
其他好文 时间:
2019-09-30 11:17:33
阅读次数:
135
1.编译就是将java代码交给编译器进行语法检查,如果没有错误就生成.class文件 2.运行就是将字节码文件(.class)交给java虚拟机执行,如果没有逻辑错误,就成功出现结果。 编译期和运行期内存的分配 1.编译期仅仅知道内存分配的位置和大小,不做具体的分配操作 2.运行期确定真正的分配,确 ...
分类:
其他好文 时间:
2019-09-28 21:56:15
阅读次数:
92
一、结果集中获取数据并对实体set值,封装成对象返回; 2、封装JDBC工具类 只要执行一次的,如读取配置文件,则写静态代码块; 异常抛出要写明方法才可以throw,静态代码块异常只能捕捉try catch; 类加载器两个作用:将字节码Class文件加载到内存中;获取src路径下的文件; 2.1 获 ...
分类:
数据库 时间:
2019-09-27 23:15:19
阅读次数:
139
1、什么是类加载器? 2、加载方式 ClassLoader类加载器,主要的作用是将class文件加载到jvm虚拟机中。jvm启动的时候,并不是一次性加载所有的类,而是根据需要动态去加载类,主要分为隐式加载和显示加载。 隐式加载:程序代码中不通过调用ClassLoader来加载需要的类,而是通过JVM ...
分类:
其他好文 时间:
2019-09-26 11:34:48
阅读次数:
88
1. python 模块 模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。模块可以被别的程序引入,以使用该模块中的函数等功能。这也是使用 python 标准库的方法。(有点像java的class文件,一个class文件包含多个方法) 一个模块只会被导入一次,不管你执行了多少次impor ...
分类:
编程语言 时间:
2019-09-26 00:33:21
阅读次数:
81