JDK

java gc

瘦欲@ 提交于 2020-12-28 08:06:40
Garbage Collection 自动垃圾回收即在堆空间中识别被引用的对象以及未被引用的对象, 然后删除未被引用的对象的过程。 基本步骤: Marking(标记): 识别被引用的对象, 以及未被引用的对象。 所有的对象都会被扫描。 Normal Deletion(正常删除): 删除未被引用的对象, 引用的对象会被保留, 并且memory allocator会保存空闲块的引用。 或: Deletion with Compacting(删除并压缩): 删除未被引用的对象, 把被引用的对象移动到一起, 方便后面的内存分配。 Generatiional Garbage Collection 标记并压缩对象是不够高效的, 并且多数对象只存活很短的时间, 因此就有了Generational Garbage Collection。 由此, Java堆被分成了三块:新生代, 老年代和永生代, 其中新生代被分为eden, s0, s1三块。 新生代是对象被新建以及变老的地方, 当新生代空间被填满时就会运行minor garbage collection(小型垃圾回收)。 老年代是存储存活时间较长的对象的地方, 基本上jvm会为新生代的对象设置一个阈值, 当新生代的对象经历过指定的次数没有被回收就会被移入老年代。 老年代运行的垃圾回收叫做major garbage collection

Exceptionless 本地部署

淺唱寂寞╮ 提交于 2020-12-28 04:27:11
copy to:https://www.cnblogs.com/uptothesky/p/5864863.html 本地部署官方wiki .NET 4.6.1 这个因为我装了VS2015,就没有单独再装了 Java JDK 1.8+ 安装完后还需配置下Java环境,系统变量添加:JAVA_HOME 对应 C:\Program Files\Java\jdk1.8.0_102 是安装jdk的目录,用户变量Path 中添加 %JAVA_HOME%\bin; 配置完成后打开cmd,运行 java - version 如果报错的话有很多种可能,搜索一下会有解决方案,我的就是在C:\Windows\System32 目录下把java.exe改名成javaa.exe,再次cmd运行就成功了 IIS 8+ 这个感觉不是强制的,我win7的IIS 7.5也是可以的 ElasticSearch 1.7.5 ( Elasticsearch 2.x is not yet supported ) 到连接地址去下载1.7.5版本,人家已经说明2.x的版本不支持,找这个历史版本得翻好几页,大概在第7页左右,直接给个下载连接: elasticsearch-1.7.5 ,下载完后解压 下载最新的 latest Exceptionless release artifact ZIP ,下载后解压

java进阶学习计划

隐身守侯 提交于 2020-12-28 03:01:09
1. Java进阶学习架构图(多线程高并发部分) 学习笔记: https://linestyle007.gitee.io/tags/ 2.Mysql进阶架构图 学习笔记:待续。。。 3.redis学习架构图 学习笔记: https://linestyle007.gitee.io/tags/ 4.JDK8使用进阶架构图 学习笔记:待续。。。 5.小程序入门架构图 学习笔记:待续。。。 来源: oschina 链接: https://my.oschina.net/u/4414234/blog/3351957

红黑树(第一篇)

守給你的承諾、 提交于 2020-12-28 01:14:50
介绍 R-B Tree全称Red-Black Tree,又名红黑树 1972年由鲁道夫.贝尔发明 一种自平衡二叉查找树 二叉查找树每个节点增加一个存储位表示节点的颜色,非黑即红 时间复杂度O(log n) 二叉查找树? 平衡二叉查找树? 二叉查找树 Binary Search Tree 若任意节点的左子树不空,则左子树上所有节点的值均小于它的根节点的值 若任意节点的右子树不空,则右子树上所有节点的值均大于它的根节点的值 任意节点的左、右子树也分别为二叉查找树 没有键值相等的节点 时间复杂度O(log n)(最好的情况下) 例子 二叉查找树 退化成线性的二叉查找树,时间复杂度O(n) 平衡二叉查找树 AVL 任何一个节点的左子树与右子树都是平衡二叉查找树,且高度之差的绝对值不超过1(即平衡因子:左子树高度-右子树高度,1 or 0 or -1) 严格的平衡二叉查找树 对于查找友好,对于插入、删除不够友好,频繁破坏规则,频繁旋转以适应规则 例子 RB特性 每个节点或者黑色,或者红色 根节点是黑色 每个叶子节点(NIL)是黑色(注:此处叶子节点,指为空(NIL或NULL)的叶子节点) 如果一个节点是红色的,则它的子节点必需是黑色的 对任意节点,其到叶子节点(NIL)的每条路径都包含相同数目的黑色节点 例子 时间复杂度 定理:一棵含有n个节点的红黑树的高度至多为2log(n+1) 逆否命题

