自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux基础命令、服务管理、yum软件包管理

Linux实用命令、服务管理、yum包管理等基础知识

2022-07-13 00:55:25 424 1

原创 15、Spring MVC 数据绑定(基本数据类型、包装类、数组、List、Map、JSON)

Spring MVC 数据绑定数据绑定:在后端的业务方法中直接获取客户端 HTTP 请求中的参数,将请求参数映射到业务方法的形参中, Spring MVC 中数据绑定的工作是由 HandlerAdapter 来完成的。基本数据类型package org.westos.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.Request

2020-12-19 22:54:13 516 1

原创 14、Spring MVC 入门、常用注解、核心组件

文章目录Spring MVC什么是MVC设计模式?Spring MVC的核心组件Spring MVC的工作流程如何使用?Spring MVC 注解Spring MVCSpring MVC是目前主流的实现MVC设计模式的企业级开发框架,Spring框架的一个子模块,无需整合Spring,开发起来更加便捷。什么是MVC设计模式?将应用程序分为Controller、Model、View三层,Controller 接收客户端请求,调用 Model 生成业务数据,传递给View。Spring MVC 就是对

2020-12-19 16:35:23 354 2

原创 13、Spring整合MyBatis的四种方式

文章目录Spring整合MyBatis整合方式一:SqlSessionTemplate整合方式二:SqlSessionDaoSupport整合方式三:MapperFactoryBean整合方式四:MapperScannerConfigurerSpring整合MyBatis整合方式一:SqlSessionTemplate项目依赖:在之前项目的框架下,新建模块spring-06,导入需要的jar。父项目<dependencies> <dependency>

2020-10-09 16:57:56 202

原创 12、AOP面向切面编程,基于xml和基于注解

文章目录AOP概述AOP底层原理AOP操作术语AOP开发准备基于xml的AOP操作前置增强和后置增强异常抛出增强最终增强环绕增强基于注解的AOP操作AOP概述在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分

2020-10-08 17:38:44 156

原创 11、Spring概述、入门案例、IOC、基于xml和注解的Bean管理

文章目录Spring概述Spring概述入门案例IOC容器IOC底层原理IOC接口BeanFactoryBean管理基于xml的Bean管理set方法注入属性有参构造器注入属性p命名空间注入属性c命名空间注入属性注入空值和特殊符号注入外部Bean注入内部Bean + 级联赋值注入数组、集合、Map属性FactoryBeanBean的作用域Bean的生命周期自动装配外部属性文件基于注解的Bean管理创建对象注入属性@Autowired + @Qualifier注入属性@Resource + @Value完全注

2020-10-07 17:04:08 229

原创 10、MyBatis的自动生成代码、PageHelper分页插件

文章目录代码生成方式一:官方jar方式二:IDEA插件及其应用(PageHelper)代码生成方式一:官方jar为了简化MyBatis的编写,官方推出了一个工具"mybatis-generator",Java编写的,通过这个工具可以生成数据库表对应的实体类、Mapper接口以及Mapper映射文件。官网:http://mybatis.org/generator/快速入门指南:http://mybatis.org/generator/quickstart.html我们这里就是使用从命令

2020-09-22 13:00:43 817

原创 4、进程的描述与控制

文章目录进程管理进程的定义和特征进程的状态与转换进程控制块PCB进程控制进程同步经典进程的同步问题进程通信线程的基本概念线程的实现方式进程管理进程的定义和特征为了能使程序并发执行,并且可以对并发执行的程序加以描述和控制,人们引入了"进程"的概念。为了使参与并发执行的每个程序(含数据)都能独立地运行,在操作系统中必须为之配置一个专门的数据结构,称为进程控制块(Process Control Block,PCB)。系统利用PCB来描述进程的基本情况和活动过程,进而控制和管理进程。这样,由程序段、数据段和

2020-09-19 13:47:41 388

原创 3、存储器管理

