《深入分析Java web技术内幕》笔记

3 篇文章 0 订阅
3 篇文章 0 订阅

JVM内存结构


堆:所有对象实例或数组都在Java堆上分配内存,堆大小由-Xmx和-Xms调节;

方法区:存放虚拟机加载类的相关信息,如类静态变量和常量;(堆中的一部分,堆中的永久区)

栈:存放线程调用方法时,存储局部变量表、操作、方法出口等与方法执行相关的信息。


在Java虚拟机规范中将Java运行时数据划分为6中,分别为:

pc寄存器数据:保存当前正在执行程序的内存地址;

Java栈:Java栈总是和线程关联在一起,每当创建一个线程是,JVM就会为这个线程创建一个对应的Java栈,Java栈又含有多个栈帧,这些栈帧与每个方法关联起来,每运行一个方法就创建一个栈帧,每个栈帧会含有一些内部变量(在方法内定义的变量),操作栈和方法返回值等信息。Java栈与Java线程对应起来的,数据不是线程共享的,所以不用关心数据一致性问题;

堆:堆是存储Java对象的地方。每一个存储在堆中的Java对象都是这个对象的类的一个副本,它会复制包括继承自它弗雷的所有非静态属性。堆是线程共享的,应注意同步问题。

方法区:用于存储类结构信息的地方;

运行时常量池:是方法区的一部分。代表运行时每个class文件中的常量表;

本地方法栈:为JVM运行Native方法准备的空间。


JVM内存分配策略

堆主要用来存放对象,栈主要用来执行程序。


垃圾回收(GC)

JVM在做垃圾回收是会检查堆中的所有对象是否都会被这些根对象(方法中局部变量区中对象的引用、Java操作栈中对象引用、常量池中对象引用、本地方法中持有的对象引用、类的Class对象)直接或者间接引用,能够被引用的对象就是活动对象,否则就可以被垃圾收集器回收。


第9章 servlet工作原理解析


第13章 Spring框架的设计理念与设计模式分析

知识点:
  • Bean:(Bean包装的是Object)实体对象类,可以将对数据库的操作抽象成对类的操作;
  • context:发现、建立、维护Bean之间的关系,context是bean关系的集合,这个关系集合又叫IOC容器;(context组件实际上给Spring提供一个运行时的环境,用以保存各个对象的状态)
  • IOC容器:被Bean包裹的对象;
  • Core组件:发现、建立、维护每个Bean之间关系所需要的一系列工具(Core组件又叫Util);
  • ApplicationContext.xml:Ioc容器的默认配置文件;


spring框架中的核心组件有三个:core、context和bean(其中bean为核心)。
Spring的设计理念:通过把对象包装在Bean中而达到对这些对象管理及一系列额外操作的目的。


为什么使用Spring:可以把对象之间的关系用配置文件管理(也就是依赖注入机制)。

第15章 深入分析Ibatis框架之系统架构与映射原理

Ibatis通过SQL Map将Java对象映射成SQL语句,再将结果集再转化成Java对象,与其他ORM框架相比,既解决了JAVA对象与输入参数和结果集的映射,又能够让用户方便地手写使用SQL语句。

Ibatis功能:

  • 根据JDBC规范建立与数据库的连接;
  • 通过反射打通Java对象与数据库参数交互之间相互转化的关系。
ibatis目的:把用户关心的和容易变化的数据放到配置文件总配置,方便用户管理,而把流程性的、固定不变的功能交给ibatis实现。这样可使用户简单、方便的操作数据库。





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值