蚂蚁开源的 SOFABoot,和 Spring Boot 有啥关系?

你。 提交于 2020-12-28 01:01:15
一、SOFABoot 是什么鬼? 说到 SOFABoot,不得不先说下 SOFARPC 框架,SOFARPC 也是大名远扬,最早起源于阿里淘宝 HSF 框架,现在是蚂蚁金服开源的一款高性能、高可扩展性、生产级别的 RPC 框架,在蚂蚁金服,SOFARPC 框架已经使用了十多年了,并且已经历经了五代。 SOFARPC 开源地址: https://github.com/sofastack/sofa-rpc 栈长当初第一次看到 SOFABoot 这个框架的时候,心里想着,难道是 SOFABoot = SOFA + Spring Boot 的结合? 不卖关子了,先来看下官方介绍: SOFABoot 是蚂蚁金服开源的基于 Spring Boot 的研发框架,它在 Spring Boot 的基础上,提供了诸如 Readiness Check,类隔离,日志空间隔离 等等能力。 在增强了 Spring Boot 的同时, SOFABoot 提供了让用户可以在 Spring Boot 中非常方便地使用 SOFA 中间件的能力。 SOFABoot 开源地址: https://github.com/sofastack/sofa-boot 看完介绍,栈长才发现其实并不是,两者并不能直接划等号。 SOFABoot 和 SOFARPC 都是蚂蚁金服开源的 SOFA 技术栈的开源项目,SOFARPC 只是其

Elastic search,Kibana,APM server 安装历程

别说谁变了你拦得住时间么 提交于 2020-12-27 07:43:48
接个任务,为某公司内网安装一套Elastic APM, 用于监测内网运行的各类项目。 因为是内网服务器,无法连接内网,选择使用压缩包方式安装部署。 服务器环境: linux Redhat7 step1: 从官网下载相关压缩包,并使用XFTP上传到内网服务器中。 官网下载地址: 选择linux 64-BIT版本,版本号为7.0.3 https://www.elastic.co/cn/downloads/ https://www.elastic.co/cn/downloads/apm step2: 安装jdk11.0.4 从官网下载jdk11.0.4,解压后,设置 /etc/profile vim /etc/profile 添加 export JAVA_HOME=/usr/es/elk_apm/jdk-11.0.4 export PATH=$PATH:$JAVA_HOME/bin 运行 source /etc/profile step3: 切换到root账号,新建一个账号es,并授予root用户权限。(Elastic search默认不支持root账户启动) 添加es用户组 groudadd es 添加es用户 useradd es 添加es用户密码 passwd es 如果在添加过程中出现could not change to group 错误,请查阅 https://blog

windows下jenkins安装部署

…衆ロ難τιáo~ 提交于 2020-12-27 03:46:41
点击上方蓝字“ 开源优测 ”一起玩耍 环境搭建(windows版本) 一、安装包下载地址 1、JDK安装包: 32位地址:http://download.oracle.com/otn-pub/java/jdk/8u144-b01/090f390dda5b47b9b721c7dfaa008135/jdk-8u144-windows-i586.exe 64位地址:http://download.oracle.com/otn-pub/java/jdk/8u144-b01/090f390dda5b47b9b721c7dfaa008135/jdk-8u144-windows-x64.exe 2、jenkins安装包: https://jenkins.io/download/ 二、安装过程 1、JDK安装过程: 注:笔者以64位为例。 1)双击安装包,弹出下图所示的安装界面,点击“下一步”。 2)选择安装路径,默认安装到C盘,可修改(笔者修改为安装到D盘),点击“下一步”’。 3)进度条达到100%,跳转到安装成功界面,即安装成功。 2、JDK环境变量配置 配置环境变量包括JAVA_HOME、Path和classpath。 1)鼠标右击计算机,选择“高级系统配置”->“环境变量”。 2)点击“新建”,弹出新建系统变量窗口,输入变量名和变量值,如下图,点击“确定” 。 3)选择“Path”