文章目录存储器管理程序的装入和链接连续分配存储管理方式分页存储管理方式分段存储管理方式段页式存储管理方式存储器管理程序的装入和链接程序的装入:绝对装入方式:用户程序经编译后,将产生绝对地址(物理地址)的目标代码。可重定位装入方式:对于用户程序编译所形成的若干个目标模块,它们的起始地址通常都是从0开始的,程序中的其他地址都是相对于起始地址计算的。在采用可重定位装入程序将装入模块装入内存后,会使装入模块中的所有逻辑地址与实际装入内存后的物理地址不同。通常,把在装入时对目标程序中指令和数据地址的修改

2020-09-19 13:31:56 268

原创 2、处理机调度和死锁

文章目录处理机调度和死锁处理机调度的层次作业调度进程调度死锁处理机调度和死锁处理机调度的层次处理机调度是对处理机资源进行分配。处理机调度算法是指根据处理机分配策略所规定的处理机分配算法。(1)高级调度:作业调度(2)低级调度:进程调度(3)中级调度:内存调度在上述三种调度中,进程调度的运行频率最高,因此把它称为短程调度(低级调度);作业调度往往是一批作业已运行完毕并退出系统,又需要新调入一批作业进入内存时,作业调度的周期较长,因此称为长程调度(高级调度);中级调度的运行频率基本介于上述两种之间

2020-09-18 19:20:23 296

原创 1、操作系统概述、特征、功能

文章目录操作系统概述概念目标作用特征功能运行机制操作系统概述概念负责管理协调计算机硬件、软件等计算机资源的工作,为上层用户、应用程序提供服务,是一种系统软件。目标在计算机系统上配置操作系统,其主要目标是:方便性有效性可扩充性开放性作用作为计算机系统资源的管理者(补充:进程是一个程序的执行过程。执行前需要将该程序放到内存中,才能被CPU处理)QQ进程交给CPU处理,当视频聊天时,系统分配摄像头设备给QQ进程。作为用户和计算机硬件系统之间的接口命令接口:允许用户直接使

2020-09-17 22:44:51 779

原创 8、垃圾回收器

文章目录评估GC性能指标Serial回收器:串行回收ParNew回收器:并行回收Parallel Scavenge回收器:吞吐量优先CMS回收器:低延迟G1回收器:区域化分代式GC日志分析评估GC性能指标吞吐量:运行用户代码的时间占总运行时间的比例暂停时间:执行垃圾收集时,程序的工作线程被暂停的时间;内存占用:Java堆区所占内存的大小;存在实线的是:可以搭配使用的垃圾回收器;存在虚线的是:已经废弃或者即将废弃的组合;查看默认的垃圾回收器:-XX:+PrintCommandLineFl

2020-09-17 17:01:40 125

原创 7、垃圾回收相关概念(强引用、软引用、弱引用、虚引用)

文章目录System.gc()的理解内存溢出和内存泄漏Stop The World垃圾回收的并行与并发安全点与安全区域Java中的引用强引用软引用弱引用虚引用System.gc()的理解在默认情况下,通过System.gc()或者Runtime.getRuntime().gc()的调用,会显式触发Full GC,同时对老年代和新生代进行回收,尝试释放被丢弃对象占用的内存;然而System.gc()调用附带一个免费声明,无法保证对垃圾收集器的调用;JVM实现者可以通过System.gc()调用来决定

2020-09-17 16:57:38 365

原创 6、垃圾回收概述、垃圾回收算法(可达性分析算法、标记清除算法、复制算法、标记压缩算法)

文章目录垃圾回收概述垃圾回收相关算法标记阶段:引用计数法标记阶段:可达性分析算法对象的finalization机制MAT的GC Roots溯源清除阶段:标记-清除算法清除阶段:复制算法清除阶段:标记-压缩算法小结分代收集算法增量收集算法分区算法垃圾回收概述关于垃圾收集的三个经典问题:哪些内存需要回收?什么时候回收?如何回收?什么是垃圾?垃圾是指在运行程序中没有任何指针指向的对象,这个对象就是需要被回收的垃圾。如果不及时对内存中的垃圾进行清理,那么,这些垃圾对象所占用的内存空间会一直保

