- 博客(91)
- 资源 (1)
- 收藏
- 关注
原创 HBase学习笔记
Hbase1、HBase简介HBase基于 Google的BigTable论文而来,是一个分布式海量列式存储非关系型数据库系统,可以提供 超大规模数据集的实时随机读写。1.1、什么是列式存储?先看常规的关系型数据库MySQL的存储机制:下面的空值字段浪费存储空间idnameagesalaryjob1盖伦22无畏先锋军团长2嘉文皇子3赵信8010w如果使用列式存储rowkey列族列标识符列值1User
2021-08-12 16:25:21
509
原创 递归模板
Javapublic void recur(int level, int param) { // terminator if (level > MAX_LEVEL) { // process result return; } // process current logic process(level, param); // dr
2021-03-28 21:24:11
256
原创 SpringBoot学习之旅
一、SpringBoot入门1.1、springboot 简介springboot是什么?简化Spring应用开发的框架,spring技术栈的整合,J2EE开发的一站式解决方案优点:为所有spring开发者快速入门开箱即用,提供各种默认配置来简化项目配置内嵌式容器简化Web项目没有冗余代码生成和XML配置的要求1.2、微服务是一种架构风格(服务微化)要求在开发一个应用的时候,这个应用必须构建成一系列小服务的组合; 可以通过http的方式进行互通单体应用每一个功能元素最终
2021-03-06 20:29:59
1133
原创 JVM学习笔记
JVM学习1、类加载器类加载器子系统:从文件系统或网络中加载class文件,class文件在文件开头有特定的文件标识 CAFEBABE类加载器加载的类信息,会放在方法区的内存空间。1.1、类加载的过程加载阶段:1、通过类的全限定类名获取此类的二进制流2、将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构3、在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口链接阶段验证(Verify):目的在于确保Class文件的字
2020-11-09 22:01:28
1490
1
原创 Ubuntu14.04编译openjdk7时所遇问题及解决
本实验是在ubuntu14.04下进行的,编译的openjdk为openjdk 7,依赖的jdk为openjdk 6,在实践过程中遇到了三个问题遇见问题1之前用ubuntu16.04,安装依赖 libmotif4时,出现错误如果系统使用的是ubuntu16.04; 安装 libmotif4 时 如果出现错误E: Package 'libmotif4' has no installation candidate只是因为在最新的Ubuntu 16.04中不存在libmotif4,因此会发生此错误。
2020-07-21 22:06:44
425
原创 编译OpenJDK7(ubuntu14.4)
编译OpenJDK7(ubuntu14.4)正在学习《深入理解java虚拟机第2版》,在第一章的实例中,自己动手对openjdk7进行编译。以下是实验过程。本实验是在ubuntu14.04下进行的,编译的openjdk为openjdk 7,依赖的jdk为openjdk 6,使用用自己编译的jdk,莫名有种成就感。注意:在编译openjdk7时,Bootstrap JDk必须使用 Jdk6 update 14 或之后的版本openjdk7源码获取直接从官网下载源码包即可 openJDK7获取源码包之
2020-07-21 21:27:14
268
原创 virsh的交互模式 查看管理虚拟机
使用virt-manager创建虚拟机后,会在“/etc/libvirt/qemu”目录下生成相应的配置文件ubuntu16.04.xml。root@ubuntu:~# cd /etc/libvirt/qemuroot@ubuntu:/etc/libvirt/qemu# lsnetworks ubuntu16.04.xmlroot@ubuntu:/etc/libvirt/qemu# cat ubuntu16.04.xml 复制“/etc/libvirt/qemu”目录下的“ubuntu16.0
2020-06-30 23:00:13
972
原创 使用virt-manager创建虚拟机
virt-manager 界面virt-manager刚打开时,里面没有虚拟机创建虚拟机在virt-manager管理界面中,创建一个虚拟机,点击左上角的电脑小图标,然后选择创建虚拟机要使用的镜像文件,即安装介质的选择选择最后一种,导入已存在的磁盘镜像点击“Forward”。指定要使用的镜像文件所在的路径,然后选择使用的镜像文件的操作系统类型和版本号选择要为虚拟机设置的内存大小和虚拟CPU的个数。前面设置的虚拟机的基本信息,在高级选项中给出了虚拟网络的配置,采用默认
2020-06-30 18:48:50
4505
原创 虚拟化管理工具的安装
简介Libvirt是一个软件的集合,包括API库,后台运行程序(Libvirtd)和命令行工具(virsh)。Libvirt主要有下面3个功能:虚拟机管理:以虚拟机为对象,Libvirt提供了定义,删除,启动,关闭,暂停,恢复,保存,回滚和迁移各种功能虚拟设备管理:能够管理各种虚拟外设,如虚拟磁盘,虚拟网卡,内存,虚拟CPU远程控制:Libvirt除了对本机进行管理外,还提供了远程连接功能。通过提供的virsh程序或API能够远程连接其他物理机的HypervisorLibvirt官网L
2020-06-30 14:22:17
323
原创 kvm学习------虚拟机迁移
虚拟机迁移虚拟机迁移分为动态迁移和静态迁移静态迁移:是指在虚拟机关闭或暂停的情况下,将源宿主机上虚拟机的磁盘文件和配置文件拷贝到目标宿主机上。这种方式需要显式的停止虚拟机运行,对服务可用性要求高的需求不合适。动态迁移:无需拷贝虚拟机配置文件和磁盘文件,但是需要迁移的主机之间有相同的目录结构放置虚拟机磁盘文件,可以通过多种方式实现,本例采用基于共享存储动态迁移,通过NFS(Network File System网络文件系统)来实现。源宿主机:Ubuntu16.04操作系统,下文中以“节点1”表示
2020-06-14 18:33:01
699
原创 kvm学习---制作win7虚拟机镜像,并配置网络
制作虚拟机镜像—win7服务器用的系统是Ubuntu_18.04.1_desktop版,虚拟机镜像制作用的ISO文件:win7-x86.iso安装win71、把操作系统的ISO文件拷贝到宿主机可以是用Xftp 、winSCP、等工具2、创建win7镜像文件使用命令“qemu-img create -f qcow2 win7.img 50G”创建一个50GB大小的镜像文件win7.img(qcow2格式)。参数:create参数: 使用qemu-img命令创建镜像文件,-f参数: 指定镜像文
2020-06-09 12:34:01
3242
5
原创 docker的安装与使用
Docker学习1、简介Docker是一个开源的应用容器引擎;是一个轻量级容器技术;Docker支持将软件编译成一个镜像;然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像;运行中的这个镜像称为容器,容器启动是非常快速的。2、核心概念docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统之上);docker客户端(Client):连接docker主机进行操作;docker仓库(Registry):用来保存各种打包好的软件镜像;可
2020-06-08 19:31:54
196
1
原创 kvm学习---虚拟机(客户机)网络配置
今天学习了 在QEMU中,如何给客户机进行网络配置1、四种网络模式(如何配置网络)基于网桥(Bridge)的虚拟网卡模式基于NAT的虚拟网络模式QEMU内置的用户模式网络直接分配网络设备模式网桥和NAT是基于linux-bridge实现的软件虚拟网络模式,QEMU内置是QEMU软件虚拟的网络模式。第四种模式是直接物理网卡分配给客户机使用,比方说有eth0和eth1两块网卡,直接把eth0这块网卡给某一客户机使用。2、虚拟化网络设备(创建网卡)在QEMU命令行中,采用前三种网络配置方案对客
2020-06-06 19:25:42
2826
原创 CPU配置 学习
昨天学习了内存配置,今天来学习CPU配置,以下是学习练习CPU配置在QEMU中,“-smp”参数是为了配置客户机的SMP系统。在命令行中,配置SMP系统的参数-smp [cpus=n][,maxcpus=cpus][,cores=cores][,threads=threads][,sockets=sockets]cpus : 用来设置客户机中使用的逻辑CPU的数量(默认值是1);maxcpus : 用来设置客户机的最大CPU的数量,最多支持255个CPU。其中,包含启动时处于下线状态的CPU数目
2020-05-29 14:47:10
2555
原创 内存设置+hugepage 学习
内存设置例1:不加内存参数,模拟一个默认大小内存的客户机系统。root@ubuntu:/home/img# qemu-system-x86_64 ubuntu14.04.img 在客户机中常用的两种查看内存信息的方式1、使用free -m查看内存信息free命令通常用来查看内存的使用情况,“-m”参数是指内存大小以MB为单位来显示。在上面示例中,我们使用了默认大小的内存,值为128M,而根据上面输出可知总的内存为113MB,这个值比128MB小,这是因为free命令显示的内存是实际能够使
2020-05-28 23:08:36
1890
原创 QEMU monitor控制台使用详解
为什么要使用 QEMU monitor命令?在前面学习ubuntu启动第一个虚拟机时,发现我们在使用启动QEMU之后,我们的终端会卡住。而现在我们在启动QEMU时使用了monitor,终端会进入monitor的控制台,通过这个控制台,我们可以与QEMU或者运行状态的虚拟机进行交互。现在有很多图形界面的虚拟机管理工具,如virt-manager等。在monitor的控制台窗口输入命令似乎更符合Linux程序员的开发习惯,而且还能完成一些图形化管理工具所不具备的功能。在monitor控制台中,可以完成很多
2020-05-22 16:05:27
20191
2
原创 qemu-img命令详解
qemu-img 命令使用格式:# usage: qemu-img command [command options]root@ubuntu:~# qemu-img (子)命令 [选项]# (子)命令语法Command syntax: check [-q] [-f fmt] [--output=ofmt] [-r [leaks | all]] [-T src_cache] filename create [-q] [-f fmt] [-o options] filename [size]
2020-05-21 23:20:16
3282
原创 JDBC学习笔记------事务
4、JDBC控制事务事务 : 一个包含多个步骤的业务操作 .如果这个业务操作被事务管理,则这多个步骤要么同时成功 ,要么同时失败 .4.1、操作 :开启事务提交事务回滚事务4.2、使用Connection对象管理事务开启事务 :void setAutoCommit( boolean autoCommit) 调用该方法 设置参数为false, 及开启事务.提交事务 : commit( )回滚事务 :rollback( )...
2020-05-20 20:17:51
148
原创 JDBC学习笔记------接口和类的详解
3、 各接口和类的详解3.1、 DriverManager : 驱动管理对象功能 :注册驱动a) Public Static void registerDriver(Driver driver)向 DriverManager 注册给定驱动程序b) 写代码时使用 : Class . forName(“com , mysql . jdbc . Driver” ) ;c) 通过查看源码发现 : 在com.mysql.jdbc.Driver类中存在静态代码块 ;在静态代码块
2020-05-20 20:15:44
141
原创 JDBC学习笔记------快速开始
1、JDBC基本概念1.1 、概念 :JDBC [(Java DataBase Connectivity) java数据库连接 ] 是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。1.2 、本质 :官方( sun公司 ) 定义的一套操作所有关系型数据库的规则 , 即接口 . 由各个数据库厂商来实现这套接口,提供数据库驱动jar包 . 我们可以使用这套接口(JDBC)编程 , 真正执行的代码实际上是驱动jar包中的实现类.
2020-05-20 19:47:12
176
原创 MybatisPlus学习笔记------代码生成器
官网: MyBatis-Plus代码生成器package com.xyc.code;import com.baomidou.mybatisplus.annotation.DbType;import com.baomidou.mybatisplus.annotation.IdType;import com.baomidou.mybatisplus.generator.AutoGenerator;import com.baomidou.mybatisplus.generator.config.D
2020-05-19 17:01:55
183
原创 MybatisPlus学习笔记------条件构造器
官网: MyBatis-Plus简单使用方法,详细方法看官网简单使用案例@ApiOperation("条件分页查询讲师信息") @PostMapping("findPageByCondition/{current}/{limit}") public R findPageByCondition(@PathVariable("current" )long current, @PathVariable("limit") lo
2020-05-19 16:59:30
181
原创 MybatisPlus学习笔记------性能分析插件
官网: MyBatis-Plus性能分析拦截器,用于输出每条 SQL 语句及其执行时间spring方式<plugins> .... <!-- SQL 执行性能分析,开发环境使用,线上不推荐。 maxTime 指的是 sql 最大执行时长 --> <plugin interceptor="com.baomidou.mybatisplus.extension.plugins.PerformanceInterceptor">
2020-05-19 16:48:34
195
原创 MybatisPlus学习笔记------乐观锁
官网: MyBatis-Plus乐观锁 乐观锁:乐观,总是认为不会出现问题,无论干什么都不会上锁!如果 出现了问题,再次更新值测试。 version、new version 悲观锁:悲观,总是认为到处都是问题,无论干什么都会上锁!乐观锁机制实现方式:取出记录时,获取当前的version更新时,带上这个version执行更新时,set version = newVersion where version = oldVersion如果version不对,就更新失败sql语句
2020-05-19 16:43:08
321
原创 MybatisPlus学习笔记------自动填充功能
MybatisPlus官网: MyBatis-Plus自动填充功能如create_time,update_time,一般所有表都包含这两个字段这种的字段需要自动生成值两种方法:方法一:数据库级别(工作中不常使用,你没法修改数据库):在标中添加相应字段create_time,update_time在测试修改方法,先在pojo实体类中添加相应属性 private Date createTime; private Date updateTime;测试时:你并没有设置时间,
2020-05-18 22:54:01
538
原创 MybatisPlus学习笔记------配置日志
MybatisPlus官网: MyBatis-Plus在application.yml配置文件中配置mybatis-plus 日志## mybatis-plus 日志#mybatis-plus:# configuration:# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl## 配置日志级别#logging:# level:# root: infologback日志配置文件注意:文件名为logback-s
2020-05-18 22:41:04
4101
原创 MybatisPlus学习笔记------主键生成策略
MybatisPlus官网: MyBatis-Plus主键生成策略分布式系统唯一id生成:https:/www.cnblogs.com/haoxinyue/p/5208136.html雪花算法:snowflake是Twitter开源的分布式ID生成算法,结果是一个long型的ID。其核心思想是:使用41bit作为毫秒数,10bit作为机器的ID(5个bit是数据中心,5个bit的机器ID),12bit作为毫秒内的流水号(意味着每个节点在每毫秒可以产生4096个ID),最后还有一个符号位,永远是0.
2020-05-18 22:28:08
493
原创 MybatisPlus学习笔记------CRUD操作---delete操作
MybatisPlus官网: MyBatis-Plus常规物理删除操作: @Test //测试删除 public void testDelete(){ //按id删除 userMapper.deleteById(1241925679608598530L); //按id批量删除 userMapper.deleteBatchIds(Arrays.asList(0L,1242027510946865154L));
2020-05-18 22:24:32
4599
原创 MybatisPlus学习笔记------CRUD操作---select操作
select操作查询所有 @Test void testSelectAll() { //查询全部用户 List<User> users = userMapper.selectList(null); users.forEach(System.out::println); }按id查询 @Test //根据id查询用户 public void testSelectById(){ User u
2020-05-18 22:18:34
851
原创 MybatisPlus学习笔记------CRUD操作---update操作
update操作// 测试更新 @Test public void testUpdate(){ User user = new User(); //根据条件自动的动态拼接sql语句 user.setName("德玛西亚之力"); user.setId(0L); user.setAge(19); int resoult = userMapper.updateById(user);
2020-05-18 22:09:49
350
1
原创 MybatisPlus学习笔记------CRUD操作---insert操作
insert操作 @Test void testInsert(){ User user = new User(); user.setName("盖伦"); user.setAge(19); user.setEmail("452662481@qq.com"); int result = userMapper.insert(user); //帮助我们自动生成id //返回值结果为受影
2020-05-18 22:06:57
252
原创 MybatisPlus学习笔记------注解
MybatisPlus官网: MyBatis-Plus@TableName描述:表名 注解属性类型必须指定默认值描述valueString否“”表名schemaString否“”schemakeepGlobalPrefixboolean否false是否保持使用全局的 tablePrefix 的值(如果设置了全局 tablePrefix 且自行设置了 value 的值)resultMapString否“”xml 中 result
2020-05-18 21:57:44
232
原创 MybatisPlus学习笔记------快速开始
MybatisPlus官网: MyBatis-Plus1、构建数据库2、初始化Springboot项目导入相关依赖<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.3.1.tmp</version></depende
2020-05-17 21:06:26
162
转载 MybatisPlus学习笔记------入门
MybatisPlus官网: MyBatis-PlusMyBatisPlus可以自动化生成所有的CRUD代码相关开源项目:JPA,tk-mapper,MyBatisPlus学前必会:mybatis、Spring、SpringMvCMyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。MyBatis-Plus 特性无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启
2020-05-17 20:16:22
175
原创 多线程学习(十二)-----线程死锁
线程死锁 多个线程各自占有一些共享资源,并且互相等待其他线程占有的资源才能运行,而导致两个或者多个线程都在等待对方释放资源,都停止执行的情形.某一个同步块同时拥有“两个以上对象的锁”时,就可能会发生“死锁”的问题.产生死锁的四个必要条件:互斥条件:一个资源每次只能被一个进程使用。请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。不剥夺条件:进程已获得的资源,在未使用完之前,不能强行剥夺。循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。
2020-05-15 12:53:27
185
原创 多线程学习(十)-----线程状态-守护线程
守护线程线程分为 守护线程和用户线程 ,当程序中没有用户线程时,JVM会退出.方法内容void setDaemon(boolean on)将该线程标记为守护线程或用户线程boolean isDeamon()测试该线程是否为守护线程。☆ void setDaemon(boolean on)作用:将该线程标记为守护线程或用户线程。当正在运行的线程都是守护线程时(当程序中没有用户进程在运行时),Java 虚拟机退出。该方法必须在启动线程前调用。参数:如
2020-05-15 12:45:09
165
原创 多线程学习(九)-----线程状态-线程优先级
Java提供一个线程调度器来监控程序中启动后进入就绪状态的所有线程,线程调度器按照优先级决定应该调度哪个线程来执行。线程的优先级用数字表示,范围从1~10.◆ Thread.MIN_PRIORITY=1;◆ Thread.MAX_PRIORITY=10;◆ Thread.NORM_PRIORITY=5;使用以下方式改变或获取优先级◆ getPriority()◆ setPriority(int xxx)...
2020-05-15 12:42:23
123
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人