自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 对象已死+垃圾回收

给对象中添加一个引用计数器,每当有一个地方引用它,计数器就加 1;当引用失效,计数器就减 1;任何时候计数器为 0 的对象就是不可能再被使用的。这个方法实现简单,效率高,但是目前主流的虚拟机中并没有选择这个算法来管理内存,其最主要的原因是它很难解决对象之间相互循环引用的问题。 所谓对象之间的相互引用问题,如下面代码所示:除了对象 objA 和 objB 相互引用着对方之外,这两个对象之间再无任何引用。但是他们因为互相引用对方,导致它们的引用计数器都不为 0,于是引用计数算法无法通知 GC 回收器回收他们。这

2022-06-09 17:13:24 375 1

原创 jvm内存分配+逃逸分析+栈上分配

大多数情况下,对象在新生代中 eden 区分配。当 eden 区没有足够空间进行分配时,虚拟机将发起一次 Minor GC大对象就是需要大量连续内存空间的对象(比如:字符串、数组)。为了做到这一点,虚拟机给每个对象一个对象年龄(Age)计数器。如果对象在 Eden 出生并经过第一次 Minor GC 后仍然能够存活,并且能被 Survivor 容纳的话,将被移动到 Survivor 空间中,并将对象年龄设为 1.对象在 Survivor 中每熬过一次 MinorGC,年龄就增加 1 岁,当它的年龄增加到一定

2022-06-09 16:44:09 540

原创 HotStop对象的内存布局和访问定位

对象在内存中的布局可以分为 3 块区域:对象头、实例数据和对齐填充。Hotspot 虚拟机的对象头包括两部分信息,第一部分用于存储对象自身的运行时数据(哈希码、GC 分代年龄、锁状态标志等等),另一部分是类型指针,即对象指向它的类元数据的指针,虚拟机通过这个指针来确定这个对象是哪个类的实例。实例数据部分是对象真正存储的有效信息,也是在程序中所定义的各种类型的字段内容。对齐填充部分不是必然存在的,也没有什么特别的含义,仅仅起占位作用。 因为 Hotspot 虚拟机的自动内存管理系统要求对象起始地址必须是 8

2022-06-09 16:18:04 537

原创 HotSpot虚拟机对象的创建

虚拟机遇到一条 new 指令时,首先将去检查这个指令的参数是否能在常量池中定位到这个类的符号引用,并且检查这个符号引用代表的类是否已被加载过、解析和初始化过。如果没有,那必须先执行相应的类加载过程。在类加载检查通过后,接下来虚拟机将为新生对象分配内存。对象所需的内存大小在类加载完成后便可确定,为对象分配空间的任务等同于把一块确定大小的内存从 Java 堆中划分出来。分配方式有 “指针碰撞” 和 “空闲列表” 两种,选择哪种分配方式由 Java 堆是否规整决定,而 Java 堆是否规整又由所采用的垃圾收集器是

2022-06-09 16:09:43 153

原创 运行时数据区

栈由一个个栈帧组成,而每个栈帧中都拥有:局部变量表、操作数栈、动态链接、方法返回地址。和数据结构上的栈类似,两者都是先进后出的数据结构,只支持出栈和入栈两种操作。可以定义为一个数字数组,主要用于存储方法参数和定义在方法体内的局部变量,这些数据类型包括各类基本数据类型(boolean、byte、char、short、int、float、long、double)、对象引用(reference,它不同于对象本身,可能是一个指向对象起始地址的引用指针,也可能是指向一个代表对象的句柄或其他与此对象相关的位置),以及

2022-06-09 15:34:26 230

原创 类加载器子系统

类加载器子系统,类加载,双亲委派机制

2022-06-08 21:03:39 420

原创 SpringMVC——配置tomcat

文章目录1.点击Add Configuration,打开配置页2.选择Tomcat Server的local选项3.配置tomcat4.部署5.测试1.点击Add Configuration,打开配置页2.选择Tomcat Server的local选项3.配置tomcat4.部署5.测试