2020-09-17 00:45:26 1031

原创 5、对象的实例化、内存布局、访问方式、String#intern()、字符串的拼接问题

文章目录对象的实例化对象的内存布局对象的访问定位StringString的基本特性String的内存分配字符串拼接操作intern的使用String#intern对象的实例化创建对象的步骤给对象的属性赋值的操作:1、属性的默认初始化;2、显式初始化;3、代码块中初始化;4、构造器中初始化。其中,2,3,4阶段都体现在创建对象的步骤中的第6步,执行init方法初始化。设置对象的对象头:将对象所属类(类的元数据信息)、对象的hashCode和对象的GC信息、锁信息等数据存储在对象的对象头。

2020-09-16 15:44:07 188

原创 4、运行时数据区线程共享区(方法区)

文章目录方法区栈、堆、方法区的交互关系方法区的理解设置方法区大小方法区的内部结构方法区的演进细节方法区栈、堆、方法区的交互关系方法区的理解对于HotSpotJVM而言,方法区还有一个别名,叫做Non-Heap(非堆),目的就是要和堆分开。所以,方法区看做是一块独立于Java堆的内存空间。方法区(Method Area)与Java堆一样,是各个线程共享的内存区域;方法区在JVM启动时被创建,并且它的实际的物理内存空间和Java堆区一样都可以是不连续的;方法区的大小,和堆空间一样,可以选择

2020-09-16 10:12:46 618

原创 3、运行时数据区线程共享区域(堆)

文章目录堆堆的概述堆的细分内存结构设置堆内存大小和OOM年轻代与老年代图解对象分配和回收过程Minor GC、Major GC、Full GC的对比堆空间分代思想内存分配策略为对象分配内存:TLAB堆是分配对象的唯一选择吗堆堆的概述一个JVM实例只存在一个堆内存,堆也是Java内存管理的核心区域;Java堆在JVM启动的时候即被创建,其空间大小也就确定了。是JVM管理的最大一块内存空间;堆内存的大小是可以调节的;《Java虚拟机规范》规定,堆可以处于物理上不连续的内存空间中,但是在逻辑上

2020-09-16 10:08:25 722

原创 2、运行时数据区线程私有区域(程序计数器、虚拟机栈(栈帧)、本地方法栈)

