自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 问答 (1)
  • 收藏
  • 关注

原创 多线程-synchronized AQS 线程池 Atomic ThreadLocal volatile

1.java并发包括synchronize2.synchronize(1)认识:重量级锁,synchronize保证同一时刻只有一个线程执行,因为synchronize依赖于底层的操作系统的 Mutex Lock 来实现的,线程上下文切换需要从用户态转换到内核态,这需要操作系统完成,因此耗时较大(2)synchronize使用:①加在静态方法synchronized static void method() { //业务代码}②加在静态代码块synchronized (this

2021-06-22 13:51:36 24702

原创 Java基础篇-Arrays.asList()、反射

1.Arrays.asList()import java.util.*;/* * Arrays.asList:底层还是数组,只是显示数据方式为list形式,如果后面加add方法会报错 * 如果真想转换还是得用new ArrayList<>(Arrays.asList(MyStrArray)) */public class TestArr { public static void main(String[] args) { // TODO Auto-generated meth

2021-06-19 20:49:35 24685

原创 网关Filter使用(路由匹配)

1.网关很重要的一大内容是路由匹配(有些类似springMVC的contoller,不过这个匹配可以按照时间匹配,可以选用after 、between、before)2.路由匹配https://www.geekdigging.com/2019/08/31/2648795174/(1)after before between 混合使用使用cookie匹配 - Cookie=sessionid,name - After=2020-06-20T06:06:0

2021-06-16 23:41:04 25152

原创 追踪微服务-用Spring Cloud Sleuth和Zipkin进行分布式链路跟踪

1.初步了解zipkin和Spring Cloud Sleuthzipkin:存储跟踪信息zipkin使用://下载https://search.maven.org/remote_content?g=io.zipkin&a=zipkin-server&v=LATEST&c=exec//启动zipkin的server端java -jar zipkin-server-2.23.2-exec.jar//默认情况下zipkin保存在内存,应该保存在数据库//IDEA集成zip

2021-06-16 12:54:27 163

原创 Zuul使用

1.Zuul四种标准过滤器类型(详细参考https://www.geekdigging.com/2019/08/31/2025584890/)pre:执行之前routing:执行阶段ost:执行之后error:发生错误时2.创建TokenFilter类public class TokenFilter extends ZuulFilter{//是否需要开始过滤 @Override public boolean shouldFilter() { // TODO Auto-generated

2021-06-15 14:23:39 3172

原创 springcloud网关zuul 简单demo

1.复制comsumer重命名zuul-simple,然后添加依赖包spring-cloud-starter-netflix-zuul包 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-zuul</artifactId> &l

2021-06-15 11:48:49 264

原创 解决配置手动刷新问题-Spring Cloud Bus

1.为什么使用Spring Cloud Bus?比如gitee(仓库)上配置刷新时需要通知所有服务端更新,一个个手动更新不方便2.consumer2项目操作(1)consumer2项目加入依赖包<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bus-amqp</artifactId><

2021-06-15 09:19:44 13575 1

原创 配置文件管理-Spring Cloud Config Github配置中心

1.服务端读取gitee上的配置信息在之前项目producer2基础上修改(1)pom.xml加入依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency>(

2021-06-12 22:25:23 157

原创 将springcloud部署到linux服务器(简单介绍)

1.本地访问请求和端口输入http://localhost:8085/hello/springhttp://localhost:8088/hello?name=springcloudhttp://localhost:8084/hello?name=springcloudhttp://localhost:8761/8085:consumer端口,每次刷新返回结果和上次不同8088 8084:producer端口8761:Eureka端口2.以jar导出项目3.进入Linux,输入指令psc

2021-06-08 19:25:02 916

原创 阅读 雪缘a_a文章总结出的微服务学习心得(注册中心Eureka、Consumer、producer)

1.为什么需要注册中心?可以自动管理调用链,不要我们一个个写比如A-B-C-D-E //A调用B服务,B调用C服务…F-C//F调用C服务如果是我们自己编写调用链,则代码public void A(){B()};public void B(){C()};public void C(){D()};public void D(){E()};public void F(){C()};//一旦调用链更长,程序员就很难从代码里找出哪个服务调用哪个服务,**一旦有某个服务调用关系发生变化比如D服务调

2021-06-07 15:22:03 182

原创 微服务入门(导入的项目没成功,没有实际例子,就当一次尝试吧)

1.词汇认识2.nacos 和eureka 都是注册中心,个人感觉euraka使用简单,不过为什么下面例子基本都是nacos?很好奇!3.参考资料(只是粗略看了下,如果只是想学微服务看这篇https://blog.csdn.net/boonya/article/details/77840004)//项目运行起来看似简单的https://gitee.com/liner123/newgulimall//带有详细操作文档https://blog.csdn.net/qq_37223597/articl

2021-06-06 21:32:55 91

原创 开发工具eclipse使用svn

1.前言:svn以插件形式存在在eclipse里,svn版本需与eclipse版本对应2.svn安装:eclipse marketplace 搜索svn安装(亲测不会弹出输入账号密码框,建议下载4.2 svn插件,然后覆盖到eclipse安装目录下,没成功,也许是eclipse问题)下载地址:https://github.com/subclipse/subclipse/wikigithub打不开,使用腾讯VPN3.svn使用,打开eclipse选中项目右键Team>SVN4.注意,使用sv

2021-06-05 22:05:16 36962 3

原创 linux安装tomcat

1.虚拟机设置这里我是购买了一台linux云服务器,不过在连接时因为修改密码一直没成功导致花费很多时间或者①安装virtural Box ,开启虚拟化②安装vagrant③命令提示符输入指令vagrant init centos/7再输入指令 vagrant up 这条指令意思是启动虚拟机指令④端口设置,让windows系统和linux系统互通,具体操作(1)打开Cwindows用户文件夹下的vagrantfile信息,把红色圈住地方取消注释(2)查找eindows系统网络信息,win+

2021-06-04 18:44:57 118

原创 SVN使用(管理员操作如创建仓库 服务端操作比如开启svn服务 客户端操作)

1.为什么使用SVN而不是git?答:①SVN简单,只需要存放一个代码的地方用SVN就够了②SVN有全局版本号个人想法:git在功能使用上强过SVN,git适合分布式的PS:想看Git在哪里强过SVN可以参考该文章https://blog.csdn.net/weixin_42476601/article/details/822909022.SVN...

2021-06-02 11:54:31 1815

原创 tomcat使用

1.windows下tomcat使用选中项目右键导出war一路next得到war包,将war包放到tomcat安装目录webapp文件夹下,运行tomcat.exe即可运行项目tomcat运行乱码:2.windows下tomcat日志文件位置:logs文件夹下localhost_access_log.2021-05-29.txt:静态资源请求日志,比如请求js、css、jpg、pnglocalhost.2021-05-29.log:项目运行日志文件catalina.2021-05-29.log:

2021-05-29 22:13:53 86

原创 GIt 高级用法--使用SSH来git clone(正在实际测试用法中)

1.git clone有两种方式,一种是http/https(下载公开分享项目),另外一种是SSH(下载企业团队私有项目,传输加密,使用公钥私钥)//使用SSH有个好处,不用每次clone都要输入一次账号密码2.http/https使用十分简单,安装git后随便选个文件夹右键 Git Bash Here,弹出一个类似于命令提示符框后输入git clone https://gitee.com/crystony/zookeeper-web.git即可3.自己使用SSH4.利用私钥来下载企业项目5.删

2021-05-28 15:41:48 37392

原创 十大排序算法简介和代码实现&图

1.十大排序算法名字复杂度https://www.cnblogs.com/xikui/p/11196148.html2.简述排序算法主要实现逻辑(1).冒泡排序:从数组左边开始,相邻之间元素比较大小交换位置使得最大的元素挪到右边2.选择排序:①先找到第0小的元素原始位置,然后和位置0的元素交换,比如:array[5]最小,则将array[5]和array[0]交换②从array[1]位置遍历,找到第二小的,然后交换array[min]、array[1]③从array[2]位置遍历……(

2021-05-28 13:55:58 80

原创 SQL优化初步学习

1.阿里云服务器购买搭建https://blog.csdn.net/m0_37135879/article/details/801484442.创建表create table USER(id int not null primary key,name varchar(50) not null,number varchar(50) not null,marjor varchar(50) not null,numberid int not NULL);3....

2021-05-25 21:31:51 199 2

原创 萌新入门 前端登陆加密

前言:突然发现自己没有做过这类的加密传输,匆匆恶补一下基本知识,这门学科真是复杂,做个笔记纯作了解吐槽:拿babel编译一遍,拿webpack打包一遍,再拿uglify压缩一遍,再拿eval加密一遍(https://www.zhihu.com/question/47047191)分析一下密码泄漏威胁情况和解决方案情况一:密码保存在前端泄漏解决方案:不要保存在前端情况二:密码输入时泄漏解决方案:输入密码时,以***代替情况三:传输到后端泄漏解决方案:SSL、HTTPS情况四:服务器泄漏解

2021-05-25 13:28:56 111

原创 Git使用(本人花了一个下午加晚上测试可行)

1.git安装https://npm.taobao.org/mirrors/git-for-windows/v2.31.1.windows.1/根据电脑系统版本选择下载2.git使用思路https://zhuanlan.zhihu.com/p/73363482git管理项目需要有几个分支3.git差异分析工具项目最终是合并到master分支,如果合并时发生冲突到底该舍弃哪个项目呢?使用git差异分析工具找到分支项目差异,然后根据差异决定舍弃哪个项目4.Git使用教程假定已经按照好了git

2021-05-24 23:58:28 167

原创 Linux指令学习----系统管理篇

1.grep -r “close” /home/* | more 在home目录下所有文件中查找,包括close的文件,并分页输出。2.打包当前目录下的hello.c hello.js到/aa/bb/cc/,压缩包名字为atest.tar.gztar -cvf /aa/bb/cc/atest.tar.gz hello.c hello.js打包压缩当前目录下的hello.c hello.js到/aa/bb/cc/,压缩包名字为aatest.tar.gztar -zcvf /aa/bb/c

2021-05-23 21:09:04 72

原创 Linux指令学习----文件操作篇

本次学习平台:http://bellard.org/jslinux/https://blog.csdn.net/weixin_42139375/article/details/827498231.创建文件 aaa.txt指令为 touch aaa.txt打开文件指令 vi aaa.txt2.退出vim编辑器:按ESC键,然后输入:wq注意:是输入冒号wq3.查看目录下文件,使用ls指令ls -l 指令:查看文件详细信息ls指令:查看文件名ls -l -a指令:查看所有文件包括隐藏文件详细

2021-05-23 19:56:59 135

原创 面试知识补全系列一.硬件知识

前言:问到了不少硬件题目,然而没答上,听不懂题目.面试完后想搜题目不知道从何搜索起,后面找到了.https://wenku.baidu.com/view/40d45ce533687e21ae45a93b.html1.什么是SetUp时间和Hold Up时间这些都是对触发器的时钟信号SetUp时间:触发器的时钟信号上升沿到来前信号不变持续时间Hold Up时间:触发器的时钟信号上升沿后信号不变持续时间2.什么是竞争与冒险现象竞争:同一个输入经过不同通道在输出端汇聚每条支线上的都在竞争着先跑到输出

2021-05-12 10:25:15 85

原创 关于MySQL语句执行 redolog、binlog提交顺序

1.MySQL INNODB有redolog,其他引擎如MYISAM则没有2. redolog、binlog提交顺序:先写redolog,此时不提交redolog,redolog进入预提交状态,再写binlog,提交binlog后再提交redolog3.出现断电等会影响事务事情会怎么处理?①判断redolog是否完整,完整则提交②redolog...

2021-05-12 10:00:46 639

原创 Redis六种内存淘汰策略&&三种缓存淘汰策略(帮你彻底理清淘汰策略,在阅读文章时发现先淘汰缓存再更新数据库不可行,又有人说可行,其实真相是这样的)

前言(1)注意区分六种内存淘汰策略和常用三种缓存淘汰策略,前者在redis.conf里配置,后者则是java代码里体现(2)六种策略①noeviction: 不删除策略, 达到最大内存限制时, 如果需要更多内存, 直接返回错误信息。②allkeys-lru: 所有key通用; 优先删除最近最少使用(less recently used ,LRU) 的 key。③volatile-lru: 只限于设置了 expire 的部分; 优先删除最近最少使用又过期(less recently used ,L

2021-04-28 14:43:28 1021

原创 Zookeeper 安装,伪集群

1.打开下面网址:https://mirrors.bfsu.edu.cn/apache/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0.tar.gz下载到本地,比如解压到D:\zookeeper\zookeeper-3.4.6,看图2.将zoo_sample.cfg重命名成zoo.cfg,然后打开zoo.cfg,自定义data和log存放位置点击zkCli.cmd,zkServer.cmd3.以下是伪集群内容,将zoo.cfg至少复制3份以上,比

2021-04-26 21:49:56 49

原创 快速弄懂JVM垃圾回收(包括引用,七种垃圾回收器使用)

1.JVM垃圾回收主要实在堆上,那么堆结构是怎样的呢??2.目前主流的垃圾回收器都会有分代收集,分代收集是什么??分代收集指的是按新生代垃圾收集(Minor GC)和老年代垃圾收集(Major GC/Full GC);Full GC比Minor GC慢10倍以上,当老年代内存不足或者显式调用 System.gc()方法时,会触发 Full GC3.垃圾回收器回收的肯定是无效的对象,那么怎么判断对象是否无效?有以下两种方法①引用计数法:给对象中添加一个引用计数器,每当有一个地方引用它,计数器就

2021-04-24 12:38:32 189

原创 二叉树的各种先序中序后序层次遍历(递归,非递归)&&数组实现后序遍历详细代码

import java.util.LinkedList;import java.util.Queue;import java.util.Scanner;import java.util.Stack;//https://blog.csdn.net/skylibiao/article/details/81195219//https://www.cnblogs.com/zhi-leaf/p/10813048.htmlpublic class BinaryTreeTest { //节点public

2021-04-23 13:00:47 89

原创 二叉树遍历&&CRC码&&MySQL语句执行顺序&&左右符号匹配算法

哔哩哔哩2021校园招聘后端开发1.物理层主要设备:中继器、集线器;数据链路层主要设备:二层交换机、网桥;网络层主要设备:路由器。网络层以上:网关2.树前序中序后序对某二叉树进行先序遍历的结果为ABDEFC,中序遍历的结果为DBEFAC,则后序遍历的结果是DFEBCA图片来自湮灭丶星空3.给定一个只包含括号的字符串,判断字符串是否有效。其中,括号种类包含: ‘(’,’)’,’{’,’}’,’[’,’]’。有效字符串需满足:1) 左括号必须用相同类型的右括号闭合;2)左括号必须以正确的顺序闭

2021-04-22 15:12:08 368

原创 单节点情况下淘汰缓存?更新数据库??哪个先执行?

一. 更新缓存有必要吗??解析:没必要,缓存数据都来自数据库,将缓存数据一个个更新消耗资源远比直接删除cache再读取数据库数据放到cache这一过程更大,所以直接删缓存1.淘汰缓存比如线程A更新变量C1,D1,去缓存找到是否有变量C1,D1,假设缓存刚好有这两个变量,则将这两个变量删除2.先淘汰缓存,后更新数据库(保证了数据的一致性,适用于对一致性要求高的业务)分为同步更新和异步更新两种情况同步更新:线程A更新数据库,线程B查找缓存却未命中cache然后读取数据库并放到缓存里.当线程B把数据读

2021-04-22 10:25:05 101

原创 2021.04.21牛客网Java校招面经汇总(1~12)

交行软开一面面经 遇见TA1.Java的类加载机制解析:https://gitee.com/SnailClimb/JavaGuide/blob/master/docs/java/jvm/%E7%B1%BB%E5%8A%A0%E8%BD%BD%E8%BF%87%E7%A8%8B.md系统加载 Class 类型的文件主要三步:加载->连接->初始化。连接过程又可分为三步:验证->准备->解析。(1)加载①通过全类名获取定义此类的二进制字节流②将字节流所代表的静态存储结构转换

2021-04-21 21:20:37 1459

原创 JVM调优第一步&&堆结构图解

1.-Xms256M -Xmx512M 在实际中怎么用以eclipse为例,选中项目右键Run as->Run configurations->Arguments->VM arguments添加-Xms256M -Xmx512M参考下图2.内存模型可分为一.PC(程序计数器)二.方法区三.本地方法栈四.虚拟机栈五.元空间六.堆3.堆:分为新生代老年代新生代:新创建对象或者对象没有达到年龄阈值的会存放在这里老年代:新创建对象如果太大就会存放到这里,此外新生代对象年

2021-04-21 17:09:11 93

原创 MySQl存储过程案例和视图一些容易失误要点

1.存储过程数据库:ch7,表:user 字段:uid, uname,usex//使用这个可快速插入数据以供测试DELIMITER $$CREATE PROCEDURE proc_demo() BEGIN DECLARE num INT DEFAULT 2; WHILE num<1001 DO INSERT INTO user (uid, uname,usex) VALUES(num,'未知名字','男'); SET num=nu

2021-04-21 15:03:48 274

原创 浩鲸科技2020届java笔试知识点总结,欢迎指出错误之处

1.视图中的select语句可以有ORDER BY(X)解析:不能带有oeder by,否则sql会执行很慢,建议视图外面使用order by2.已知表T1和T2的字段定义完全相同,T1中有2行不同数据,T2中有3行不同数据,其中T1中2条数据存在于表T2中,语句”select * from T1 union select * from T2”,返回的行数为3解析:UNION操作符会省略重复的结果,UNION ALL会保留重复的结果,union相当于 AUB,又题中B包含了A,因此AUB=B,返回记录

2021-04-21 12:58:15 13489 1

原创 牛客网真题刷题经验一:浩鲸科技2020届java笔试

1.浩鲸科技2020届java笔试编写Java Application 程序,查找出字符串str中字符A,替换成字符B,并统计替换的次数。【注】不可以使用Java的内置函数,如index()、replace()等。通用写法:public static void main(String[] args) {int index=0;String input="";char A;char B;Scanner s=new Scanner(System.in);while(s.hasNext())

2021-04-21 10:10:21 2394

原创 在ACM平台上做程序题编写输入输出(int,double,String,Array)

1.ACM模式下编程题整数类型输入输出import java.util.Scanner;public class Main {//计算三个数字之和 用例:输入1 3 5 输出:9 public static void main(String[] args) { Scanner in =new Scanner(System.in); while(in.hasNextInt()) { int a = in.nextInt();int b = in.nextInt();int c=in.next

2021-04-20 22:54:32 184

空空如也

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

TA关注的人

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