JDK

记nacos在windows启动失败,一闪而过的问题

不问归期 提交于 2020-09-29 09:00:59
最近由于公司要使用阿里开源的nacos来做注册中心使用,在官网安装好最新的的1.3.1版本之后,启动的时候直接startup.cmd黑窗口一闪而过,在nacos安装包的bin目录下敲cmd,并输入 startup.cmd 启动的时候出现如下报错: 然后去查了一下nacos的官方文档,看他们要求使用的是jdk8并且64位,还要配置JAVA_HOME环境变量;于是先查一下我们安装的jdk的版本和位数,windows+r打开cmd,运行 java -version 发现我的配置和他官网要求一毛一样,确实是jdk1.8并且是64位的,但是为什么打不开呢?然后我又去仔细检查了一下我下载的压缩包,发现并没有什么问题.下载完后就这么多东西,如下图: 那就剩下环境变量了,但是我已经配置过JAVA_HOME的环境变量了啊,如下图 于是我灵机一动,只在系统变量里边配置不行,难道是还要在用户变量里配置一下吗,于是我抱着试一试的心态在用户变量里边做了JAVA_HOME的配置,如下: 然后我重新打开nocas安装路径在bin目录下打开cmd黑窗口,敲下startup.cmd,然后 然后 就好了!! 我们在浏览器输入 http://127.0.0.1:8848/nacos/index.html#/login 默认的登录地址,或者输入上边黑窗口中的Console中的地址都可以访问,初次登录默认的账号密码都是

我向面试官讲解了hashmap底层原理,他对我竖起了大拇指

狂风中的少年 提交于 2020-09-28 04:31:08
前言: 正值金九银十的黄金招聘期,大家都准备好了吗?HashMap是程序员面试必问的一个知识点,其内部的基本实现原理是每一位面试者都应该掌握的,只有真正地掌握了 HashMap的内部实现原理,面对面试官的拷问,才不会手忙脚乱,只有经历面试官的狂轰滥炸才能够凝练自己的知识。本篇文章结合丰富的图文形式,将帮助大家理解JDK7 版本的 HashMap基础及其实现原理。 另外本人整理收藏了20年多家公司面试知识点整理 ,以及各种Java核心知识点免费分享给大家,想要资料的话请点 1065653031 暗号CSDN。 一、 HashMap介绍 HashMap简介: HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。 HashMap 继承于AbstractMap,实现了Map、Cloneable、java.io.Serializable接口。 HashMap 的实现不是同步的,这意味着它不是线程安全的。它的key、value都可以为null。此外,HashMap中的映射不是有序的。 HashMap 的实例有两个参数影响其性能:“初始容量” 和 “加载因子”。容量 是哈希表中桶的数量,初始容量 只是哈希表在创建时的容量。加载因子 是哈希表在其容量自动增加之前可以达到多满的一种尺度。当哈希表中的条目数超出了加载因子与当前容量的乘积时,则要对该哈希表进行rehash 操作

设计模式 —— 工厂模式(简单工厂、工厂方法、抽象工厂)