2022-05-14 20:04:57 4052

原创 SpringMVC——json

文章目录一、json简介1.什么是json2.json要求和语法格式二、Controller返回JSON数据一、json简介1.什么是jsonJSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式,目前使用特别广泛。采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。2.json要求和语法格式对象表示为

2022-05-14 19:58:09 585

原创 SpringMVC——数据处理及跳转方式

文章目录一、ModelAndView二、ServletAPI三、SpringMVC四、数据处理1.处理提交数据2.数据显示到前端一、ModelAndView设置ModelAndView对象 , 根据view的名称 , 和视图解析器跳到指定的页面 .页面 : {视图解析器前缀} + viewName +{视图解析器后缀}<!-- 视图解析器 --><bean class="org.springframework.web.servlet.view.InternalResourceV

2022-05-14 19:43:22 262

原创 SpringMVC—— Controller

文章目录@Controller注解@RequestMapping控制器Controller控制器复杂提供访问应用程序的行为,通常通过接口定义或注解定义两种方法实现。控制器负责解析用户的请求并将其转换为一个模型。在Spring MVC中一个控制器类可以包含多个方法在Spring MVC中,对于Controller的配置方式有很多种@Controller注解@Controller注解类型用于声明Spring类的实例是一个控制器(@Controller:web层 @Service:serv

2022-05-14 17:25:49 401

原创 SpringMVC——SpringMVC入门

文章目录一、SpringMVC概述1.什么是SpringMVC?2.MVC模式3.中心控制器4.SpringMVC的原理二、第一个SpringMVC程序1.创建普通maven工程,导入相关依赖2.添加web框架支持3.配置DispatcheServlet4.配置SpringConfig5.webapp目录创建6.HelloController7.编写springmvc.xml的配置文件一、SpringMVC概述1.什么是SpringMVC?Spring MVC 是 Spring 提供的一个基于MVC

2022-05-14 17:08:08 302

原创 Spring——AOP(面向切面编程)

文章目录一、AOP相关的概念1.什么是AOP的技术?2.AOP的优势3.AOP的底层原理4.AOP相关的术语二、AOP技术1.Spring实现AOP2.自定义方法实现AOP3.注解实现一、AOP相关的概念1.什么是AOP的技术?在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程。AOP是一种编程范式,隶属于软工范畴,指导开发者如何组织程序结构;AOP最早由AOP联盟的组织提出的,制定了一套规范.Spring将AOP思想引入到框架中,必须遵守AOP联盟的

2022-05-13 22:07:41 372

原创 Spring—— 代理模式

文章目录一、静态代理二、动态代理(反射)AOP的底层机制时动态代理一、静态代理静态代理角色分析抽象角色 : 一般使用接口或者抽象类来实现真实角色 : 被代理的角色代理角色 : 代理真实角色 ; 代理真实角色后 ,一般会做一些附属的操作客户 : 使用代理角色来进行一些操作抽象角色:租房//抽象角色:租房public interface Lease { public void rent();}真实角色: 房东,房东要出租房子//真实角色: 房东,房东要出租房子pub

2022-05-13 21:47:25 989

原创 Spring——注解开发

文章目录注解扫描包创建实体类属性注入衍生注解作用域@Component注解注解扫描包bean.xml配置1.导入约束2.开启注解支持<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:co

2022-05-13 21:11:58 306

原创 Spring——Bean的管理及自动装配

文章目录一、Bean的管理及自动装配二、通过xml文件配置1.手动配置2.byName(根据属性名称注入)3.byType(根据属性类型注入)三、使用注解1.@Autowired注解一、Bean的管理及自动装配bean管理指的是如下的两个操作:创建对象注入属性Bean管理操作的两种方式:基于xml配置文件的方式实现基于注解方式实现自动装配我们在做一个类装入属性时,我们都会通过在xml配置文件中,通过property标签中的name属性,指定value属性值,向类中设置值,这个值可

2022-05-13 20:54:51 383

原创 spring——Bean的作用域

文章目录一、Singleton(单例模式)二、Prototype(原型模式)三、Request四、SessionBean的作用域在Spring中,那些组成应用程序的主体及由Spring IoC容器所管理的对象,被称之为bean。简单地讲,bean就是由IoC容器初始化、装配及管理的对象。request、session作用域仅在基于web的应用中使用(不必关心你所采用的是什么web应用框架),只能用在基于web的Spring ApplicationContext环境。一、Singleton(单例模

2022-05-13 19:56:56 298

原创 Spring——依赖注入DL

文章目录一、构造器注入二、set注入1.常量注入2.bean注入3.数组注入4.List注入5.Map注入6.set注入7.null注入8.properties注入三、拓展注入1. P命名空间注入2. c 命名空间注入依赖 : 指Bean对象的创建依赖于容器 . Bean对象的依赖资源 .注入 : 指Bean对象所依赖的资源 , 由容器来设置和装配 .一、构造器注入IOC创建对象方式二、set注入创建Maven项目,创建实体类,set注入使用的是无参构造,必须要有set方法。pojo类

2022-05-13 19:34:30 493

原创 Spring—— Spring IOC

文章目录一、IOC简介1.什么是IOC2.IOC容器的底层原理二、IOC容器的实现方式1.BeanFactroy2.ApplicationContext三、IOC创建对象的方式1.使用无参构造方法创建对象(默认)2.使用有参构造方法创建对象(3种)一、IOC简介1.什么是IOCIOC(Inverse of Control) 控制反转,是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。控制反转指的是将对象交给Spring来创建。DI(依赖注入)是实现IOC的一种方法。IOC是Sp

2022-05-13 18:04:26 94

原创 Spring——第一个Spring

文章目录一、Spring概述1.Spring的核心2.Spring框架的优点二、HelloSpring1.创建maven项目,在pom.xml中导入依赖2.创建Hello实体类3.编写spring文件,可命名为beans.xml4.测试一、Spring概述Spring是一个开放源代码的设计层面框架,它解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用。1.Spring的核心核心是控制反转(IOC)和面向切面(AOP)。简单来说,Spring是一个分层的JavaSE

2022-05-13 17:29:48 86

原创 Mybatis——动态sql

文章目录一、if标签二、where标签三、trim标签四、 choose、otherwize标签五、set标签六、foreach标签七、sql一、if标签条件判断标签<select id="test" resultMap="BaseResultMap" parameterType="map"> select *from user where 1=1 <if test="username != null and username!= ''"> a

2022-05-12 15:59:49 328

原创 Mybatis——多对一与一对多

文章目录一、多对一1.association标签2.分步查询二、一对多1.collection标签2.分步查询数据库teacher表student表一、多对一例:多个学生被一个老师教,查询学生信息同时查询出教师信息实体类teacher@Datapublic class Teacher { private String tid; private String name;}student@Datapublic class Student { priv

2022-05-12 15:12:01 165

原创 Mybatis——传递参数

文章目录Mybatis多个参数传递1.顺序传递(匿名传递)2.使用Map传递参数3.使用@Param注解4.使用java bean传递多个参数5.传递集合类型参数List、Set、Array6.参数类型为对象+集合Mybatis多个参数传递1.顺序传递(匿名传递)mapperUser checklogin(String username,String password);xml<select id="checklogin" resultMap="User" > select

2022-05-10 17:16:58 744

原创 MyBatis入门

文章目录一、MyBatis简介1.什么是Mybatis2.为什么使用MyBatis二、Mybatis搭建1.创建maven的项目,创建Java工程即可。2.引入坐标依赖3.编写核心配置文件4.编写实体类5.编写mapper及映射文件5.测试功能三、Mybatis和jdbc一、MyBatis简介1.什么是MybatisMyBatis 是一个开源、轻量级的数据持久化框架,是 JDBC 的替代方案。MyBatis 内部封装了 JDBC,简化了加载驱动、创建连接、创建 statement 等繁杂的过程。2

2022-05-10 16:05:33 186

原创 过滤器和监听器

文章目录一、过滤器二、监听器三、过滤器、监听器常见应用一、过滤器过滤器是处于客户端与服务器资源之前的一道过滤技术过滤器作用过滤器执行在Servlet之前,客户端发送请求时,会先经过过滤器Filter,在到达目标Servlet当中。从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。编写过滤器– 编写java类实现Filter接口– 在doFilter方法中编写拦截逻辑–设置拦截器拦截器代码@WebFilter("/tage") /

2022-05-08 18:38:20 220

原创 Cookie和Session

文章目录一、状态管理二、cookie1.什么是cookie2.cookie的基本操作3.cookie的获取4.Cookie的编码和解码5.Cookie的优缺点二、session1.什么是session2.Session原理3.获取session4.Session保存数据5.Session获取数据6.Session移除数据7.Session的生命周期一、状态管理现有问题Http是无状态的,不能保存每次提交的信息如果用户发来一个新的请求,服务器无法知道它是否与上次请求是否有联系对于那么需要提交多次

2022-05-08 17:52:33 60

原创 servlet基础

文章目录一、Servlet二、Servlet原理三、Mapping问题四、ServletContext五、HttpServletResponse六、HttpServletRequest七、重定向八、 servlet的组件一、Servlet实现servlet接口的java程序叫做servlet如果想要开发一个servlet程序,只需要完成两个步骤:编写一个类实现servlet接口,把开发好的java类部署到web服务器中二、Servlet原理servlet是由web服务器调用,web服务器在

2022-05-08 14:48:34 78

原创 Maven

文章目录一、Maven项目架构管理工具二、下载安装Maven1.下载解压2.配置环境变量3.阿里云镜像4.本地仓库5.在IDEA中使用Maven一、Maven项目架构管理工具Maven方便自动导入jar包核心思想:约定大于配置二、下载安装Maven1.下载解压官网:https://maven.apache.org/2.配置环境变量环境变量中的配置:M2_HOME maven目录下的bin目录MAVEN_HOME maven的目录在系统的path中

2022-04-15 17:21:08 38

原创 Http协议

文章目录一、什么是Http二、Http请求1.请求行2.消息头三、Http响应1.响应体2.响应状态码一、什么是HttpHttp(超文本传输协议)是一个简单的请求-响应协议,它通常运行在TCP之上二、Http请求客户端—发请求(Request)—服务器1.请求行请求行中的请求方式:GET请求方式:Get,Post,HEAD,DELETE,PUT,TRACT.…get:请求能够携带的参数比较少,大小有限制,会在浏览器的URL地址栏显示数据内容,不安全,但高效post:请求能够携带的参数没

2022-04-14 16:54:47 577

原创 web基础

文章目录一、web开发1.web应用程序(可以提供浏览器访问的程序)2.静态/动态web二、web服务器1.jsp/servlet2.web服务器3.安装Tomcat4.补充(面试题)一、web开发web主要分为静态web和动态web在Java中,动态web资源开发的技术统称为javaweb1.web应用程序(可以提供浏览器访问的程序)一个web应用程序由多个部分组成,web应用程序编写完毕后,若想给外界访问:需要一个服务器来统一管理2.静态/动态web静态web缺点:页面无法动态更新,无法和

2022-04-14 12:13:08 580

原创 时间复杂度

时间复杂度时间复杂度时间复杂度一、时间复杂度二、O(1)三、O(n)四、O(n^2)五、O(logn)总结一、时间复杂度使用时间复杂度O()来描述算法的性能和程序执行的效率,告诉我们们给定的算法是否可测量。二、O(1)(示例1):public class Main { public void log(int[] numbers){ //时间复杂度为O(1) System.out.println(numbers[0]); //O(1) }}

2021-11-17 20:05:06 195

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除