自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 nacos(三) 心跳检测原理

这篇文章主要针对nacos客户端的心跳检测。在上一篇文章已提到注册服务的时候,碰到临时节点需要注册心跳检测 @Override public void registerInstance(String serviceName, String groupName, Instance instance) throws NacosException { if (instance.isEphemeral()) {//临时节点, 配置心跳检测 BeatInfo

2021-03-06 21:15:58 2683

原创 nacos(二) 服务发现原理

首先我们知道,使用nacos需要添加@EnableDiscoveryClient, 进入看看EnableDiscoveryClient的源码。留意@Import(EnableDiscoveryClientImportSelector.class),这是实现nacos自动注入的入口/** * Annotation to enable a DiscoveryClient implementation. * @author Spencer Gibb */@Target(ElementType.T.

2021-03-03 21:04:54 987 3

原创 nacos(一) 使用入门

引入依赖 <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>2.1.1.RELEASE</version> </dependenc.

2021-02-28 21:26:21 286 2

原创 最后一个单词的长度

题目描述给定一个仅包含大小写字母和空格 ’ ’ 的字符串 s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。如果不存在最后一个单词,请返回 0 。说明:一个单词是指仅由字母组成、不包含任何空格字符的 最大子字符串。 示例: 输入: "Hello World" 输出: 5思路这个题目比较简单, 分三步如何定位最后一个空格出现的位置?首先需要砍掉字符串末尾为空格的部分, 目的是确定最后一个单词的末位位置第一步已经砍掉末尾为空格的部分, 只要从

2020-11-01 20:44:42 104 1

原创 组合总和

题目描述给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates中的每个数字在每个组合中只能使用一次。 说明: 所有数字(包括目标数)都是正整数。 解集不能包含重复的组合。 示例 1: 输入: candidates = [10,1,2,7,6,1,5], target = 8, 所求解集为: [ [1, 7],[1, 2, 5], [2, 6], [1, 1, 6] ] 示例 2:

2020-10-30 20:32:17 104

原创 实现 strStr()

题目描述给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。 输入: haystack = "hello", needle = "ll" 输出: 2 输入: haystack = "aaaaa", needle = "bba" 输出: -1当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。对于本题而言,当 needle 是空字符串时

2020-10-27 20:18:51 151

原创 两两交换链表中的节点

题目描述给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 输入:head = [1,2,3,4] 输出:[2,1,4,3] 输入:head = [] 输出:[] 输入:head = [1] 输出:[1]思路代码public class Link2 { public static class ListNode { int val; ListNode next; ListNode() { }

2020-10-26 20:44:19 105

原创 leetcode-合并两个有序链表

题目描述将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4思路两根指针 pointA 和 pointB 分别指向两个链表如果pointA.val >= pointB.val, pointB 指针对后移动一位如果pointA.val < pointB.val, pointA指针对后移动一位实

2020-10-25 12:56:20 105

原创 v-bind和v-model详解

说明v-bind用来绑定数据和属性以及表达式,简写’:’// 绑定文本<p v-bind="message"></p> // 绑定属性<p :class="myClass"></p>v-model指令在表单控件元素上创建双向数据绑定双向绑定 指的就是我们在js中的vue实例中的data与其渲染的dom元素上的内容保持一致,两者无论谁被改变,另一方也会相应的更新为相同的数据. 最基础的就是实现一个联动的效果 <input typ

2020-07-12 22:14:06 446

原创 Jaxb2实现JavaBean与xml互转

说明JAXB(Java Architecture for XML Binding)是一个业界的标准,是一项可以根据XML Schema产生Java类的技术。该过程中,JAXB也提供了将XML实例文档反向生成Java对象树的方法,并能将Java对象树的内容重新写到 XML实例文档@XmlRootElement 用于类级别的注解,对应xml的跟元素。通过name属性定义这个根节点的名称@XmlAccessorType定义映射这个类中的何种类型都需要映射到xml。(如果不存在@XmlAccessorTyp

2020-07-07 08:34:03 286 1

原创 springboot JPA 带有复合主键table 实体类映射

流程编写一个复合主键类 StudentCombineKey, 保证对应字段一致通过@IdClass注释在实体中标注复合主键tableCREATE TABLE t_student( student_id INT(20), id_number varchar2(50), create_time timestap(50), age int(10), PRIMARY KEY (stu

2020-07-06 17:53:23 517

原创 python 迭代时删除列表元素

错误的删除方式del var_namelist_a = [1, 2, 3, 4]for index, item in enumerate(list_a): del itemprint(list_a) # [1, 2, 3, 4]del删除的只是变量,而不是数据,因此数组list_a内容不变remove & poplist_a = [1, 2, 3, 4]for index, item in enumerate(list_a): list_a.remov

2020-07-02 21:51:46 3183

原创 python del释放内存

说明del语句作用在变量上,而不是数据对象上del删除的是变量,而不是数据__del__是个特殊方法,它不会销毁实例无论手动del还是等Python自动GC,都会调用到__del__例子class A: def __init__(self): print("__init__() ") def __del__(self): print("__del__()")a = A()b = adel aprint("***********")

2020-07-01 22:34:30 3197 1

原创 python 子类关系

说明python为所有类提供一个__bases__属性,通过该属性可以查看该类的所有直接父类,该属性返回所有直接父类组成的元组python为所有类提供了一个__subclasses__()方法,通过该方法可以查看该类的所有直接子类,该方法返回该类的所有子类组成的列表子类继承父类的私有方法重写无效,公有方法可以重写,引用父类方法可用super()实现来个特别的例子from collections import Hashableprint(issubclass(list, object))

2020-06-30 22:22:40 196

原创 python tuple和list区别

说明list和tuple是一种有序的集合list可以随意添加和删除元素,tuple一旦初始化就不能修改对于tuple, 如果对象包含对其他对象的引用,则这些其他对象可能是可变的并且可能会被修改; 但是,由不可变对象直接引用的对象集合不能更改tuple是静态的固定大小的,而list是动态分配存储空间,自动扩容的a_tuple = ("apple", "pear", "banana")b_tuple = ([1, 2], [3, 4], [5, 6])a_tuple[1] = 'purpos

2020-06-29 22:19:21 355

原创 python 类属性和实例属性

说明类属性是类所特有的,所有实例共享这个类属性,类属性经常定义在类的开头,方法的外面实例属性是一个类的实例所特有的,定义在__init__()里面来一个栗子Aclass A: x = 1 #类属性class B(A): passclass C(A): passB.x = 2A.x = 3print(A.x, B.x, C.x)#3 2 3为什么C.x=3, 而不是等于1?类变量和实例变量在内部是通过类对象的字典( __dict__ 属性)

2020-06-22 22:29:55 142

原创 python bool布尔值你不知道的事!

看个栗子先mixed_list = [False, 1, 3, True, 5]integer_sum = 0bool_sum = 0for item in mixed_list: if isinstance(item, int): integer_sum += 1 elif isinstance(item, bool): bool_sum += 1print(integer_sum) # 5print(bool_sum) # 0为什

2020-06-22 21:26:39 290

原创 python 闭包,你必须知道的坑!

funcs = []result_list = []for x in range(3): def do_some(): return x funcs.append(do_some) result_list.append(do_some()) # 注意这里函数被执行了funcs_result_list = [func() for func in funcs]很多人以为result_list和funcs_result_list的结果是一样的,都是[0, 1,

2020-06-21 23:00:16 306

原创 python is 和 == 区别

直接上个栗子>>>a = 256>>>b = 256>>>a is b True >>>a == bTrue>>>a=257>>>b=257>>>a is bFalse>>>a == bTrue两次执行结果,为什么不相同?is 运算符检查两个运算对象是否引用自同一对象 (即, 它检查两个对象的内存地址是否相同).== 运算符比较两

2020-06-21 21:54:58 136

原创 python for in循环踩坑录

坑 A首先来个例子a = [2, 5, 7]b = (x for x in a if a.count(x) > 0)print(list(b))#[2, 5, 7]改动一下,加一行代码a = [2, 8, 9]a = [2, 5, 7]b = (x for x in a if a.count(x) > 0)a = [2, 8, 9]print(list(b))#[2] 为什么两次执行结果不一样?在生成器表达式中, in 子句在声明时执行, 而条件子句则是在

2020-06-20 22:57:44 574

原创 python id()和 is 大揭秘

说明id(object)具有不重叠生命周期的两个对象可能具有相同的id不重叠的生命周期: 当对象被创建时,python内部机制会为其分配内存空间。如果在对象占用内存期间,创建另一个对象,系统又会为新的对象分配新的内存空间,那么它们的生命周期就是重叠的(因为同一时间里它们都占用着内存空间——占用内存的时间即为生命周期)x is y: 当且仅当x和y是同一对象时才为true 。使用该功能确定对象的身份id(object) 和is 比较的都是内存地址实例 aclass A: pass

2020-06-20 00:51:44 226

原创 python try catch finally原来是这样的?!

函数的返回值由最后执行的 return 语句决定. 由于 finally 子句一定会执行, 所以 finally 子句中的 return 将始终是最后执行的语句 ''' 1.try块中包含break、continue或者return语句的,在离开try块之前,finally中的语句也会被执行 2. 实际应用中,不推荐在finally中使用return返回 3. 由于finally无论如何都会被执行, 一般用来做一些资源释放操作 ''' def func(): try:

2020-06-19 22:51:41 593

原创 python标准库: hash(object)

说明Python 字典通过检查键值是否相等和比较哈希值来确定两个键是否相同.具有相同值的不可变对象在Python中始终具有相同的哈希值具有不同值的对象也可能具有相同的哈希值(哈希冲突).'''相同的数值,不同类型,哈希值是一样的, 所以a[5.0]会覆盖a[5]'''a = {}a[5] = 'java'a[2] = 'js'a[5.0] = 'python'print(a[5]) # python...

2020-06-19 22:35:33 214

原创 python 字符串的驻留机制

说明字符串驻留是一种仅保存一份相同且不可变字符串的方法。不同的值被存放在字符串驻留池中,发生驻留之后, 许多变量可能指向内存中的相同字符串对象, 从而节省内存.原理系统维护interned字典,记录已被驻留的字符串对象当字符串对象a需要驻留时,先在interned检测是否存在,若存在则指向存在的字符串对象,a的引用计数减1若不存在,则记录a到interned中驻留时机所有长度为 0 和长度为 1 的字符串都被驻留字符串只在编译时进行驻留,而非运行时a = 'hi' # a变量被

2020-06-18 23:34:22 372

原创 Python 类反射机制,类名路径实例化对象

说明反射就是通过字符串的形式,导入模块;通过字符串的形式,去模块寻找指定函数,并执行。利用字符串的形式去对象(模块)中操作(查找/获取/删除/添加)成员,一种基于字符串的事件驱动。反射功能的实现,由这4个内置函数来实现(hasattr, getattr, setattr, delattr)。函数名说明getattr(object, attr[, default])获取指定字符串名称的对象属性或方法,如果对象有该属性则返回属性值,如果有该方法则返回该方法的内存地址hasatt

2020-06-15 17:43:56 1647

原创 python list排序详解

说明对List进行排序,Python提供了两个方法: list.sort() 和sorted(list)sorted(list)返回一个对象,可以用作表达式。原来的list不变,生成一个新的排好序的list对象。list.sort() 不会返回对象,改变原有的list用List的内建函数list.sort进行排序sort(self, key=None, reverse=False)reverse: True 倒叙排序普通数组排序my_list = [1, 2, 5, 6, 3]my

2020-06-12 21:42:37 200

原创 windows MongoDB 3.0创建用户

说明MongoDB是基于角色的访问控制,所以创建用户需要指定用户的角色,在创建用户之前需要满足:启用访问控制,进行登录用户验证,这样创建用户才有意义。进入MongoDB进入MongoDB安装目录,eg: D:\DEVTools\MongoDB\bin运行 mongo.exe查看所有数据库#admin库是不存在的,这跟之前的版本不一样> show dbsdb1 0.078GBtest 0.078GBlocal 0.078GB创建用户管理的用户具体角色Read:允

2020-06-11 17:53:32 146

原创 python logging 配置

logging模块简介Python的logging模块提供了通用的日志系统,可以方便第三方模块或者是应用使用。这个模块提供不同的日志级别,并可以采用不同的方式记录日志,比如文件,HTTP GET/POST,SMTP,Socket等,甚至可以自己实现具体的日志记录方式。logging模块提供logger,handler,filter,formatter。logger: 提供日志接口,供应用代码使用。logger最长用的操作有两类:配置和发送日志消息。可以通过logging.getLogger(name)

2020-06-10 17:29:56 259 1

原创 python 定时任务APScheduler

APScheduler四个组件triggers触发器包含调度逻辑,每一个job有它自己的触发器,用于决定job下一次运行时间。除了初始配置外,触发器完全是无状态的。job stores作业存储存储被调度的job,默认的job存储是简单地把job存储在内存中,其他的job存储是保存在数据库中。Job的数据在保存到持久化存储时被序列化,并在加载时进行反序列化。job存储(默认存储除外)不将job数据保存在内存中,而是充当后台保存、加载、更新和搜索job的中间人。job存储永远不能在调度程序之间共享。.

2020-06-10 14:10:05 570

原创 python操作ElasticSearch

pip install连接查询

2020-06-10 14:04:55 480

原创 pytorch 入门

1.windows 安装pytorchpip install torch===1.4.0 torchvision===0.6.0 -f https://download.pytorch.org/whl/torch_stable.html

2020-05-30 22:14:35 135

空空如也

空空如也

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

TA关注的人

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