自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 认识JVM的内存模型

从上一节了解到整个JVM大的内存区域,分为线程共享的heap(堆),MethodArea(方法区),和线程独享的 The pc Register(程序计数器)、Java Virtual Machine Stacks(Java虚拟机栈)、Native Method Stacks(本地方法栈),如下图同时也大概了解到各个内存区域主要存储的数据类型,根据之前的了解,明白了作为开发者要关注的是堆、方法区和Java虚拟机栈,先从Java虚拟机栈开始。

2023-09-02 23:41:49 569 1

原创 从执行class文件开始认识JVM

编写好的java文件经过javac编译成class文件,使用java命令执行对应得我class文件,这时候jvm开始运行首先,jvm需要将class文件装载进入内存空间(类加载机制)在内存中分配空间(认识JVM运行时数据区)

2023-09-01 21:16:26 507

原创 代理模式

代理模式总结代理模式核心作用就是通过代理对象实现对核心对象使用的控制设计思路:定义一个抽象角色,让代理角色和真实角色分别去实现它真实角色—实现抽象角色,定义核心业务逻辑,供代理角色调用。它只关注核心业务逻辑,比如具体的计算逻辑代理角色—实现抽象角色,是真实角色的代理,通过调用真实角色的业务逻辑方法,实现对真实角色访问的控制,比如报文中的一些格式化内容代理模式分为静态代理和动态代理两种,静态代理是我们自己编写代理类,动态代理是程序运行中动态产生代理类静态代理静态代理实现代码// 定义抽象角色

2021-02-17 15:41:38 132

原创 02工厂模式

工厂模式实例化对象,用工厂方法代替new操作将选择实现类、创建对象统一管理和控制,从而将调用者和实现类解耦简单工厂模式用来生产同一等级结构中的任意产品,对于新增产品需要修改代码工厂方法模式用来生产同一等级结构中的固定产品,支持新增任意产品抽象工厂模式用于生产不同产品族的全部产品,无法新增产品,可以新增产品族简单工厂// 汽车接口public interface Car { void run();}// 两个实现类public class Byd

2021-02-06 21:48:59 119

原创 01单例模式