文章目录运行时数据区程序计数器虚拟机栈概述栈帧虚拟机栈的面试题本地方法栈运行时数据区不同的JVM实现对于内存的划分方式和管理机制存在部分差异,我们结合JVM虚拟机规范,来探讨经典JVM的内存布局。浅黄色为:线程私有;橙色为:线程共享。程序计数器Program Counter Register,程序计数器又称为PC寄存器。作用:PC寄存器用来存储指向下一条指令的地址,由执行引擎读取下一条指令。package org.westos.demo;/** * @author lwj * @da

2020-09-14 12:45:15 507

原创 1、类的加载过程、类的加载器、双亲委派机制、类的主动使用和被动使用

文章目录类的加载过程和类的加载器类的加载过程一、加载二、链接三、初始化类加载器一、类加载器的分类二、双亲委派机制三、双亲委派机制的优势四、类的主动使用和被动使用类的加载过程和类的加载器类的加载过程一、加载通过一个类的全限定类名获取定义此类的二进制字节流;将这个字节流所代表的静态存储结构,转换为方法区的运行时数据结构;在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口。二、链接1、验证主要包括四种验证:文件格式验证,元数据验证,字节码

2020-09-13 16:24:29 173

原创 9、MyBatis的动态SQL

文章目录动态SQLsql标签if标签where标签set标签trim标签查询更新插入foreach动态SQL动态 SQL 是 MyBatis 的强大特性之一。如果你使用过 JDBC 或其它类似的框架,你应该能理解根据不同条件拼接 SQL 语句有多痛苦,例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL,可以彻底摆脱这种痛苦。使用动态 SQL 并非一件易事,但借助可用于任何 SQL 映射语句中的强大的动态 SQL 语言,MyBatis 显著地提升了这一特性的易用

2020-09-13 11:47:18 170

原创 2、磁盘管理、进程管理、在CentOS上安装JDK、安装Tomcat

文章目录磁盘管理进程管理环境安装JDK安装Tomcat安装磁盘管理概述Linux磁盘管理好坏直接关系到整个系统的性能问题。Linux磁盘管理常用命令为 df、du。df :列出文件系统的整体磁盘使用量du:检查磁盘空间使用量dfdu查看当前目录下的磁盘空间使用情况。与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看磁盘挂载和卸载根文件系统之外的其他文件要想能够被访问,都必须通过“关联”至根文件系统上的某个目录来实现,此关联操作即为“挂载”,

2020-09-12 23:41:45 897

原创 1、Linux常用命令、目录管理、文件属性、文件内容查看、Linux硬链接与软链接、vim编辑器、用户管理和用户组管理

文章目录走进Linux系统常用的基本命令目录管理文件属性文件内容查看Linux链接Vim编辑器账号管理用户组管理走进Linux系统开机开机会启动许多程序。它们在Windows叫做"服务"(service),在Linux就叫做"守护进程"(daemon)。开机成功后,它会显示一个文本登录界面,这个界面就是我们经常看到的登录界面,在这个登录界面中会提示用户输入用户名,而用户输入的用户将作为参数传给login程序来验证用户的身份,密码是不显示的,输完回车即可!一般来说,用户的登录方式有三种:命令

2020-09-12 21:44:46 1727

原创 8、sqlSesson.getMapper(接口.class)、mapper.selectAll()的源码跟踪

文章目录跟踪sqlSession.getMapper(接口.class)跟踪mapper.selectAll()跟踪sqlSession.getMapper(接口.class)mybatis—getMapper()UserMapper mapper = sqlSession.getMapper(UserMapper.class);System.out.println(mapper);//org.apache.ibatis.binding.MapperProxy@67b92f0aJava中的代理

2020-09-12 10:13:34 978

原创 解决IDEA不能自动导入java.util.List

2020-09-11 19:14:37 2021

原创 应用层

文章目录应用层域名系统DNS域名系统概述互联网的域名结构域名服务器文件传输协议FTP概述简单文件传送协议TFTP远程终端协议万维网WWW万维网概述统一资源定位符URL超文本传送协议HTTP超文本标记语言HTML万维网的信息检索系统电子邮件电子邮件概述基于万维网的电子邮件动态主机配置协议DHCP简单网络管理协议SNMP应用进程跨越网络的通信P2P应用层应用层的具体内容就是规定应用进程在通信时所遵循的协议。域名系统DNS域名系统概述许多应用层软件经常直接使用域名系统DNS(Domain Name S

2020-09-10 12:25:27 527

原创 传输层

文章目录传输层传输层协议概述UDPTCPTCP概述Socket可靠传输的工作原理TCP报文段的首部TCP可靠传输的实现TCP的流量控制TCP拥塞控制 ※TCP的传输连接管理TCP的连接建立 ※TCP的连接释放 ※传输层传输层协议概述进程之间的通信从通信角度看,传输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层;当网络的边缘部分中的两个主机使用网络的核心部分进行端到端的通信时,只有位于网络边缘部分的主机的协议栈才有运输层,而网络核心部分中的路由器在转发分组时

2020-09-09 18:56:54 457

原创 7、一对一关联、多对多关联、设置延迟加载的全局开关、指定MyBatis所用日志的具体实现

一对一关联环境USE mybatis;CREATE TABLE IF NOT EXISTS boy ( bid INT NOT NULL AUTO_INCREMENT, bname VARCHAR(50) NOT NULL, PRIMARY KEY (bid));CREATE TABLE IF NOT EXISTS girl ( gid INT NOT NULL AUTO_INCREMENT, gname VARCHAR(50) NOT NULL, bbid INT UNIQUE,

2020-09-09 12:48:36 168

原创 6、数据库表的关系、Java对象的关系、关联查询(一对多)、延迟加载访问

文章目录关联查询、多表数据库表关系Java对象之间的关系前提条件一对多单向关联延迟加载双向关联延迟加载延迟加载中传递多个参数关联查询、多表数据库表关系表—>约束(主键约束、唯一性、非空、默认值、check约束)保证数据的准确性和完整性;多张表,表与表之间存在外键约束。外键约束,是关系型数据库典型的一个特点,是指一张表中的列参考/来源于另一张表的某个列的值。比如,学生信息表,电脑表,一台电脑属于一个学生。学生信息表,主表,父表。 电脑表,子表,外键表。学生编号 学生编号

2020-09-07 20:27:12 599

原创 5、MyBatis中的输入参数映射(@Param、Map、@MapKey)、输出参数映射resultMap标签、mapUnderscoreToCamelCase(单表下的演示)

文章目录再解输入和输出映射输入参数映射多个输入参数VO输入参数小结输出参数映射Map返回值映射@MapKeyResultMapmapUnderscoreToCamelCaseMapper代理开发模式,编程者只需要编写三项内容:model 实体类,通常一个程序只编写一次,可以编写工具一键生成。mapper接口,Javamapper映射,xmlmapper.xml,这个就是MyBatis编程核心关注的文件,尤其是mapper映射中的查询。在mapper.xml映射文件中,需要 查找sql,参数映射,

2020-09-07 13:45:21 1799

原创 4、MyBatis + Log4j日志查看Sql参数、结果集元数据、Mapper代理开发、JDK的动态代理与CGLib代理

文章目录MyBatis优化开发日志ResultSet如何转换为Java对象数据库元数据结果集元数据Fastjson基于MyBatis的DAO开发(传统)推荐mapper代理开发JDK动态代理CGLib代理MyBatis优化开发日志MyBatis在执行过程中的信息显示,尤其是SQL参数。1、增加依赖<dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId

2020-09-05 19:21:43 410

原创 版本控制介绍、Git的安装、TortoiseGit的安装、Git的文件操作、IDEA + 同步到GitHub远程仓库 | 克隆 | 分支 | 忽略文件

文章目录版本控制什么是版本控制常见的版本控制工具版本控制分类Git与SVN的主要区别Git的历史Git安装与配置TortoiseGit的安装Git基本理论Git项目搭建Git文件操作GitHub远程仓库HTTPS同步HTTPS克隆SSH同步IDEA配合GitHub网站上传项目从GitHub网站克隆项目到IDEA分支分支简介创建分支切换分支合并分支删除分支IDEA下的分支操作创建分支切换分支合并分支删除分支IDEA下的忽略文件版本控制什么是版本控制什么是版本控制? 版本迭代、新的版本!版本控制(R

2020-09-04 19:59:12 539

原创 3、JavaWeb中Service层的作用、MyBatis的重要组件、mybatis-config.xml中的别名映射、properties配置、#{}和${}的区别、获取插入数据的主键值

文章目录1、Service层的作用2、MyBatis重要组件ResourcesSqlSessionFactoryBuilderSqlSessionFactorySqlSession针对上面的点,对上次的代码进行改进3、MyBatis优化开发(mybatis-config.xml)配置properties别名typeAlias映射文件mapper4、#{} 和 ${}#{}${}5、插入数据并返回数据库中的主键值1、Service层的作用MVC = Jsp + Servlet + JavaBean其中j

2020-09-04 13:10:50 778

原创 2、Maven + Junit测试单个@Test方法

Junit在包含多个@Test的测试方法中执行一个测试方法。1、Maven设置跳过测试2、点击方法左侧的按钮这样就不会执行上面的insert测试方法。

2020-09-03 23:51:40 432

原创 1、MyBatis框架入门学习CRUD

文章目录框架前言名词辨析JavaWeb阶段回顾框架介绍ORM框架MyBatis简介MyBatis入门案例1、环境准备2、新建普通Maven项目,导入依赖3、MyBatis核心配置文件4、POJO类Account对应数据表account5、Mapper映射文件6、Junit测试7、根据id查询8、增9、改10、删11、mapper.xml放在resources目录下框架前言名词辨析技术、组件、框架、系统技术:解决某一类问题的方法和手段,jdbc技术,jsp技术组件:应用程序中可以复用的“零件”(封

2020-09-02 11:14:22 234

原创 网络层

文章目录网络层网络层提供的两种服务网际协议IPIP地址ARP协议IP数据报的格式路由表划分子网和构造超网划分子网无分类编址CIDR和构造超网网际控制报文协议ICMP互联网的路由选择协议内部网关协议RIP内部网关协议OSPF外部网关协议BGP路由器的结构网络地址转换NAT虚拟专用网络VPN网络层网络层提供的两种服务在计算机领域,网络层应该向运输层提供提供怎样的服务(面向连接 还是 无连接),曾引起了长期的争论;争论焦点的实质就是:在计算机通信中,可靠交付应当由谁来负责?是网络,还是端系统?面向连

2020-08-31 15:09:54 816

原创 16、Filter、Listener

文章目录FilterListenerFilterFilter:过滤器,用来过滤网站的请求。处理中文乱码(截止目前我们都是在每个Servlet上处理POST请求的中文乱码,和Response响应的中文乱码)坏的请求等创建一个Maven的Web项目。pom.xml<dependencies> <dependency> <groupId>javax.servlet</groupId> <artifact

2020-08-27 20:26:24 118

原创 15、Maven的scope属性、多模块开发、集中管理依赖版本---properties标签

文章目录Maven依赖范围的介绍Maven模块开发创建父工程创建Web模块创建Service模块创建Dao模块聚合三个模块编写查询,连接三个模块集中管理依赖版本 ※Maven依赖范围的介绍添加jar包的坐标时,还可以指定这个jar包将来的作用范围:依赖范围包括:1、compile编译范围,默认依赖范围。编译范围的依赖会用在编译、测试、运行,由于运行时需要,所以该依赖会被打包。2、providedprovided依赖只有当容器已提供该依赖之后才能使用,比如Tomcat容器提供了servlet和

2020-08-27 16:11:52 412

原创 14、Maven项目管理工具、setting.xml、Maven下的简易本地项目(Druid + DBUtils + Lombok)和Web项目(JSTL)

文章目录0、Maven简介1、下载解压2、setting.xml3、Maven项目工程目录1、本地项目2、Maven下的Druid + DBUtils 查询数据库(Lombok)3、Web项目0、Maven简介Maven是Apache下的一个纯Java开发的开源项目,是一款项目管理工具,使用Maven对Java项目进行构建、依赖管理。项目构建是一个项目从编写源代码到编译、测试、运行、打包、部署的过程。Maven项目的依赖管理所依赖的jar包不需要手动向工程添加jar,只需要在pom.xml(mave

2020-08-26 11:23:54 334

原创 13、文件上传和下载、UUID、注解案例

文章目录文件的上传和下载文件上传UUID文件下载注解代替jdbc.properties文件的上传和下载文件上传在JavaWeb阶段的文件上传我们需要借助Apache下的commons-io和commons-fileupload两个jar包。上传文件的前台页面:<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head> <title>上传文件&l

2020-08-26 11:10:43 1267

原创 Java中的栈、队列、双端队列、哈希表常用方法

文章目录1、栈2、队列3、双端队列4、哈希表1、栈Stack是一个类,继承Vector类,无参构造。publicclass Stack<E> extends Vector<E> { /** * Creates an empty Stack. */ public Stack() { }}栈数据结构一般用于树的先序、中序、后序遍历,虽然后序没有写过迭代版,但是中序和先序的遍历都是用栈这种数据结构实现的。由于Stack类继承自Ve

2020-08-24 23:27:58 631

空空如也

空空如也

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

TA关注的人

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