- 博客(80)
- 收藏
- 关注
原创 Java虚拟机JVM之类文件结构
一、JVM的“无关性”JVM的无关性主要包括以下两点:平台无关性,任何平台都能运行java代码 语言无关性:JVM能运行除JAVA以外的其他代码Java 源代码首先需要使用 Javac 编译器编译成 .class 文件,然后由 JVM 执行 .class 文件,从而程序开始运行。JVM 只认识 .class 文件,它不关心是何种语言生成了 .class 文件,只要 .class 文件符...
2019-06-28 09:31:51 300
原创 Java虚拟机JVM之类加载机制与类加载器
一、类的生命周期类的生命周期加载 --> 验证 --> 准备 --> 解析 --> 初始化 --> 使用 --> 卸载 |<------- 连接 ------->||<------------- 类加载 ---------------->|类的生命周期一共有 7 个阶段,其中前五个阶段较为重要,统称为类加...
2019-06-28 08:59:03 353
原创 Java虚拟机JVM之内存分配与回收策略
内存分配与回收策略对象的内存分配,就是在堆上分配(也可能经过 JIT 编译后被拆散为标量类型并间接在栈上分配),对象主要分配在新生代的 Eden 区上,如果开启了本地线程分配缓冲,将按线程优先在TLAB上分配,少数情况下可能直接分配在老年代,分配规则不固定,取决于当前使用的垃圾收集器组合以及相关的参数配置。1、对象优先在 Eden 分配大多数情况下,对象在新生代 Eden 区中分配。当...
2019-06-27 08:56:52 303
原创 Java虚拟机JVM之HotSpot算法实现与垃圾收集器
在上一章节讲解了判断对象是否存活于垃圾回收算法我们已经对虚拟机是进行 GC 的流程有了一个大致的了解。但是,在 HotSpot 虚拟机中,高效的实现这些算法也是一个需要考虑的问题。所以,接下来,我们将研究一下 HotSpot 虚拟机到底是如何高效的实现这些算法的,以及在实现中有哪些需要注意的问题。一、HotSpot算法实现1、枚举根节点2、安全点3、安全区域二、垃圾收集器1...
2019-06-27 08:56:40 590
原创 springcloud——使用Feign实现声明式REST调用
上一篇我使用了RestTemplate+Eureka进行负载均衡的服务消费,现在讲述如何使用feign来实现Rest风格的负载均衡服务消费一、概述Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单。使用Feign,只需要创建一个接口并注解。它具有可插拔的注解特性,可使用Feign 注解和JAX-RS注解。Feign支持可插拔的编码器和解码器。Feign默认集成了Ri...
2019-06-26 17:12:40 230
原创 springcloud—— Feign的文件上传实现
在Spring Cloud封装的Feign中并不直接支持传文件,但Feign官方提供了子项目Feign-form来实现跨服务的文件上传服务提供方(接收文件)服务提供方的实现比较简单,就按Spring MVC的正常实现方式即可,比如:@PostMapping(value = "/fileupload", consumes = MediaType.MULTIPART_FORM_DATA_...
2019-06-26 16:42:28 475
原创 2.zookeeper常用命令详解
zkCli.sh客户端连接到ZK服务器的语法为:zkCli.sh -timeout 5000 -r -server ip:port连接参数解释:-timeout:表示客户端向zk服务器发送心跳的时间间隔,单位为毫秒。因为zk客户端与服务器的连接状态是通过心跳检测来维护的,如果在指定的时间间隔内,zk客户端没有向服务器发送心跳包,服务器则会断开与该客户端的连接。参数5000,表示z...
2019-06-26 09:22:29 368
原创 Java虚拟机JVM之垃圾回收策略与算法
本章节主要介绍垃圾回收策略与算法一、概述二、判定对象是否存活1、引用计数法2、可达性分析法(主流)三、引用类型1、强引用(Strong Reference)2、软引用(Soft Reference)3、弱引用(Weak Reference)4、虚引用(Phantom Reference)四、宣告对象死亡的两次标记过程1、第一次标记并进行一次筛选。2、...
2019-06-26 08:59:39 232
原创 Java虚拟机JVM之Java对象的创建、内存布局和访问
这一小节将对 JVM 对 Java 堆中的对象的创建、布局和访问的全过程进行讲解。一、对象的创建1、类加载检查虚拟机在解析.class文件时,若遇到一条 new 指令,首先它会去检查常量池中是否有这个类的符号引用,并且检查这个符号引用所代表的类是否已被加载、解析和初始化过。如果没有,那么必须先执行相应的类加载过程。2、为新生对象分配内存对象所需内存的大小在类加载完成后便可完全确...
2019-06-25 08:40:21 443
原创 Java虚拟机JVM之Java内存结构与内存溢出异常
一、java内存架构JAVA内存结构图1、程序计数器定义:程序计数器也称PC寄存器,是一块较小的内存空间,可以看做当前线程所执行的字节码指令的行号指示器作用:字节码解释器通过改变程序计数器的值来进行分支、循环、跳转、异常处理、线程恢复等功能;在多线程情况下,程序计数器记录的是当前线程执行的位置,从而当线程切换回来时,就知道上次线程执行到哪了特点:如果当前线程所执行的...
2019-06-25 08:39:41 257
原创 springcloud——客户端Eureka Client实现负载均衡 Ribbon
一、简介Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出Load Balancer(简称LB)后面所有的机器,R...
2019-06-24 09:05:13 1430
原创 springcloud——微服务注册与发现 eureka
一、什么是服务发现微服务将传统的"巨石"应用拆分成一个一个的组件应用,每个组件应用提供特定的服务,可以是一个,也可以是多个,并且组件所含服务应该是可以动态扩展的,随着时间推移、系统进化,可任意拆分、合并。组件化应用和颗粒化的服务,遍布在系统的各个角落,由不同的项目成员进行维护,微服务的核心是化整为零、各司其职,这就要求开发人员不得操作其业务或服务范围以外的数据模型等资源,只能通过接口的访...
2019-06-19 09:43:12 255
原创 Java的异常处理——Throwable、Error和Exception
异常指不期而至的各种状况,如:文件找不到、网络连接失败、除0操作、非法参数等。异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程。Java 异常的概念Java语言在设计的当初就考虑到这些问题,提出异常处理的框架的方案,所有的异常都可以用一个异常类来表示,不同类型的异常对应不同的子类异常(目前我们所说的异常包括错误概念),定义异常处理的规范,在JDK1.4版本以后增加了异常链机制,从...
2019-06-17 21:18:13 1018
原创 springcloud详解——什么是微服务?走进微服务
一、什么是微服务就目前而言,对于微服务业界并没有一个统一的、标准的定义(While there is no precise definition of this architectural style)但通常而言, 微服务架构是一种架构模式或者说是一种架构风格,它提倡将单一应用程序划分成一组小的服务,每个服务运行在其独立的自己的进程中,服务之间互相协调、互相配合,为用户提供最终价值。服务...
2019-06-17 00:05:12 447
原创 Maven详解——idea在使用maven聚合工程时其中一个子模块在maven projects中变成灰色,不能进行自动导包的异常
今天在使用idea写demo时,使用maven进行聚合工程时,删除了一次子模块,再重新进行创建的时候,maven自动导入依赖失去效果。在maven profiles中变成灰色:造成这个的原因可能是在进行删除模块的时候,忽略了此名称的maven模块,可以尝试如下解决方法:在idea中maven的setting中找到ignored files,看右边的面板中是否将变灰的maven模块忽...
2019-06-16 21:23:04 2668 4
原创 Maven详解——冲突解决
Maven详解—— 概述Maven详解—— 安装Maven详解——IDEA创建Maven工程Maven详解——Maven的常用命令Maven详解——依赖管理Maven详解——冲突解决冲突解决1、依赖 、依赖传递 、依赖冲突1.1什么是依赖 :jar就是依赖1.2什么是依赖传递:spring-context.jar 依赖了spring-ao...
2019-06-15 21:04:20 406
原创 Maven详解——依赖管理
Maven详解—— 概述Maven详解—— 安装Maven详解——IDEA创建Maven工程Maven详解——Maven的常用命令Maven详解——依赖管理Maven详解——冲突解决依赖管理1、Maven插件Maven是一个核心引擎,提供了基本的项目处理能力和建设过程的管理,以及一系列的插件是用来执行实际建设任务。maven插件可以完成一些特定的功...
2019-06-15 20:36:09 437
原创 Maven详解——Maven的常用命令
Maven详解—— 概述Maven详解—— 安装Maven详解——IDEA创建Maven工程Maven详解——Maven的常用命令Maven详解——依赖管理Maven详解——冲突解决Maven的常用命令1、idea中maven常用命令2. 常用的命令 clean 清理target目录 compile:编译 package :打...
2019-06-15 20:26:28 980
原创 Maven详解——IDEA创建Maven工程
Maven详解—— 概述Maven详解—— 安装Maven详解——IDEA创建Maven工程Maven详解——Maven的常用命令Maven详解——依赖管理Maven详解——冲突解决IDEA创建Maven工程1、IDEA指定本地Maven2、创建java工程2.1 创建java工程2.2 java工程目录结构2.3 ...
2019-06-15 20:22:31 479
原创 Maven详解—— 安装
Maven详解—— 概述Maven详解—— 安装Maven详解——IDEA创建Maven工程Maven详解——Maven的常用命令Maven详解——依赖管理Maven详解——冲突解决Maven的安装1、下载Maven官网下载地址:http://maven.apache.org/download.cgi2、安装Maven将Maven压缩包解压,...
2019-06-15 20:10:19 365
原创 Maven详解—— 概述
Maven详解—— 概述Maven详解—— 安装Maven详解——IDEA创建Maven工程Maven详解——Maven的常用命令Maven详解——依赖管理Maven详解——冲突解决第1章 Maven概述1.1 Maven的概念Maven是项目进行模型抽象,充分运用的面向对象的思想,Maven可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。Ma...
2019-06-15 19:43:41 490
原创 yum安装保留rpm源文件
在linux上,使用yum安装,默认安装完成之后会删除下载的rpm包;想要yum安装软件后,还保留安装包,那么需要修改/etc/yum.conf配置文件中的keepcache参数。[root@hadoop ~]# cat /etc/yum.conf[main]cachedir=/var/cache/yum/$basearch/$releasever 【安装包保存位置】keepca...
2019-06-14 09:14:36 442
原创 微信小程序获取openid
小程序获取openid小程序中的代码:// 登录wx.login({ success: res => { // 发送 res.code 到后台换取 openId, sessionKey, unionId var code = res.code; // 项目路径 var serverUrl = this.serverUrl; // ...
2019-06-12 11:17:13 187
原创 微信小程序 wx.request POST方式提交数据,后台接收不到数据
一开始的代码是:wx.request({ url: serverUrl+'/user/register', method: 'post', data: { 'userName': userName }, success: function(res){ console.log(res); }});发现后台根本接收不到数据,最后发现要修改一下请求头...
2019-06-12 00:16:50 3934 1
原创 数据库配置文件jdbc.properties用户名密码加密
项目框架:spring我们在开发应用时,需要连接数据库,一般把数据库信息放在一个属性配置文件中,比如jdbc.properties,具体的内容jdbc.properties配置文件jdbc.url=jdbc:mysql://127.0.0.1:3306/testjdbc.username=rootjdbc.password=123456里面用明文的方式存储着数据库的敏感信息用...
2019-06-05 16:53:10 3495 1
原创 一个对称加密解密的工具类
public final class EncryptionUtil { public static void main(String[] arrg){ String value = "123456"; System.out.println("value is : "+ value); String enc = encr...
2019-06-05 16:46:34 1340 1
原创 springboot整合mybati逆向工程
在pom.xml文件中添加插件<plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.2</version&g...
2019-06-04 10:43:21 128
原创 稀疏数组
稀疏数组(SparseArray): 首先可以先看个例子:1、编写一个五子棋的程序,可以使用二维数组的方式来实现2、问题分析:因为二维数组的很多值是默认为0,因此记录了很多没有意义的数据3、解决方法:使用稀疏数组的方式,只记录有意义的数据介绍: 所谓稀疏数组就是数组中大部分的内容值都未被使用(或都为零),在数组中仅有少部分的空间使用。因此造成内存空...
2019-06-02 17:34:00 134
原创 Mybatis中分页插件pageHelper的使用
使用方法1. 引入分页插件引入分页插件有下面2种方式,推荐使用 Maven 方式。1). 引入 Jar 包你可以从下面的地址中下载最新版本的 jar 包 https://oss.sonatype.org/content/repositories/releases/com/github/pagehelper/pagehelper/ http://repo1.maven...
2019-05-19 11:57:39 1214
原创 Intellij IDEA快捷键整理
【常规】 Ctrl+Shift + Enter,语句完成 “!”,否定完成,输入表达式时按 “!”键 Ctrl+E,最近的文件 Ctrl+Shift+E,最近更改的文件 Shift+Click,可以关闭文件 Ctrl+[OR ],可以跑到大括号的开头与结尾 Ctrl+F12,可以显示当前文件的结构 Ctrl+F7,可以查...
2019-05-16 08:58:45 110
原创 Mybatis的解析和运行原理中构建SqlSession过程
在上一章节讲述了Mybatis的解析和运行原理中构建SqlSessionFactory过程,本章节就主要讲述构建SqlSession的过程(二)、构建SqlSession过程SqlSession sqlSession = sessionFactory.openSession();sessionFactory.openSession()主要调用默认实现类Defaul...
2019-05-16 01:30:56 296
原创 Mybatis的解析和运行原理中构建SqlSessionFactory过程
一、MyBatis的功能架构我们把Mybatis的功能架构分为四层:(1)API接口层:提供给外部使用的接口API,开发人员通过这些本地API来操纵数据库。接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理。(2)数据处理层:负责具体的SQL查找、SQL解析、SQL执行和执行结果映射处理等。它主要的目的是根据调用的请求完成一次数据库操作。(3框架支撑层:负责最基...
2019-05-16 00:31:38 312
原创 Mybatis逆向工程生成的Example类的使用
本章节主要讲解如何使用Mybatis逆向工程生成的Example类如何使用Mybatis的逆向工程可以参考官方文档的QuickStar:http://www.mybatis.org/generator/quickstart.htmlMybatis的逆向工程生成的Example类主要进行实体类的复杂查询如何使用随便点开一个Example实体类://升序还是降序:字段+空格+as...
2019-05-14 00:37:35 2875
原创 mybatis逆向工程代码生成代码详解
本章节主要介绍mybatis的逆向工程如何生成代码及其使用详解一、什么是Mybatis的逆向工程简单来说,就是mybatis官方提供了逆向工程,可以根据数据库中的表来生成:POJO类、Mapper接口及其Mapper接口对应的配置文件二、Mybatis逆向工程生成java代码Mybatis逆向生成java代码的方式:(mybatis-Generator官网:http:/...
2019-05-14 00:16:57 608
原创 java.lang.AbstractMethodError: org.mybatis.spring.transaction.SpringManagedTransaction.getTimeout()
在spring与mybatis进行整合时发生异常:java.lang.AbstractMethodError: org.mybatis.spring.transaction.SpringManagedTransaction.getTimeout()具体原因:mybatis的jar包版本和mybatis-spring的jar版本冲突我使用的mybatis版本和mybatis版本:...
2019-05-13 21:44:09 188
原创 ssm三大框架进行整合,快速搭建一个web项目
本章节主要介绍在idea开发工具上如何使用maven搭建一个spring+springmvc+mybatis的web项目新建打开 IDEA 工具,通过 File -> New -> Project,新建项目,或者直接在 IDEA 欢迎页面点击新建项目,过程如下图:主要步骤包括:选择 Maven 项目 设置 JDK 勾选“Create from arch...
2019-05-10 03:50:10 1487
原创 mybatis中的缓存机制
Mybatis中的缓存机制: 一、一级缓存:(本地缓存) SqlSession级别的缓存。一级缓存是一直开启的。SqlSession级别的是一个map 与数据库同一次会话期间查询到的数据会放在本地缓存中。 以后如果需要获取相同的数据直接从缓存中获取,不会再次查询数据库 一级缓存失效的原因: 1、SqlSession不同...
2019-05-10 00:23:12 154
原创 mybatis中动态sql标签的用法
本章节主要介绍mybatis的动态sql的作用和用法一、mybatis动态SQL概述MyBatis 的强大特性之一便是它的动态 SQL。如果你有使用 JDBC 或其它类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句的痛苦。例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL 这一特性可以彻底摆脱这种痛苦。虽然在以前使用动态 SQL...
2019-05-09 19:07:31 880
原创 mybatis中resultMap用法及懒加载
本章节主要介绍mybatis的resultMap的用法,包含了级联查询、关联查询、懒加载、鉴别器的相关讲解和代码用例首先这是测试代码用到的实体类POJOEmployee.java:package com.wcg.mybatis.entity;import java.io.Serializable;/** * @author wcg * @create 2019-05...
2019-05-09 00:10:09 582
原创 JS一键复制粘贴功能
使用clipboard.js 实现:它是一个不需要Flash,就能实现文本复制或者剪切到剪切板的轻量级插件;具体实例:可以使用cdn 或者直接下载 设置好引用路径。<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>一键复制粘贴功能</titl...
2019-05-08 19:03:33 753
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人