- 博客(38)
- 资源 (10)
- 收藏
- 关注
原创 JVM类加载过程-面试题
前言我们知道虚拟机JVM要运行一个代码,需要我们先把.java文件编译成.class文件,然后把.class文件加载到JVM中,最后运行main方法。本篇class文件加载到JVM过程,面试经常问到。类周期类加载过程类加载过程大致分为三部分:加载、连接、初始化,其中连接过程分为:验证、准备、解析,其中顺序没有明确要求,总的来说在初始化之前前面步骤都要完成,具体以什么顺序完成则没有明确规定。加载加载过程分为三步骤:1、获取定义此类的二进制字节流,通过包名类名定位到class文件
2020-10-26 11:37:11
878
原创 有十二个砝码.分三次称.其中有一个砝码或轻或重.该怎么称.称出这个砝码
题目:有十二个砝码.分三次称.其中有一个砝码或轻或重.该怎么称.称出这个砝码。之前一个分解问题,总是把自己弄乱,某天晚上失眠又想起来这道题,脑子清晰了,整个分解思路都理清楚了,并做了下面脑图,供大家更好理解。脑图...
2020-01-11 09:52:15
2094
原创 Oracle函数实现表映射实体类
简介通常使用mybatis或者是hibernate持久化框架,有点很麻烦就是每张表的映射实体类,需要“_”格式命名转成驼峰式命名,并且需要把表备注和字段备注,与类注解和成员变量注解对应上,如果一直用手动复制创建,不仅耗时,而且容易出错。虽然网络有很多java工具类可以生成,这边写了一个oracle函数,通过oracle原有的函数实现了生成表的映射类。使用函数执行查询sqlsele...
2019-12-28 15:11:54
1928
1
原创 java线程池讲解
简介程序(代码)需要在计算机系统中运行,需要计算机系统的资源,资源是有限,不能你想要随时都有,正常的过程是:为程序(代码)创建一个线程 -> 等待cpu-> 执行 -> 结束 -> 销毁该线程,回收资源。如果大量程序(代码)执行的时候,计算机需要频繁的创建线程和销毁线程,但是程序是可以复用的,这次执行完,下次还是可以复用该线程,所以就出现的线程池。线程池:程序先创...
2019-12-11 18:04:07
617
原创 Redis-集群三种模式简介
简介redis实现高可用的方式通常有三种模式:主从模式,哨兵模式,redis-cluster集群。主从模式一台主服务器、多台从服务器原理从服务器(slave)起始连接主服务器(master),从服务器(slave)发起数据同步请求(sync命令); 主服务器(master)接受sync命令,执行BGSAVE命令,把已有的数据生成RDB文件(通过RDB方式持久化),同时这段...
2019-12-11 11:26:03
360
原创 VUE学习-判断、隐藏、循环
判断v-if表达式成立则显示便签内容,否则不显示。例子:点击按钮,显示或者隐藏标题,v-if绑定一个表达式变量,通过改变这个变量控制便签显示或者隐藏。隐藏v-show表达式成立则显示便签内容,否则不显示。功能与v-if类似,但是v-show控制的是css标签内display的属性值,而v-if控制的是标签整个元素。如下例子:循环v-for集合数据列表展示。集...
2019-10-24 21:37:55
540
原创 VUE学习-挂载点、模板、实例、数据、事件、方法、常用标签内指令
挂载点一个html标签id与一个vue里面el值一致,则这个html标签就是vue实例的挂载点,例如下图:div的id是root,new Vue里面el的值是“#root”,则root这个标签就是Vue实例的挂载点。挂载点的作用就是Vue实例里面的方法、数据等只会处理挂载点范围内的元素。模板挂载点里面的内容都叫模板,模板可以直接写在挂载点里面如下图一,也可以写在Vue实例里面的...
2019-10-10 22:58:44
592
原创 VUE学习-初识VUE
初识VUEVUE开始VUE一套构建用户界面的渐进式框架,Vue是一个数据驱动页面的框架,基于MVVM模式,V指视图,M指数据,VM指视图模型,把数据绑定到视图上。整个框架着重于VM部分开始vue官网:https://cn.vuejs.org1、下载vue.js,直接官网下载开发版2、创建hello.html,通过引入vue.js4、创建vue实例,并设置接管html元素(与html...
2019-10-08 22:46:13
216
原创 spring系列-http接口请求
简介整理一份关于使用spring boot日常接口开发笔记。HTTP请求方式POST:用于新增数据 GET:用于请求数据 PUT:用于修改数据 DELETE:用于删除数据 PATCH:用于修改数据HTTP请求数据格式(参数)GET方式请求数据都直接在URL后面拼接上去;POST方式请求多了一个body部分,可以把数据放在URL或者是放在body。常见body数据类型...
2019-09-26 14:29:05
4513
原创 Redis-缓存雪崩、穿透、击穿
缓存雪崩在同一个时间点上,大量的缓存失效。缓存集中在一段时间内失效,发生大量的缓存穿透,所有的查询都落在数据库上,造成了缓存雪崩。解决方案: 1、数据预热,在即将可能出现大量并发的时候reload,不同的key设置不同的失效时间,尽量把失效时间均匀。 2、设置永不过期 3、加锁排队(双重校验锁,缓存击穿解决方案) 4、做二级缓存,A1缓存失效(失效时...
2019-09-21 22:59:34
222
原创 Hibernate和Mybatis一级缓存、二级缓存
Hibernate简介Hibernate是一个持久层框架,经常访问物理数据库。为了降低应用程序对物理数据源访问的频次,从而提高应用程序的运行性能。缓存内的数据是对物理数据源中的数据的复制,应用程序在运行时从缓存读写数据,在特定的时刻或事件会同步缓存和物理数据源的数据。一级缓存Hibernate一级缓存又称为“Session的缓存”。Session内置不能被卸载,Session的...
2019-09-21 22:57:17
1258
原创 Ignite-初识Ignite
简介最近公司需要更改一个旧项目,其中涉及到Ignite作为缓存体系,之前使用的缓存框架通常是redis集群,第一次接触Ignite,想把学习、认知过程记录下来。ignite作为分布式缓存框架, 首先了解到本来项目是分布式,ignite是直接嵌入项目(java)中,ignite是基于JVM的,所以可以完全嵌入java项目中,随着项目启动而启动关闭而关闭 (我理解为相当于java编写了一个ma...
2019-09-12 13:42:52
22184
原创 java关键词Transient、native、volatile
Transient是出现在mybatis映射实体类的时候,实体类某属性不需要映射的数据库表字段的时候加上@transient标签。主要的作用是对象序列化的时候会忽略这个属性。native在看法的过程没有使用过,在看源码的时候经常看到过用它来修饰一些方法。主要的作用在方法前加上native,代表方法是通过外部底层C实现的,调用的时候会用调用C语言方法调用。volatile使用是在多线程开发的...
2019-07-23 16:37:05
379
原创 RocketMq-单机搭建(单master)
准备工作环境:centOS7安装包:rocketmq-all-4.3.0-bin-release.zipJDK1.8maven环境(主要是运维工具)一、解压1、使用xshell连接centos7,通过xftp上传rocketmq-all-4.3.0-bin-release.zip文件至/usr/local/software2、解压zip文件,命令:unzip roc...
2019-06-07 23:36:18
1535
原创 RocketMq-基本概念认识
概念RocketMq是一款由阿里巴巴开源的消息中间件,所谓消息中间件的意思是消息存放的中转站,他可以存放由服务器(生产者)生产的消息(topic),消息类型可以是字符串、json串等数据类型,服务器(消费者)需要的时候可以提取出来。消息存放的方式是以队列的形式存放,特点是先进先出(先放入的消息先被拿出来)顺序放入拿出。RocketMq特点是高性能、高可用、高实时、分布式。主要作用是解耦、并行转...
2019-06-05 15:54:13
544
原创 Redis-五种数据类型
概述Redis是一种可基于内存也可持久化的日志型、key-value数据库,所以我们说的Redis支持的五中类型数据是指value的数据类型。五种数据类型:字符串(String)、列表类型(List)、集合类型(Set)、有序集合类型(SortedSet)、散列类型(Hash)。一、字符串(String)字符串类型是redis最基本数据类型,可以储存普通字符串、二进制数据、文件、图片或...
2019-06-04 15:49:34
596
原创 Redis-关于数据持久化
概述redis是一个缓存数据库,数据通常存放在内存中,以此做到快速读写功能。这样做的弊端就是每次机器重启或者掉线数据都会消失。通常为了解决内存数据再下次重启消失问题,主要方式就是把数据持久化到磁盘中,每次启动的时候就是磁盘数据载入内存,redis也是支持这种模式。持久化方式redis持久化数据到磁盘主要有两种方式:RDB和AOF。RDB方式是根据策略(配置文件)定时把数据持久化到磁盘;...
2019-06-04 09:25:47
276
翻译 常用linux命令(摘自他人笔记)
scp root@192.168.1.155:1.txt 2.txt (把服务器的1.txt下载到本地,并且重命名为2.txt)scp 2.txt root@192.168.1.155:3.txt (把本地2.txt文件上传到服务器的root目录下,并且命名为3.txt)如果是文件夹加上-r 为 scp -r .....centos7 防火墙的使用1、firewalld的基本使用启动:...
2019-05-09 08:55:41
277
原创 zookeeper集群搭建
准备工作三台虚拟机:192.168.2.177,192.168.2.178,192.168.2.179jdk1.8环境(往期博客有)zookeeper-3.4.12.tar.gz一、zookeeper安装使用xftp上传zookeeper-3.4.12.tar.gz,使用tar -xvfzookeeper-3.4.12.tar.gz解压到路径/usr/local/softwa...
2019-05-04 18:25:03
515
原创 本地虚拟机搭建Hadoop集群
准备工作jdk1.8 hadoop2.7 VMware一、新建三台虚拟机(使用centos 7)1、重命名hostname,分别命名为namenode、datanode2、datanode3建立主机名与IP地址映射,打开编辑:vi /etc/hosts2、配置静态ip地址,打开配置文件:vi /etc/sysconfig/network-scripts/ifcfg-...
2019-05-03 23:35:48
4250
原创 springboot设置文件上传大小,默认是1mb
springboot默认文件大小的限制是1MB,超过1MB会出现这个错误:org.springframework.web.multipart.MultipartException。通过设置application.yml文件属性更改文件大小限制如图:spring: servlet: multipart: enabled: true #是否启用http上传处理 ...
2019-04-28 09:29:19
30680
1
原创 使用idea+maven给springboot多模块结构打jar包
首先介绍项目结构,父工程:hfmp,子模块:affairs(springboot)、information(springboot)、model(java工程)、common(java工程),依赖关系:affairs依赖model和comm;information依赖model和common。如图hfmp父工程的pom.xml(只摘取部分关键代码),注意不需要<build&g...
2019-04-17 11:33:24
6429
1
原创 Base64编码字符超过76个出现换行符
前段时间在过接口md5校验的时候踩过这个坑,校验方式:MD5(base64(字符串)),在开发环境(window)下没问题,但是发布在linux上面就出现bug,一直校验不通过,但数据放回开发环境又没问题,分别在window环境与linux环境打印原字符串、base64加密、md5串,发现源字符串、base64加密一致,md5串不一致。 第一反应是MD5加密位数不一样,...
2019-04-16 14:46:59
3502
1
原创 分别整理常用mysql和oracle的基本sql语句包括DML、DDL、DCL
DML(data manipulation language)数据操纵语言,包括:select、insert、update、delete。DDL(data definition language)数据库定义语言,包括:create、alter、drop等,改变数据库表结构的操作。DCL(Data Control Language)数据库控制语言,包括:grant,deny,revoke等操...
2019-03-09 10:48:07
496
原创 使用队列queue构造栈stack、使用栈stack构造队列queue
队列queue特性:先进先出(队尾进,队头出),主要方法poll(取值),push(放值)、getLength(长度)栈stack特性:先进后出,主要方法poll(取值),push(放值)、getLength(长度)/** * @Auther: zhangyh * @Date: 2019/1/14 09:57 * @Description: 队列是先进先出(队尾进,队头出),栈是先...
2019-01-14 16:39:46
344
原创 java垃圾回收机制
任何一种垃圾回收算法一般要做2件基本的事情:(1)发现无用信息对象;(2)回收被无用对象占用的内存空间,使该空间可被程序再次使用 java GC垃圾回收机制(分代管理机制) 1.年轻代(Young Generation):所有新生成的对象首先都是放在年轻代的。年轻代的目标就是尽可能快速的收集掉那些生命周期短的对象。 特点:内存分为三个区,eden区(8)和两个s...
2019-01-04 11:10:43
188
原创 Orcel生成驼峰查询语句
通常我们在建表的时候表字段都是用“_”来分割,比如建一个用户字段使用“user_name”,而在java我们通常都是使用驼峰式,比如用户字段使用“userName”。在使用mybatis映射都实体类的时候,很麻烦需要一个个把“_”去掉并把后一个字段变成大写,所以写了一个函数自动把表的字段映射成驼峰式,方便开发。效果如下:主要函数代码:调用函数:select create_sq...
2018-12-24 15:25:35
1624
原创 java的简单排序、冒泡排序、插入排序、归并排序
简单排序:按顺序拿值都跟其他值对比,小于则交换位置。 private static void simpleLookUp(int[] a) { int length = a.length; int temp = a[0]; for(int i = 0 ;i <length ; i++){ for(int j = i + 1 ;j <length ; j++){ ...
2018-05-18 14:27:52
383
原创 java实现二分查找法
二分查找前提条件是存在一组数据已经排序好的, 目标值每次都只需要跟临界点那个值进行对比。 当大于这个临界值则,取[临界值+1]~[右下标]的临界值,再跟目标值对比反复直至找到;当小于这个临界值则,取[左下标]~[临界值-1]的临界值,再跟目标值对比反复直至找到。 代码简单的二分查找(注意退出的条件左下标大于右下标或者找到目标值): private static int t...
2018-05-15 17:05:11
522
原创 关于二叉树的前序、中序、后序三种遍历
二叉树遍历分为三种:前序、中序、后序,其中序遍历最为重要。为啥叫这个名字?是根据根节点的顺序命名的。比如上图正常的一个满节点,A:根节点、B:左节点、C:右节点,前序顺序是ABC(根节点排最先,然后同级先左后右);中序顺序是BAC(先左后根最后右);后序顺序是BCA(先左后右最后根)。 比如上图二叉树遍历结果 前序遍历:ABCDEFGHK 中序遍历:BDCAEHGKF 后序...
2018-05-07 12:25:02
475161
109
原创 nginx静态化技术
通常普通网站流程是,用户请求Tomcat服务器,拿到数据渲染后动态的jsp页面,返回给用户,可能优化数据直接放在缓存(不访问数据库以提高用户访问速度)。 静态化技术就是让用户访问的资源变成静态html页面,针对一些访问量大、不改动或者改动不频繁的业务,比如商品详情页(上架后数据基本不会变化)。生成的静态页面html放在nginx服务器上(Tomcat的上一级),用户访问不需要访问to...
2018-05-04 21:48:31
2195
原创 cent os7安装mysql数据库
本来自己想尝试离线(没有网络状态)下安装mysql,弄了好久发现,百度了好久终于让我弄到mysql所有依赖(后面上传),但是万万没想到最后一步安装mysql-server居然还要一个perl的编译环境...查了一下这个环境依赖太多了,瞬间崩溃,直接yum install perl搞定(但是网上很多教程没有讲到这个perl,直接安装完mysql的依赖就够了)。 这些安装依赖命令rp...
2018-05-04 10:13:28
2604
原创 Kafka中间件集群部署(spring+kafka集群项目整合也会上传)
1、创建三个centos 7虚拟机,vi /etc/sysconfig/network-scripts/ifcfg-ens33配置静态IP地址 TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO="static"IPADDR=172.18.160.175/172.18.160.176/172.18.160.177NET...
2018-05-02 14:29:40
1694
原创 java笔记-NIO
最近一段时间在看别人整理的Java NIO笔记,就想自己把我理解的NIO记录下来。 IO与NIO的区别,首先IO是面向流操作的,每次从流中读一个或多个字节,直至读取所有字节;NIO是面向缓冲区(这边新加Buffer)操作,添加capital(容量)、position(位置)、limit(限制)概念,capital>=limit>=0,每次读写操作的范围是position~...
2018-05-02 11:07:50
197
原创 java笔记-IO流
java.io包下有将近80个类,总体分为四组,根据传输数据格式分为操作字节的I/O接口:InputStream和OutputStream;根据传输数据格式操作字符的I/O接口:Writer和Reader;根据传输方式操作磁盘的I/O接口:File;根据传输方式操作网络的I/O接口:Scoket。...
2018-04-26 11:34:03
201
原创 java笔记-jvm执行顺序
java加载一般顺序:静态块(静态变量)——>成员变量——>构造方法——>静态方法 。执行顺序根据静态部分是依赖于类,而不是依赖于对象存在的,所以静态部分的加载优先于对象存在。 1.静态属性,静态方法声明,静态块。 2.动态属性,普通方法声明,构造块。 3.构造方法。静态: 当加载一个类时,JVM会根据属性的数据类型第一时间赋默认值(一举生成的)。然后
2018-01-11 16:56:59
636
原创 人生第一篇博客,现阶段1
博主从6月份毕业入职一家初创IT小公司,刚进去公司就三个开发加一个号称开发十几年的老板,进去后才知道三个就一个是本公司,剩下两个都是外包公司的。我来的以后独苗员工辞职了,我变成独苗了,幸好进去半个月陆陆续续招了两个加一个实习生。
2017-11-13 12:51:58
276
1
centos7安装mysql5.7依赖第二部分
2018-05-04
centos7安装mysql5.7.18的依赖RPM
2018-05-04
spring+kafka中间件整合
2018-05-02
搭建jfianl框架需要的架包
2017-03-15
httpwatch_10.0.43.0
2017-02-17
apache-maven-3.2.5-bin
2017-02-15
myeclipse svn插件site-1.10.13-1.9.x.zip
2017-02-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人