- 博客(72)
- 资源 (4)
- 收藏
- 关注
原创 kafka启动创建topic报错:zookeeper is not a recognized option
这是新版本创建topic的命令,localhost:9092是kafka的 启动地址:端口。老版本的创建topic的命令,是使用kafka来创建,但是报错如下。当前使用版本:kafka_2.13-3.4.0。
2023-05-14 23:47:05
3000
原创 Java finally语句到底是在return之前还是之后执行?
网上有很多人探讨Java中异常捕获机制try...catch...finally块中的finally语句是不是一定会被执行?很多人都说不是,当然他们的回答是正确的,经过我试验,至少有两种情况下finally语句是不会被执行的:(1)try语句没有被执行到,如在try语句之前就返回了,这样finally语句就不会执行,这也说明了finally语句被执行的必要而非充分条件是:相应的try语句一定被执行到。(2)在try块中有System.exit(0);这样的语句,System.exit(0);是终止J
2021-07-14 10:52:55
336
1
转载 Mysql - ORDER BY详解
0 索引1 概述MySQL有两种方式可以实现 ORDER BY:1.通过索引扫描生成有序的结果2.使用文件排序(filesort)围绕着这两种排序方式,我们试着理解一下ORDER BY的执行过程以及回答一些常见的问题。(下文仅讨论InnoDB存储引擎)2 索引扫描排序和文件排序(filesort)简介我们知道InnoDB存储引擎以 B+树 作为索引的底层实现,B+树的 叶子节点 存储着所有数据页而内部节点不存放数据信息,并且所有叶子节点形成一个**(双向)链表**。举个例子,假设useri
2020-08-01 15:35:34
1345
1
转载 String的理解
转载(https://juejin.im/entry/6844903544999395342)在jdk 1.7之后,方法区的字符串常量池移至堆中1.使用 ” ” 双引号创建 : String s1 = “first”;2.使用字符串连接符拼接 : String s2=”se”+”cond”;3.使用字符串加引用拼接 : String s12=”first”+s2;4.使用new String(“”)创建 : String s3 = new String(“three”);5.使用new Stri
2020-07-31 17:35:19
381
转载 卸载MySQL
转载: https://blog.youkuaiyun.com/qq_41829904/article/details/92966943//rpm包安装方式卸载查包名:rpm -qa|grep -i mysql删除命令:rpm -e –nodeps 包名 //yum安装方式下载1.查看已安装的mysql命令:rpm -qa | grep -i mysql2.卸载mysql命令:yum remove mysql-community-server-5.6.36-2.el7.x86_64查看
2020-07-04 14:43:54
119
原创 工程项目中打印SQL的执行时间的两种方式
1.使用log4jdbc打印SQL执行时间本人项目使用的是apollo配置文件的:1.导入需要的maven包<!--监控sql日志--> <dependency> <groupId>org.bgee.log4jdbc-log4j2</groupId> <artifactId&...
2020-03-28 11:13:06
3122
原创 批量更新sql写法
sql语句写法UPDATE uke_hwork_upload set teacher_name = case id when 787513 then '张衡璇' when 866956 then '田璐' end where id in (787513,866956)数据量多一点的:UPDATE uke_hwork_upload set teacher_name = case teac...
2019-11-21 11:19:41
1453
原创 记一次搭建redis的经历
1.下载redis安装包2.腾讯云端口的开放腾讯云的安全性比较低,我将防火墙关闭的时候,会被“挖矿病毒”攻击,我的服务器CPU会一直停留在100%.3.使用的是自己的外网IP购买腾讯云的时候,会给两个IP,一个是内网IP,一个是外网IP,两者区别自行探索4.放开自己的端口由于我使用的是7001-7006端口,redis自己的为17001-17006这里需要将这12个端口进行放开...
2019-11-18 12:33:30
161
转载 MVCC简介
1. MVCC简介1.1 什么是MVCCMVCC是一种多版本并发控制机制。1.2 MVCC是为了解决什么问题?大多数的MYSQL事务型存储引擎,如,InnoDB,Falcon以及PBXT都不使用一种简单的行锁机制.事实上,他们都和MVCC–多版本并发控制来一起使用.大家都应该知道,锁机制可以控制并发操作,但是其系统开销较大,而MVCC可以在大多数情况下代替行级锁,使用MVCC,能降低其系...
2019-09-05 17:06:35
188
原创 leetCode(力扣)面试题
1.两数求和 (two sum)题目:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。class Solution {/** *核心思想:将所有数组中元素,放入map中key是元素值,value是元素索引位置*从数组中遍历元素,遍历一个元素,让sum值减去这个元素得出值,然后去hashMap中去找是否有此值,并...
2019-08-23 08:48:14
522
转载 java-synchronized原理
引用:https://www.cnblogs.com/xckxue/p/8685675.html介绍synchronized是一种独占式的重量级锁,在运行到同步方法或者同步代码块的时候,让程序的运行级别由用户态切换到内核态,把所有的线程挂起,通过操作系统的指令,去调度线程。这样会频繁出现程序运行状态的切换,线程的挂起和唤醒,会消耗系统资源,为了提高效率,引入了偏向锁、轻量级锁、尽量让多线程访问...
2019-08-21 20:11:11
122
转载 TCP的三次握手与四次挥手理解及面试题
本文经过借鉴书籍资料、他人博客总结出的知识点,欢迎提问序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号, 第一个字节的编号由本地随机产生;给字节编上序号后,就给每一个报文段指派一个序号; 序列号seq就是这个报文段中的第一个字节的数据编号。确认号ack:占4个字节,期待收到对方下一个报文段的第一个数据字节的序号;序列号表...
2019-08-19 18:40:11
117
原创 mycat配置主从复制,读写分离,分库分表
1.server.xml中文件配置完整内容<?xml version="1.0" encoding="UTF-8"?><!-- - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with ...
2019-08-19 15:26:17
599
1
原创 mysql时区错误,The server time zone value 'EDT' is unrecognized or represents
问题:1.查询时,数据库表中的时间字段显示有问题,不是北京时间2.利用mybatis查询mapper.xml文件时报错:Caused by: java.sql.SQLException: The server time zone value 'EDT' is unrecognized or represents more than one time zone. You must con...
2019-08-16 15:50:15
1545
原创 mysql集群部署 (两主两从)
mysql集群部署:两主两从(mysql-5.7.25) centos 71.安装mysql安装步骤省略参考我的上一篇 (https://blog.youkuaiyun.com/weishuai528/article/details/99642513)2.在不同虚拟机上安装mysql由于使用的是虚拟机,所以只需要在一台机器部署完成只有,就可以克隆,克隆出另外3台服务器,这样方便很多。(注...
2019-08-15 19:34:42
2627
原创 centos7安装mysql
1、删除centos系统自带的mariadb数据库防止发生冲突 1 2 rpm-qa|grep mariadb rpm-e mariadb-libs--nodeps 2、安装libaio库 1 yum-y install libaio 3、下载并解压mysql-5.7.25 1...
2019-08-15 16:37:58
497
2
原创 mysql5.7.25集群安装遇到的问题
1.在从节点 利用命令 mysql -uroot -p123456 进入 mysql时,开始stop slave时,提醒 需要设置 server-id,这个时候,你需要运行 show variables like %server%,可以查看 当前slave的server-id有没有设置,如果设置了,看下/etc/my.cnf下面的server-id 与命令显示的id是否一致,不一致,可能是因为...
2019-08-14 15:37:32
157
原创 java常见文件上传方式
采用file.Transto 来保存上传的文件,代码简单,速度快。请看下面代码。 /* * 采用file.Transto 来保存上传的文件 */ @RequestMapping("fileUpload2") public String fileUpload2(@RequestParam("file") CommonsMultipartFile file) t...
2019-07-24 13:42:32
478
转载 JVM调优之探索CMS和G1的物理内存归还机制
转自(https://www.cnblogs.com/seifon/p/11228224.html)前言:公司有一个资产统计系统,使用频率很低,但是要求在使用时查询速度快,因此想到做一些缓存放在内存中,在长时间没有使用,持久化到磁盘中,并对垃圾进行回收,归还物理内存给操作系统,从而节省宝贵资源给其它业务系统。当我做好缓存时,却发现了一个棘手的问题,通过程序释放资源并通知GC回收资源后,堆内存的...
2019-07-22 21:15:19
1075
转载 springboot启动过程(3)-refresh方法
1 springboot在启动的时候,会调用run方法,创建环境设置spring容器,其中包含refresh方法,完成配置类解析,各种beanFactoryPostProcess和beanPostProcessor注册,web内置容器构造,国际化配置初始化等,refresh调用了父类AbstractApplicationContext的refresh方法如下。public void refre...
2019-07-18 22:25:56
2033
转载 springboot启动过程(2)-run方法
1 springApplication的runrun方法主要是用于创造spring容器ConfigurableApplicationContext对象。public ConfigurableApplicationContext run(String... args) { StopWatch stopWatch = new StopWatch(); // 构造一个任务执行观察器 stop...
2019-07-18 22:10:27
730
转载 springboot启动过程(1)- 初始化
1. springboot启动时,只需要调用一个类前面加了@SpringBootApplication的main函数,执行SpringApplication.run(DemoApplication.class, args)即可,这里初始化了一个SpringApplication实例,然后调用run启动springboot。run方法中,调用了initialize,如下:@SuppressWar...
2019-07-18 21:54:36
217
转载 JVM调优参数详解
GC有两种类型:Scavenge GC 和Full GC1、Scavenge GC一般情况下,当新对象生成,并且在Eden申请空间失败时,就会触发Scavenge GC,堆的Eden区域进行GC,清除非存活对象,并且把尚且存活的对象移动到Survivor的两个区中。2、Full GC对整个堆进行整理,包括Young、Tenured和Perm。Full GC 比Scavenge GC要慢,因...
2019-07-15 17:54:12
530
转载 Redis持久化两种方案
1、前言最近在项目中使用到Redis做缓存,方便多个业务进程之间共享数据。由于Redis的数据都存放在内存中,如果没有配置持久化,redis重启后数据就全丢失了,于是需要开启redis的持久化功能,将数据保存到磁盘上,当redis重启后,可以从磁盘中恢复数据。redis提供两种方式进行持久化,一种是RDB持久化(原理是将Reids在内存中的数据库记录定时dump到磁盘上的RDB持久化),另外一种...
2019-05-31 09:59:14
133
原创 mysql隔离级别
1.查看mysql的事务级别(不同版本命令不同)//查看数据库版本mysql> select @@version; +-----------+| @@version |+-----------+| 8.0.12 |+-----------+1 row in set (0.01 sec)//查看数据库隔离级别mysql> select @@transa...
2019-05-29 18:31:12
869
转载 排序算法(转)
1.快速排序快速排序算法是冒泡排序的一种改进,快速排序也是通过逐渐消除待排序的无序序列中逆序元素来实现排序的算法思想:(1) 我们从待排序的记录序列中选取一个记录(通常第一个)作为基准元素(称为key)key=arr[left],然后设置两个变量,left指向数列的最左部,right指向数据的最右部。(2) key首先与arr[right]进行比较,如果arr[right]<k...
2019-05-29 17:02:47
133
原创 线程池使用
1.JAVA中的ThreadPoolExecutor类java.uitl.concurrent.ThreadPoolExecutor类是线程池中最核心的一个类,因此如果要透彻地了解Java中的线程池,必须先了解这个类。下面我们来看一下ThreadPoolExecutor类的具体实现源码。在ThreadPoolExecutor类中提供了四个构造方法:public class ThreadPoo...
2019-05-24 23:01:04
150
原创 JDBC连接数据库步骤
JDBC连接数据库步骤如下:1.注册数据库驱动类,明确指定数据库URL地址,数据库用户名,密码等 连接信息。2.通过DriverManager 打开数据库连接。3.通过数据库连接创建Statement对象。4.通过Statement对象执行,sql语句,得到ResultSet对象。5.通过ResultSet对象,并将数据库转换成JavaBean对象。6.关闭ResultSe...
2019-05-23 14:49:01
176
原创 虚拟机类加载机制
1.概述虚拟机把描述类的数据从class类加载到内存中,并对数据进行校验、转化解析和初始化,最终形成可被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。与那些在编译时需要进行连接工作的语言不同,在Java语言里面,类型的加载、连接和初始化过程都是在程序运行期间完成的,这种策略虽然会类加载时增加一些性能开销,但是会为Java应用程序提供 高度的灵活性,Java里天生可以动态扩展的语...
2019-05-14 15:15:19
123
原创 JDK命令行工具
JDK的命令行工具1.jps(JVM Process Status Tool):虚拟机进程状况工具执行命令如下: jps -l其他命令:LVMID:进程的本地虚拟机唯一ID (Local Virtual Machine Identifier,LVMID)jps -q 和 jps -m:jps -vjps -l2.jstat(JVM Statistics M...
2019-05-10 14:46:10
434
原创 逃逸分析与栈上分配
我们都知道,Java 创建的对象都是被分配到堆内存上,但是事实并不是这么绝对,通过对Java对象分配的过程分析,可以知道有两个地方会导致Java中创建出来的对象并一定分别在所认为的堆上。这两个点分别是Java中的逃逸分析和TLAB(Thread Local Allocation Buffer)线程私有的缓存区。逃逸分析,是一种可以有效减少Java程序中同步负载和内存堆分配压力的跨...
2019-05-09 17:48:38
324
原创 内存分配策略
这里的内存指的是Java堆内存 1.优先分配到Eden区 2.如果有大对象,直接进入老年代 3.长期存活的对象,分配到老年代 4.如果Eden空间不够,需要向老年代借空间,空间担保 5.动态对象年龄判断1.优先分配到Eden区public class TestMemory { @Test public void test01() { by...
2019-05-09 10:38:23
902
原创 垃圾回收——》垃圾对象判断,回收算法,垃圾收集器
1.如何判断对象为垃圾对象1.引用计数法 定义:在对象中添加一个引用计数器,当有地方引用这个对象的时候,此对象的引用计数器值就+1,当引用失效的时候,此对象的引用计数器值就-1。 打印垃圾回收信息添加在idea中添加以下参数即可打印: -XX:+PrintGC (与 -verbose:gc 是相同作用) -XX:+PrintGCDetails (日志输出具体详情) -XX:+...
2019-05-08 14:13:25
541
原创 对象的访问定位
对象的访问定位(使用句柄,直接指针)1.使用句柄如果使用句柄访问的话,那么Java堆中将会划分出一块内存来作为句柄池,reference中存储的就是对象的句柄地址,而句柄中包含了对象实例数据与类型数据各自的具体地址信息2.直接指针如果使用直接指针访问,那么Java堆对象的布局中就必须考虑如何放置访问类型数据的相关信息,而reference中存储的直接就是对象地址**这两种...
2019-05-08 10:44:56
252
原创 探究对象的结构
探究对象的结构(Header,InstanceData,Padding)Header(对象头)1.自身运行时数据(Mark Word)包括以下几类值:哈希值,GC分代年龄,锁状态标志,线程持有的锁,偏向线程ID,偏向线程时间戳2.类型指针InstanceDataPadding...
2019-05-08 10:29:08
144
转载 Elasticsearch核心概念
1、近实时1、从写入数据到数据可以被搜索到有一个轻微的延迟(通常是1秒)2、基于es执行搜索和分析可以达到秒级。2、Cluster(集群)集群包含多个节点,每个节点属于哪个集群是通过一个配置(集群名称,默认是my-application)来决定的,对于中小型应用来说,刚开始一个集群就一个节点很正常。3、Node(节点)集群中的一个节点,作为集群中的一部分,存储数据,参与集群的索引和检索...
2019-05-08 00:35:55
100
原创 对象的创建
对象的创建创建过程如下所示:给对象分配内存两种方式如下:1.指针碰撞 方式:假设Java堆中内存是绝对规整的,所有用过的内存都放在一边,空闲的内存放在另一边,中间放着一个指针作为分界点的指示器,那所分配内存就仅仅是把那个指针向空闲空间那边挪动一段与对象大小相等的距离,这种分配方式称为“指针碰撞”(Bump the Pointer)2.空闲列表 方式:如果Java堆中的内存并...
2019-05-07 18:16:16
149
原创 方法区----------运行时常量池(线程共享区)
运行时常量池运行时常量池(Runtime Constant Pool)是方法区的一部分。 Class文件中除了有类的版本、 字段、 方法、 接口等描述信息外,还有一项信息是常量池(Constant Pool Table),用于存放编译期生成的各种字面量和符号引用,这部分内容将在类加载后进入方法区的运行时常量池中存放。Java虚拟机对Class文件每一部分(自然也包括常量池)的格式都有严...
2019-05-07 16:59:22
1058
4
原创 Java虚拟机内存管理----------方法区(线程共享区)
方法区方法区(Method Area)与Java堆一样,是各个线程共享的内存区域,它用于存储已被虚拟机加载的类信息、 常量、 静态变量、 即时编译器编译后的代码等数据。 虽然Java虚拟机规范把方法区描述为堆的一个逻辑部分,但是它却有一个别名叫做Non-Heap(非堆),目的应该是与Java堆区分开来。类信息: 类的版本,类的字段,类的 方法,类接口方法区与永久代想垃圾回收在方法区的行...
2019-05-07 15:36:39
1100
springcloud 实战 翟永超
2019-04-09
汉化navicat的免费试用
2018-10-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人