前言 ​ 本章节属于Java进阶系列,前面关于设计模式讲解完了,有兴趣的童鞋可以翻看之前的博文,后面会讲解JVM的优化,整个系列会完整的讲解整个java体系与生态相关的中间件知识.本次将对jvm有更深入的学习,我们不仅要让程序能跑起来,而且是可以跑的更快!可以分析解决在生产环境中所遇到的各种"棘手"的问题,比如运行的应用卡住了,日志不输出,程序没有反应,CPU负载突然升高,多线程应用下,如何分配线程数量等. JVM介绍 什么是JVM ​ 作为java工程师,对于jvm肯定不陌生.JVM…
前言 ​ 本章节属于Java进阶系列,前面关于设计模式讲解完了,有兴趣的童鞋可以翻看之前的博文,后面会讲解JVM的优化,整个系列会完整的讲解整个java体系与生态相关的中间件知识.本次将对jvm有更深入的学习,我们不仅要让程序能跑起来,而且是可以跑的更快!可以分析解决在生产环境中所遇到的各种"棘手"的问题,比如运行的应用卡住了,日志不输出,程序没有反应,CPU负载突然升高,多线程应用下,如何分配线程数量等. JVM介绍 什么是JVM ​ 作为java工程师,对于jvm肯定不陌生.JVM…
前言 ​ 上次讲解了JVM内存相关知识,今天继续JVM专题. JVM垃圾回收算法 什么是垃圾回收 ​ 程序的运行必然需要申请内存资源,无效的对象资源如果不及时处理就会一直占有内存资源,最终将导致内存溢出,所以对内存资源的管理是非常重要了. 什么样的对象需要回收 引用计数法 ​ 引用计数是历史最悠久的一种算法,最早George E. Collins在1960的时候首次提出,50年后的今天,该算法依然被很多编程语言使用. 原理 ​ 假设有一个对象A,任何一个对象对A的引用,那么对象A的引用计数器+1…
看完这篇文章你还敢说你懂JVM吗? 在一些物理内存为8g的服务器上,主要运行一个Java服务,系统内存分配如下:Java服务的JVM堆大小设置为6g,一个监控进程占用大约 600m,Linux自身使用大约800m. http://virtual.51cto.com/art/201901/591418.htm 感觉挺好 还没看完 复制一下 晚上看. 在一些物理内存为8g的服务器上,主要运行一个Java服务,系统内存分配如下:Java服务的JVM堆大小设置为6g,一个监控进程占用大约 600m,Li…
APP的缓存文件到底应该存在哪?看完这篇文章你应该就自己清楚了 彻底理解android中的内部存储与外部存储 存储在内部还是外部 所有的Android设备均有两个文件存储区域:"internal" 与 "external" . 这两个名称来自于早先的Android系统,当时大多设备都内置了不可变的(internal storage)及一个类似于SD card这样的可卸载的存储部件(external storage).之后有一些设备将"internal&qu…
我以为我对Kafka很了解,直到我看了这篇文章 2019-08-12 18:05 https://www.sohu.com/a/333235171_463994?spm=smpc.author.fd-d.8.1566085247069VrdDx7I 原来kafka 是 linkedin 搞出来的 只是听说过 需要实践才可以啊. Kafka 是一个消息系统,原本开发自 LinkedIn,用作 LinkedIn 的活动流(Activity Stream)和运营数据处理管道(Pipeline)的基础.…
看完这篇文章,我奶奶都懂了https的原理 http://www.17coding.info/article/22 非对称算法 以及 CA证书 公钥 核心是 大的质数不一分解 还有 就是 椭圆曲线算法的安全性来决定的.. 这一块的核心是数学 不过数学是我的弱项. 学习的东西太多了 比如 那个傅里叶变换 一直看不懂 还有香农定理. Http存在的问题   上过网的朋友都知道,网络是非常不安全的.尤其是公共场所很多免费的wifi,或许只是攻击者的一个诱饵.还有大家平时喜欢用的万能钥匙,等等.那我们平…
var person={name:'ninja'}; person.prototype.sayName=function(){ return this.name; } 分析上面这段代码,看看有没有问题? 没错,这段代码是有问题的,我们可以通过Chrome看一下执行结果: 错误提示说找不到sayName 属性,不是记得说Javascript可以随时新增属性的吗?没错,Javascript确实可以添加属性,但是不是针对对象实例本身的,而是针对其对实例对象所属的类型的对象的.是不是听起来有些别扭,没错…
前言 当你准备去复习Spring中Bean的生命周期的时候,这个时候你开始上网找资料,很大概率会看到下面这张图: 先不论这张图上是否全面,但是就说这张图吧,你是不是背了又忘,忘了又背? 究其原因在于,你没有理解为什么需要这些步骤,也不知道为什么要按这个顺序执行 笔者在阅读完整个IOC跟AOP的源码后,希望通过这篇文章讲一讲我的Spring中Bean生命周期的看法,帮助大家能理解性的记忆整个流程,而不是死记硬背! 基础知识补充 所谓理解也是建立在有一定知识储备的基础上的,所以这里先补充一些基础概念…
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/devcloud/article/details/96287735 欢迎添加华为云小助手微信(微信号:HWCloud002 或 HWCloud003),输入关键字“加群”,加入华为云线上技术讨论群:输入关键字“最新活动”,获取华为云最新特惠促销.华为云诸多技术大咖.特惠活动等你来撩! 正则表达式简介 正则表达式,是一个特殊的字符序列,又称规则…
一.Zookeeper概述 1.概述 Zookeeper 是一个开源的为分布式框架提供协调服务的 Apache 项目.在分布式系统中,扮演注册中心的角色. Zookeeper数据模型的结构与Linux文件系统很像,整体上可以看做一棵树,从根节点往下,每个节点称为ZNode.每一个ZNode默认能够存储1MB的数据,每个ZNode都对应一个唯一的路径,类似于Linux中的文件路径. Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数…
只要是需要进行联网获取数据的APP,那么不管是版本更新,还是图片缓存,都会在本地产生缓存文件.那么,这些缓存文件到底放在什地方合适呢?系统有没有给我们提供建议的缓存位置呢?不同的缓存位置有什么不同呢?今天这篇文章就是主要来说明这个问题的. 首先,我们要知道,在Android手机里面,缓存的位置分为两类,一类是Internal Storage,即内部存储,另外一类是External Storage,即外部存储.比较老的手机,有一个手机内部存储,还有一个SD卡存储,就是分别对应这两种存储位置,因为以…
扩展阅读:JVM从入门开始深入每一个底层细节 六.内存模型 6.1.内存模型与运行时数据区 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干不同数据区域. Java内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量这样的底层细节. 这里所讲的主内存.工作内存与Java内存区域中的Java堆.栈.方法区等并不是同一层次的内存划分,这两者基本上是没有关系的.如果两者一定要勉强对应起来,从变量.主内存.工作内存的定义看,主内存主要对应于…
一:虚拟机内存图解 JAVA程序运行与虚拟机之上,运行时需要内存空间.虚拟机执行JAVA程序的过程中会把它管理的内存划分为不同的数据区域方便管理. 虚拟机管理内存数据区域划分如下图: 数据区域分类: 方法区            (Method Area) 虚拟机栈         (VM Stack) 本地方法栈     (Native Method Stack) 堆                   (Heap) 程序计数器    (Program Counter Register) 直接…
一:虚拟机内存图解 JAVA程序运行与虚拟机之上,运行时需要内存空间.虚拟机执行JAVA程序的过程中会把它管理的内存划分为不同的数据区域方便管理. 虚拟机管理内存数据区域划分如下图: 数据区域分类: 方法区            (Method Area) 虚拟机栈         (VM Stack) 本地方法栈     (Native Method Stack) 堆                   (Heap) 程序计数器    (Program Counter Register) 直接…
定义 根据<深入理解Java虚拟机>提到"通过一个类的全限定名(packageName.ClassName)来获取描述此类的二进制字节(class文件字节)这个动作的代码模块就叫做类加载器(ClassLoader)". 作用 1.通常类加载器的作用是加载资源(字节码文件)到java虚拟机中,想要在一个jvm 进程中唯一确认一个类,除了类的全限定名外,还需要指定它是由哪个类加载器加载的. 2.比如我们的类库需要通过远程网络获取,可以通过自定义类加载器从远程加载字节码文件. 3…
写在前面 今天想写一篇使用Nginx如何生成缩略图的文章,想了半天题目也没想好,这个题目还是一名读者帮我起的.起因就是这位读者最近出去面试,面试官正好问了一个Nginx如何生成缩略图的问题.还别说,就是这么巧呀!!就冲这标题,也要写一篇干货满满的技术好文!! 关于Nginx的安装,小伙伴们可以参考<[Nginx]实现负载均衡.限流.缓存.黑白名单和灰度发布,这是最全的一篇了!> 还有就是,小伙伴们如果对文章有什么好的建议和意见,或者在阅读文章时,有什么疑问,都可以在留言区进行留言!! 生成缩略…
目录 简介 Flutter的架构图 embedder engine Flutter framework Widgets Widgets的可扩展性 Widgets的状态管理 渲染和布局 总结 简介 Flutter是google开发的一个跨平台的UI构建工具,flutter目前最新的版本是3.0.5.使用flutter你可以使用一套代码搭建android,IOS,web和desktop等不同平台的应用.做到一次编写到处运行的目的. 说到一次编写处处运行,大家可能会想到java.那么flutter跟j…
git定义:版本管理工具 历史:没有git的时候,我们修改完一个文件,要先把文件拷贝一个副本到备份文件夹中,还要建个文档来记录当前文件的信息和操作记录.当文件多的时候,人工操作起来将是个非常辛苦非常庞大的工作量. 如今:有了git帮我们管理这些副本,为我们节约了非常大的人力成本,让我们的工作变得更加轻松.我们不要把git看得那么神秘,git的核心就是创建备份和恢复备份,但是衍生出一堆的新概念,有很多同学因为被困在这些抽象概念上而不能利用好git,本文章是从文件的层面出发来理解git原理和git命…
从2000年初以来,我们就一直在使用OPC软件互操作性标准,而那些正准备踏入和想要踏入工业自动化领域的人们却对这些含义感到困惑. 所以在本中,我将系统地为你梳理OPC知识. OPC首字母缩写词代表什么? 问一个OPC老手,他们或许会笑,因为他们知道有很多含义!在经典的且程序化的说法是:O LE for P rocess C ontrol(用于过程控制的OLE).OLE 或对象链接和嵌入是Windows的基本早期构建块,允许应用程序在它们之间共享复杂的信息.我记得Windows 3.0的第一个演示…
好好学习,天天向上 本文已收录至我的Github仓库DayDayUP:github.com/RobodLee/DayDayUP,欢迎Star,更多文章请前往:目录导航 前言 String应该是Java使用最多的类吧,很少有Java程序没有使用到String的.在Java中创建对象是一件挺耗费性能的事,而且我们又经常使用相同的String对象,那么创建这些相同的对象不是白白浪费性能吗.所以就有了StringTable这一特殊的存在,StringTable叫做字符串常量池,用于存放字符串常量,这样当…
在早期,USB接口的出现似乎仅仅是要解决一些简单外设诸如鼠标.键盘之类的设备与电脑的连接问题,很显然,这些外设所产生的数据量是极低的,所以,USB规范所定义的数据速率是1.5Mbps,数据还是双向分时传输的,PC主机采用轮询的方式和各个外设进行通讯,只有被点到名的外设才能进入传输状态.这是USB 1.0的规格,它成文于 1996年. USB的面世 提速以后的USB 1.1规范发布于 1998年,其数据传输速率为12Mbps,我在这个时候还在一家从事有线电视监控系统和路桥收费系统的香港公司工作.有…
废话不多说直接上图 可以看得到 / 下面已使用100%,已经没有剩余空间可以使用了,上面跑的服务已经访问不了了. 接下来我就看看有没有垃圾文件可以清理的 du -sh * 由于这个机器比较特殊,上面有重要业务所以里面的任何东西都不能动.所以没有办法只能添加磁盘. 添加一块10G的磁盘,我的思路是既然东西不能动,而且aaa目录占用空间特别大所以,把aaa目录移到新挂载的磁盘上做一个软链接. 加完磁盘后,要重启才能生效哦. 现在看到已经出现我们刚添加的10GB的磁盘.没有任何分区,现在新建分区 然后…
本文在个人技术博客同步发布,详情可猛戳 亦可扫描屏幕右方二维码关注个人公众号 Http存在的问题   上过网的朋友都知道,网络是非常不安全的.尤其是公共场所很多免费的wifi,或许只是攻击者的一个诱饵.还有大家平时喜欢用的万能钥匙,等等.那我们平时上网可能会存在哪些风险呢?   1. 泄密,个人隐私.账户密码等信息可能会被盗取.   2. 篡改,收到的数据可能被第三方修改过,或被植入广告等.   3. 假冒,访问的站点非目标服务器站点.如域名欺骗.域名劫持.钓鱼网站等.   可能住你隔壁穿人字拖…
本文首发于我的公众号 Linux云计算网络(id: cloud_dev),专注于干货分享,号内有 10T 书籍和视频资源,后台回复 「1024」 即可领取,欢迎大家关注,二维码文末可以扫. 本文讲解 Linux 的零拷贝技术,云计算是一门很庞大的技术学科,融合了很多技术,Linux 算是比较基础的技术,所以,学好 Linux 对于云计算的学习会有比较大的帮助. 本文借鉴并总结了几种比较常见的 Linux 下的零拷贝技术,相关的引用链接见文后,大家如果觉得本文总结得太抽象,可以转到链接看详细解释.…
熟记于心,打遍天下,(开始装了) 保存 Ctrl+s                    (这个就不用解释了吧!!!!) 注释代码 Ctrl+/ 取消注释 Ctrl+/代码辅助 Alt+/ 快速修复 Ctrl+1 代码格式化 Ctrl+Shift+f 整理导入 Ctrl+Shift+o 切换窗口 Ctrl+f6 <可改为ctrl+tab方便> ctrl+shift+M 导入未引用的包 ctrl+w 关闭单个窗口 F3 跳转到类.变量的声明 F11 运行上次程序 Ctrl + F11 调试上次…
http://www.bubuko.com/infodetail-425274.html//有图片 http://www.cnblogs.com/jys509/p/4839803.html http://blog.csdn.net/zhangjunjian127/article/details/47954981 //较详细 http://www.cocoachina.com/ios/20151023/13869.html// iOS开发必备--环境变量配置(Debug & Release) ht…
Android Touch Screen 与传统Click Touch Screen不同,会有一些手势(Gesture),例如Fling,Scroll等等.这些Gesture会使用户体验大大提升. Android中的Gesture识别(detector)是通过GestureDetector.OnGestureListener接口实现的. 首先,Android事件处理机制是基于Listener实现的,比如触摸屏相关的事件,就是通过onTouchListener实现: 其次,所有View的子类都可以…
人类已经经历了六次信息技术革命为: 第一次:语言的使用 让信息可以分享 第二次:文字的创造 让信息可以记录 第三次:印刷术的发明 让信息可以传得更远 第四次:无线电的发明 让信息可以远距离实时传输 第五次:电视的发明 让信息变成远距离.实时还可以多媒体传输 第六次:互联网的发明 让信息变成远距离实时多媒体,还可以双向交互 现在我们正在经历第七次信息技术革命:移动互联.智能感应.大数据.智能学习.云计算共同形成的万物互联时代,而这一切的核心基础就是5G. 为什么是5G,工具吧带大家看看5G的6大特…
通过navicat for mysql操作部署在虚拟机centos里面的mysql数据库时候总是出现类似于下面的提示信息: Can't connct to MySQL server on '*.*.*.*' 在经过一番常规的检查: 1.检查mysqld服务器是否开启(通过service mysqld status查看状态),如果没有开启需要通过service mysqld start启动 2.检查防火墙状态(通过service iptables status查看),如果有启动需要关闭serivc…