自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MySQL中的各种查询

文章目录MySQL中的各种查询基础查询条件查询排序查询常见函数查询分组查询连接查询内连接外连接交叉连接子查询联合查询MySQL中的各种查询基础查询条件查询#语法:select 查询列表 from 表名 where 筛选条件;#分类:# 一.按条件表达式筛选,条件运算符:> < = != <> >= <=# 二.按逻辑表达式筛选,逻辑运算符:&& || ! and or not# 三.模糊查询:like betwee

2021-05-28 11:37:17 2202 3

原创 mysql中的视图

文章目录mysql中的视图创建视图并查看视图中的数据查看视图结构插入数据到视图中更新视图中的数据删除视图中的数据删除视图mysql中的视图创建视图并查看视图中的数据#创建视图create view 视图名 assql查询语句;#查看视图数据select * from 视图名查看视图结构#查看视图结构# desc 视图名; 此命令查看的视图结构不是很详细,不能够显示出视图对应的sql语句# show create view 视图名; 此命令查看的视图结构很详细,可以显

2021-05-27 19:07:53 3019 1

原创 DML数据操纵语言

文章目录DML数据操纵语言修改表中的某一行的数据往表中插入数据删除表中的数据DML数据操纵语言DML是Data Manipulation Language的缩写,意思是数据操作语言。修改表中的某一行的数据# 修改表中的某一行的数据# update 表名 set 列名=新值,列名=新值.... where 筛选条件;往表中插入数据# 往表中插入数据# insert 表名(列名1,...) values(值1,...),(值1,...)....;#如果是插入全部列数据,则表名后面的(列名1

2021-05-27 11:15:07 500 1

原创 DDL数据定义语言

文章目录DDL(Data Definition Language)数据定义语言数据库的管理表的管理表的创建表的删除表的复制表的修改DDL(Data Definition Language)数据定义语言DDL其实是Data Definition Language的缩写,意思就是数据定义语言。数据库的管理#创建一个数据库# create database 数据库名; 此命令可以创建一个数据库# create database 数据库名 character set utf8; 创建一个字符集是

2021-05-27 10:42:23 2579 5

原创 mysql中怎样创建函数?

文章目录mysql中怎样创建函数?函数的参数列表通过mysql服务器创建函数通过SQLyog客户端创建函数mysql中怎样创建函数?创建函数有两种方式,一种是通过mysql服务器端创建,另外一种是通过SQLyog客户端创建;函数的参数列表# 参数列表包括两部分 参数名 参数类型通过mysql服务器创建函数先来看第一种方式,首先进入mysql服务器端窗口,如下图:然后选择一个数据库,我这里选择的是zhaobo数据库,如下图:创建函数的代码如下:delimiter $$cre

2021-05-26 18:34:48 17172 6

原创 mysql中怎么创建存储过程?

文章目录mysql中怎么创建存储过程?存储过程的参数列表通过mysql服务器创建存储过程通过SQLyog客户端创建存储过程mysql中怎么创建存储过程?创建存储过程有两种方式,一种是通过mysql服务器端创建,另外一种是通过SQLyog客户端创建;存储过程的参数列表# 参数列表包含三部分 参数模式 参数名 参数类型#举例 in stuname varchar(20)# in参数模式:被该模式修饰的参数可以作为输入参数,也就是该参数需要调用的传入值# out参数模式:被该模式修饰的参数

2021-05-26 17:35:44 28314 7

原创 深入理解CAS

文章目录深入理解CASCAS的定义CAS的例子使用CAS实现一个线程安全的计数器CAS中的ABA问题深入理解CASCAS的定义CAS是英文单词Compare And Swap的缩写,翻译过来就是比较并替换。CAS机制当中使用了3个基本操作数:内存地址V,旧的预期值A,要修改的新值B。更新一个变量的时候,只有当变量的预期值A和内存地址V当中的实际值相同时,才会将内存地址V对应的值修改为B。这样说或许有些抽象,我们来看一个例子:CAS的例子1.在内存地址V当中,存储着值为10的变量。2.此时

