一.JAVA【基础】

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
分类: 其他 发布时间: 01-27 23:41 阅读次数: 0

二.JAVA【集合】

文章目录集合框架的优点?集合框架中的泛型有什么优点?JAVA集合框架的基础接口有哪些?为什么Map接口不继承Collection接口?Collection和Collections的区别?集合里面的通用算法有哪些?集合框架等数据接口什么是迭代器(Iterator)?Iterator和ListIterator的区别是什么?快速失败(fail-fast)和安全失败(fail-safe)的区别是什么?如何删除List中的某个元素?Enumeration和Iterator接口有什么不同?Iterator接口的具体实现
分类: 其他 发布时间: 01-27 23:41 阅读次数: 0

三.Spring

文章目录Spring Framework 中有多少个模块,它们分别是什么?Spring Framework 中有多少个模块,它们分别是什么?spring核心容器:Core ContainerSpring CoreSpring Bean核心容器提供spring的基本功能。核心容器的主要组件是BeanFactory,它是工厂模式的实现。BeanFactory使用控制反转(IOC)模式将应用程序的配置和依赖性规范与实际的应用程序代码分开Spring Contextspring上下文
分类: 其他 发布时间: 01-27 23:41 阅读次数: 0

4.Spring MVC

文章目录Spring MVC的核心组件描述一下DispatcherServlet的工作流程WebApplicationContextSpring MVC的异常处理?Spring MVC优点Spring MVC的Controller是不是单例?Spring MVC的拦截器和Filter过滤器的区别?Spring MVC的核心组件九大核心组件:MultipartResolver:附件解析器LocaleResolver:ThemeResolverHandlerMappingHadnlerAdpat
分类: 其他 发布时间: 01-27 23:41 阅读次数: 0

五.Spring Boot

文章目录Spring Boot 提供了哪些核心功能?Spring Boot优缺点Spring Boot、Spring MVC和Spring有什么区别?Spring Boot中的Starter是什么?Spring Boot配置加载顺序Spring Boot 提供了哪些核心功能?独立运行spring项目:通过java -jar xx.jar内嵌Servlet容器:内嵌Tomcat、Jetty、Undertow提供Starter简化maven配置自动配置Spring Bean无代码生成和XML配置
分类: 其他 发布时间: 01-27 23:40 阅读次数: 0

六.MyBatis

文章目录MyBatis的执行步骤MyBatis有哪些Executor执行器?它们之间的区别是什么?MyBatis的插件运行原理?以及如何编写一个插件MyBatis的执行步骤创建SqlSessionFactory对象通过SqlSessionFactory获取SqlSession对象通过SqlSession获取Mapper代理对象通过Mapper代理对象,执行数据库操作执行成果,使用SqlSession提交事务执行失败,使用SqlSession回滚事务关闭会话MyBatis有哪些Execu
分类: 其他 发布时间: 01-27 23:40 阅读次数: 0

七.Mysql

文章目录InnoDB的4大特性什么是索引,好处与坏处?索引的类型索引的创建原则索引的原理为什么主键建议自增,或者带时间性关联?Mysql事务隔离级Mysql的锁机制锁的粒度什么是悲观锁,乐观锁什么是死锁InnoDB的行锁是怎么实现的InnoDB的4大特性插入缓冲 insert buffer二次重写 double write自适应哈希索引 ahi预读 read ahead什么是索引,好处与坏处?是数据库管理系统中一个排序的数据结构,帮助快速查询更新表中数据好处:提升数据的检索,降低数据
分类: 其他 发布时间: 01-27 23:40 阅读次数: 0

八.redis

文章目录什么是缓存?缓存算法常见问题?如何避免缓存“穿透”?如何避免缓存“雪崩”?如何避免缓存“击穿”?缓存和DB一致性如何保证?什么是缓存预热?如何实现缓存预热?内存淘汰策略Redis优点Redis缺点Redis线程模型Redis为什么快Redis的持久化方式redis的过期策略redis的淘汰策略如果有大量的key需要设置同一时间过期Redis使用场景如何使用redis分布式锁什么是缓存?缓存是指数据交换的缓冲区,目的是把读写速度慢的介质保存在读写速度快的介质中,从而提高读写速度,减少时间消耗,比如
分类: 其他 发布时间: 01-27 23:40 阅读次数: 0

Python学习--继承和多态

在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(subclass),而被继承的class称为基类,父类或超类(Base class、Super class)。比如,我们已经编写了一个名为Animal的class,有一个run()方法可以直接打印:class Animal(object): def run(self): print('Animal is running...')当我们需要编写Dog和Cat类时,就可以直接从Animal类
分类: 其他 发布时间: 01-27 23:39 阅读次数: 0

Python学习--获取对象信息

当我们拿到一个对象的引用时,如果想知道这个对象时什么类型、有哪些方法呢?使用type()首先,我们来判断对象类型,使用type()函数:基本类型都可以用type()判断:>>> type(123)<class 'int'>>>> type('str')<class 'str'>>>> type(None)<type(None) 'NoneType'>如果一个变量指向函数或者类,也可以用type()
分类: 其他 发布时间: 01-27 23:39 阅读次数: 0

Python学习--实例属性和类属性

