自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Lv Zejiang

努力是为了将运气成分降到最低

  • 博客(138)
  • 资源 (1)
  • 收藏
  • 关注

原创 Java并发之锁

Java并发之锁一、临界区二、线程安全三、解决临界区线程安全问题四、Java对象头五、重量级锁 Monitor5.1 synchronized5.1.1 synchronized加锁流程六、轻量级锁6.1 轻量级锁加锁流程6.2 CAS失败的情况6.3 轻量级锁解锁流程七、偏向锁(轻量级锁优化)八、锁膨胀九、自旋优化(重量级锁优化)十、锁消除10.1 逃逸分析十一、锁粗化十二、锁粒度12.1 死锁12.1.1 死锁的条件12.1.2 定位死锁12.2 活锁12.3 饥饿一、临界区二、线程安全三、解决临

2021-05-10 20:05:52 490

原创 Java并发基础

Java并发基础一、进程二、线程2.1 超线程技术(引申)三、协程四、进程与线程对比五、并行六、并发七、同步八、异步九、阻塞十、非阻塞十一、同步/异步/阻塞/非阻塞例子一、进程程序由指令和数据组成,指令需要加载至CPU,数据需要加载至内存,指令运行也需要网络、磁盘等设备,而进程就是用来加载指令、管理内存、管理IO。进程可以理解为程序的执行过程,是动态的二、线程一个线程就是一个指令流,将指令流中的一条条指令以一定的顺序交给CPU运行Java中,线程作为最小调度单位(CPU找指令),进程作为资源

2021-04-15 18:25:12 243

原创 反编译解析数组为什么可以使用foreach

一、说明foreach 循环遍历的原理是通过迭代器 Iterator,不断获取 next 元素,所以使用 foreach,编译的时候编译器会自动将对 for 这个关键字的使用转化为对目标的迭代器的使用我们常常认为,要想使用 foreach 循环遍历,就必须正确地实现 Iterable 接口,但是,你有没有想过,数组没有实现 Iterable 接口,为什么可以使用 foreach 语句循环遍历呢?这里我使用几个例子,以及进行Java反编译来说明数组这个特殊情况二、集合使用foreach首先,我们

2021-03-15 16:25:04 429 2

原创 MyBatis与Hibernate的区别

一、相同点Hibernate与MyBatis都可以是通过SessionFactoryBuider由XML配置文件生成SessionFactory,然后由SessionFactory 生成Session,最后由Session来开启执行事务和SQL语句。其中SessionFactoryBuider,SessionFactory,Session的生命周期都是差不多的。Hibernate和MyBatis都支持JDBC和JTA事务处理。二、不同点1. hibernate是全自动,而mybatis是半自动

2021-03-11 17:51:17 198

原创 rpm打包流程步骤

rpm打包流程步骤一、RPM简介二、前期准备三、文件架构3.1 各文件作用四、参考:https://blog.csdn.net/get_set/article/details/53453320一、RPM简介RPM(Redhat Package Manager)是用于Redhat、CentOS、Fedora等Linux 分发版常见的软件包管理器,是一个强大的命令行驱动的软件包管理工具,用来安装、卸载、校验、查询和更新 Linux 系统上的软件包二、前期准备yum install rpmdevto

2021-03-03 19:00:10 6924 1

原创 SPECweb 分析

SPECweb 分析一、背景1.1 研究目的1.2 Web 服务器概述1.3 Web 服务器性能指标1.3.1 常用 Web 服务器性能指标1.3.2 影响 Web 服务器性能的主要因素1.3.2.1 用户访问特征1.3.2.2 网络状况1.4 静态工作负载1.5 动态工作负载二、SPECweb 2009 简介2.1 是什么2.2 基准设计三、环境说明四、工作负载4. 工作负载一4.1 数据摘要4.2 客户到达和活动模拟4.2.1 在 On-period ON 期间内的文件请求4.2.2 生成 Off Pe

2021-01-22 19:40:09 2291

原创 SPECjbb 分析与使用

SPECjbb一、目的二、SPECjbb 简介2.1 是什么2.2 三层客户/服务器模型结构2.3 特性三、环境说明四、TPC-C 简介4.1 是什么4.2 TPC-C模型4.3 TPC-C指标4.4 TPC-C交易事务4.4.1 新订单(New-Order)4.4.2 支付操作(Payment)4.4.3 订单状态查询(Order-Status)4.4.4 发货(Delivery)4.4.5 库存状态查询(Stock-Level)五、SPECjbb 基准松散的遵循 TPC-C 规范5.1 SPECjbb