2021-05-25 20:11:02 802 3

原创 想要理解volatile关键字,你只需要掌握它的这三个特点

文章目录想要理解volatile关键字,你只需要掌握它的这三个特点volatile关键字可以保证被修饰变量的可见性volatile不能保证修饰变量的原子性volatile可以避免指令重排想要理解volatile关键字,你只需要掌握它的这三个特点volatile关键字可以保证被修饰变量的可见性要想理解volatile关键字,得先了解下JAVA的内存模型,Java内存模型的抽象示意图如下:从图中可以看出每一个线程,都有一个本地内存,操作共享变量的时候,线程执行时,会先把主内存中的共享变量拷贝一份到每一

2021-05-24 21:00:27 298 1

原创 多线程中的经典例题---卖票

文章目录多线程中的经典例题---卖票使用Runnable接口创建线程使用Thread线程类的子类创建对象多线程中的经典例题—卖票使用Runnable接口创建线程使用Runnable接口创建线程的时候,可以直接创建一个接口,然后实现内部的run方法,最后让接口对象作为Thread线程类的构造器的一个参数;也可以写一个Runnable接口的实现类,然后实现Runnable接口内部的run方法,然后让这个实现类作为Thread线程类的构造器的一个参数,其实也即是间接的让Runnable接口作为Thread线

2021-05-24 15:37:18 800

原创 两个线程频繁进行上下文切换引发的线程安全问题分析以及使用synchronized关键字的解决方案

文章目录两个线程频繁进行上下文切换引发的线程安全问题分析以及使用synchronized关键字的解决方案线程安全问题的例子线程安全问题的解决synchronized关键字不加在方法上synchronized关键字加到方法上两个线程频繁进行上下文切换引发的线程安全问题分析以及使用synchronized关键字的解决方案线程安全问题的例子两个线程频繁进行上下文切换,如果这个过程中,这两个线程共用了同一个资源,这里是counter静态变量,那么就可能会出现线程安全问题,如下图:以上的结果可能是正数,负数

2021-05-24 09:52:23 734 2

原创 临界区与竞态条件

临界区与竞态条件一个程序运行多个线程本身是没有问题的问题出在多个线程访问共享资源多个线程读共享资源其实也没有问题在多个线程对共享资源读写操作时发生指令交错,就会出现问题一段代码内存在共享资源,并且多个线程可以对这部分共享资源进行读写操作,那么这段代码的区域就叫做临界区,如下:static int counter=0;static void increment()//临界区{ counter++;}//临界区static void decrement(){ counter-

2021-05-24 09:49:13 211

原创 守护线程

守护线程默认情况下,Java进程需要等待所有线程都运行结束,才会结束,有一种特殊的线程叫做守护线程,只要其它非守护线程运行结束了,即使守护线程的代码没有执行完,守护线程也会强制结束,如下图:垃圾回收器就是一种守护线程,当程序停止了,垃圾回收器也会强制停止。...

2021-05-23 11:36:18 94

原创 线程优先级

线程优先级线程优先级会提示调度器优先调度该线程,但它仅仅是一个提示,调度器可以忽略它,具体的实现依赖于操作系统的任务调度器如果cpu比较忙,那么优先级高的线程会获得更多的时间片,但cpu闲时,优先级几乎没作用...

2021-05-23 11:34:48 85

原创 多线程中一些常见方法和一些不推荐使用的方法

文章目录多线程中一些常见方法和一些不推荐使用的方法多线程中一些常见方法不推荐使用的方法多线程中一些常见方法和一些不推荐使用的方法多线程中一些常见方法start():启动一个新线程,在新的线程运行run方法中的代码,start方法只是让线程进入就绪状态,里面的代码不一定立刻运行(CPU的时间片还没分给它),每个线程对象的start方法只能调用一次,如果调用了多次会出现IllegalThreadStateExceptionrun():新线程启动后会调用的方法,如果在构造Thread对象时传递了Runna

2021-05-23 11:33:45 316

