JDK

为什么必须将代码从 x86 迁移到 ARM,这篇文章给你答案

半腔热情 提交于 2020-08-17 16:54:46
云栖号资讯:【 点击查看更多行业资讯 】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! “我们非常希望 ARM 和鲲鹏的生态能成为下一个计算产业迭代的方向。”在 6 月 8 日于成都举办的华为 DevRun 开发者沙龙——四川鲲鹏开发者嘉年华上,华为鲲鹏计算产业开源与生态营销总监梁冰对计算产业未来展望道。 新基建风口下,算力一跃成为了新的生产力,云、AI 与 5G 则是新的生产工具,技术聚变将引发商业裂变,带动各行各业的数字化快速发展。基于 5G 等新兴技术的创新应用催生多样化算力的需求,市场既需要通用计算算力也需要异构计算算力。此外,摩尔定律的逐渐放缓,让算力和性能陷入一系列发展瓶颈,市场对创新架构的需求日益加深,计算平台的创新之战一触即发。 在此背景下,x86 架构的不足越发明显,功耗大、通用寄存器数量少、计算机硬件利用率低、寻址范围小等问题凸显,难以跟上算力发展的速度。与此同时,ARM 架构在移动互联网盛行的当下却开始焕发出别样的生命力。 “基于 ARM 架构来设计的鲲鹏,其成功的前提是早早地便看到了未来计算机算力架构的迭代之路。对华为来说,不光要在中国携手合作伙伴共建鲲鹏生态,为更多企业带来价值,更为重要的是要融入全球 ARM 的生态,共同推进 ARM 进阶为下一代计算机平台的实施标准。”梁冰对鲲鹏生态的意义阐述道。 从 x86 迁移到 ARM

如何使用nginxWebUI图形化gui界面配置nginx

删除回忆录丶 提交于 2020-08-17 16:37:24
功能特点 nginxWebUI是一款图形化管理nginx配置得工具, 可以使用网页来快速配置nginx的各项功能, 包括http协议转发, tcp协议转发, 反向代理, 负载均衡, 静态html服务器, ssl证书自动申请、续签、配置等, 最终生成nginx.conf文件并覆盖nginx的默认配置文件, 控制nginx的启动与重载入, 完成nginx的功能配置. 被覆盖的conf文件都会被备份, 方便出现问题后随时进行替换. nginxWebUI也可管理多个nginx服务器集群, 随时一键切换到对应服务器上进行nginx配置, 也可以一键将某台服务器配置同步到其他服务器, 方便集群管理. nginx本身功能复杂, nginxWebUI并不能涵盖nginx所有功能, 但能覆盖nginx日常90%的功能使用配置, 更高级的功能配置仍然需要在最终生成的nginx.conf中进行手动编写。 部署此项目后, 配置nginx再也不用上网各种搜索, 再也不用手动申请和配置ssl证书, 只需要在本项目中进行增删改查就可方便的配置nginx。 开源页面: https://gitee.com/cym1102/nginxWebUI 注意事项 本系统通过Let's encrypt申请证书, 使用acme.sh脚本进行自动化申请和续签, 开启续签的证书将在每天凌晨2点进行续签,

Java初学者知识点总结(一)`Java概述和环境搭建`