单例模式有五种实现方式饿汉式–线程安全,调用效率高,不能延迟加载懒汉式–线程安全,调用效率低,可以延迟加载双重检测锁–线程安全,同时具备调用效率高和可以延迟加载的优点,但是由于底层原因,偶尔会出现问题,不建议使用静态内部类–线程安全,调用效率高,同时可以延迟加载枚举类–线程安全,调用效率高,不支持延迟加载/** * 饿汉式 */public class SingletonDemo1 { // 构造器私有化 private SingletonDemo1() { }

2021-01-10 22:17:31 128

原创 Spring-mybatis 结合实现登录

首先准备数据库:CREATE TABLE `admin` ( `id` int(5) NOT NULL AUTO_INCREMENT, `uname` varchar(55) DEFAULT NULL, `pwd` varchar(55) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=4 DEFA...

2020-03-28 22:22:53 305

原创 JSTL标签

JSTL在百度百科中的定义:JSTL(Java server pages standarded tag library,即JSP标准标签库)是由JCP(Java community Proces)所制定的标准规范,它主要提供给Java Web开发人员一个标准通用的标签库,并由Apache的Jakarta小组来维护。开发人员可以利用这些标签取代JSP页面上的Java代码,从而提高程序的可读性,降...

2020-02-04 23:03:52 104

原创 EL表达式

EL表达式:${要取的变量名} 通过此获取作用域对象的值只能获取作用域对象的值可以获取普通变量、list(通过下标)、map(.key)、对象(.属性名)的数据<% request.setAttribute("name", "张三"); List list = new ArrayList(); list.add("list-0"); list....

2020-02-03 17:02:25 106

原创 JSP编译器指令

编译器指令一共有三个,在页面中<%@ 指令名称 %>page 指令属性:contentType 设置页面响应类型pageEncoding 设置页面的字符集import 为页面中java代码导包,可以用逗号分隔不同的包(不建议这种方式)session 是否在访问jsp时就创建session对象,默认是trueerrorPage 当服务器异常时跳转的页面isELIgn...

2020-02-02 22:19:11 200

原创 JSP语法

一、 jsp注释<%--这里写jsp注释,该注释不会生成到对应的java文件中--%><!--这里是HTML注释,会生成到对应的java文件中并被编译-->二、 jsp脚本段<% %>用于写java代码,该脚本段会生成在对应的servlet的service方法中,所以应注意符合java代码规范三、 jsp声明<%! %>用于写java代码...

2020-02-02 16:04:52 104

原创 jsp的运行流程

首先jsp就是一个servlet,看下Tomcat下的web.xml(注意不是项目中的)有这么一段配置对应的mapping如下所以所有以*.jsp 和 *.jspx 结尾的请求都会到 JspServlet 下,执行对应的 service 方法,通过执行该servlet对应的方法后会根据 jsp 文件生成一个 _jsp.java的文件,通过虚拟机编译成.class文件,打开对应的java文件...

2020-02-01 09:35:23 501

原创 请求转发和重定向

请求转发:服务器将对应的请求转发给对应的另一个servlet执行,使用的代码是request.getRequestDispatcher("s1").forward(request.response);重定向服务器响应请求,告诉浏览器发送请求给对应的地址,使用的代码是response.sendRedirect("s1");请求转发和重定向的区别 请求转发 重定向...

2020-01-30 16:48:33 80

原创 HttpServletResponse对象

Servlet中的HttpServletResponse对象封装了服务器端响应给客户端的信息,包括:状态行 包括协议版本、状态码、状态描述 由Tomcat服务器作响应,不需设置应答头 留意 content-type 即可响应实体 用流写出给客户端查询API可以获取相应的方法Demo如下:package cn.berger.servlet;import javax.servlet...

2020-01-29 22:12:23 160

原创 HttpServletRequest对象

Servlet中的HttpServletRequest对象封装了客户端发起的请求信息,包括:请求行请求头请求实体网络相关信息查询API可以获取相应的方法获取请求行和请求头的demo:package cn.berger.servlet;import javax.servlet.ServletException;import javax.servlet.http.HttpSer...

2020-01-29 15:58:59 97

原创 servlet生命周期

了解了servlet的运行流程后,要讲一下servlet的生命周期,包括三个阶段:初始化运行销毁初始化 init方法 执行一次servllet的初始化就是将对应的类实例化并调用其init方法,仅执行一次,有两种初始化方案在服务器启动时执行(需要在web.xml中对应的servlet下增加 load-start-up标签来标注启动的顺序)在调用对应的servlet时执行...

2020-01-19 22:51:04 139

原创 servlet的运行流程及在IDEA的第一个web项目

什么是servlet先看一下百度百科的定义:Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人...

2020-01-12 20:56:13 969

转载 Spring中Bean的生命周期

Bean的生命周期主要包括三个阶段:容器初始化实例化beanbean的销毁容器初始化阶段该阶段主要看是否是实现BeanFactoryPostProcessor接口,该接口是IOC容器的后置处理器,通过该接口中的postProcessBeanFactory方法可以修改Bean中的元数据信息,在实例化对象之前执行Bean初始化阶段通过实现InstantiationAwareBean...

2019-08-29 00:03:53 136

原创 mysql事务隔离级别

面试官问:mysql的事务隔离级别有哪些?答:读未提交,读已提交,可重复读,串行化再问:他们的区别是什么,会发生什么?答:读未提交隔离级别最低,脏读,不可重复读,幻读都有可能出现(脏读:读取到尚未提交的数据;不可重复读:两次分别读取到事务提交前后的数据,造成两次读取的数据不一致;幻读:针对数据量,读取前后中间事务插入或删除数据,造成两次读取数据量不一致)读已提交,会造成不可重复读,即事...

2019-08-21 19:08:23 160

转载 SpringMVC常用注解详解

1、@Controller在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ,然后再把该Model 返回给对应的View 进行展示。@Controller 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象。分发处理器将会扫描使用了该...

2019-08-20 11:28:57 111

转载 常用的SQL优化办法有哪些

数据库优化的几个方面SQL以及索引的优化是最重要的。要根据一些范式来进行表结构的设计。系统配置的优化。硬件优化。sql语句的优化可以通过打开Mysql中的慢查询日志来定位有问题的sql语句慢查询日志相关内容:https://www.cnblogs.com/kerrycode/p/5593204.html慢查询日志主要分为5部分,第一部分是慢查询时间,第二部分是慢查询的来源主机和...

2019-08-15 20:54:05 1802

原创 谈谈对spring的理解

spring核心内容一说起来就是IOC和AOP两大功能,大概是这样:IOC控制反转,就是将本来自己要创建和维护的对象,交给容器去管理,将程序员从不同对象之间的复杂的依赖关系中解放出来了操作上来说,就是将bean注册进容器,需要时从容器中获取,而不用自己去newAOP面向切面编程,一般用来解决一些交叉的业务,比如打印日志,事务等。AOP将要交叉的业务模块化,把本来要写在程序内的一些重复代码...

2019-08-11 17:25:06 203

原创 讲一下arraylist,数组,linkedlist的底层区别

数组数组是相同类型数据的有序的集合,有三个基本特点长度固定,一旦创建,长度就不会发生改变元素是相同数据类型的元素可以是基本类型也可以是引用类型数组内的元素可以通过下标快速的实现查询和修改,但插入数据和删除数据相对就会比较慢ArrayListArrayList底层数据结构还是数组,通过下标索引可以快速的实现查询和修改,插入和删除相对较慢ArrayList可以实现动态扩容,不像数组...

2019-08-08 00:09:52 872 1

原创 数组去重

给你一个数组怎么去重假设不用工具类,直接使用循环去重:用到的思想是选择排序public static int[] removeDuplication(int [] arrayA){ for (int i = 0; i < arrayA.length-1; i++) { for (int j = i+1; j < arrayA.length; j++) {...

2019-08-07 19:18:11 97

原创 HashMap与HashTable

HashMap和HashTable都实现了Map接口在API文档中有这样一段描述The HashMap class is roughly equivalent to Hashtable, except that it is unsynchronized and permits nulls.就是说HashMap大致上和HashTable大致相同,除了HashMap是不同步的,并且允许空值...

2019-08-07 19:12:50 127

原创 谈谈final关键字

final关键字可以用于修饰类、变量、方法修饰类该类不能被继承,自然地该类的方法也不能被重写abstract修饰的抽象类就是要被继承的,所以抽象类不能被final修饰修饰方法该方法不能被重写,同样的abstract修饰的方法不能被final修饰修饰变量被final修饰的变量成为常量,常量赋值后不能被修改可以直接在声明时赋值或在构造方法中为其赋值(注意所有重载的构造方法都必须为该常量...

2019-08-06 20:37:51 85

原创 SpringIOC&SpringAOP知识点总结

2019-07-11 19:46:35 190

原创 HTTP协议

HTTP协议的概念协议是指计算机通信网络中两台计算机之间进行通信必须共同遵守的规定或规则,HTTP协议又叫做超文本传输协议,它允许将超文本标记语言(HTML)文档从web服务器发送到客户端的浏览器。web服务器、浏览器、代理服务器...

2019-06-01 20:47:01 150

原创 事件概念和事件绑定

事件的概念就和数据库中的触发器一样,当操作了数据的时候回引发对应的触发器程序的执行,JS中的世间就是对用户的特定行为做出相应的响应的过程,其实就是浏览器监听到用户的特定行为时会执行对应的绑定程序。事件的绑定在html元素上将触发事件的行为和事件相应的程序相关联起来的过程就叫做事件的绑定DEMO:绑定函数(一个单击事件)html文件<!DOCTYPE html><ht...

2019-05-30 19:48:18 244

原创 js创建对象的三种方式

js中有document、conconsole等已经提供好可以直接使用的内置对象,除了内置对象,我们还可以自己创建需要的对象JS中创建对象常见的有三种方式:字面量创建对象直接使用 var 对象名={} 的方式创建为对象属性赋值使用 属性名:属性值 的方式实现原始构造函数创建对象先试用 new 关键字创建对象完毕后在位对象属性赋值或者指定函数自定义构造函数创建对象可以自定义一个构造...

2019-05-30 19:16:31 416

原创 html行内元素和块级元素

html行内元素和块级元素行内元素和块级元素文档流概念行内元素和块级元素html标签也可以叫做元素,比如<h1>就是一个元素,html的元素分为块级元素和行内元素常见块级元素:div、 p、 h1~h6、 ui、 ol、 dl、 li、 dd、 table、 hr、 blockquote、 address、 menu、 pre常见行内元素:span、 img、a、 i...

2019-05-29 16:46:15 569

原创 JavaScript函数及隐式转换

JavaScript函数概念与Java中方法类似,也是将一些代码进行封装,之后再需要的地方直接使用函数的名称进行调用,解决了重复代码的问题js中函数的声明使用function进行声明声明的时候没有定义返回值参数没有指定类型,直接给出参数名称返回值根据需求,可有可无function 函数名(参数1,参数2...){ //js代码 [return 返回的数据]}eg:fu...

2019-05-29 11:42:03 719

原创 JavaScript基本概念

JavaScript基本概念基本语法要求使用结构基本语法要求严格区分大小写标识符起名要求和Java一致,第一个位置可以是字母、下划线、美元符号,其他位置可以是字母、下划线、美元符号、数字变量是声明来保存数据的内存空间,使用 var 关键字声明,可以声明的同时赋值,也可以先声明后赋值JavaScript的基本数据类型undefined 一个没赋值的变量string 字符串类型num...

2019-05-29 11:17:44 143

原创 HTML常用标签

HTML常用标签清单列表标签表格标记表单标签清单列表标签清单列表标签有序清单标签为<ol></ol>,无序清单标签为<ul></ul>清单之间还需要嵌套清单列表项<li>可以为有序清单的序号指定字母或罗马数字,需要在标签中增加对应的属性和属性值<ol type="A"> 、<ol type="a">、&...

2019-05-28 20:18:37 991

原创 MVC编程模式

MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式:Model(模型)表示应用程序核心(比如数据库记录列表)。View(视图)显示数据(数据库记录)。Controller(控制器)处理输入(写入数据库记录)。MVC 模式同时提供了对 HTML、CSS 和 JavaScript 的完全控制。Model(模型) ...

2019-05-27 21:10:57 143

原创 JDBC 获取自增长的主键值

Oracle中通过序列实现主键的自增长,方法如下:--删除序列DROP SQUENCE 序列名--创建序列CREATE SQUENCT 序列名 [INCREMENT BY 步长 START WITH 起始值]--使用序列INSERT INTO emp(empno,ename,job) VALUES(序列名.nextval,'张三','总裁');MySQL中实现自增长的方式如下:C...

2019-05-25 11:54:24 617 1

原创 MySQL的JDBC连接

MySQL的JDBC连接MySQL的JDBC概念MySQL的JDBCJDBC添加数据封装连接工具更新数据和事务删除数据查询数据MySQL的JDBC概念JDBC 是 Java Database Connective的缩写,表示使用Java去连接数据库进行数据操作的过程MySQL的JDBC创建动态项目-以eclipse为例,首先要创建动态项目连接开发包(在www.mvnrepositor...

2019-05-24 19:12:40 24248 2

原创 PL/SQL

PL/SQLPL/SQL的基本概念第一个PL/SQL程序输出helloword定义变量根据员工编号查询员工名称(员工编号要键盘输入)PL/SQL中的控制语句可以设置常量可以使用`%TYPE`定义变量的类型使用`%ROWTYPE`声明变量IF语句IF ELSE多重IF 语句存储过程创建存储过程带参的存储过程存储过程的输入和输出参数触发器语句级触发器行级触发器PL/SQL的基本概念PL/SQL也是...

2019-05-23 20:57:56 154

原创 SQL语法-序列

一般情况下,每张数据表都会有一个字段作为数据的唯一区分标志,且该字段的数据不能重复,这个字段叫做数据表的主键,之前在数据表中插入数据需要手动处理,确保主键的唯一性,现在可以通过使用序列实现主键的自增长基本语法--删除序列DROP SEQUENCE 序列名称--创建序列CREATE SEQUENCE 序列名称--使用序列INSERT INTO myemp(empno, ename, j...

2019-05-23 18:47:57 521

原创 SQL基础语法-事务

事务事务的概念多用户下死锁事务的四大特性隔离性事务的概念多用户下死锁事务的四大特性事务的四大特性有:原子性(Atomicity): 一个事务的操作要么全部成功要么全部失败一致性(Consistency): 保持数据的逻辑一致,符合原子性不一定符合一致性,如转账增加的钱与减少的钱不一致隔离性(Isolation): 多个用户并发操作同一数据时,数据库为每一个用户开的事务上锁,达到隔离...

2019-05-20 17:43:36 1192

原创 SQL基础语法-增删改

SQL增删改复制一张表增加数据删除数据更新数据复制一张表CREATE TABLE myemp SELECT * FROM emp;增加数据方法一:后面的值要与前面的字段名保持一致INSERT INTO 数据表名(字段名1,字段名2...) VALUES(值1,值2)方法二:不写字段名,表中字段需要全部赋值,与表中字段顺序对应一致即可(不常用)INSERT INTO 数据表名 VA...

2019-05-20 14:53:53 125

空空如也

空空如也

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

TA关注的人

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