java面试题之synchronized和lock有什么区别

情到浓时终转凉″ 提交于 2020-12-27 00:58:59
synchronized和lock的区别: 类别 synchronized lock 存在层次 java的关键字,在jvm层面上 是一个类 锁的释放 1、以获取锁的线程执行完同步代码,释放锁 2、线程执行发生异常,jvm会让线程释放锁 在finally中必须释放锁,不然容易造成线程死锁 锁的获取 假设A线程获得锁,B线程等待, 如果A线程阻塞,B线程会一直等待 分情况而定,lock有多个锁获取的方法,可以尝试获得锁, 线程可以不用功一直等待 锁状态 无法判断 可以判断 锁类型 可以重入,不可以中断,非公平 可重入 可以判断 可公平 性能 少量同步 大量同步 synchronized使用方式及原理: 作用在方法上: public synchronized void test(){}//作用在方法上JVM采用ACC_SYNCHRONIZED标记符来实现同步的; 作用在代码块上: synchronized (SynchronizedTest. class ){}//作用在同步代码块上JVM是采用monitorenter和monitorexit两个指令来实现同步的; java对象头:   synchronized用的锁是存在java对象头里的,java对象头一般占有两个机器码(在32位虚拟机中,1个机器码等于4字节,也就是32bit),那么什么是java对象头呢

PowerDesigner16 连接MySql 报错

微笑、不失礼 提交于 2020-12-26 18:35:21
原因:由于PowerDesigner是32位的,而一般windows系统都是64位了,装的对应64位JDK,而该软件需要32位的JDK下运行 解决方式:下载32位JDK,配置环境变量 步骤: 1、下载32位JDK 2、配置环境变量(JAVA_HOME和数据库驱动包全路径) JAVA_HOME:D:\java\jdk\jdk1.8.0_111(x86) PATH:%JAVA_HOME%\bin;D:\java\jdk\jdk1.8.0_111(x86)\bin\mysql-connector-java-5.1.20.jar 3、配置PowerDesigner PowerDesigner 点击 Tools --> General Options --> Variables: JAR D:\java\jdk\jdk1.8.0_111(x86)\bin \jar.exe JAVA D:\java\jdk\jdk1.8.0_111(x86)\bin \java.exe JAVAC D:\java\jdk\jdk1.8.0_111(x86)\bin \ avac.exe JAVADOC D:\java\jdk\jdk1.8.0_111(x86)\bin \ javadoc.exe 4、连接数据库 工具栏DataBase ---> Conection ---> Conection Profile

[Java 教程 01] Hello,Java!

纵饮孤独 提交于 2020-12-26 18:34:51
前言 从事编程已经有一段时间了,突然发现,Java作为我的第一编程语言,自己似乎对她并有一个系统的思想。当下Java依旧保持着超高的热度,新特性也不断出现,从当初学习的java6版本到最近刚出的java9,我意识到自己需要对整个java知识体系做一个梳理。借用一下《老子》里面的一句话:合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。 坚实的基础对于编程一样是重要。 接下来,开始我们的积累之路吧! Java简介 什么是Java Java 是一门 面向对象 编程语言,不仅吸收了 C++ 语言的各种优点,还摒弃了C++里难以理解的 多继承 、 指针 等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。 Java具有简单性、面向对象、 分布式 、 健壮性 、 安全性 、平台独立与可移植性、 多线程 、动态性等特点 。Java可以编写 桌面应用程序 、 Web应用程序 、 分布式系统 和 嵌入式系统 应用程序等 。--来自百度百科 看完百度的解释,是不是还是懵懵懂懂,不知所云?没关系,随着后面的接触,自然而然能理解其中的意思了。 起源发展 Java:由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称