08 2019 档案
摘要:通过之前的学习,我们知道:类加载就是根据一个类的全限定名,将其字节码文件 加载到JVM内部,并创建java.lang.Class对象实例。其实,一个类的加载过程应包括:加载,连接(验证,准备,解析),初始化。 加载: 通过类加载器,根据一个类的全限定名,将该类的字节码文件加载到JVM中(存储在方法区
阅读全文
摘要:在程序中实现一个自定的类加载器:继承ClassLoader抽象类,重写findClass()。 如下位一个实例代码: 输出结果: 总结: 1.为什么要自定义类的加载器??? 通过自定义的类加载器,我们可以进行一些额外的操作,比如可以对字节码文件进行加密,解密。这就保护了原始字节码的安全性问题。 2.
阅读全文
摘要:通过之前的学习我们了解到了常见的三种类加载器:BootstrapClassLoader,ExtClassLoader,APPClassLoader,以及用户也可通过继承ClassLoader抽象类重新写findClass()来自定义类加载器。那么在类的加载中,怎么保证类的全局唯一性???在JVM中我
阅读全文
摘要:在学习类加载机制之前,我们先了解一下类加载器,因为类加载器是类加载机制的前提。类加载器的主要任务就是:根据一个类的全限定名,将该类的字节码文件加载进JVM中,然后转换为一个对应类的Java.lang.Class对象实例。程序员也可以自定义类加载器,一般的将派生于抽象类ClassLoader的类加载器
阅读全文
摘要:当我们了解完垃圾回收算法后,我们正式的一起来的JVM到自动内存管理工具的实现 即GC(即可完成内存分配,也可进行垃圾回收)。我们会了解到一些常见的GC版本,比如:Serial/Serial Old收集器,Parallel/Parallel Old收集器,CMS(Concurrent Mark Swe
阅读全文
摘要:一:String: String类不可变的原因:底层是由private final char [ ]修饰的字符数组,这也决定了String类不可被继承(final修饰); 1.构造方法:由于在内存中存放的方式不同(常量池,堆),String可以使用常量进行赋值。 2.常用方法: 二,StringBu
阅读全文
摘要:Collection接口:包含list 和set两个子接口(注意map不是Collection下的接口) List:有序可重复 ArrayList,LinkedList,Vector 1.ArrayList: 构造方法: 无参构造默认初始值大小为10,且每次扩容的大小为(原始容量*1.5+1); 遍
阅读全文
摘要:本文主要了解三种常用的垃圾收集算法: 1.标记-清除算法(Mark Sweep): 此过程分为两个步骤:垃圾标记,垃圾清除。该算法相比于其他两个算法:执行效率低下,还容易产生内存碎片。 但是由于老年代的生命周期比较长,使用复制清除算法操作的对象会比较多,所以老年代会使用标记清除算法。但是由于内存空间
阅读全文
摘要:1.GC的作用: GC(Garbage Collection)就是JVM中自动内存管理机制的具体实现。GC包括两大功能:内存的分配,垃圾的回收。内存的分配上一文章中已经介绍过,因为对象生命周期的差异性,故采使用分代垃圾回收策略。 那么如何评价一款GC的性能优劣呢???主要有如下的几个标准 2.垃圾的
阅读全文
摘要:之前有提到过,为了提高GC的回收效率,对象实例的内存分配不一定必须存在于堆区中,还可采用堆外分配。而最常见的堆外分配就是采用逃逸分析筛选出未发生逃逸的对象,在栈帧中分配内存空间。 逃逸分析:就是分析出对象的作用域。当一个对象在方法体内声明后,该对象的引用被其他外部所引用时该对象就发生了逃逸,反之就会
阅读全文
摘要:1.JVM的三种引用类型: 之前介绍过,为了提高GC的执行效率Java的实例对象也可以创建在堆区之外,但是绝大多数的实例对象还是创建在了堆区中。在JVM中包含三种引用类型即:类类型(class type),数组类型(array type),接口类型(interface type),这些引用类型的对象
阅读全文
摘要:前言:在学习Java第一课时,老师就讲到:Java不同于C/C++的手动内存分配与回收。原来这都得益于JVM的内存自动管理机制,但是在这背后又暗藏什么玄机呢???本人从图书馆借来了《Java虚拟机精讲》来一探究竟。 一.JVM的内存模型: 如下图所示可以分为5个模块:堆,栈,本地方法栈,PC寄存器,
阅读全文
摘要:1.JSON: 1.1基本概念: JSON(JavaScript Object Nation:JS对象标记)是一种数据交换格式,JS中的数据类型都可以采用JSON表示。 JS中的数据类型: 对象采用 属性名:属性值 形式的键值对; 数据之间采用逗号隔开; 数组采用方括号表示; 对象采用花括号表示;J
阅读全文
摘要:乱码问题很让人心烦,接下来我们来讨论这两种解决乱码问题的方法: 方法1: 使用Spring包中的类 (在web.xml)中注册该过滤器即可) 方法2:使用以下解决字符乱码的类 (在web.xml中进行filter注册即可使用):
阅读全文
摘要:代码如下: 1.SpringMVC的web.xml文件:(DispatcherServlet配置) 2.SpringMVC的配置文件 (springmvc-servlet.xml) 3.Controller层的编写: 4.前端页面 (user.jsp) pojo实体类: 总结: Dispatcher
阅读全文
摘要:代码如下: 1.SpringMVC的 web.xml文件的编写:(注册dispatcherServlet) 2.SpringMVC配置文件的编写:(注解自动扫描,静态资源的过滤,注解驱动,视图解析器) 3.Controller层的编写:(职能:进行数据模型的处理,并返回视图和数据模型) 4.前端页面
阅读全文
摘要:1.SpringMVC的web.xml文件的编写: 2.SpringMVC配置文件的编写: 3.controller层的编写: Restful风格:(Controller层的编写) 4,前端页面的编写: 注解为@Controller是为了让Spring IOC容器初始化时自动扫描到; @Reques
阅读全文
摘要:今天学习了Vue的相关知识,有一个明显的感受:之前写一个html页面,每次更新数据后就得重新登录页面,进行刷新。而Vue中可以将用户输入的数据直接传到后台的代码中直接使用。 1.学习前准备工作:下载相应的包 2.idea进行配置:下载Vue插件 3.代码: 4.效果图: 总结:在页面中可以直接的进行
阅读全文
摘要:1.MVC三层架构:(是一种架构思想,不是设计模式) M(model):数据模型层:包含了数据和对数据的操作。一般又包括Dao层:直接进行数据库的访问,Service层:调用Dao。 V(View):视图层:展示给用户的东西,前端页面; C(Controller):控制层:接受从View层(视图层)
阅读全文
摘要:(本案例使用maven项目) 1.三个实体类: 2.spring配置文件: (applicationContext.xml) 3.测试类: 4.pop.xml 参考博客:https://www.cnblogs.com/kuotian/p/8795812.html
阅读全文

浙公网安备 33010602011771号