- 博客(21)
- 资源 (12)
- 问答 (1)
- 收藏
- 关注
转载 GC算法 垃圾收集器
概述垃圾收集 Garbage Collection 通常被称为“GC”,它诞生于1960年 MIT 的 Lisp 语言,经过半个多世纪,目前已经十分成熟了。jvm 中,程序计数器、虚拟机栈、本地方法栈都是随线程而生随线程而灭,栈帧随着方法的进入和退出做入栈和出栈操作,实现了自动的内存清理,因此,我们的内存垃圾回收主要集中于 java 堆和方法区中,在程序运行期间,这部分内存的分配和使用都是...
2018-11-30 09:18:30 227
转载 Redis主从复制原理,步骤
和Mysql主从复制的原因一样,Redis虽然读取写入的速度都特别快,但是也会产生读压力特别大的情况。为了分担读压力,Redis支持主从复制,Redis的主从结构可以采用一主多从或者级联结构,Redis主从复制可以根据是否是全量分为全量同步和增量同步。下图为级联结构。 全量同步Redis全量复制一般发生在Slave初始化阶段,这时Slave需要将Master上的所有数据都复制一份。具体...
2018-11-26 12:18:02 235
原创 JVM堆内存管理与自定义分配参数详解
堆内存模型: 在Java中,堆被划分成两个不同的区域:新生代(Young),老年代(Old)。而Permanent属于永久代(方法区),不属于堆内存。新生代又被分为了三个区域:Eden,from survivor,to survivor。这样划分的目的是为了使JVM能够更好的管理堆内存中的对象,包括内存分配以及回收。从图中可以看出: 堆大小=新生代+老年代,默认的,新生代与老年代...
2018-11-26 11:05:44 1159 1
原创 Redis的事务功能详解
MULTI、EXEC、DISCARD和WATCH命令是Redis事务功能的基础。Redis事务允许在一次单独的步骤中执行一组命令,并且可以保证如下两个重要事项:Redis会将一个事务中的所有命令序列化,然后按顺序执行。Redis不可能在一个Redis事务的执行过程中插入执行另一个客户端发出的请求。这样便能保证Redis将这些命令作为一个单独的隔离操作执行。 > 在一个Redis事务中,R...
2018-11-25 19:42:31 18836 11
转载 vim常用命令
在命令状态下对当前行用== (连按=两次), 或对多行用n==(n是自然数)表示自动缩进从当前行起的下面n行。你可以试试把代码缩进任意打乱再用n==排版,相当于一般IDE里的code format。使用gg=G可对整篇代码进行排版。 vim 选择文本,删除,复制,粘贴 文本的选择,对于编辑器来说,是很基本的东西,也经常被用到,总结如下:v 从光标当前...
2018-11-24 10:28:08 228
转载 浏览器和服务器实现跨域(CORS)判定的原理
同源策略同源指的是域名(或IP),协议,端口都相同,不同源的客户端脚本(javascript、ActionScript)在没明确授权的情况下,不能读写对方的资源。同源的判定:以http://www.example.com/dir/page.html为例,以下表格指出了不同形式的链接是否与其同源:(原因里未申明不同的属性即说明其与例子里的原链接对应的属性相同)链接 结果 ...
2018-11-23 12:20:35 3722 1
原创 java wait与notify
前言我们知道,java的wait/notify的通知机制可以用来实现线程间通信。wait表示线程的等待,调用该方法会导致线程阻塞,直至另一线程调用notify或notifyAll方法才可另其继续执行。经典的生产者、消费者模式即是使用wait/notify机制得以完成。在这篇文章中,我们将深入解析这一机制,了解其背后的原理。线程的状态在了解wait/notify机制前,先熟悉一下java...
2018-11-22 14:36:25 1170
原创 java捕获线程中的异常
Java中在处理异常的时候,通常的做法是使用try-catch-finally来包含代码块,但是Java自身还有一种方式可以处理——使用UncaughtExceptionHandler。它能检测出某个线程由于未捕获的异常而终结的情况。当一个线程由于未捕获异常而退出时,JVM会把这个事件报告给应用程序提供的UncaughtExceptionHandler异常处理器(这是Thread类中的接口):...
2018-11-22 08:31:47 1334
转载 MySQL索引原理及BTree(B-/+Tree)结构详解
目录摘要数据结构及算法基础索引的本质B-Tree和B+TreeB-TreeB+Tree带有顺序访问指针的B+Tree为什么使用B-Tree(B+Tree)主存存取原理磁盘存取原理局部性原理与磁盘预读B-/+Tree索引的性能分析MySQL索引实现MyISAM索引实现InnoDB索引实现索引使用策略及优化示例数据库最左前缀原理与...
2018-11-20 16:52:25 82191 20
转载 Netty异步非阻塞事件驱动及组件原理详解
本文基于 Netty 4.1 展开介绍相关理论模型,使用场景,基本组件、整体架构,知其然且知其所以然,希望给大家在实际开发实践、学习开源项目方面提供参考。Netty 是一个异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。JDK 原生 NIO 程序的问题JDK 原生也有一套网络应用程序 API,但是存在一系列问题,主要如下:NIO 的类库和 API 繁杂...
2018-11-20 12:16:12 3585 1
原创 netty 常规option配置总结
ServerBootstrap b = new ServerBootstrap();b.option(ChannelOption.SO_BACKLOG, Integer.valueOf(1024));服务器端TCP内核模块维护有2个队列,我们称之为A,B吧,客户端向服务端connect的时候,发送带有SYN标志的包(第一次握手),服务端收到客户端发来的SYN时,向客户端发送SYN AC...
2018-11-20 10:11:54 4458 1
原创 java NIO同步非阻塞
NIO服务器端如何实现非阻塞?服务器上所有Channel需要向Selector注册,而Selector则负责监视这些Socket的IO状态(观察者),当其中任意一个或者多个Channel具有可用的IO操作时,该Selector的select()方法将会返回大于0的整数,该整数值就表示该Selector上有多少个Channel具有可用的IO操作,并提供了selectedKeys()方法来返回这些C...
2018-11-19 16:55:40 272
转载 java nio及操作系统底层原理同步异步阻塞与非阻塞
目录IO基本概念同步,异步,阻塞,非阻塞同步与异步阻塞与非阻塞IO模型(Reference Link)阻塞I/O模型非阻塞I/O模型进程把一个套接口设置成非阻塞是在通知内核:当所请求的I/O操作不能满足要求时候,不把本进程投入睡眠,而是返回一个错误。也就是说当数据没有到达时并不等待,而是以一个错误返回。I/O复用模型异步I/O模型 AIO,BIO...
2018-11-19 15:56:18 2295
原创 学习总结大纲
一、网络篇1.http协议 1.版本演变(https://blog.csdn.net/u013967628/article/details/78521908) 2.http与https区别 HTTPS是HTTP协议的安全版本,HTTP协议的数据传输是明文的,是不安全的,HTTPS使用了SSL/TLS协议进行了加密处理。 3.http协议特点 1....
2018-11-17 21:08:23 2145
原创 msyql 使用join联合查询与直接用where查询的区别,比较
比如现在数据库中有两张表,student表和 student_subject表,如下所示: 我们执行以下的sql语句,只是纯粹的进行表连接。SELECT * from student JOIN student_subject;SELECT * from student_subject JOIN student;看一下执行结果: 表1.0 ...
2018-11-15 17:28:43 1818
原创 mysql.exe 不是有效的32位程序
环境:win 2003 根据https://www.mysql.com/support/supportedplatforms/database.html页面的说明,win2003下面支持的MySQL的最高版本是5.5.57,在https://downloads.mysql.com/archives/community/页面,选择5.5.57版本后,下载x86 32bit的zip版本...
2018-11-12 13:36:22 4686
转载 Linux CentOS7 通过YUM安装MySQL5.7
1.进入到要存放安装包的位置cd /home/lnmp2.查看系统中是否已安装 MySQL 服务,以下提供两种方式:rpm -qa | grep mysqlyum list installed | grep mysql3.如果已安装则删除 MySQL 及其依赖的包:yum -y remove mysql-libs.x86_644.下载 mysql57-communi...
2018-11-03 22:31:11 210
转载 java转大数据方向学习路线
申明:本文旨在为普通程序员(Java程序员最佳)提供一个入门级别的大数据技术学习路径,不适用于大数据工程师的进阶学习,也不适用于零编程基础的同学。目录前言一、背景介绍二、大数据介绍正文一、大数据相关工作介绍二、大数据工程师的技能要求必须掌握的技能11条高阶技能6条三、大数据学习规划第一阶段(基础阶段)第二阶段(攻坚阶段)第三阶段(辅助工具工学...
2018-11-02 16:07:41 23713 4
原创 django 发送邮件配置
拿qq邮箱当做发件箱举例子,首先配置邮箱在qq邮箱的账户设置里面设置如下 得到第三方登陆授权码setting.py中设置如下:# 发送邮件设置EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' #固定写法EMAIL_HOST = 'smtp.qq.com' #SMTP地址EMAIL_PORT = 2...
2018-11-02 15:22:18 2214
原创 django自定义admin表头显示
默认情况下,Django 显示每个对象的 str() 返回的值。如果想显示多个值,并且按照一定顺序则需要from django.contrib import adminfrom .models import BlogType, Blog@admin.register(Blog)class BlogAdmin(admin.ModelAdmin): list_display ...
2018-11-01 20:54:55 2653
原创 django 扩展user用户字段inlines
model:class Profile(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE, verbose_name='昵称') nickname = models.CharField(max_length=20) def __str__(self): ...
2018-11-01 20:38:43 2094 3
基于dwz 、log4j、springmvc、mybatis、mysql后台管理通用完整代码
2018-02-16
Fatjar for eclipse最新版
2015-12-24
TA创建的收藏夹 TA关注的收藏夹
TA关注的人