2021-01-15 11:20:11 6349 1

原创 Linux获取硬件信息 shell 脚本(CPU、操作系统、内存、磁盘、显卡、主板、BIOS、网卡)

Linux获取硬件信息shell脚本shell脚本#!/bin/bash#CPU型号cpu_model=`cat /proc/cpuinfo | grep "model name" | awk -F ':' '{print $2}' | sort | uniq`echo "$cpu_model"#CPU架构cpu_architecture=`uname -m`echo "$cpu_architecture"#物理CPU个数cpu_phy_num=`cat /proc/cpuinfo

2020-12-31 16:55:21 3366

原创 OpenMP GPU并行计算

GPU并行计算一、C源码(gpustbench.c)1. OpenMP与MPI二、Linux中编译运行三、执行命令四、查看运行结果一、C源码(gpustbench.c)GPU并行计算能力(计算矩阵行列式:任一行的各元素与其对应的代数余子式乘积之和)串行运算时长、openMP并行运算时长#include <stdlib.h>#include <stdio.h>#include <math.h>#include <vector>#include

2020-12-31 11:10:19 2301 1

原创 CPU稳定性计算

CPU稳定性计算C源码(cpustbench.c)二、Linux中编译运行三、执行命令四、查看运行结果C源码(cpustbench.c)通过整点运算、浮点运算、PI运算、快速排序运算进行CPU稳定性计算CLOCKS_PER_SEC为每秒CPU运行的时钟周期数(1000),以此得到CPU运行时间#include <stdio.h>#include <time.h>#ifndef __CPU_TEST_#define __CPU_TEST_#ifdef Inte

2020-12-31 10:40:24 253

原创 HttpServletRequest

HttpServletRequest一、概述二、主要功能三、功能分析1. 读取请求行信息1.1 读取URL信息1.2 读取method信息2. 读取请求头中所有请求参数名(GET)3. 读取请求体中所有参数名(POST)四、请求对象与响应对象生命周期一、概述HttpServletRequest接口来自于Servlet规范,存在于tomcat的servlet-api.jar中HttpServletRequest接口实现类由HTTP服务器负责提供,也封装在tomcat的servlet-api.jar中

2020-11-15 20:30:27 938

原创 HttpServletResponse

HttpServletResponse一、概述二、主要功能三、功能分析1. 如何将执行结果写入到响应体中2. 设置content-type属性3. 设置location属性一、概述HttpServletResponse接口来自于Servlet规范,存在于tomcat的servlet-api.jar中HttpServletResponse接口实现类由HTTP服务器负责提供,也封装在tomcat的servlet-api.jar中HttpServletResponse接口负责将doGet/doPost方

2020-11-15 20:24:00 208

原创 Servlet

Servlet一、Servlet规范1. Servlet规范作用二、servlet接口实现类三、Servlet接口实现类开发步骤1. 步骤一1.1 tomcat根据Servlet规范调用Servlet接口实现类规则:2. 步骤二3. 步骤三四、Servlet生命周期一、Servlet规范Servlet规范来自于JavaEE规范,是JavaEE规范中的一种1. Servlet规范作用在Servlet规范中,指定动态资源文件开发步骤(三步)在Servlet规范中,指定HTTP服务器调用动态资源文

2020-11-15 20:15:32 141

原创 HTTP服务器

HTTP服务器一、HTTP服务器概述1. HTTP服务器分类1.1 JBOSS服务器1.2 Glassfish服务器1.3 Weblogic服务器1.4 Websphere服务器1.5 Tomcat服务器1.5.1 Tomcat内部工作文件结构二、HTTP网络协议包1. 分类三、HTTP请求协议包四、HTTP响应协议包五、HTTP请求协议包内部空间1. 请求行2. 请求头3. 空白行4. 请求体六、HTTP响应协议包内部空间1. 状态行2. 响应头3. 空白行4. 响应体一、HTTP服务器概述HTTP

2020-11-13 17:30:09 1336

原创 互联网通信

互联网通信一、概述二、角色划分三、互联网通信模型1. C/S通信模型1.1 client software:客户端软件1.2 server software:服务器软件1.3 适用场景1.4 优缺点1.4.1 优点1.4.2 缺点2. B/S通信模型2.1 browser:浏览器2.2 server software:服务器软件2.3 适用场景2.4 优缺点2.4.1 优点2.4.2 缺点四、共享资源文件1. 概述2. 分类1. 静态资源文件2. 动态资源文件3. 静态资源文件与动态资源文件调用的区别五、程