原创 线程上下文切换(Thread Context Switch)

线程上下文切换(Thread Context Switch)因为以下一些原因导致cpu不再执行当前的线程,转而执行另一个线程的代码。发生的原因,有如下几个:1.线程的cpu时间片用完2.垃圾回收3.有更高优先级的线程需要运行,4.线程自己调用了sleep,yield,wait,join,park,sychronized,lock等方法当Context Switch发生时,需要由操作系统保存当前线程的状态,并恢复另一个线程的状态,Java中对应的概念就是程序计数器(Program Counter

2021-05-23 11:20:10 771

原创 异步调用和创建线程

异步调用和创建线程异步调用从方法调用的角度来讲,如果:需要等待结果返回,才能继续运行就是同步不需要等待结果返回,就能继续运行就是异步注意:同步在多线程中还有另外一层意思,就是让多个线程步调一致设计:多线程可以让方法执行变为异步的(即不要巴巴干等着)比如说读取磁盘文件时,假设读取操作花费了5秒钟,如果没有线程调度机制,这5秒调用者什么都做不了,其代码都得暂停结论:比如在项目中,视频文件需要转换格式等操作比较费时,这时开一个新线程处理视频转换,避免阻塞主线程tomcat的异步servlet也

2021-05-21 17:15:03 658

原创 进程与线程概念和并行与并发概念

文章目录进程与线程概念和并行与并发概念进程与线程概念并行与并发概念进程与线程概念和并行与并发概念进程与线程概念进程:进程其实就相当于运行程序的一个实例,比如说运行记事本,这时就相当于是运行一个进程。有的程序可以运行多个进程实例,比如说记事本,你可以打开多个记事本;而有的程序只能运行一个进程实例,比如说网易云,你只能打开一个网易云音乐。线程:线程存在于进程里面,一个进程可以有多个线程,每个线程其实内部都是由多条指令组成的,是一个指令流,指令流中的一条条指令以一定的顺序交给CPU执行。并行与并发概念

2021-05-19 17:55:26 207 6

原创 JVM中的GC垃圾回收

文章目录JVM中的GC垃圾回收什么是GC,为什么需要GC早期的垃圾回收行为Java自动内存管理介绍垃圾回收的相关算法标记阶段:引用计数算法引用计数算法的原理引用计数算法的优缺点标记阶段:可达性分析算法GC Roots清除阶段:标记-清除算法清除阶段:复制算法清除阶段:标记-压缩(或标记-整理,Mark-Compact)算法JVM中的GC垃圾回收什么是GC,为什么需要GC什么是垃圾?垃圾是指在运行程序中没有任何指针指向的对象,这个对象就是需要被回收的垃圾。为什么需要GC?如果不及时的对垃圾进行清理

2021-05-19 15:47:54 1572 9

原创 面试中必须要掌握的String字符串的知识点

文章目录面试中必须要掌握的String字符串的知识点String的基本特性String底层Hashtable结构的说明String的内存分配String字符串拼接操作字符串拼接的时候(只要有一方是字符串变量)---它的操作的底层原理String字符串拼接操作与StringBuilder的append方法追加字符串操作的效率对比new String()到底创建了几个对象intern()方法的使用面试中必须要掌握的String字符串的知识点String的基本特性1.String:字符串,使用一对""引起来

2021-05-18 16:06:38 2905 20

原创 java.util.Arrays操作数组的工具类的基本用法

java.util.Arrays操作数组的工具类的基本用法java.util.Arrays是操作数组的工具类,里面定义了很多操作数组的方法,可以操作各种类型的数组,这个工具类的简单使用,如下图:

2021-05-16 21:27:50 359

原创 JVM中的方法区

文章目录JVM中的方法区运行时数据区结构图栈堆方法区的交互关系方法区在哪里?方法区的基本理解Hotspot中方法区的演进设置方法区大小与OOMjdk7及以前:jdk8及以后:方法区的内部结构.class字节码文件中常量池方法区中的运行时常量池方法区在jdk6,jdk7,jdk8中的演进细节永久代为什么要被元空间替换?StringTable字符串常量池为什么要从永久代调整到堆中?静态变量存在哪?方法区的垃圾收集JVM中的方法区运行时数据区结构图运行时数据区结构图,如下图:从线程共享与否的角度来看,如

2021-05-16 18:39:14 2393

原创 一篇文章帮你搞定JVM中的堆

文章目录一篇文章帮你搞定JVM中的堆堆的核心概述堆的内存细分设置堆内存大小与OOMOOM(OutOfMemory)举例年轻代与老年代图解对象分配过程MinorGC,MajorGC,FullGC堆空间分代思想内存分配策略为对象分配内存:TLAB(Thread Local Allocation Buffer)堆是分配对象的唯一选择吗逃逸分析概述对象如果没有逃逸---代码优化之栈上分配对象如果没有逃逸---代码优化之同步省略对象如果没有逃逸---代码优化之标量替换一篇文章帮你搞定JVM中的堆堆的核心概述1.

2021-05-15 12:19:52 541 2

原创 方法中定义的局部变量是否为线程安全的?

方法中定义的局部变量是否为线程安全的?具体问题,具体分析。比如我们就拿StringBuilder来分析吧,首先你需要明白:StringBuilder和StringBuffer都是可变的,但是StringBuffer是线程安全的,而StringBuilder是线程不安全的。为什么呢?如下图:而StringBuilder内部没有使用同步机制,是线程不安全的。局部变量怎么区分是不是线程安全?如果只有一个线程操作局部变量,那么这个局部变量一定是线程安全的;如果有多个线程操作一个局部变量,这个局部变量此时

2021-05-12 22:51:43 2821 9

原创 一篇文章帮你搞定JVM中的虚拟机栈

文章目录一篇文章帮你搞定JVM中的虚拟机栈虚拟机栈的概述虚拟机栈的常见异常与如何设置栈大小栈中可能会出现的异常设置栈内存大小栈的存储结构和运行原理栈中存储什么?栈运行原理栈帧的内部结构栈帧存储内容局部变量表(Local Variables)方法对应的字节码的内部结构的剖析关于Slot的理解操作数栈(Operand Stack)操作数栈的特点涉及操作数栈的字节码指令执行分析---代码追踪动态链接(或指向运行时常量池的方法引用)的理解与常量池的作用方法返回地址(Return Address)栈的相关面试题一篇

2021-05-12 21:55:52 709 18

原创 深入理解JVM的PC寄存器(Program Counter Register)

文章目录深入理解JVM的PC寄存器(Program Counter Register)PC寄存器概念用一个程序演示PC寄存器两个常见问题深入理解JVM的PC寄存器(Program Counter Register)PC寄存器概念作用:PC寄存器用来存储指向下一条指令的地址,也即将要执行的指令代码。由执行引擎读取下一条指令。PC寄存器的流程图,如下图:1.它是一块很小的内存空间,几乎可以忽略不计。也是运行速度最快的存储区域。2.在JVM规范中,每个线程都有它自己的程序计数器,是线程私有的,生命周

2021-05-10 18:21:31 1416 4

原创 通过IDEA设置堆内存空间

文章目录通过IDEA设置堆内存空间编写两个可以导致线程阻塞的类并配置堆内存参数启动类在jvisualvm.exe中查看堆内存分配情况通过IDEA设置堆内存空间编写两个可以导致线程阻塞的类并配置堆内存参数首先需要注意的点:必须要是线程阻塞的类,在jvisualvm.exe程序里面才能够加载这个类的具体信息,jvisualvm.exe后面会提到。编写两个类,类的main方法,代表两个线程,类具体代码如下图:HeapDemo.java类的代码如下图:HeapDemo3.java类的代码如下图:然

2021-05-10 12:34:49 14232 7

原创 JVM中的本地接口Native Interface和本地方法栈Native Method Stack

文章目录JVM中的本地接口Native Interface和本地方法栈Native Method Stack本地接口和本地方法栈在JVM中的位置本地接口本地方法栈Native Method Stack本地方法库JVM中的本地接口Native Interface和本地方法栈Native Method Stack本地接口和本地方法栈在JVM中的位置首先来看一下本地接口Native Interface,本地方法栈Native Method Stack,和本地方法库在JVM中的位置,如下图:本地接口本地

2021-05-09 09:30:54 564 4

原创 深入理解JVM中的ClassLoader类加载器

文章目录深入理解JVM中的ClassLoader类加载器JVM的体系结构图JVM的位置JVM结构图中的class files文件JVM结构图中的类加载器ClassLoader的解释类加载器ClassLoader的作用类加载器的种类java类的加载机制双亲委派机制沙箱安全机制深入理解JVM中的ClassLoader类加载器JVM的体系结构图先来看一下JVM的体系结构,如下图:JVM的位置JVM的位置,如下图:JVM是运行在操作系统之上的,与硬件没有直接的交互,但是可以调用底层的硬件,用JIN(

2021-05-08 19:12:18 2244 9

原创 在cmd命令行窗口怎样把.java文件编译成.class文件?java文件和class文件内部代码长什么样?.class文件如果想要被JVM加载,要求是什么?

在cmd命令行窗口怎样把.java文件编译成.class文件?java文件和class文件内部代码长什么样?.class文件如果想要被JVM加载,要求是什么?编译.java文件首先创建一个hello.java文件,此文件的内部内容,如下图:hello.java文件的存放路径是在D:/新建文件夹 这个路径下,如下图:接着在cmd命令行窗口,进入jdk的bin目录中,去编译此.java文件,编译命令如下图:编译成功之后,会自动在.java文件的目录中生成一个.class文件,如下图:编译好

2021-05-08 17:54:37 3761 1

原创 ssm员工管理系统---实现删除单个员工功能

文章目录ssm员工管理系统---实现删除单个员工功能需求给每一行的删除按钮都绑定一个click单击事件后端控制器中接收/deleteEmpById请求的方法deleteEmpByIdservice层的deleteEmpById方法动态代理接口的deleteEmployee方法映射文件中的sql语句测试ssm员工管理系统—实现删除单个员工功能需求点击每一行的删除按钮,会弹出一个是否确认删除员工的对话框,如果点击确认,员工信息会被从表中删除,然后页面会刷新。给每一行的删除按钮都绑定一个click单击事件

2021-05-07 22:24:35 943 4

原创 ssm员工管理系统---通过Bootstrap模态框实现修改员工信息功能

文章目录ssm员工管理系统---通过Bootstrap模态框实现修改员工信息功能需求把bootstrap中的模态框加入到index.jsp首页给index.jsp首页的编辑按钮绑定一个单击事件index.jsp首页中的getDepts方法后端控制器接收/depts请求的方法getDeptsservice层的getDepts方法动态代理接口中的queryAllDepartment方法映射文件中的sql语句index.jsp首页中的getEmp方法后端控制器中接收/select_emp_byId请求的方法get

2021-05-07 17:39:30 1618 1

原创 使用@RequestBody接收前端参数的注意事项

使用@RequestBody接收前端参数的注意事项如果前端传递的参数是通过serialize()序列化方法传递的,那么后端再接收前端传递来的多个参数信息的时候,可以直接使用一个对象接收,不要再对象前面加上@RequestBody注解,要不然会出错,前端通过serialize()序列化方法传递参数如下图:后端控制器方法中接收参数,如下图:但是如果前端传递的对象是以json对象的形式传递的,那么后端再接收参数的时候,可以参数前使用@RequestBody注解。...

2021-05-07 17:11:39 3667

原创 jquery中用on事件委托的方式绑定事件

jquery中用on事件委托的方式绑定事件

2021-05-07 15:17:17 403

原创 ssm员工管理系统---通过Bootstrap的模态框实现添加员工功能

文章目录ssm员工管理系统---通过Bootstrap的模态框实现添加员工功能需求给新增按钮绑定一个单击事件把bootstrap中的模态框加入到index.jsp首页模态框中的保存按钮绑定的单击click事件后端控制器用于接收/emp请求的方法saveEmpservice层的saveEmp方法动态代理接口的addEmplyee方法映射文件中对应的sql语句测试ssm员工管理系统—通过Bootstrap的模态框实现添加员工功能需求点击新增按钮之后,会跳出来一个模态框,在模态框上填写添加的用户信息,点击模

2021-05-06 22:01:51 989 2

原创 ajax的三种传参方式

ajax的三种传参方式ajax的第一种第二种传递参数的方式,如下图:ajax的第三种传递参数的方式,通过serialize()序列化方法传递参数,如下图:

2021-05-06 18:07:33 8620

原创 ajax+bootstrap构建页面元素从而在页面上显示出员工列表和分页导航条

文章目录ajax+bootstrap构建页面元素从而在页面上显示出员工列表和分页导航条需求数据库的相关表和java中的相关实体类利用jquery发送ajax异步请求build_emps_table方法build_page_info方法build_page_nav方法to_page方法后端控制器中可以接收/emps请求的方法getEmpsWithJsonservice层的getAll方法EmployeeMapper动态代理接口EmployeeMapper.xml映射文件中对应的sql语句测试ajax+boo

2021-05-06 17:45:45 569 3

原创 使用Bootstrap前端框架的栅格系统搭建页面布局

文章目录使用Bootstrap前端框架的栅格系统搭建页面布局需求利用Bootstrap的栅格系统搭建页面布局栅格系统简介栅格系统列的参数栅格系统怎样定义大列所占的单位列数栅格系统中怎样设置列偏移实际代码实际效果使用Bootstrap前端框架的栅格系统搭建页面布局需求在index.jsp首页,用Bootstrap搭建一个页面布局,用于显示员工数据,和分页导航条信息等。利用Bootstrap的栅格系统搭建页面布局首先来看一下Bootstrap官网,对栅格系统的解释,如下:栅格系统简介栅格系统列的

2021-05-06 15:49:51 1432 7

原创 SSM项目---员工管理系统的基础环境搭建

文章目录SSM项目---员工管理系统的基础环境搭建0.此项目使用的技术点1.创建一个maven工程2.配置Maven运行环境3.配置tomcat8.5服务器环境4.创建WEB-INF文件夹和web.xml文件5.把maven项目变成web工程项目6.上面五步创建的maven项目不要用,但是上面的五步要有,执行完上面的五步之后,重新创建一个maven项目,重新把这个maven项目变成web项目7.创建index.jsp首页文件8.引入项目依赖的jar包9.引入Bootstrap下载Bootstrap怎么引入B

2021-05-06 10:08:14 812

原创 一键安装Maven--配置本地仓库--配置阿里云镜像

文章目录一键安装Maven--配置本地仓库--配置阿里云镜像下载mavenMaven文件夹目录结构配置conf/settings.xml配置文件信息一键安装Maven–配置本地仓库–配置阿里云镜像下载maven下载地址:https://downloads.apache.org/maven/maven-3/3.6.3/binaries/我这里下载的是maven-3.6.3版本,如下图:下载压缩包成功之后,点开查看,如下图:文件夹里的目录结构如下图:Maven文件夹目录结构从maven官网

2021-05-05 10:08:34 1004 5

原创 通过Element ui往页面上加一个分页导航条

文章目录通过Element ui往页面上加一个分页导航条需求在element ui官网选择Pagination分页组件UserList.vue组件的template模板中的分页组件的代码和效果分页组件牵涉到的data数据和methods方法测试通过Element ui往页面上加一个分页导航条需求加入一个分页条,此分页条可以跳转页面,可以根据页码选择具体页面,可以设置当前页面的大小。在element ui官网选择Pagination分页组件进入element ui官网,然后选择一个合适的分页组件,如

2021-05-04 17:24:15 1840 14

空空如也

空空如也

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

TA关注的人

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