Java技术栈总结:多线程篇 程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至CPU,数据加载至内存。在指令运行过程中需要用到磁盘、网络等设备。进程就是用来加载指令、管理内存、管理 IO的。当一个程序被运行,从磁盘加载这个程序的代码至内存,这时就开启了一个进程。一个线程就是一个指令流,将指令流中的一条条指令以一定的顺序交给CPU执行一个进程之内可以分为一到多个线程。【对比】进程是正在运行程序的实例,进程中包含了线程,每个线程执行不同的任务;
Java技术栈总结:容器集合篇 数组是一种用连续的内存空间存储相同数据类型数据的线性数据结构。Q:为什么数组索引下标从0开始?A:从0开始,对应寻址公式:a[i] = baseAddress + i * dataTypeSize;如果从1开始,则变为:a[i] = baseAddress + (i-1)* dataTypeSize;需要增加一次减法操作,对于CPU来说就多了一次指令,性能不高。
Java技术栈总结:JVM虚拟机篇 通过一个类的全限定名来获取描述此类的二进制字节流”这个动作放到JVM外部去实现,以便让应用程序自己决定如何去获取所需要的类。实现这个动作的代码模块称为“类加载器”。启动类加载器(BootStrap Class Loader):负责加载目录下的所有jar包,或者是参数指定的路径;扩展类加载器(Extension Class Loader):负责加载%JAVA_HOME%\bin\ext目录下的所有jar包,或者是java.ext.dirs参数指定的路径;应用程序类加载器。
Java技术栈总结:kafka篇 如果集群发现超过10s没有续约的消费者,会将其踢出消费者,触发消费组的reblance机制,将该分区的交给消费组里的其他消费者进行消费。随着积压消息的增多,消费者的寻址性能会下降,最终导致整个kafka对外提供服务的性能很差,从而造成其他服务访问速度变慢,造成服务雪崩。总结:集群中有多个broker,创建主题是可以指明主题有多个分区,可以为分区创建多个副本,不同的副本存放在不同的broker里。如果生产者发送消息没有收到ack,生产者会阻塞,阻塞到3s的时间,如果还没有收到消息,会进行重试。
Java技术栈总结:Redis篇 Redis 自身是一个 Map,其中的所有数据均采用“key:value”的形式存储。数据类型指的是存储的数据的类型,即 value 部分的类型,key 的部分只能是字符串。value 部分的数据类型:
Java技术栈总结:Spring框架篇 注:BeanDefinition方法为“标签、@Bean注解、@Component注解”的底层实现。(1)标签。Spring容器实例化时,会将XML配置的信息封装成一个BeanDefinition对象Spring根据BeanDefinition对象创建Bean对象。
LocalDateTime、LocalDate、Date的相互转换及判断是否为今天 LocalDateTime 及 LocalDate 是 Java8 的新特性,有时为了兼容 Date 类型需要进行转换。
Java 常用知识点整理 面向对象的特征:抽象、封装、继承、多态。 修饰符的可见范围:private(当前类)->default(同一个包内)->protected(同一个包内所有类 +不同包子类)-> public(整个项目); 基本数据类型:byte、short、int、long、float、double、char、boolean;其他皆为引用类型。 保留字(Java中未用到):goto、const; 内存的栈(stack)、堆(heap)、方法区(metho...
IDEA报错:File size exceeds configured limit 原文地址:https://my.oschina.net/shipley/blog/510762这两天尝试使用 IDEA, 发现一个问题File size exceeds configured limit (2560000). Code insight features not available.原因:IDEA对能关联的文件大小做了限制,主要是为了保护内存,默认值为2500kb,对于一般的java文件也够用了,只是这里我用protocbuf生成的java文件过大,达到3M多。...
JDK安装与环境变量配置 目录下载JDK安装JDK配置环境变量测试JDK是否安装成功环境变量详解JAVA_HOMEPathCLASSPATHCLASSPATH详解下载JDK到Oracle官网下载JDK安装JDK安装JDK时,除了修改安装目录,其他的一路【下一步】,傻瓜式安装。注:当提示安装JRE时,可以选择不要安装。因为JDK已经自带了JRE。安装JDK配置环境变量单击"计算机-属性-高级系统设置",单击"环境变量"。 新建->变量名"J.
GitHub使用学习记录 一、注册gitHub账号https://github.com/二、下载安装git下载 git OSX 版 下载 git Windows 版 下载 git Linux 版三、创建代码仓库点击头像,选择“Your respositories”--“New”创建一个新的远程代码仓库:远程仓库的名称自己定一个即可,描述信息随意,最好是和项目相关的描述信息。待更新。。。...
git常用命令总结 git clone 将远程分支(master)代码拉到本地; git checkout 切分支; git checkout -b <分支名> 新建分支并切换到新建的分支; git branch 分支管理; git branch <分支名> 新建分支; git branch -d <分支名> 删除分支,使用“-D”强制删除; git branch -v 查看每一个分支的最后一次提交; git branch -vv 查看本地分支与远程分支的关联...
Celery关闭执行中的任务策略 问题描述:设计的系统中需要执行一个长时间的运行的任务,这个任务可以比作是“开启机器后,机器的运行”。现在需要对机器的停止可控,于是需要研究Celery中关闭执行中的任务方法。首先,参考文章《celery 停止执行中 task》,这篇文章中提出“celery 管理工具flower里面好像有停止celery task的功能”,于是开启Celery的flower发现,确实可通过“flower”进行控...
Win10使用自带工具屏幕录制 1、按下win+G打开录制界面;2、点击“广播与捕获”中间的原点开始录制3、录制过程开始录制后,点击屏幕任意处继续执行自己之前的操作点击蓝色按钮停止录制4、打开之前的录制文件再次按下win+G,在广播与捕获中点击“显示全部捕获”可以对应找到录制的内容...
Django学习问题记录 主要根据Django教程_w3cschool进行的学习,记录遇到的一些问题注:Django版本:1.11.261、使用Post方法提交表单,遇到导入包“csrf”错误解决:参考from django.core.context_processors import crsf报错,将导入的路径修改为from django.template.context_processors ...
Python实现字典排序、按照list中字典的某个key排序的方法示例 这篇文章主要介绍了Python实现字典排序、按照list中字典的某个key排序的方法,涉及Python字典与列表排序相关操作技巧,需要的朋友可以参考下本文实例讲述了Python实现字典排序、按照list中字典的某个key排序的方法。分享给大家供大家参考,具体如下:1.给字典按照value按照从大到小排序排序 1 2 3 dict = {'...
Python之psutil,查看CPU、内存、网络等使用情况 CPU>>> import psutil>>>>>> psutil.cpu_times()scputimes(user=3961.46, nice=169.729, system=2150.659, idle=16900.540, iowait=629.59, irq=0.0, softirq=19.42, steal=0.0, g...
使用PyCharm为Python函数及参数添加注释 最近更新了pycharm后,直接在函数下使用英文三连引号➕回车的方法不自动生成注释了,于是只得采用如下方法:1、鼠标选中函数名,右键,选择“ShowContextActions”2、弹出菜单选择“InsertdocumentationStringstub”,参数注释栏即自动生成3、在对应的位置添加描述即可...