- 博客(141)
- 收藏
- 关注
原创 Consul TTL健康检查方式
也就是说,如果properties中的scheme属性是http,则返回false,如果是https,则返回true。在properties中,scheme的默认值为http,一般不会特地去设置scheme属性,所以Tags中展示出来的一般都是secure=false。也就是说,该接口是将TTL健康检查的check状态设置为passing,如果在指定的TTL时间内,状态没有设置成功,证明发送心跳失败,该服务健康状态就为失败。PS:Tags中的secure=false到底是什么意思?
2023-04-13 20:09:58
1526
原创 spring cloud consul服务注册源码分析
这个接口里面只有一个方法setApplicationContext,如果实现了这个方法,Spring在启动的时候就需要实例化这个class,在实例化这个class的时候,发现它包含这个ApplicationContextAware接口的话,Spring就会调用这个对象的setApplicationContext方法,把applicationContext给塞进去。从源码中可以找到服务注册、自动服务注册、配置、服务发现等功能所对应的类。Consul api包中,调用了consul开源的注册API。
2023-04-12 10:05:45
422
原创 redis的安装
今天跟着尚硅谷的教程学习了redi的安装,在此简要记录一下。登录redis官网:https://redis.io/进入下载页面,下载redis在Linux环境下的安装包。由图中可看到,最新版本已经是6.2.6了,但由于我之前就下载过6.2.5的安装包,就用6.2.5这个版本。下载后:1.利用xftp将redis安装包放到Linux中,在这里,我新建了一个soft文件夹,专门用来存放redis;2.利用tar -xzvf redis-6.2.5.tar.gz命令来解压压缩包,生成redis-6
2021-11-29 23:47:52
855
原创 Linux下NAT模式联网设置
对于Linux下NAT模式联网设置的博客有很多,我在这里也是参考了这篇:Linux下NAT模式联网设置设置好后,我在测试时,遇到了以下问题:经过查询,是我的服务没有重启,但由于我是CentOS8,所以不能用service network restart命令,如果用该命令,会出现以下错误:应该用nmcli connection reload命令服务重启之后,还要记得将网络管理器打开:service network-manager start...
2021-10-19 22:47:24
219
原创 排查数据库连接异常
在启动一个最基础的springBoot服务时,出现了数据库连接异常,提示:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown database ‘XXX’就是说,名为“XXX”的数据库不存在。排查步骤:1.这个数据库是否确实存在?我查询了一下,这个数据库确实存在,PASS;2.配置文件中,URL是否错误?排查了一下,URL正确,PASS;3.利用IDEA内置的Database进行测试,步骤如下:输入所有需要的
2021-09-26 22:51:13
812
原创 leetcode 137——只出现一次的数字II——java实现
1.题目描述2.分析由于题目要求该算法的时间复杂度为线性,所以不能使用暴力法来解决。线性复杂度应该考虑使用HashMap或HashSet。由于对HashMap比较熟悉,所以利用HashMap来解决该问题。具体思路为:遍历数组,如果没有出现过这个数字,则value为1,如果出现过这个数字,则value为当前value的值+1.然后再遍历HashMap的key,如果这个key的value值为1,则return这个key,否则就return -1.3.具体代码如下class Solution {
2021-03-05 19:59:40
215
原创 h2内嵌数据库遇到的问题
跟着码匠笔记做论坛项目的时候,使用h2内嵌数据库时,遇到如下问题:org.h2.jdbc.JdbcSQLInvalidAuthorizationSpecException: Wrong user name or password [28000-199]就是说我用户名、密码错了。原本我建数据库时,跟视频中老师的做法一样,没有指定用户名和密码,并且URL也跟视频老师讲的一样,如下图所示:我以为是我哪里操作不当,于是我把数据库给删了,严格按照视频中老师的方式重新建了一个,还是报这样的错误,说明不是我操
2021-01-17 22:51:11
745
1
原创 利用Github作为第三方登录时,token返回的值全为null的问题
今天是一个崩溃的下午,因为利用OKhttp3利用post方式返回服务器时,官网上的代码明明是:public static final MediaType JSON = MediaType.get("application/json; charset=utf-8");OkHttpClient client = new OkHttpClient();String post(String url, String json) throws IOException { RequestBody b
2021-01-17 17:31:14
1175
2
原创 leetcode 108——将有序数组转换为二叉搜索树——java实现
题目要求:分析:将数组的中间一个数值作为根结点,然后利用递归对其左子树和右子树进行操作。具体代码为:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { publi
2020-12-31 11:54:55
155
原创 leetcode 107——二叉树的层序遍历 II——java实现
题目描述:分析:正好昨天做过一道题目:leetcode103——二叉树的锯齿形层序遍历——java实现在这道题目中,利用了add(int index, E element)方法,如果一直往第一的位置add进去的话,前面add进去的数值会往后挪,并不会被替换,这道题目同样可以利用该方法来解决问题。具体代码如下:/** * Definition for a binary tree node. * public class TreeNode { * int val; * Tre
2020-12-31 10:58:23
158
原创 leetcode 106——从中序与后序遍历序列构造二叉树——java实现
题目要求:分析:这道题目跟leetcoe105——从前序与中序遍历序列构造二叉树——java实现是姊妹题。中序遍历:左根右后序遍历:左右根解题思路为:后续遍历的最后一个值是根值,记为root,然后去中序遍历中寻找与root值相等的值,将其位置记为index。index的左边,为这棵树的左子树;index的右边,为这棵树的右子树。然后进行递归即可,注意要设置好递归结束条件。具体代码如下:/** * Definition for a binary tree node. * public c
2020-12-31 10:40:23
154
原创 leetcode103——二叉树的锯齿形层序遍历——java实现
题目要求:分析:这是一道典型的BFS题目,在leetcode102——二叉树的层次遍历——java实现中再加一个反转步骤就可以了。反转的判断依据,可以利用奇偶性判断,也可以利用true和false进行判断。具体实现如下:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * Tr
2020-12-30 17:41:51
203
原创 leetcode119—— 杨辉三角 II——java实现
题目要求:分析:这道题目跟118题差不多,只是返回值不一样而已。在这道题中,只需要将返回值返回到rowIndex那个集合就OK了。具体代码如下:class Solution { public List<Integer> getRow(int rowIndex) { List<List<Integer>> list1 = new ArrayList<>(); for(int i = 0; i <= rowI
2020-12-17 20:24:58
194
原创 leetcode118—— 杨辉三角——java实现
题目要求:给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。在杨辉三角中,每个数是它左上方和右上方的数的和。分析:懒得说了,如下图所示具体代码如下:class Solution { public List<List<Integer>> generate(int numRows) { List<List<Integer>> list1 = new ArrayList<>();
2020-12-17 19:31:00
192
原创 leetcode83——删除排序链表中的重复元素——java实现
题目要求:分析:我是因为看到这道题目可以用递归,才来做的,结果,第一反应永远是直接暴力的方法……直接上代码吧具体代码如下:/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { public ListNode
2020-12-11 11:27:07
206
原创 leetcode50——Pow(x, n)——java实现
题目要求:分析:第一反应是暴力法,暴力法是超出时间限制的。那么可以考虑使用折半的方法,进行递归。利用之前那篇博客中的三步法进行分析:找整个递归的终止条件:递归应该在什么时候结束?找返回值:应该给上一级返回什么信息?本级递归应该做什么:在这一级递归中,应该完成什么任务?1.终止条件:折半运算到最后一个n值,考虑到奇偶性,且正负情况不一样,有三种情况,分别为-1, 1, 0;2.返回值:给上一级返回的信息就是它们的乘积;3.如下图:具体代码如下:class Solution {
2020-12-11 10:19:20
240
原创 leetcode58——最后一个单词的长度——java实现
题目要求:分析:这道题目要从末尾开始遍历,思路很简单,但是!!!要注意后面是“ ”的情况!!!不然就会报错!!!具体代码如下:class Solution { public int lengthOfLastWord(String s) { int length = 0; for(int i = s.length()-1; i >= 0; i--) { if(s.charAt(i) == ' ' && lengt
2020-12-10 16:50:54
142
原创 leetcode86——分隔链表——java实现
题目要求:分析:对于这道题目,只要定义两个链表,一个链表存放<x的值,另一个链表存放≥x的值即可。这里要注意,链表最后一个值的next一定要指向null,不然会报如下错误:Error - Found cycle in the ListNode具体代码如下:/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * Lis
2020-12-10 16:25:45
323
原创 leetcode110——平衡二叉树——java实现
题目要求:分析:刚才看了那篇博客:三道题套路解决递归问题这道题目在作者博客里提到,也是关于递归的,所以也就顺着作者的思路给做了。由于这道题目比较特殊,就是又要判断是true还是false,又要根据高度差来判断,所以需要自己去创建一个类,让这个类既包含boolean类型,又包含int类型。具体代码为:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNo
2020-12-08 15:30:37
249
原创 leetcode24——两两交换链表中的节点——java实现
题目要求:分析:碰到链表的题目,会条件性反射地想到:利用哑结点来帮忙,在这道题目中,也确实可以利用哑结点来帮忙做事情。其实这道题目跟旋转链表的做法很像,思路如下图所示,非常清晰明了。具体代码如下:/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int va
2020-12-08 14:22:30
169
原创 leetcode1030——距离顺序排列矩阵单元格——java实现
题目要求:分析:第一反应永远是暴力法……遍历矩阵,设置一个二维数组用来存放结果,用数组中的sort方法进行排序,具体方式为:重写sort()方法中的compare方法。注:在compare(int[] a, int[]b)中,如果前者 - 后者,则是升序排序;如果后者 - 前者,则是降序排序。具体代码如下:class Solution { public int[][] allCellsDistOrder(int R, int C, int r0, int c0) {
2020-11-17 16:29:32
175
原创 leetcode25——K 个一组翻转链表——java实现
题目要求:分析:这道题目包含链表反转,所以可以调用反转链表那道题目。传送门:反转链表既然知道如何反转链表,那么只需要对整个链表根据k来进行断开即可。断开之后,调用反转链表方法,再将后面的接上,如此循环,直到最后。在这里,要注意的一点有:如果节点总数不为k的整数倍,则保持原有顺序。具体思路如下图:具体代码如下:/** * Definition for singly-linked list. * public class ListNode { * int val; *
2020-11-16 22:42:34
176
原创 AOP
AOP:Aspect Oriented Programming面向切面编程它是横向的,对业务逻辑的各个部分进行隔离,使得它们的耦合度降低,提高程序的可重用性。AOP三种实现方式:采用底层的代理机制实现;接口 + 实现类:Spring采用JDK的动态代理Proxy方式实现;实现类:Spring采用cglib字节码增强方式实现。1.target:目标类,需要被代理的类。例如:UserService2.Joinpoint(连接点):所谓连接点是指那些可能被拦截到的方法。例如:所有的方法3.
2020-08-07 22:41:10
170
原创 关于Spring框架的注释
注解其实就是一个类,写法为@XXX,在开发中,通常会使用注解来取代xml配置文件,理由是:方便。Spring中,new一个类的注解是@Component,它等价于<bean class = " ">@Component("XXX"),等价于<bean class = " " id = "XXX">在WEB开发中,通常会分为dao层,service层,web层,为了对它们进行区分,@Component衍生出了三种注解,它们的功能与@Component是一样的,分别为:dao
2020-08-05 23:10:11
157
原创 实例化Bean的三种方式
实例化Bean的方式有三种,分别为:使用构造方法实例化使用静态工厂方法实例化使用实例工厂方法实例化接下来分别对它们进行举例说明。1. 使用构造方法实例化 <!-- 第一种方式:配置一个bean,其实就是new一个实现类 --> <bean id="userService" class="com.ahua.service.UserServiceImpl"> <!-- 依赖注入数据,调用属性的set方法 --> &
2020-08-05 22:39:04
674
原创 Spring随笔
最近重温了Spring,随手记一下自己认为要点。1.Spring用的核心jar包:core, beans, context, expression, logging.2.IoC:Inverse of Control 反转控制原本程序中创建对象是要new的,现在对象的控制权被反转到了Spring框架,所以叫IoC.DI:Dependency Injection 依赖注入DI是从另一个角度考虑,与IoC是一样的东西,即:在Spring框架负责创建Bean对象时,动态地将依赖对象注入到Bean组件。
2020-08-03 22:46:40
124
原创 Git在IDEA中的使用随笔
File -> Settings -> Version Control随意创建一个工程练练手,先将该工程添加至本地仓库: VCS -> Import into Version Control -> Create Git repository -> 选择该工程的上一级文件夹(理由:作为工作目录,比较方便) -> Commit一下(选择想要提交的进行提交就好了)推送到远程:在GitHub上新建一个repository(注意选择HTTPS方式),复制URL,回到IDEA,.
2020-07-23 23:10:09
80
原创 Git提交到远程仓库随笔
前提:本地仓库和远程仓库均已创建好法1:利用SSH通信协议:无需输入用户名和密码,就可以与远程仓库进行通信,并能保证安全。操作步骤:法(1):敲命令行在Git Bash界面生成本地仓库和远程仓库的密钥对,命令为:ssh-keygen -t rsa,然后一路回车在本机目录的.ssh文件夹下,会有公钥和私钥复制公钥,在github上,点击自己的头像 -> settings -> SSH and GPG keys -> title名字随便取,将公钥粘贴到上面去,然后保存在本地仓库
2020-07-22 23:15:19
118
原创 GIT的安装方法
1.首先去GIT官网下载一个最新版本的GIT:Windows版本GIT下载链接Tips:由于GIT的网站是国外的,虽然GIT很小,但是网速真的烂得一匹,可以邮件点击下载链接 -> 检查元素 -> 查看器中会有下载的网址,将网址复制粘贴出来,用迅雷下载,几秒钟就搞定了。疯狂无脑安装GIT,啥都不用改,个人认为路径也不需要改,Next到底。在桌面空白处点击右键,如果看见GIT GUI和GIT BASH,八成是安装成功了。打开GIT BASH,输入git --version,就会显示你所安装GI
2020-07-21 22:33:58
186
原创 Eclipse创建使用Maven的Web工程
首先Eclipse需要集成好Maven和tomcat,才能进行下面的操作。File -> New -> Project -> Maven -> Maven Project -> Next -> Next -> maven-archetype-webapp -> 输入Artifact Id -> Finish此时这个工程会报错:The su...
2020-04-16 22:59:55
137
原创 数据库题目7
题目描述:假设有如下表信息:(1) 行名行号表(t_org)(2) 交易流水表(t_serial)(3)交易汇总表(t_total)问题:1) 统计行别为‘工行’且为‘二代行’的机构数;SELECT COUNT(*)FROM t_rogWHERE insttype = ‘156’AND instver = ‘2.0’;2) 将所有开通日期为‘20140810’的行的系统...
2020-03-17 17:30:49
1038
2
原创 数据库题目6
题目描述:已知关系模式:S (SNO,SNAME) 学生关系。SNO为学号,SNAME为姓名;C (CNO,CNAME,CTEACHER) 课程关系。CNO为课程号,CNAME为课程名,CTEACHER为任课教师;SC(SNO,CNO,SCGRADE)选课关系。SCGRADE为成绩。问题:1) 找出没有选修过“李明”老师讲授课程的所有学生姓名;SELECT SNAMEFROM S ...
2020-03-17 16:54:17
1988
原创 数据库题目5
题目描述:假如某系统包括客户信息、账户余额、资金明细表,其表结构如下:客户信息表“clientinfo”(主键:custid):问题:1) 找出未持有账户的客户信息列表(输出姓名、性别以及所属分行);SELECT custname, custsex, branchidFROM clientinfoWHERE custidNOT IN (SELECT cusidFROM acctb...
2020-03-17 15:42:32
2754
原创 数据库题目4
题目描述:问题:1) 查找客户号“88888888”的2009全年的存款流水,按日期升序排列SELECT DidFROM DepositWHERE Cid = ‘88888888’AND TradeDateBETWEEN 20090101 AND 20091231ORDER BY TradeDate ASC;2) 针对上面的查询要求,为Deposit表创建一个索引idx_Dep...
2020-03-17 14:09:41
563
原创 数据库题目3
题目描述:Small Bank corporation有如下的员工数据库,为下面每个查询语句写出SQL表达式:问题:1) 找出所有为Small Bank corporation工作且薪金超过10000的员工的名字、居住的街道和城市SELECT employee_name, street, cityFROM Employee e, Works wWHERE e.employee_nam...
2020-03-17 12:14:17
1236
原创 数据库题目2
题目描述:有一个学生课程数据库,包括学生表 S、课程表 C 和学生成绩表 SC,它们结构如下:问题:1) 查询所有学过 “数据库”的学生姓名,并且按姓名由大到小排序。注:由于补考、重修,一个学生可能有多个考试成绩,查询结果只需要输出一个。**分析:**由于查询结果只需要输出一个,所以利用DISTINCT,具体使用方法参照SQL SELECT DISTINCT 语句SELECT DIS...
2020-03-16 23:04:12
727
原创 数据库题目1
题目描述:下面是两个数据库表,分别记录员工姓名和员工工资:问题:1) 查询表 T_EMPLOYEE 中 id = 3 的员工记录SELECT *FROM T_EMPLOYEEWHERE id = 3;2) 查询2014年3月份所有员工薪水,SALARY从高到低排列SELECT te.NAME, ts.SALARY, ts.MONTHFROM T_EMPLOYEE te, T_...
2020-03-16 22:24:03
534
原创 摸鱼
感觉自己最近失去激情,疫情一来,整天干什么都不知道,连看电视都看不下去。这样的生活真的是没有灵魂。希望自己快点燃起斗志,为以后更好的生活创造条件。...
2020-03-15 13:57:30
368
原创 leetcode12——整数转罗马数字——java实现
题目描述解题思路代码中返回的类型是String类型,转成的罗马数字是一个一个累上去的。如:1994,是由1000(M),900(CM),90(XC),4(IV),累上去的。由于返回的类型是String类型,并且又是累上去的,就想到用StringBuilder的append()方法,到了最后用toString()方法来return即可。接着,题目中给出了一些特殊的数字,这些数字分别为:...
2020-03-13 20:13:46
239
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人