2020-11-13 12:58:36 269

原创 HTTP 状态码

HTTP 状态码代码消息描述100Continue只有请求的一部分已经被服务器接收,但只要它没有被拒绝,客户端应继续该请求101Switching Protocols服务器切换协议200OK请求成功201Created该请求是完整的,并创建一个新的资源202Accepted该请求被接受处理,但是该处理是不完整的203Non-authoritative Information204No Content205Rese

2020-11-12 11:00:34 272

原创 页面加载readyState的五种状态

JavaScript页面加载readyState的五种状态0: (Uninitialized) the send( ) method has not yet been invoked.1: (Loading) the send( ) method has been invoked, request in progress.2: (Loaded) the send( ) method has completed, entire response received.3: (Interactive) th

2020-11-09 08:55:55 653

原创 deb打包流程步骤

Ubuntu下打包deb流程步骤一、前期准备二、文件架构三、创建control文件四、创建xxx.desktop文件五、打包为deb文件一、前期准备一个可执行程序,这里只介绍Java程序(xxx.jar),以下均使用lzj.jar来说明二、文件架构在任意目录下模拟出一个Linux的文件架构,这里选择/home/LZJ/file外层大文件命名随意,这里以project为例,mkdir /home/LZJ/file/project,cd project后,建立三级目录,mkdir DEBIAN,

2020-11-02 17:21:05 3066 5

原创 glmark2

glmark2 工具安装教程一、简介二、编译源码安装命令1. 搭建编译环境2. 从git克隆安装3. 切换目录4. 执行安装命令三、测试查看一、简介glmark2 是开源的对OpenGL 2.0 和 ES 2.0的基准测试程序,一般用来对GPU进行基准测试。glmark提供了一系列丰富的测试,涉及图形单元性能(缓冲,建筑,照明,纹理等)的不同方面,允许进行更全面和有意义的测试, 每次测试进行10秒,并且单独计算帧速率Ubuntu下安装直接执行 sudo apt-get install glmark2

2020-10-29 10:13:10 13304

原创 JavaScript第二十章 Promise

数据结构自我学习路线一、数据结构概述二、数据结构的分类一、数据结构概述二、数据结构的分类数据结构分为存储结构和逻辑结构

2020-10-24 19:14:07 145

原创 MySQL数据库优化

MySQL自我学习路线数据库优化数据库优化有些关键字或函数,能不用就不用运算符左边尽量不要出现表达式尽量不要使用模糊查询索引要经过设计再创建禁止使用select *注意使用MySQL的需求(判断需求是否合理)...

2020-10-11 18:07:41 89

原创 MySQL数据库设计的三范式

MySQL自我学习路线设计范式概述一、第一范式二、第二范式三、第三范式四、设计方案1. 一对一2. 一对多3. 多对多设计范式概述设计范式是设计表的依据,按照这三个范式设计的表不会出现数据冗余数据库设计尽量遵循三范式,但在实际的开发中,以满足客户需求为主,有的时候会拿冗余换执行速度一、第一范式数据库表中不能出现重复记录,每个字段是原子性的不能再分第一范式每个表必须有主键,通常采用数值型或定长字符串表示,而列不可再分应视具体情况决定有主键,具有原子性,字段不可分割二、第二范式第二范

2020-10-11 17:22:57 145

原创 MySQL视图

MySQL自我学习路线一、概述二、视图语法1. 创建视图2. 修改视图3. 删除视图三、视图相对于基表的优点四、视图作用一、概述视图有时也被称为“虚拟表”,是一种根据查询(也就是SELECT表达式)定义的数据库对象,用于从常规表(“基表”)获取想要看到和使用的局部数据,简单理解就是站在不同的角度去看到数据对视图进行增删改查,会影响到原表数据,(通过视图影响原表数据,不是直接操作的原表),可以对视图进行CRUD操作二、视图语法只有DQL语句才能以视图对象的方式创建出来1. 创建视图CRE

2020-10-11 16:00:02 96

原创 MySQL索引

