- 博客(16)
- 收藏
- 关注
原创 JVM垃圾回收
运行时数据区域1.7–>1.8 :永久代变成元空间(都是方法区的实现),同时移到直接内存常量池从方法区移到堆方法区挪到直接内存线程私有:程序计数器,Java虚拟机栈,本地方法栈共享:堆、方法区、直接内存程序计数器记录正在执行的虚拟机字节码指令的地址。是唯一一个不会发生OOM的区域。Java虚拟机栈每个Java方法在执行的同时会创建一个栈帧用于存储局部变量表、操作数栈等信息,从方法调用直至执行完成,对应着一个栈帧在Java虚拟机中入栈和出栈的过程。本地方法栈和
2020-08-21 09:38:18
195
原创 Java基础
特性面向对象和面向过程有什么区别面向对象:以对象为中心,叭要解决的问题分解成各个对象。每一个都可以看做一个对象,每个对象有自己的属性和行为,对象与对象之间通过方法来交互。比如五子棋分为三个对象,黑白双方,棋盘系统,规则系统第一类对象(黑白双方)负责接受用户输入,并告知第二类对象(棋盘系统)棋子布局的变化,棋盘系统接收到了棋子的变化,并负责在屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来对棋局进行判定。面向过程:以事件为中心的编程思想,把问题的解决步骤分析出来,然后用函数把这些步骤
2020-08-21 09:35:32
204
原创 Python基础知识点合集
文章目录概念Python有什么优势Python和Java的对比语法基础is和==的区别元组、列表和字典的区别深拷贝和浅拷贝位置参数和关键字参数的区别装饰器生成器和迭代器线程多线程的创建GILPython多线程模型内存管理与垃圾回收内存管理垃圾回收引用计数标记清除分代回收概念Python有什么优势Python和Java的对比语法基础is和==的区别is表示两个对象是否指向同一块地址空间,若为true,表示指向同一地址空间,且值一定相等。(Java的==)==表示值是否相等。(Java的e
2020-07-25 09:14:52
866
原创 常用Linux和Git命令
文章目录Linux文件管理文档编辑和查看指令和文件搜索系统资源操作网络通信面经题杀死指定端口号的进程输出文本中包含某个关键字的行统计文本中某个关键字的个数找到共用80端口的线程统计一个文件中重复的行和重复次数Linux如何把文件从一个服务器转到另一个服务器如何查找出现频率最高的100个ip地址GitLinux文件管理cd 进入目录里面pwd 当前目录mkdir 创建目录rmdir 删除目录ls 查看现有目录rm 删除文件touch 建立新文件或者更新文件时间cp 复制文件mv 移动文件
2020-07-25 09:00:43
1171
原创 操作系统基础知识点整理
操作系统文章目录概述用户态和内核态概念用户态和内核态的切换进程管理进程与线程进程线程区别进程同步临界区同步与互斥信号量进程通信管道消息队列信号量共享内存套接字进程调度算法进程状态同步和互斥的区别。同步、异步、阻塞、非阻塞的区别同步和互斥的区别同步和异步的区别阻塞和非阻塞的区别死锁什么是死锁死锁产生的原因必要条件解决方案死锁预防死锁避免死锁检测与恢复内存管理逻辑地址和物理地址内存管理方式虚拟内存概念虚拟内存的空间大小页面置换算法面试题协程多进程和多线程模型的选择概述用户态和内核态概念参考:用户态和内
2020-07-21 13:21:02
264
原创 数据库基础知识点整理
文章目录SQL语句常用SQL语句(CRUD)SQL语句的执行顺序连接查询存储引擎InnoDBMyISAMInnoDB和MyISAM比较索引索引的优点索引的分类如何建立索引什么情况索引会失效MySQL索引结构B+树索引与B树的比较与红黑树的比较索引优化覆盖索引事务什么是事务事务的四大特性(ACID)MySQL中事务ACID实现原理并发事务带来哪些问题?事务的隔离级别锁机制锁类型加锁算法多版本并发控制(MVCC)select的快照读和当前读数据类型字符串整形浮点型时间类型其他面试题drop、delete、tru
2020-07-20 18:55:45
211
原创 计算机网络基础知识点整理
文章目录OSI与TCP/IP各层的结构与功能五层协议为什么要分层应用层HTTPHTTP请求方法请求方法种类get和post区别HTTP报文结构请求报文响应报文HTTP响应状态码HTTP长连接和短连接HTTP1.0、1.1、2.0HTTP1.0和HTTP1.1的区别HTTP1.0和HTTP2.0的区别HTTPSHTTPS的理解(SSL和TLS)HTTP和HTTPS的区别HTTPS过程DNS的解析过程递归查询迭代查询域名缓存传输层TCP和UDPTCP和UDP的区别TCP和UDP的使用场景TCP三次握手和四次挥手
2020-07-17 14:14:55
412
原创 Django执行定时调度任务出现MySQL server has gone away报错的解决办法
1. 背景基于Python的第三方库APSchedule,用来提供Python的后台程序,实现每隔24小时调用Django的orm来对数据库进行数据处理。2. 出现的问题在间隔24小时之后,执行定时调度的后台线程进行数据库查询时,出现(2006, 'MySQL server has gone away')的报错。3. 原因排查的过程结合具体的报错代码段以及参考这两篇博客:[Django1.6]跑批任务错误(2006, ‘MySQL server has gone away’)和MySQL serv
2020-06-19 10:39:19
2015
1
转载 详解django-apscheduler的使用方法
转载:详解django-apscheduler的使用方法如果你在使用Django框架开发web项目时,需要设置定时任务或让用户手动在页面上设置定时任务,那么这篇文章可能会帮助到你。概述在Django中实现定时任务功能大概有以下三种方法:Celery框架定时任务是分布式任务的一种特殊类型的任务。Django的分布式主要由Celery框架实现,这是python开发的分布式任务队列。由于它本身不支持消息存储服务,所以需要第三方消息服务来传递任务,一般使用Redis。优点:Celery侧重于实时操作
2020-06-18 13:38:23
6245
2
原创 Django在原有表中添加新字段以及python manage.py migrate成功后没有修改对应数据库表的解决方法
Django在原有表中添加新字段在models.py文件里面添加新字段使用命令python manage.py makemigrations AppTest(个人App文件名)***@bogon *** % python manage.py makemigrations serviceDid you rename *** to *** (a TextField)? [y/N] yDid you rename *** to *** (a TextField)? [y/N] yDid y
2020-06-16 10:54:56
2554
原创 macOS系统Python+MySQL+Django环境配置
说明:系统版本为macOS Catalina 10.15.4,系统自带Python版本为Python 2.7.16。下面的环境是根据项目中的requirements.txt记录的依赖包及其版本号来进行部署的。Django==1.11.20 django-cors-headers==2.4.0 MySQL-python==1.2.5 python-jenkins==1.4.0 requests==2.6.0安装Python:因为项目支持安装MySQL及驱动在安装之前就记得查看安装Django.
2020-05-23 22:29:39
234
原创 Java虚拟机运行时数据区域
虚拟机运行时数据区域:线程私有数据区:程序计数器当前线程所执行的字节码的行号指示器,如果当前线程执行的是Java方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址;如果正在执行的是Native方法,这个计数器值为0。是唯一一个没有规定OutOfMemoryError情况的区域。本地方法栈与虚拟机栈区别在于虚拟机栈为虚拟机执行Java方法服务,而本地方法栈则为虚拟机使用的Native方法服务。虚拟机栈每个方法执行时都会创建一个栈帧用于存储局部变量表、操作数栈、方法出入口等信
2020-05-11 16:13:20
102
原创 二叉树层次遍历模板
二叉树层序遍历模板:public void bfs(TreeNode root){ Queue<TreeNode> queue=new LinkedList<>();//队列实现 queue.add(root); while(!queue.isEmpty()){ int cnt=queue.size(); //取出上一层的所有节点,将下一层的所有节点入队 while(cnt-->0){ TreeNode node=queu
2020-05-10 11:50:06
391
原创 虚拟机类加载机制
什么是类加载机制把描述类的Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机使用的类型。Class文件表示一串二进制的字节流,无论以何种形式存在都可以。类初始化时机主动引用当遇到new等字节码指令时,主要场景包括:使用new关键字实例化对象、读取或者设置静态变量、调用类的静态方法;对类进行反射调用;初始化一个类,如果其父类还没有初始化,则先触发其父类的初始化;当虚拟机启动,用户需要制定一个要执行的主类,虚拟机会先初始化这个主类;使用JDK1.7
2020-05-10 09:58:46
145
1
原创 线程安全的实现方法
什么是线程安全?多个线程不管以何种方式访问某个类,并且在主调代码中不需要同步,都能表现正确的行为。线程安全如何实现?Java中线程安全主要是通过同步互斥、非阻塞同步和无同步方案这三种手段实现的:同步互斥:是一种悲观并发策略,指多个线程并发访问共享数据时,保证共享数据段在同一时刻只能被一个线程访问。synchronized关键字,synchronized关键字可以给代码块、普通方法和静态方法加锁ReentrantLock(重入锁),相比synchronized增加了一些高级功能:可实现公
2020-05-09 16:33:46
707
原创 二分查找算法的应用(循环条件和搜索区间如何确定)
旋转数组LeetCode 旋转数组最小值(无重复)为什么right取nums.length-1,循环条件是left<right?因为查找范围是[left , right],循环停止的条件是left=right,那么范围就会变成[right , right],最后这个right就没有被判断就退出循环了。但是题目总会有个结果,所以直接return nums[left]就可以。pu...
2020-05-08 18:42:50
1026
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人