- 博客(48)
- 收藏
- 关注
原创 git和小乌龟
总结:安装git git小乌龟 小乌龟中文Basa 命令 git config -l命令: git config --global user.name “gege”命令:git congif --global user.email xxx@163.com命令 git config -l 检查Basa 命令 ssh-keygen生成密钥 在用户文件夹中id_rsa和id_rsa.pub.其中id_rsa.pub用notepad++打开,复制到网站设置已登录的地方。Basa 命令 git clo
2021-09-03 04:27:01
731
原创 Notepad++大小写
示例1:将语句 test this sentence 转为大写查找:^.*$替换:\U$0或------------查找:^(.*)$替换:\U\1 或 \U$1示例2:将语句 TEST THIS SENTENCE 转为小写查找:^.*$替换:\L$0或------------查找:^(.*)$替换:\L\1 或 \L$1示例3:将语句 test this sentence 首字t母转为大写查找:^.替换:\U$0或------------查找:^(.)替换:\U\1 或
2021-03-05 17:03:01
893
原创 String源码
第一重写写equal:1.判断地址值,一样为true。2.判断length不一样,为false,长度一样,再判断每一个char【】数组,for遍历对比,全部一样为true,否则为false。`1 public boolean equals(Object anObject) { 2 if (this == anObject) { 3 return true; 4 } 5 if (anObject instanceof S
2020-11-28 18:29:31
131
原创 Java中的死锁
死锁必要条件:1.互斥使用2.占有且等待3.循环等待4.不可抢占只有这四个条件同时成立才可能造成死锁,只要破坏其中一个就可以预防死锁。第一种:破坏占有且等待,每一个请求一次性申请所有需要的资源,如果无法一次性申请所有的资源,那就进行等待。第二种:破坏不可抢占,当某个线程拿到一部分资源后,要去申请另一个资源时如果申请不到,变回主动放弃它占有的所有资源。第三种:破坏循环等待,我们可以给每个资源标上序号,按照顺序申请,先申请资源序号小的再申请资源序号大的,这样线性化后申请资源.
2020-11-12 11:32:27
149
2
原创 左右移位运算
左移就是*2,但是不能溢出,这也就是为什么小转大要强制转换右移,就是/2然后取整,ArrayList的扩容方式就是,集合长度+集合长度右移一位。也就是1.5倍
2020-10-22 10:51:20
1124
原创 为什么二进制无法精确表达部分十进制的小数
小数可以想象为把1拆成10份,或者两份,就是十进制和二进制的差别。比如0.111(二进制)<0.9<0.1111(二进制)1/3,十进制表示不出来,三进制为0.1
2020-09-28 23:16:51
1770
原创 RabbitMQ的使用场景和六种工作方式
使用场景:*服务解耦、流量削峰、异步调用*(如支付成功后,安排外卖小哥就可以从消息队列去接收 订单执行寻找操作)Exchange:在RabbitMQ中常用 direct、Fanout、Topic三种;RabbitMQ的六种工作模式(rabbitmq.amqp依赖)简单模式:生产者发送信息,消费者接收信息**工作模式:**一个生产者,多个消费者,轮询或者合理分发(每次接收一条信息,处理完再接收),消息持久化。发布订阅模式:Exchange交换机Fanout,生产者只是声明Fanout,消
2020-08-31 00:45:27
694
原创 cmd搜索,杀死进程,linux中搜索杀死进程
linux中:搜索:ps -ef|grep redis杀死: ps -ef | grep redis | awk ‘{print $2}’ | xargs kill -9cmd中:netstat -ano | findstr (这里输入你想要查找的端口号)netstat -aon | findstr (这里输入你想要查找的端口号)taskkill /f /pid (这里输入你想要杀死的进程号)...
2020-08-21 00:37:49
223
原创 eureka、hystrix、actuator
eureka:注册中心eureka - AP:可用性,分区容错性有保护模式,不可用的服务不会删除集群–对等结构zookeeper–CP一致性,分区容错性会删除不可用服务的注册信息集群–主从结构springCloud的远程调用springboot提供一个工具 RestTemplate,辅助做Rest API调用方法:getForObject(url,对象类型,参数)postForObject(url,参数数据对象,对象类型)springcloud远程调用resthttp效率较
2020-08-20 20:08:31
211
原创 SpringMVC 核心思想
SpringMVC 核心思想底层实现是 Servlet 利用request.getParameter(“参数名称”)实现了数据的获取之后MVC将该方法进行封装;MVC可以直接为参数赋值页面的元素参数接收原级:HttpServletRequestpublic void aaa(HttpServletRequest request,HttpServletResponse response) {request.getParameter(“参数名称!!!”);} * <input type
2020-08-12 03:46:43
349
原创 UUID的组成,UUID是基于当前时间、计数器(counter)和硬件标识(通常为无线网卡的MAC地址)等数据计算生成的。
UUID由以下几部分的组合:(1)当前日期和时间,UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同。(2)时钟序列。(3)全局唯一的IEEE机器识别号,如果有网卡,从网卡MAC地址获得,没有网卡以其他方式获得。UUID的唯一缺陷在于生成的结果串会比较长。关于UUID这个标准使用最普遍的是微软的GUID(Globals Unique Identifiers)。在ColdFusion中可以用CreateUUID()函数很简单地生成UUID
2020-08-12 03:08:02
1325
原创 zookeeper为什么是CP原则
zookeeper集群中leader负责监控集群状态,follower主要负责客户端链接获取服务列表信息,同时参与投票。zookeeper中CAP原则CAP原则又称CAP定理,指的是在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)。CAP 原则指的是,这三个要素最多只能同时实现两点,不可能三者兼顾。中文名CAP原则外文名CAP Principle学 科计算机科学一致性(C):在***分布式系统**.
2020-08-10 03:13:34
9389
7
原创 先更新数据库还是先更新redis?
https://zhuanlan.zhihu.com/p/98909029采取哪种方法比较好呢?先更新数据库,再更新缓存先删除缓存,再更新数据库(先删除缓存,再更新数据库,再删除缓存)先更新数据库,再删除缓存
2020-08-09 13:42:44
873
原创 dubbo负载均衡的策,和SSO单点登录略
1.随机策略类名:RandomLoadBalance@Reference(timeout=3000,check=false,loadbalance =“random” )private UserService userService;2.轮询类名:RoundRobinLoadBalance@Reference(timeout=3000,check=false,loadbalance =“roundrobin” )private UserService userService;3.哈希方式类
2020-08-08 02:53:35
213
原创 物理层:集线器;数据链路层:交换机;传输层:路由器。三者之间的关系与区别
第一层,物理层:集线器,收到数据后,直接广播给每一台pc,没有过滤功能第二层,数据链路层:交换机。 可以根据MAC地址将数据发送给指定的pc,但是不能连接Internet。第三层,网络层:路由器;可以连接外网(Internet)总结,集线器和交换机创建了网络,而路由器连接了网路第四层:传输层,提供端对端的连接,有TCP、UDP协议第五层:会话层,建立或解除接电之间的联系第六层:表示层,数据格式的转换,数据加密解密第七次:应用层,文件、邮件的传输;有http、ftp等协议...
2020-08-05 23:04:17
1416
原创 HttpClient和JSONP的总结,http和RPC区别,SOA架构模型思想+RPC组成了dubbo微服务模型
HttpClient:1.可以java端访问任何的远程资源(不是跨域访问)2.可以调用任何第三方接口(支付)3.支持全部的请求类型(get、post、put、delete)4.调用时保证数据的安全性JSONP:1.可以实现主流浏览器跨域访问的问题2.JSONP一般适合查询一些简单的数据3.JSONP只支持get请求类型4.安全性低。5.JSONP,是浏览器解析AJAX发起的请求跨域访问技术有JSONP和CROS(cros现在使用的比较少,用VUE代替)2.微服务SOA思想:面
2020-08-05 19:29:54
271
原创 Redis集群报错[ERR] Node 192.168.96.132:7000 is not empty. Either the node already knows other nodes 。。。
主要是非正常关闭redis导致解决:1.先拍个快照,保存一下当前记录2.删除每个redis下的 appendonly.aof dump.rdb nodes.conf 就直接删除这三种文件(注意:redis.conf不用删)3.重启redis集群就可以了...
2020-08-02 03:29:02
846
原创 Hash,从认识到理解,Hash是什么?散列是什么?映射是什么?哈希函数散列函数是什么?有了地址值为什么还需要哈希值?
这纯属个人的学习认识,有错的地方,希望各位指正。散列函数也就是哈希函数;可以简单来说是一种映射关系,也就是y=f(x),可以说是一种可以满射但非单射的映射关系,比如MD5,这种128位的密码加密算法,也是解决不了单射,也就是有碰撞。128位是超大的数据,我算过64位就是16EB了,所以128位是人类根本用不完的,但确是可以用完的有限的。所以我说哈希是一种非单射且满射的对应关系,但是我们还是在努力的避免哈希碰撞,也就是想努力的实现单射状态(或双射)。每当我们存入一个key,这个key就是x,根
2020-07-31 22:38:23
814
原创 redis.clients.jedis.exceptions.JedisConnectionException: Failed connecting to host redis异常报错
redis.clients.jedis.exceptions.JedisConnectionException: Failed connecting to host 192.168.96.131:63出现这情况,检查3处:1.linux防火墙是后关闭,可以关闭linux防火墙service iptables stop2.检查redis启动问题 redis-server redis.conf3.检查redis配置信息是否正确...
2020-07-26 16:23:38
2640
原创 宽带拨号上网连接错误720
第一步:找到控制面板>>>设备管理器第二步:找到设备管理器中的网路适配器,把里面的WAN Miniport(ip),点击,然后点击右键卸载。第三步:关闭电脑,再开机,就可以了。
2020-07-23 21:11:19
1633
原创 vm虚拟机中的linux系统登录问题
深刻的教训:我就是一个小白,安装了VM虚拟机,然后在VM虚拟机安装了linux系统。其中也遇到很多问题,最大的问题就是登录问题,我发现我的密码一直输入不正确。网上搜索了无数遍,都没有找到答案。最终看到一个帖子说,不用输入用户名直接输入密码。很明显这对我来说是错的方法,但是我已经试了无数遍,再试一次也无妨。于是我在输入用户名的地方输入了密码,写了几个字母,写数字是用小键盘,我发现了,原来小键盘在linux系统中好像不是数字。悲痛的教训:linux中的小键盘不是我们想象的那样!!!!...
2020-07-22 03:59:54
1055
1
原创 虚拟机VMWARE快捷键
Ctrl-B 开机 Ctrl-E 关机Ctrl-R 重启Ctrl-Z 挂起Ctrl-N 新建一个虚拟机Ctrl-O 打开一个虚拟机Ctrl-F4 关闭所选择虚拟机的概要或者控制视图。如果虚拟机开着,一个确认对话框将出现。Ctrl-D 编辑虚拟机配置Ctrl-Alt-Enter 进入全屏模式Ctrl-Alt 返回正常(窗口)模式Ctrl-Alt-Tab 当鼠标和键盘焦点在虚拟机中时,在打开的虚拟机中切换。Ctrl-Tab 当鼠标和键盘焦点不在虚拟机中时,在打开的虚拟机中切换。VMware
2020-07-21 11:30:52
2735
1
原创 1.jQuery获取表格中的数据,2.参数传给后端,3.使用Ajax动态加载技术。作为一个后端,写前端jQuery痛苦的教训
痛苦的教训:业务要求:点击删除操作实现删除数据库的数据对应数据。第一步肯定要,获得点击这个按钮对应的编号,也就是id,数据库根据id删除数据。后端的我已经写好好(包括控制层,处理层,数据层)主要难题是在前端获取数据,并转给后端。1.获取这个按钮上对行的对应编号this可以选中当前按钮,parents可以选中按钮所在单元格的当前行,然后用find寻找当前行里做了标记的id,然后取值text;var param = $(this).parents().find("#nui").text();2
2020-07-16 04:23:36
639
原创 jquery 获取table tr td值
jquery代码(jquery 获取table tr td值//完成修改功能 )var td=td=td=(td).parents(‘tr’).children(‘td’);KaTeX parse error: Expected 'EOF', got '#' at position 3: ("#̲seshu").val(td.eq(0).find(‘input’).val());KaTeX parse error: Expected 'EOF', got '#' at position 3: ("#̲
2020-07-15 20:05:03
1128
原创 AOP面向切面的理解
1.AOP是基于反射和spring框架实现2.首先在目标方法上表明这个方法是目标方法,运行的切入点。并把这个类交给spring管理。3.我们配置一个DefaultAdvisorAutoProxyCreator类,这个作为配置类,spring启动,这个类的相关对象就开始工作,去扫描带有@Advice标注的方法,而且扫描到切入点pointcut,然后把advice的相关操作允行在pointcut的方法前或者后,或者环绕,拦截。应用:这就可以实现,目标方法运行前后做什么操作,可以实现日志。还可以实现权限
2020-07-10 15:37:50
195
原创 String笔记,发生改变就是新的String。
string是C++、java、VB等编程语言中的字符串,字符串是一个特殊的对象,属于引用类型。 在java、C#中,String类对象创建后,字符串一旦初始化就不能更改,因为string类中所有字符串都是常量,数据是无法更改,由于string对象的不可变,所以可以共享。对String类的任何改变,都是返回一个新的String类对象。 C++标准库中string类以类型的形式对字符串进行封装,且包含了字符序列的处理操作。...
2020-07-09 04:47:17
246
原创 Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of...
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.apache.shiro.realm.Realm' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}springboot项目遇到No qu
2020-07-09 01:27:03
2405
原创 springboot改用yml文件支持不生效
springboot改用yml文件支持不生效这只是排除问题的一个方面:有些springboot的maven pom文件中有:spring-boot-starter-parent这是springboot的parent类,它帮助我们引入了一些依赖和定义了一些版本号(这也是为什么有些maven引入不用指定版本号)如果这个parent版本比较低的话,他默认不带yml文件支持的。就需要自己引入了org.yamlsnakeyaml1.19...
2020-07-08 14:03:34
1536
原创 slf4j
日志门面SLF4J上述介绍的是一些日志框架的实现(Log4j、Logback、log4j2),这里我们需要用日志门面来解决系统与日志实现框架的耦合性。SLF4J,即简单日志门面(Simple Logging Facade for Java),它不是一个真正的日志实现,而是一个抽象层( abstraction layer),它允许你在后台使用任意一个日志实现。前面介绍的几种日志框架一样,每一种日志框架都有自己单独的API,要使用对应的框架就要使用其对应的API,这就大大的增加应用程序代码对于日志框架的耦合
2020-07-03 01:42:07
91
原创 提取sql共性代码,使用标签sql和inclue
代码中的查询条件是一样的可以提取出来<select id="getRowCount" resultType="int"> select count(*) from sys_logs <where> <if test="username!=null and username!=''"> where username like concat("%",#{username},"%") </if> </where> </s
2020-06-30 17:34:26
143
原创 Sql语句的模糊查询
查询emp表中姓名中以"刘"开头的员工,显示员工姓名。select name,sal from emp where name like ‘小%’;查询emp表中姓名以"刘"开头,字数为两个字的员工,显示员工姓名。select * from emp where name like ‘小_’;查询emp表中姓名中包含"涛"字的员工,显示员工姓名。select * from emp where name like ‘%明%’;提示:"%" 表示任意0或多个字符。"_" 表示任意一个字符应用例子:一
2020-06-30 17:13:33
706
原创 一分钟区别#和$
mybatis中#{}(转译占位符字符):转译的参数,如传入的是java的String或int参数,需要转成MySQL的int或者varchar类型参数。 select * from emp where name=#{name}${}(不转译占位符):不需要转译的,如表记录的哪一条,表的结构参数。 如:select${columns}fromemp...
2020-06-26 16:35:49
86
原创 javax.activation.DataSource与javax.sql.DataSource的区别
今天写Spring连接数据库,导入包的时候,混淆了javax.activation.DataSource与javax.sql.DataSource。导致DataSource和阿里的DruidDataSource不匹配,却一直以为是阿里依赖问题,在错误的方向弄了很久。后来才发现是javax的DataSource包导入错误。特意查了javax.activation.DataSource与javax.sql.DataSource的区别。如下:javax.activation.DataSource中定义
2020-06-25 17:48:12
2841
1
原创 JAVA两种流,字符流和字节流
Java中的流分为两种,一种是字节流,另一种是字符流,分别由四个抽象类来表示(每种流包括输入和输出两种所以一共四个):InputStream,OutputStream,Reader,Writer。Java中其他多种多样变化的流均是由它们派生出来的.字符流和字节流是根据处理数据的不同来区分的。字节流按照8位传输,字节流是最基本的,所有文件的储存是都是字节(byte)的储存,在磁盘上保留的并不是文件的字符而是先把字符编码成字节,再储存这些字节到磁盘。1.字节流可用于任何类型的对象,包括二进制对象,而字符流只
2020-06-20 00:47:58
1591
原创 初学时期
这个时期,不要照抄。“敲代码”靠的不是手指头,靠的是大脑。你首先要做的是阅读程序,深度的阅读。并且在读的时候,不要一下钻到细节中,先看结构。要解决的问题大致是清楚的,于是,程序有几大块,每块的任务是什么(你会发现,最宏观的,无非就是“输入-处理-输出”三块),然后再分解每一块。对十来行代码的程序这样阅读,等阅读200行,甚至2000行的程序时,这种思维就形成了,再不会被其中某个语法上的小疑惑困住了。照抄一遍会让你直接进入细节,忽视了结构,不利于你形成自己解决问题的能力。 基于上面所说的阅读,在理解后,自
2020-06-19 15:00:34
96
原创 泛型
list list = new ArrayList();通过反射和invoke,可以添加数字确实体现了这个灵活性,不用强转,运行无效作用: 提高编程的灵活性避免强转,提高运行效率通配符 ?上下界 super(上界 extends 下界擦除: 编译有效,运行无效 都变 object...
2020-06-19 01:15:35
110
原创 ThreadLocal与线程安全
一般情况SimpleDateFormat在多线程的情况下是不安全的,如果在多线程的情况下共享一个SimpleDateFormat的实例,比如定义一个全局的SimpleDateFormat实例,就会出现如下报错java.lang.NumberFormatException: multiple points,package com.java.oop.instance.homework;import java.text.ParseException;import java.text.SimpleD
2020-06-16 16:52:07
338
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人