早过忘川 提交于 2020-08-17 16:16:53
Java初学者知识点总结(一) Java概述和环境搭建 1、引言 1)历史 1、Sun公司 1995年5月23日 跨平台(v1.0)。 2、1998年 Sun公司发布v1.2版本成熟 稳定。 3、1999年 Java三个发展方向 J2SE(标准版 基本) J2EE(企业级 互联网网站开发) J2ME(微型 机)。 4、2004年 Java1.5诞生 。 5、2009年 被Oracle收购 。 6) 、2014年 Java1.8版本诞生 。 2)Java语言的特点 1、跨平台 2、开源:资源丰富 3、简单性 3)执行方式 1、编程型:c++ 源代码---->机器码文件,如,.exe(只能在window直接运行,不能跨平台。) 优:运行效率高。 缺:不能跨平台、维护麻烦 2、解释型:Html网页编程语言 源代码,直接 解释执行出来结果(源文件 一行一行解释执行) 优:跨平台。 缺:运行效率低。 3、先编译,后解释 源代码.java------(javac编译器)----->字节码文件.class-----(java解释器)---->逐行解释字节码为机器码并执行 跨平台,运行效率高 2、JDK的安装 1)双击exe文件,默认安装 JVM:java虚拟机,用于屏蔽不同os间的差异。 JRE:java运行环境(JRE=解释器+JVM) JDK:java开发工具包(JDK=JRE+解释器+类库

JDK1.8 安装和环境配置

限于喜欢 提交于 2020-08-17 13:57:08
一、JDK安装过程 1 、双击已下载的安装包,进入安装流程 2、点击下一步 3、注意这里默认安装路径 c 盘,你也可以自定义路径安装,点击下一步 4、继续下一步 5、安装完成 二、配置环境变量(win10为例) 1、点击我的电脑, 右键选择属性,选择高级系统设置,然后点击高级系统设置。 2、点击环境系统变量 3、创建系统变量 JAVA_HOME ,变量值为 jdk 的安装路径。 4、创建 CLASSPATH ,变量值: .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar 5、 找到 Path 变量,双击编辑 Path 变量, 点击新建,变量值为 %JAVA_HOME%\bin ,并将它移到最前端,然后点击确定。 以上操作就完成配置了。 三、检验是否配置成功 1、 win+R,打开运行,输入 cmd 指令,点击确定进入命令行窗口。 2、 输入 java -version 获取当前安装的 jdk 的版本信息,输出 javac.exe 命令。 3、出现如图所示信息,即为配置成功。 来源: oschina 链接: https://my.oschina.net/hp2017/blog/4325806

Linux下Zookeeper安装步骤详解

牧云@^-^@ 提交于 2020-08-17 12:46:48
目录 安装准备 1.安装JDK环境 (1)本地准备jdk文件 (2)在Linux的/usr/目录下,新建一个java目录 (3)上传jdk至新建的/usr/java目录 (4)解压jdk-8u171-linux-x64.tar.gz文件 (5)配置环境变量 (6)测试安装结果 2.安装ZooKeeper (1)上传zookeeper-3.4.14.tar.gz文件 (2)创建zkeeper目录,并解压文件 (3)创建data文件夹 (4)修改 zoo_sample.cfg文件名称 (5)修改配置 (6)启动Zookeeper 安装准备 安装Zookeeper需要先安装JDK环境。 虚拟机(例如:Centos7系统) 连接虚拟机通过远程工具(例如:SecureCRT) 1.安装JDK环境 如果已经有JDK环境,可以跳过这一步。 (1)本地准备jdk文件 (2)在Linux的/usr/目录下,新建一个java目录 (3)上传jdk至新建的/usr/java目录 (4)解压jdk-8u171-linux-x64.tar.gz文件 输入命令解压 tar -zxvf jdk-8u171-linux-x64.tar.gz (5)配置环境变量 输入 vim /etc/profile 进行编辑模式 配置环境变量 export JAVA_HOME = /usr/java/jdk1.8.0_171

JVM的垃圾收集器都有哪些?他们是如何协助工作的, GC日志排查的时候应该如何下手呢?

假装没事ソ 提交于 2020-08-17 10:36:10
1. 垃圾回收器 1. 什么叫垃圾收集器? 垃圾收集器是垃圾回收算法(标记清除, 复制算法, 标记-整理算法, 火车算法)的具体实现, 不同种类JVM所提供的垃圾收集器可能会有很大差别, HotSpot虚拟机中的7种垃圾收集器:Serial, ParNew, Parallel Scavenge, Serial Old, Parallel Old, CMS, G1, ZGC 2. 垃圾收集器的分代 年轻代:Serial, ParNew, Parallel Scavenge 老年代:CMS, Serial Old, Parallel Old 通杀:G1 3. Serial收集器 垃圾收集器最基本,发展历史最悠久的收集器。jdk1.3之前是HotSpot新生代收集器唯一的选择。 1. 特点 采用复制算法 单线程收集 stop the world 进行垃圾收集时, 必须暂停所有工作线程, 直到完成。 2. 应用场景 依然是HotSpot在Client模式下默认的新生代收集器 优点: 简单高效(与其他收集器的单线程相比); 对单个cpu环境, Serial收集器没有线程切换开销, 可获得最高的单线程收集效率。 在用户的桌面应用场景中, 可用内存一般不大(几十M至一两百M), 可以在较短时间内完成垃圾收集(十几MS至一百多MS), 只要不频繁发生, 这是可以接受的。 4. Serial

高级测试必备技能,Jenkins

人盡茶涼 提交于 2020-08-17 09:58:52
Jenkins安装 前言   Jenkins是一个广泛用于持续构建的可视化web工具,就是各种项目的的“自动化”编译、打包、分发部署,将以前编译、打包、上传、部署到Tomcat中的过程交由Jenkins,Jenkins通过给定的代码地址,将代码拉取到jenkins宿主机上,进行编译、打包和发布到web容器中。Jenkins可以支持多种语言(比如:java、c#、php等等),也兼容ant、maven、gradle等多种第三方构建工具,同时跟git、svn无缝集成,也支持直接与github直接集成。 1. 准备工作 以下是Jenkins官方对安装服务器、软件的建议要求。 机器要求: 256 MB 内存,建议大于 512 MB 10 GB 的硬盘空间(用于 Jenkins 和 Docker 镜像) 需要安装以下软件: Java 8 ( JRE 或者 JDK 都可以) Docker 我这里将准备的是在CentOS 7.5环境上,采用非docker方式进行安装。 2. 安装JDK1.8 如果已经安装,请忽略该步骤。 执行命令 yum install -y java-1.8.0 进行安装: [root@xcbeyond ~]# yum install -y java-1.8.0 3. 安装Jenkins 1)执行 wget -O /etc/yum.repos.d/jenkins.repo

从连接器组件看Tomcat的线程模型——NIO模式

左心房为你撑大大i 提交于 2020-08-17 09:56:22
Tomcat8之后,针对Http协议默认使用org.apache.coyote.http11.Http11NioProtocol,也就是NIO模式。通过之前的博客分析,我们知道Connector组件在初始化和start的时候会触发它子组件(Http11NioProtocol、NIOEndpoint的初始化和start)。 NIO模式工作时序图 还是像之前那样,我们先整理出NIO模式启动时的时序图。 从上面的时序图可以看出,整个流程的重点时在NioEndpoint这个类中。下面我们通过源代码看下这几个重点方法。 //NIO模式绑定端口 public void bind() throws Exception { //初始化套接字服务,需要注意的是在NIO模式下,这个ServerSocketChannel还是阻塞模式的 initServerSocket(); //设置默认的acceptor线程数,默认是1个,这个参数暂时好像没法修改(??) //注意这个参数和acceptCount(接收请求连接的数量)之间的区别 if (acceptorThreadCount == 0) { acceptorThreadCount = 1; } //设置pollerThreadCount,根据CPU的核数来,CPU大于2个设置为2,否则为1 if (pollerThreadCount <= 0)

100道Java基础面试题

我们两清 提交于 2020-08-17 08:57:24
1.什么是B/S架构?什么是C/S架构 B/S(Browser/Server),浏览器/服务器程序 C/S(Client/Server),客户端/服务端,桌面应用程序 2.你所知道网络协议有那些? HTTP:超文本传输协议 FTP:文件传输协议 SMPT:简单邮件协议 TELNET:远程终端协议 POP3:邮件读取协议 3.Java都有那些开发平台? JAVA SE:主要用在客户端开发 JAVA EE:主要用在web应用程序开发 JAVA ME:主要用在嵌入式应用程序开发 4.什么是JVM?java虚拟机包括什么? JVM:java虚拟机,运用硬件或软件手段实现的虚拟的计算机,Java虚拟机包括:寄存器,堆栈,处理器 5.Java是否需要开发人员回收内存垃圾吗? 大多情况下是不需要的。Java提供了一个系统级的线程来跟踪内存分配,不再使用的内存区将会自动回收 6.什么是JDK?什么是JRE? JDK:java development kit:java开发工具包,是开发人员所需要安装的环境 JRE:java runtime environment:java运行环境,java程序运行所需要安装的环境 7.什么是数据结构? 计算机保存,组织数据的方式 8.Java的数据结构有那些? 线性表(ArrayList) 链表(LinkedList) 栈(Stack) 队列(Queue) 图(

天哪!手动编写mybatis雏形竟然这么简单

孤街浪徒 提交于 2020-08-17 08:50:15
前言 mybaits 在ORM 框架中,可算是半壁江山了,由于它是轻量级,半自动加载,灵活性和易拓展性。深受广大公司的喜爱,所以我们程序开发也离不开mybatis 。但是我们有对mabtis 源码进行研究吗?或者想看但是不知道怎么看的苦恼吗? 归根结底,我们还是需要知道为什么会有mybatis ,mybatis 解决了什么问题? 想要知道mybatis 解决了什么问题,就要知道传统的JDBC 操作存在哪些痛点才促使mybatis 的诞生。 我们带着这些疑问,再来一步步学习吧。 原始JDBC 存在的问题 所以我们先来来看下原始JDBC 的操作: 我们知道最原始的数据库操作。分为以下几步: 1、获取connection 连接 2、获取preparedStatement 3、参数替代占位符 4、获取执行结果resultSet 5、解析封装resultSet 到对象中返回。 如下是原始JDBC 的查询代码,存在哪些问题? public static void main(String[] args) { String dirver="com.mysql.jdbc.Driver"; String url="jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8"; String userName="root"; String