- 博客(27)
- 收藏
- 关注
原创 Python学习笔记
一、变量和数据类型1.二进制与字符编码注:不管中文、英文,计算机当中都叫字符,一个字符对应一个整数2.标识符和保留字1.)保留字3.变量定义与使用1.变量是内存中一个带标签的盒子2.变量的组成3.变量多次赋值后,变量名会指向新的空间4.常见数据类型(1)整数类型(2)浮点类型(3)布尔类型(4)字符串类型5.数据类型转换例如:6.注释(1)中文编码声明格式注释:#coding:gbk 修改编码格式
2021-06-19 10:45:03
237
1
原创 包装类型和基础类型关于值传递和引用传递的区别
1.包装类型和基础类型关于值传递和引用传递的区别public static void main(String [] args){ int a = 10000; int b = 10000; //基础类型值传递,不关心内存是不是同一个 System.out.println(a == b); System.out.println("========================="); Integer c =1
2021-04-18 14:50:51
230
原创 类似斐波那契数列的递归
1.斐波那契数列特点(线性代数基本结论)斐波那契数列是严格的递推式,所以每一步的矩阵都是一个。2.求斐波那契数列矩阵乘法的方法斐波那契数列的线性求解(O(N))的方式同时利用线性代数,也可以改写出另一种表示| F(N) , F(N-1) | = | F(2), F(1) | * 某个二阶矩阵的N-2次方求出这个二阶矩阵,进而最快求出这个二阶矩阵的N-2次方注:任何一种严格系数,没有条件转移的东西都可以用此模型。适用范围:严格的、没有条件转移的表达式。...
2021-04-14 11:32:30
220
原创 比较器与堆
一、堆结构1.堆结构就是用数组实现的完全二叉树结构,没有用链表实现。数组下标从0开始时:i 的左孩子:2i+1 ;右孩子:2i+2 ; 父:(i-1)/2 ;数组下标从1开始时:i 的左孩子:2i ;右孩子:2i+1 (i<<1 | 1); 父:i/2;注:优先队列底层就是堆2.堆结构的heapInsert与heapify操作heapInsert:heapify:3系统提供堆结构VS手写堆结构取决于,你有没有动态改信息的需求!系统提供的堆结构,如果你动态改数据,不保证依
2021-04-05 13:21:14
128
原创 LeetCode 7-整数反转(Java版)
1.正数和负数中原码、反码、补码的区别原码:正数的符号位为0,负数的符号位为1反码(基于原码变动):正数的反码跟原码相同;负数的反码,除了符号位,其他全部取反补码(基于反码变动):正数的补码,就跟原码、反码都相同;负数的补码,在其反码的基础上,加12.Java中>>> 和 >> 的区别...
2021-03-28 14:16:17
183
原创 网络七层体系结构-每层模型协议
1.应用层在互联网中应用层协议很多,如域名系统 DNS,支持万维网应用的 HTTP 协议,支持电子邮件的 SMTP 协议,FTP,TELNET,SNMP等等。2.运输层运输层主要使用一下两种协议 :传输控制协议-TCP:提供面向连接的,可靠的数据传输服务。用户数据协议-UDP:提供无连接的,尽大努力的数据传输服务(不 保证数据传输的可靠性)。注:每一个应用层协议一般都会使用到两个传输层协议之一3.网络层IP协议,ICMP协议,ARP协议4.数据链路层主要有:Frame Relay,H
2021-03-27 09:48:36
233
原创 Tomcat入门
1.Tomcat简介-servlet容器Tomcat 服务器Apache软件基金会项目中的一个核心项目,是一个免费的开放 源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。2.Tomcat的三种运行模式BIO:同步并阻塞 一个线程处理一个请求。缺点:并发量高时,线程数较 多,浪费资源。Tomcat7或以下,在Linux系统中默认使用这种方式。配制项:protocol=”HTTP/1.1”NIO:同步非阻塞IO
2021-03-23 23:31:50
66
原创 单链表和双链表的反转问题
一、单链表1.单链表节点结构:public static class Node { public int value; public Node next; public Node(int data) { value = data; } }2.单链表反转代码:public static Node reverseLinkedList(Node head) { Node pre = null; Node next = null; while (head != nul
2021-03-23 09:36:33
84
原创 LeetCode 3-最长不重复子串(Java版)
1.基本概念子串:必须连续子序列:可以不连续2.做题思路子串、子序列题型经典解法:假设子串以i位置结尾的情况下答案是什么?求所有可能的结尾,所有答案的最大值就是答案!i位置上能往左推多长的决定因素:上一次i出现的位置;以i-1位置结尾的情况下往左推了多远;因素1和因素2谁离i最近就是答案。注:哈希表的增删改查是常数级别,O(1),但是还是没有数组结构来得快;能不用哈希表就不用。哈希表的常数时间比数组大,并没有高阶代码:class Solution { public int
2021-03-21 16:15:31
179
原创 Spring Cloud入门
一、Spring Cloud简介Spring Cloud是一系列框架的有序集合,是基于 Spring Boot 的 Spring 集成应用程序,提供与外部系统的集成。。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、智能路由、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud只是将各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封
2021-03-21 11:44:26
66
原创 Linux操作系统基础知识
一、Linux的体系结构用户空间(User Space) :用户空间又包括用户的应用程序(User Applications)、C 库(C Library) 。内核空间(Kernel Space) :内核空间又包括系统调用接口(System Call Interface)、内核(Kernel)、平台架构相关的代码(Architecture-Dependent Kernel Code) 。注:用户空间和内核空间是程序执行的两种不同的状态,我们可以通过两种方式完成 用户空间到内核空间的转移:1)
2021-03-21 10:23:24
392
1
原创 MySQL数据库基础知识
一、数据库三大范式第一范式:每个列都不可以再拆分。第二范式:在第一范式的基础上,非主键列完全依赖于主键,而不能是依赖于主键的一部分。第三范式:在第二范式的基础上,非主键列只依赖于主键,不依赖于其他非主键。二、MySQL有关权限的表都有哪些?MySQL服务器通过权限表来控制用户对数据库的访问,权限表存放在MySQL数据库里,由mysql_install_db脚本初始化,包括下列五大权限表:user权限表:记录允许连接到服务器的用户帐号信息,里面的权限是全局级的。db权限表:记录各个帐号在各
2021-03-20 21:12:40
579
1
原创 Java集合容器-Set接口、List接口、Map接口
一、常用的集合类简介Java 容器分为 Collection 和 Map 两大类,Map接口和Collection接口是所有集合框架的父接口:1.Collection接口的三种子接口包括:Set接口、List接口和Queue接口;Set接口的实现类主要有:HashSet(hashmap实现)、TreeSet(红黑树实现)、LinkedHashSet(继承自hashmap)等List接口的实现类主要有:ArrayList(object数组)、LinkedList(双向循环链表)、Stack以及Vec
2021-03-19 16:28:37
444
3
原创 Spring Security入门
一、Spring Security1.简介Spring Security是一个专注于为Java应用程序提供身份认证和授权的框架,它的强大之处在于它可以轻松扩展以满足自定义的需求。2.特征对身份的 认证 和 授权 提供全面的、可扩展的支持。防止各种攻击,如会话固定攻击、点击劫持、csrf攻击等。支持与Servlet API、Spring MVC等Web技术集成。查询手册:https://spring.io/projects/spring-securitySpring Securit
2021-03-18 15:57:10
67
原创 Elasticsearch入门-ES
一、Elasticsearch简介1.简介一个分布式的、Restful风格的搜索引擎。支持对各种类型的数据的检索。搜索速度快,可以提供实时的搜索服务。便于水平扩展,每秒可以处理PB级海量数据。2.Elasticsearch术语ES关于存储数据相关术语:索引(与数据库database对应)、类型(table)、文档(行row)、字段(列)。注:6.0以后一个索引对应一张表,类型逐渐废弃;ES关于集群有关术语:集群、节点(集群当中每台服务器)、分片(对索引进一步划分)、副本(对分片的
2021-03-18 15:22:17
102
原创 kafka入门
一、阻塞队列BlockingQueue阻塞队列,是Java核心API中的接口(BlockingQueue),主要解决线程通信的问题(不止一种方法)。1.阻塞方法:put、take。2. 生产者消费者模式生产者:产生数据的线程。消费者:使用数据的线程。3.实现类ArrayBlockingQueueLinkedBlockingQueuePriorityBlockingQueue、SynchronousQueue、DelayQueue等。二、Kafka入门1.Kafka简介Ka
2021-03-18 14:52:04
103
2
原创 Redis入门
一、Redis简介Redis是一款基于键值对的NoSQL数据库(关系型数据库之外的统称),它的值支持多种数据结构:字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)、有序集合(sorted sets)等。Redis将所有的数据都存放在内存中,所以它的读写性能十分惊人。同时,Redis还可以将内存中的数据以快照或日志(AOF)的形式保存到硬盘上,以保证数据的安全性。Redis典型的应用场景包括:缓存、排行榜、计数器、社交网络、消息队列等查询手册:https:/
2021-03-18 13:55:16
53
原创 Java Web项目调试技巧
一、响应状态码的含义查询手册:https://developer.mozilla.org/zh-CN/docs/Web/HTTP二、服务端断点调试技巧Debug执行:F8: 向下执行一行F7: 进入某个方法内部F9:调试到下一个断点处或执行到底三、客户端断点调试技巧F10: 向下执行一行F11: 进入某个方法内部F8:调试到下一个断点处或执行到底四、设置日志级别,并将日志输出到不同终端查询手册:http://logback.qos.ch/manual/index.html
2021-03-16 21:58:32
314
原创 制作启动软盘
一、制作启动软盘步骤dd if=/dev/zero of=floppy.img bs=1474560 count=1 生成空白软盘镜像 ddif=boot.bin of=myos.img bs=512 count=1 制作包含主引导记录boot.bin的启动镜像文件 ddif=floppy.img of=myos.img skip=1 seek=1 bs=512 count=2879 在 bin生成的镜像文件后补上空白,成为合适大小的软盘镜像,一共2880个扇区,略过第一个二、用软盘启动系统
2021-03-15 22:08:36
668
原创 MyBatis入门
MyBatis核心组件SqlSessionFactory:用于创建SqlSession的工厂类SqlSession:MyBatis的核心组件,用于向数据库执行SQL主配置文件:XML配置文件,可以对MyBatis的底层行为做出详细的配置Mapper接口:就是DAO接口,在MyBatis中习惯性的称之为MapperMapper映射器:用于编写SQL,并将SQL和实体类映射的组件,采用XML、注解均可实现eg:使用Mybatis对用户表进行CRUD操作...
2021-03-15 14:53:55
66
2
原创 Spring MVC入门
一、HTTP1.规定浏览器和服务器之间如何通信,以及通信时的数据格式。当客户端想要和服务端(最终服务器或中间代理)进行信息交互时,过程表现为:打开一个TCP连接发送一个HTTP报文读取服务端返回的报文信息浏览器关闭连接或者为后续请求重用连接2.HTTP请求格式:3.服务器向浏览器返回的报文(响应报文):状态行、响应头、响应体例:按F12进行检查:问1:为什么存在这么多次请求?网页所依赖的资源决定;网页上依赖多少个文件,后续就发送多少请求加载文件;二、Spring MVC
2021-03-11 12:35:51
121
原创 Spring入门
一、Spring Framework1.Spring Core:IoC、AOP(都是用来管理对象的思想)由Spring管理的对象通常叫bean:IoC(控制反转):面向对象编程的设计思想,降低耦合Dependency Injection(依赖注入),是IoC思想实现方式;IoC容器,是实现依赖注入的关键,本质上是一个工厂(Spring容器的顶层接口:BeanFactory)注:1.在核心类运行时,底层不只是启动Tomcat,还自动创建spring容器(在web项目中,自动创建spring容
2021-03-11 09:55:38
40
原创 Linux系统的内存管理
一、内存管理的发展历程DOS时代 - 同一时间只能有一个进程在运行(也有一些特殊算法可以支持多进程)windows9x - 多个进程装入内存存在问题: 1:内存不够用; 2:互相打扰为了解决这两个问题,诞生了现在的内存管理系统:虚拟地址、分页装入(内存页)、软硬件结合寻址1.解决内存撑爆问题:LRU算法:(LeetCode 146题)分页(内存不够用),内存中分成固定大小的页框(4K),把程序(硬盘上)分成4K大小的块,用到哪一块,加载那一块,加载的过程中,如果内存已经满了,会把最不常用的一块放
2021-03-10 14:58:45
55
原创 进程、线程、纤程
问1:进程和线程有什么区别?(线程是特殊的进程)进程就是一个程序运行起来的状态,线程是一个进程中的不同执行路径。进程是OS分配资源的基本单位,线程是执行调度的基本单位。分配资源最重要的是:独立的内存空间,线程调度执行(区别:线程共享进程的内存空间,没有自己独立的内存空间)纤程:用户态的线程,线程中的线程,切换和调度不需要经过OS优势:1:占有资源很少 OS : 线程1M Fiber:4K2:切换比较简单3:启动很多个10W+纤程VS线程池:很短的计算任务,不需要和内核打交道,并发量高
2021-03-09 15:39:17
196
原创 底层知识-OS操作系统
一、操作系统的作用(承上启下)管理硬件:内存、硬盘、CPU管理应用:进程二、简单结构多数操作系统分为两层:kernel(内核):管理硬件,包括CPU调度、文件系统、应用管理进程调度、内存管理、中断处理设备驱动宏内核:相关程序全放一起,装一块内存里微内核:只有一个最核心的kernel,只干一件事:进程调度用户态和内核态CPU分不同的指令级别;linux内核跑在ring 0级, 用户程序跑在ring 3 对于系统的关键访问,需要经过kernel的同意,保证系统健壮性内核执行的操
2021-03-09 12:54:45
669
原创 底层知识-CPU
一、汇编语言(机器语言)的 执行过程汇编语言的本质:机器语言的助记符;其实它就是机器语言步骤:计算机通电 -> CPU读取内存中程序(电信号输入)->时钟发生器不断震荡通断电 ->推动CPU内部一步一步执行(执行多少步取决于指令需要的时钟周期)->计算完成->写回(电信号)->写给显卡输出(sout,或者图形)二、CPU的基本组成PC -> Program Counter 程序计数器 (记录当前指令地址)Registers -> 暂时存
2021-03-09 11:50:01
147
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人