MySQL自我学习路线一、索引概述二、索引的实现原理1. MyISAM索引实现(非聚集索引)2. InnoDB索引实现(聚集索引)三、索引语法四、索引的适用条件五、索引的分类1. 单一索引2. 复合索引3. 主键索引4. 唯一索引六、索引失效一、索引概述索引就相当于一本书的目录,通过目录可以快速的找到对应的资源在数据库方面,查询一张表的时候有两种检索方式:第一种方式:全表扫描第二种方式:根据索引检索(效率很高)索引提高检索效率最根本的原因是缩小了扫描的范围索引虽然可以提高检索效率,但是不能随

2020-10-11 13:59:22 158

原创 MySQL事务

MySQL自我学习路线一、事务概述1. 相关术语:2. 部分解释2.1 自动提交模式2.1.1 启用自动提交模式2.1.2 禁用自动提交模式2.1.3 控制自动提交模式二、事务的特性1. 原子性(Atomicity)2. 一致性(Consistency)3. 隔离性(Isolation)4. 持久性(Durability)三、事务并发访问引起的问题1. 脏读(Dirty Read)2. 不可重复读(Non-repeatable Read)3. 幻读(Phantom Read)4. 更新丢失5. 不可重复读与

2020-10-11 11:15:08 303

原创 MySQL存储引擎

MySQL自我学习路线一、存储引擎概述二、MySQL常用存储引擎1. MyISAM(节省空间)1.1 特点2. InnoDB(默认引擎,安全)2.1 特点3. MEMORY(查询快)3.1 特点三、存储引擎的选择所用数据库——链接地址一、存储引擎概述数据库的各表在创建时均被指定的存储引擎来处理Oracle中不叫存储引擎,有对应的机制,但没有特殊的名字,一般认为“表的存储方式”在创建表时,可使用ENGINE选项为CREATE TABLE语句显式指定存储引擎CREATE TABLE TABLEN

2020-10-11 00:27:15 281

原创 MySQL表、数据类型、约束

MySQL自我学习路线一、MySQL常用数据类型二、create 创建表三、INSERT 向表中添加数据四、DDL 添加/删除/修改表结构1. add 添加字段2. modify 修改字段3. drop 删除字段五、DML 添加/删除/修改1. insert 添加表数据2. update 修改表数据3. delete 删除表数据4. truncate 删除大表数据六、约束1. 非空约束2. 唯一约束2.1 NULL讨论3. 主键约束3.1 主键的作用3.2 主键的分类3.2.1 根据主键字段的字段数量划分3

2020-10-10 21:39:24 175

原创 MySQL——UNION 与LIMIT

MySQL自我学习路线UNION概述LIMIT概述LIMIT分页所用数据库——链接地址UNION概述UNION 操作符用于合并两个或多个 SELECT 语句的结果集UNION 内部的 SELECT 语句必须拥有相同数量的列 ,列拥有相似的数据类型(不一定相同);UNION 后面字段的名称以第一条SQL为准UNION 是对数据进行并集操作,默认去重,同时进行默认排序UNION ALL效率快,UNION ALL是对数据进行并集操作,不去重,不进行排序如果想使用ORDER BY或LIMIT子句来

2020-10-10 20:09:28 602

原创 MySQL子查询

MySQL自我学习路线子查询1. 在where语句中使用子查询2. 在from语句中使用子查询3. EXISTS型子查询所用数据库——链接地址子查询子查询就是嵌套的select语句,可以将子查询理解为一张表一般在子查询中,程序先运行嵌套在最内层的语句,再运行外层。因此在写子查询语句时,可以先测试下内层的子查询语句是否输出了想要的内容,再一层层往外测试,增加子查询正确率,否则多层的嵌套使语句可读性降低1. 在where语句中使用子查询相当于在where语句中加入select语句一般,在wh

2020-10-10 18:06:22 175

原创 MySQL连接查询