由于Python是动态语言,根据类创建的实例可以任意绑定属性。给实例绑定属性的方法是通过实例变量,或者通过self变量:class Student(object): def __init__(self, name): self.name = names = Student('Bob')s.score = 90但是,如果Student类本身需要绑定一个属性呢?可以直接在class中定义属性,这种属性是类属性,归Student类素有class Student(object): name
分类: 其他 发布时间: 01-27 23:39 阅读次数: 0

Python学习--使用__slots__

正常情况下,当我们定义了一个class,创建了一个class的实例后,我们可以给该实例绑定任何属性和方法,这就是动态语言的灵活性。先定义classclass Student(object): pass然后,尝试给实例绑定一个属性:>>> s = Student()>>> s.name = 'Michael' # 动态给实例绑定一个属性>>> print(s.name)Michael还可以尝试给实例绑定一个方法:>>&g
分类: 其他 发布时间: 01-27 23:39 阅读次数: 0

Python学习--使用@property

在绑定属性时,如果我们直接把属性暴露出去,虽然写起来很简单,但是,没办法检查参数,导致可以把成绩随便改:s = student()s.score = 9999这显然不符合逻辑。为了限制score的范围,可以通过一个set_score()方法来设置成绩,再通过一个get_score()来获取成绩,这样,再set_score()方法里,就可以检查参数:class Student(object): def get_score(self): return self._score def se
分类: 其他 发布时间: 01-27 23:38 阅读次数: 0

Python学习--多重继承

继承是面向对象编程的一个重要方式,因为通过继承,子类就可以扩展父类的功能。回忆以下Animal类层次的设计,假设我们要实现以下4中动物:Dog - 狗狗;Bat - 蝙蝠;Parrot - 鹦鹉;Ostrich - 鸵鸟。如果按照哺乳动物和鸟类归类,我们可以设计出这样的类的层次: ┌───────────────┐ │ Animal │ └───────────────┘
分类: 其他 发布时间: 01-27 23:38 阅读次数: 0

Python学习--定制类

看到类似__slots__这种形如__xxx__的变量或者函数名就要注意,这些在Python中是有特殊用途的。__slots__我们已经知道怎么用了,len()方法我们也知道是为了能让class作用于len()函数。除此之外,Python的class中还有许多这样有特殊用途的函数,可以帮助我们定制类。str我们先定义一个Student类,打印一个实例:class Student(object): def __init__(self, name): self.name = name>&
分类: 其他 发布时间: 01-27 23:38 阅读次数: 0

Python学习--使用枚举类

当我们需要定义常量,一个办法是用大写变量通过整数来定义,例如月份:JAN = 1FEB = 2MAR = 3...NOV = 11DEC = 12好处是简单,缺点是类型是int,并且仍然是变量。更好的方法是为这样的枚举类型定义一个class类型,然后,每个常量都是class的一个唯一实例。Python提供了Enum类来实现这个功能:from enum import EnumMonth = Enum('Month', ('Jan', 'Feb', 'Mar', 'Apr', 'May'
分类: 其他 发布时间: 01-27 23:37 阅读次数: 0

Python学习--使用元类

type()动态语言和静态语言最大的不同,就是函数和类的定义,不是编译时定义的,而是运行时动态创建的。比方说我们要定义一个Hello的class,就写一个hello.py模块:class Hello(object): def hello(self, name='world'): print('Hello, %s.' % name)当Python解释器载入hello模块时,就会依次执行该模块的所有语句,执行结果就是动态创建出一个Hello的class对象,测试如下:>>>
分类: 其他 发布时间: 01-27 23:37 阅读次数: 0

Python学习--错误、调试和测试

作为引导页在程序运行过程中,总会遇到各种各样的错误。有的错误是程序编写有问题造成的,比如本来应该输出整数结果输出了字符串,这种错误我们通常称之为bug,bug是必须修复的。有的错误是用户输入造成的,比如让用户输入email地址,结果得到一个空字符串,这种错误可以通过检查用户输入来做相应的处理。还有一类错误是完全无法在程序运行过程中预测的,比如写入文件的时候,磁盘满了,写不进去了,或者从网络抓取数据,网络突然断掉了。这类错误也称为异常,在程序中通常是必须处理的,否则,程序会因为各种问题终止并退出。P
分类: 其他 发布时间: 01-27 23:37 阅读次数: 0

Python学习--错误处理

在程序运行的过程中,如果发生了错误。可以事先约定返回一个错误代码,这样,就可以知道是否有错,以及出错的原因。在操作系统提供的调用中,返回错误码非常常见。比如打开文件的函数open(),成功时返回文件描述符(就是一个整数),出错时返回-1。用错误码来表示是否出错十分不便,因为函数本身应该返回的正常结果和错误码混在一起,造成调用者必须用大量的代码来判断是否出错:(写过c,深有感知)def foo(): r = some_function() if r == -1: return -1 return
分类: 其他 发布时间: 01-27 23:37 阅读次数: 0

Python学习--调试

程序能一次写完并正常运行的概率很小,基本不超过1%。总会有各种各样的bug需要修正。有的bug很简单,看看错误信息就知道,有的bug很复杂,我们需要知道出错时,哪些变量的值是正确的,哪些变量的值是错误的,因此,需要一整套调试程序的手段来修复bug。第一种方法简单直接粗暴有效,就是用print()把可能有问题的变量打印出来看看:def foo(s): n = int(s) print('>>>n = %d' % n) return 10 / ndef main(): foo(
分类: 其他 发布时间: 01-27 23:36 阅读次数: 0