ⅰ亾dé卋堺 提交于 2020-09-27 23:59:19
目录 一、简单工厂模式 1.1 使用传统的方式来完成 1.2 传统的方式的优缺点 二、简单工厂 2.1 简单工厂基本介绍 2.2 使用简单工厂模式 三、工厂方法模式 3.1 工厂方法模式介绍 3.2 工厂方法模式应用案例 四、抽象工厂模式 4.1 抽象工厂基本介绍 4.2 抽象工厂模式应用实例 五、工厂模式在 JDK-Calendar 应用的源码分析 六、工厂模式小结 一、简单工厂模式 看一个披萨的项目:要便于披萨种类的扩展,要便于维护 披萨的种类很多(比如 GreekPizz、CheesePizz 等) 披萨的制作有 prepare,bake, cut, box 完成披萨店订购功能。 1.1 使用传统的方式来完成 思路分析(类图) 编写 OrderPizza.java 去订购需要的各种 Pizza,传统方式代码如下: public class OrderPizza { // 构造器 public OrderPizza() { Pizza pizza = null; String orderType; // 订购披萨的类型 do { orderType = getType(); if (orderType.equals("greek")) { pizza = new GreekPizza(); pizza.setName(" 希腊披萨 "); } else if

MyEclipse+Tomcat配置

|▌冷眼眸甩不掉的悲伤 提交于 2020-09-27 17:00:14
1.双击进行安装,直接NEXT接受协议,选择好路径后,等待安装完毕 2. 选择工作空间路径 3. 进入软件如图 4. 配置Tomcat 工具栏 - Window - Preferences 依次进入 :Myeclipse - Servers - Tomcat - 选择版本(记得勾选Enable) Tomcat - JDK配置:进入对应版本的下拉菜单,在此步配置JDK(如已经配置过可跳过),选择JDK,点击Add... , 输入配置好的JDK路径(可在环境变量内找到) 完成后Finish - OK 5.预览 选择Tomcat 7x,右键选择"add deployment" 出现这样的页面 点击finish. 选中Tomcat 7.x 点击控制台右边的run server 找到端口号,我的为8080,不同电脑可能端口有所不同. 最后在浏览器输入 localhost: 8080(端口号)/项目名,即可运行 来源: oschina 链接: https://my.oschina.net/u/4261790/blog/4556604

Docker Hadoop、Spark、Kafka、Zookeeper等集群服务搭建

百般思念 提交于 2020-09-27 13:09:51
目录 Docker搭建Hadoop集群(Docker & Hadoop & HDFS & Yarn & Cluster) Docker搭建Myrocks实例(Docker & Mysql & Rocksdb) Docker搭建Kafka集群(Docker & Kafka & Cluster) Docker Container开启ssh服务 Docker Host创建swarm overlay网络 Docker Host设置自启动、国内源、代理 Docker、Docker Compose、Docker Machine各平台安装 Docker 搭建Zookeeper集群(Docker & Zookeeper & Replication) Docker 搭建Pika分片多主集群(Docker & Codis & Pika& Replication & Sharding) Docker搭建Spark集群(Docker & Spark & Cluster & Local & Standalone) Docker搭建SSDB分片多主集群(Docker & Twemproxy & SSDB & Replication & Sharding) Docker搭建MongoRocks副本分片集群(Docker & Mongodb & Rocksdb & Replication & Sharding)

docker 镜像制作(自定义 jdk、centos 版本)

℡╲_俬逩灬. 提交于 2020-09-27 13:08:53
准备好 Docker 环境(基于Centos 7,Docker version 19.03.12) 拉取一个 centos 7 作为基础镜像: docker pull centos:7 启动镜像: docker run -ti centos:7 bash ,直接进入到了容器中 替换容器中的 centos 源,参考: 阿里镜像地址 ,能使下载更快 容器中安装常用 linux 命令,安装JDK(参考: OPENJDK官网 )并配置环境变量 打成新的镜像:docker commit -m ‘提交描述’ CONTAINER ID 新镜像名 (使用docker ps 查看刚运行的镜像对应的 CONTAINER ID) 登录阿里云镜像仓库: sudo docker login --username=xxxxx@qq.com registry.cn-shenzhen.aliyuncs.com docker tag ff62f1b94af3 registry.cn-shenzhen.aliyuncs.com/ oyc /centos7_openjdk8:1.0.0 阿里仓库上已经创建了oyc的命名空间,之前打tag的时候是写的 registry.cn-shenzhen.aliyuncs.com/ francis /,此命名空间属于别人的,所以push镜像时报 denied: requested

2020年面试精华汇总:面试准备(心态+简历)+面试题目+面试经验!

落花浮王杯 提交于 2020-09-27 07:30:35
今天分享的BAT面试完整内容主要包含: 面试前的心态准备(3点建议) 技术硬实力包含的范围(50题目) 个人简历突出和优化(3点优化步骤) 个人软实力的提升(6点提升维度) BAT面试经验总结(1点总结) 1. 面试前的心态准备 心态可以影响你面试的准备,笔试的状态,实力的发挥,可以影响一个面试过程的方方面面。心态崩了,就只剩运气了,offer估计也就走远了。 那怎么调整自己的心态呢? 首先是要正视自己的能力,不轻视,不高估。 不高估就是要清楚自己的能力范围,不是说期望过高不好,但过高的期望会让你的心理变得脆弱,稍有不顺心态就有崩掉的趋势。因为面试毕竟有太大的偶然性,就算你达到了一定的水平,相应水平的岗位也不是百发百中的,更不要说身边有那么多大神和收割机,天天拿offer拒offer,对心理都是不小的冲击。 不要总给自己消极的暗示,心态差了积极调整。 大多数的人,总暗示自己说什么时间不多了,怎么每天过这么快效率怎么这么低。到笔试了,跟自己说这个算法太难了,肯定做不出来;临到面试了,跟自己说千万别问我linux内核,别问我分布式,问我肯定完;面试过之后,没有结果,就天天想肯定又挂了,唉我怎么这么菜。 如果这一系列的表现形成习惯,那心态这个系数最多0.5,能发挥出来的东西也都打了一半的折扣。凡事都不要太悲观,一个offer没拿到

Java性能调优实战(一) | 体现系统性能的因素

佐手、 提交于 2020-09-26 18:07:48
CPU: 有的应用需要大量计算,他们会长时间、不间断地占用CPU资源,导致其他资源无法争夺到CPU而响应缓慢,从而带来系统性能问题。例如:代码递归导致的无限循环,正则表达式引起的回溯,JVM 频繁的 FULL GC,以及多线程编程造成的大量上下文切换等,这些都有可能导致 CPU 资源繁忙。 内存: Java 程序一般通过 JVM 对内存进行分配管理,主要是用 JVM 中的堆内存来储存 Java 创建的对象。系统堆内存的读写速度非常快,所以基本不存在读写性能瓶颈。但是由于内存成本要比磁盘高,相比磁盘,内存的储存空间又非常有限。所以当内存空间被占满,对象无法回收时,就会导致内存溢出、内存泄露等问题。 磁盘 I/O: 磁盘相比内存来说,储存空间要大很多,但磁盘 I/O 读写的速度要比内存慢,虽然目前引入的 SSD 固态硬盘 已经有所优化,但仍然无法与内存的读写速度相提并论。 网络: 网络对于系统性能来说,也起着至关重要的作用。如果你购买过云服务,一点经历过,选择网络带宽大小这一环节。带宽过低的话,对于传输数据比较大,或者是并发量比较大的系统,网络就很容易成为性能瓶颈。 异常: Java 应用中,抛出异常需要构建异常栈,对异常进行捕获和处理,这个过程非常消耗系统性能。如果在高并发的情况下引发异常,持续地进行异常处理,那么系统的性能就会非常明显地收到影响。 数据库: 大部分系统都会用到数据库

秒懂JVM的三大参数类型,就靠这十个小实验了

雨燕双飞 提交于 2020-09-26 17:34:40
Python实战社群 Java实战社群 长按识别下方二维码, 按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群 ▲ 作者 | 悟空哥 来源 | 悟空聊架构(ID:PassJava666) 转载请联系授权(微信ID:PassJava) ❝ 你好,我是 悟空哥 , 「7年项目开发经验,全栈工程师,开发组长,超喜欢图解编程底层原理」 。 手写了2个小程序 , Java刷题小程序,PMP刷题小程序 ,已发布到我的公众号菜单。 ❞ 本实验的目的是讲解 JVM 的三大参数类型。在 JVM调优 中用到的最多的 XX 参数,而如何去查看和设置 JVM 的 XX 参数也是调优的基本功,本节以实验的方式讲解 JVM 参数的查看和设置。希望大家能有所启发。 标配参数 常见标配参数 -version,获取JDK版本 -help,获取帮助 -showverision,获取JDK版本和帮助 动手实验 1 - 查看标配参数 实验步骤: 查看Java JDK 版本 java -version 实验 1-1 可以看到Java JDK 版本为1.8.0_131 查看 Java 帮助文档 java -help 实验 1-2 查看版本和帮助文档 java -showversion 实验 1-3 X 参数 X 参数简介 我们常用的 javac 大家都知道是把java代码编译成 class

工作10年后,再看String s = new String("xyz") 创建了几个对象?

限于喜欢 提交于 2020-09-26 12:04:50
这个问题相信每个学习java的同学都不陌生,作为一个经典的面试题,到现在工作这么多年了我真是认为挺操蛋的一个问题,在网上到现在你仍然可以看见很多讨论这个问题的人,其中不乏工作很多年的人都有争论,我认为还是有必要来说一说这个问题的。 从方法区说起 常量池存在于方法区,而方法区在jdk1.7版本前后改变比较大,所以还是先来说说方法区的演变。 在jdk1.7版本之前,常量池存在于方法区,方法区是堆的一个逻辑部分,他有一个名字叫做 非堆 。 1.7版本把字符串常量池放到了堆中。 而在1.8以后,则是移除了永久代,方法区概念保留,方法区的实现改为了元空间,常量池还是在堆中。 为什么要说方法区的改变,只是为了文章接下来的内容不会由于JDK的版本而产生分歧,接下来内容都会以jdk1.8版本作为基础来讨论。 String s = new String("xyz"); 先来一段代码 public class Test { public static void main(String[] args) { String s = "xyz"; } } 接着我们javac编译代码,然后用javap来反编译,执行javap -c Test 从结果来看,ldc命令 在常量池中创建了一个"xyz"的对象,然后把他推至操作数栈顶 ,然后astore保存到局部变量,return返回。 接着看第二段面试题中的代码