MySQL自我学习路线一、笛卡尔积二、连接查询的分类1. 内连接1.1 等值连接1.2 非等值连接1.3 自连接2. 外连接2.1 左外连接2.2 右外连接所用数据库——链接地址一、笛卡尔积SELECT sname,grade FROM student,sc当两张表进行连接查询的时候,没有任何条件进行限制,最终的查询结果条数是两张表记录条数的乘积如何避免笛卡尔积加条件进行过滤,但不会减少记录的匹配次数,只不过显示的是有效记录(效率不变)二、连接查询的分类连接查询需要关联多个表查询(

2020-10-10 15:46:47 242

原创 MySQL分组函数与分组查询

MySQL自我学习路线一、分组函数1. 分类2. 概述二、count三、sum四、avg五、max六、min七、组合使用八、分组查询引、select语句总结1. 一个完整的select语句格式:2. 语句执行顺序所用数据库>>>>>链接地址一、分组函数1. 分类count:取得记录数sum:求和avg:取平均max:取最大数min:取最小数2. 概述分组函数也叫多行处理函数(输入多行,输出一行)分组函数自动忽略null空值,不需要手动添加 where

2020-10-10 12:57:30 364

原创 MySQL排序

MySQL自我学习路线一、单一字段排序二、多个字段排序三、指定顺序排序四、使用字段的位置来排序所用数据库>>>>>链接地址一、单一字段排序使用order by,后面跟上排序字段,order by默认采用升序,如果存在where子句那么order by必须放到where语句之后查询学生学号、成绩,按照成绩升序排序SELECT sno,grade FROM sc ORDER BY grade查询学生学号、成绩,成绩不为空且按照成绩升序排序SELECT sn

2020-10-10 09:47:06 721

原创 MySQL查询

MySQL自我学习路线一、普通查询1. 查询单个字段2. 查询多个字段3. 查询全部字段4. 查询出的字段显示为中文二、条件查询1. MySQL常见运算符1.1 算术运算符1.2 比较运算符1.3 逻辑运算符1.4 位运算符2. 条件查询举例一、普通查询1. 查询单个字段所用数据库查询学生姓名SELECT sname FROM student;2. 查询多个字段查询学生姓名、年龄SELECT sname,sage FROM student;3. 查询全部字段尽量不使用或

2020-10-09 23:52:48 434

原创 MySQL数据库测试用表

MySQL自我学习路线数据库测试用表数据库测试用表数据库名称:student表名:student、course、sc/* Navicat Premium Data Transfer Source Server : 192.168.1.100 Source Server Type : MySQL Source Server Version : 50730 Source Host : localhost:3306 Source Schema

2020-10-09 20:50:03 1819

原创 MySQL概述

MySQL自我学习路线一、SQL1. 概述2. 表3. 分类二、MySQL1. 概述2. 特点三、MySQL常用命令一、SQL1. 概述结构化查询语言(Structured Query Language)简称SQL,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统2. 表表(table)是一种结构化的文件,可以用来存储特定类型的数据,表有特定的名称,且不能重复列叫做字段,行叫做表中的记录,每一个字段都有:字段名称/字段数据类型/字段约束/字段长度3. 分类

2020-10-09 20:33:42 583

原创 JavaSE 反射——获取父类和父接口

Java自我学习路线获取父类和父接口获取父类和父接口获取父类xxx.getSuperclass();获取父接口xxx.getInterfaces();public class Test { public static void main(String[] args) throws Exception { Class class1 = Class.forName("java.util.ArrayList"); // JDK8测试 // 获取父类 Class s

2020-10-09 19:30:29 854

原创 JavaSE 反射——调用构造方法实例化对象

Java自我学习路线调用构造方法实例化对象调用构造方法实例化对象public class User { public int id; private String name; String address; protected int sno; public User() {} public User(int id, String name, String address, int sno) { super(); this.id = id; this.nam

2020-10-09 19:14:56 184

原创 JavaSE 反射——反编译Constructor

Java自我学习路线反编译Constructor反编译Constructorpublic class User { public int id; private String name; String address; protected int sno; public User() {} public User(int id, String name, String address, int sno) { super(); this.id = id; th

2020-10-09 18:57:11 105

原创 JavaSE 反射——使用反射调用方法

Java自我学习路线一、使用反射调用方法二、invoke()1. 实现原理一、使用反射调用方法四关键对象方法名实参列表返回值public class User { public int id; private String name; String address; protected int sno; public User() {} public User(int id, String name, String address, int sno) {

2020-10-09 16:21:09 210

原创 JavaSE 反射——获取及反编译Method

Java自我学习路线获取Method1. 常用方法2. 测试用例获取Method继承的方法Method无法反射,会被编译器强制执行,因此反射一个类的方法时不考虑父类的方法,只考虑当前类的方法1. 常用方法参考:Method 类常用方法Class.getMethod(String name,Class…parameterTypes);根据方法名称和相关参数,来定位需要查找的Method对象并返回,parameterTypes:Method的参数类型的列表(参数顺序需按声明Method时的参数

2020-10-09 14:46:12 158

一次SPECjbb单JVM默认测试静态HTML结果

一次SPECjbb单JVM默认测试静态HTML结果

2021-01-15

空空如也

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

TA关注的人

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