JDK

Appium环境搭建

我只是一个虾纸丫 提交于 2021-01-09 08:37:48
1. 下载安装node.js 首先进入node.js官网,选择对应机器的版本下载并安装。 下载地址:https://nodejs.org/en/ 我选择的是左侧的LTS版本,它是Long Term Support的缩写,简单的说就是能获得长期支持的版本。右边的版本是最新的,可能会有部分问题,还是用较为稳定的版本 下载之后开始安装。 目前我是放到C盘下,默认目录,你也可以放到其他目录,不影响。 如果这里显示 一定要将X改为上上图的状态,因为默认是添加到PATH变量里的。 然后一步步安装就可以了。 安装完js后,我们打开cmd窗口,输入"npm", node -v 进行验证 JDK安装 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 自行配置环境变量,切记验证jjdk是否安装成功 安装安卓开发工具 安卓SDK下载地址 http://dl.google.com/android/android-sdk_r23.0.2-windows.zip sdk自行配置,自行验证。切记adb命令一定要可用。 Appium程序安装 地址:https://bitbucket.org/appium/appium.app/downloads/ 将下载的

JavaSE 第二次学习随笔(String的坑 + ==)

。_饼干妹妹 提交于 2021-01-09 08:34:29
String 类是一个final类, 其内部是使用的 private final char value[]; 来存储内容, 其既可以当作一个基本类型来使用也可以当作一个类来使用; final 类(String): 被final修饰的类将不能被继承 final char value[]: 不能修改String类型的对象的内容, 但是我可以修改他的引用指向啊~ "==" 作用 : 判断引用是否指向堆内存的同一块地址 equals()的作用: 比较是否值相等(先比较两个String的地址然后用instanceof比较类型, 然后遍历两个String的value[] 挨个值比较) hashcode()的作用: 根据String中的value[]计算出的散列值, 和它的地址一丁点毛关系都没有-_-| equals(); /** * Compares this string to the specified object. The result is {@code * true} if and only if the argument is not {@code null} and is a {@code * String} object that represents the same sequence of characters as this * object. * * @param

Appium环境搭建

大兔子大兔子 提交于 2021-01-09 08:09:06
一、 Java 安装和配置 1 、 JDK 下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html ,选择: “Accept License Agreement” ,根据系统选择对应的安装文件, 64位系统安装64位JDK; 2、安装:(1)、双击运行安装文件 jdk-8u144-windows-x64.exe (2)、指定jdk安装目录 C:\Java\jdk1.8.0_144 然后点击“下一步” ; (3)、指定JRE安装目录 C:\Java\jre1.8.0_144,点击“下一步” ; 3、JDK环境变量配置 (1)、新建 JAVA_HOME 环境变量,JAVA_HOME=C:\Java\jdk1.8.0_144 (2)、修改 path 环境变量,在path变量尾部添加%JAVA_HOME%\bin (3)、新建 classpath 环境变量 ,classpath=.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\tools.jar 说明:( jdk 需要配置三个环境变量; 1.5之后可以不再设置classpath,但建议保留classpath设置) 4、 运行 cmd,输入java

Arraylist 与 LinkedList 异同

大城市里の小女人 提交于 2021-01-09 08:08:28
1. 是否保证线程安全: ArrayList 和 LinkedList 都是不同步的,也就是不保证线程安全; 2. 底层数据结构: Arraylist 底层使用的是Object数组;LinkedList 底层使用的是双向链表数据结构(JDK1.6之前为循环链表,JDK1.7取消了循环。注意双向链表和双向循环链表的区别:); 详细可阅读JDK1.7-LinkedList循环链表优化 https://www.cnblogs.com/xingele0917/p/3696593.html 3. 插入和删除是否受元素位置的影响: ① ArrayList 采用数组存储,所以插入和删除元素的时间复杂度受元素位置的影响。 比如:执行 add(E e) 方法的时候, ArrayList 会默认在将指定的元素追加到此列表的末尾,这种情况时间复杂度就是O(1)。但是如果要在指定位置 i 插入和删除元素的话( add(int index, E element) )时间复杂度就为 O(n-i)。因为在进行上述操作的时候集合中第 i 和第 i 个元素之后的(n-i)个元素都要执行向后位/向前移一位的操作。 ② LinkedList 采用链表存储,所以插入,删除元素时间复杂度不受元素位置的影响,都是近似 O(1)而数组为近似 O(n)。 4. 是否支持快速随机访问: LinkedList

【Maven】---Linux搭建Nexus3.X私服

我与影子孤独终老i 提交于 2021-01-09 08:03:15
Linux搭建Nexus3.X私服 备注:linux版本: ubuntu 同时已经部署好JDK8环境 一、linux安装nexus 1、创建文件夹并进入该目录 cd /usr/local && mkdir nexus && cd nexus 2、下载nexus安装包 wget http://sonatype-download.global.ssl.fastly.net/nexus/3/nexus-3.6.0-02-unix.tar.gz 3、解压、重命名 tar -zxvf nexus-3.6.0-02-unix.tar.gz // 解压 mv nexus-3.6.0-02 nexus // 重命名 4、自定义配置虚拟机可打开 nexus.vmoptions 文件进行配置 如果Linux硬件配置比较低的话,建议修改为合适的大小,否则会出现运行崩溃的现象 # vim nexus/bin/nexus.vmoptions // 虚拟机选项配置文件 5、启动nexus 启动 Nexus(默认端口是8081),Nexus 常用的一些命令包括: /usr/local/nexus/nexus/bin/nexus {start|stop|run|run-redirect|status|restart|force-reload} ,下面我们启动Nexus: 启动命令: bin/nexus start

Centos7下安装nexus3.x 安装

本秂侑毒 提交于 2021-01-09 06:58:15
1. 官网下载unix版本 2.上传到linux系统的/usr/目录下 [root@lmll70op-ne ~]# cd /usr/ [root@lmll70op-ne usr]# ll 3.解压,并重命名为nexus [root@lmll70op-ne usr]# tar -zxvf nexus-3.15.2-01-unix.tar.gz [root@lmll70op-ne usr]# mv nexus-3.15.2-01 nexus 4.修改配置修改运行nexus3所使用的用户 [root@lmll70op-ne usr]# cd nexus/bin/ contrib/ nexus nexus.rc nexus.vmoptions [root@lmll70op-ne usr]# cd nexus/bin/ [root@lmll70op-ne bin]# ll 总用量 32 drwxr-xr-x. 2 root root 4096 4月 4 15:44 contrib -rwxr-xr-x. 1 root root 17269 1月 26 02:34 nexus -rw-r--r--. 1 root root 15 1月 26 02:30 nexus.rc -rw-r--r--. 1 root root 464 1月 26 02:34 nexus.vmoptions [root

maven与jdk版本对应关系

瘦欲@ 提交于 2021-01-09 06:55:50
Maven发布历史 发布日期 版 必需的Java版本 链接 2018年6月21日 3.5.4 Java 7 宣布 , 发布说明 , 参考文档 2018年3月8日 3.5.3 宣布 , 发布说明 , 参考文档 2017年10月24日 3.5.2 宣布 , 发布说明 , 参考文档 2017年4月7日 3.5.0 宣布 , 发布说明 , 参考文档 2017年3月24日 3.5.0-β-1 宣布 , 发布说明 , 参考文档 2017年2月28日 3.5.0-α-1 宣布 , 发布说明 , 参考文档 二〇一五年十一月一十四日 3.3.9 宣布 , 发布说明 , 参考文档 2015年4月28日 3.3.3 宣布 , 发布说明 , 参考文档 2015年3月18日 3.3.1 宣布 , 发布说明 , 参考文档 二零一四年十二月二十零日 3.2.5 Java 6 宣布 , 发布说明 , 参考文档 2014年8月17日 3.2.3 宣布 , 发布说明 , 参考文档 2014年6月26日 3.2.2 宣布 , 发布说明 , 参考文档 2014年2月21日 3.2.1 宣布 , 发布说明 , 参考文档 2013年10月4日 3.1.1 Java 5 宣布 , 发布说明 , 参考文档 2013年7月15日 3.1.0 宣布 , 发布说明 , 参考文档 2013年6月10日 3.1.0-α-1 发布 ,

什么是java OOM?如何分析及解决oom问题?【转载】

风格不统一 提交于 2021-01-09 05:45:27
转载自:https://www.cnblogs.com/ThinkVenus/p/6805495.html 最近查找了很多关于OOM,甚至于Java内存管理以及JVM的相关资料,发现这方面的东西太多了,竟有一种眼花缭乱的感觉,要想了解全面的话,恐非一篇文章能说清的,因此按照自己的理解整理了一篇,剩下的还需要继续学习。 1 )什么是OOM ? OOM,全称“Out Of Memory”,翻译成中文就是“内存用完了”,来源于java.lang.OutOfMemoryError。看下关于的官方说明: Thrown when the Java Virtual Machine cannot allocate an object because it is out of memory, and no more memory could be made available by the garbage collector. 意思就是说,当JVM因为没有足够的内存来为对象分配空间并且垃圾回收器也已经没有空间可回收时,就会抛出这个error(注:非exception,因为这个问题已经严重到不足以被应用处理)。 2)为什么会OOM? 为什么会没有内存了呢?原因不外乎有两点: 1)分配的少了:比如虚拟机本身可使用的内存(一般通过启动时的VM参数指定)太少。 2)应用用的太多,并且用完没释放,浪费了

如何设置线程池参数?美团给出了一个让面试官虎躯一震的回答。

空扰寡人 提交于 2021-01-09 05:17:14
持续输出原创文章,点击蓝字关注我吧 这是why技术的第 42 篇原创文章 荒腔走板 大家好,我是 why,一个四川好男人。 今天本来应该是武汉马拉松鸣枪起跑的日子,所以先荒腔走板说几句马拉松吧。 上面的图是我跑 2019 年成都马拉松的时候拍的,是一对双胞胎陪着 80 岁的父亲跑全程马拉松。 图片中的老人叫罗广德,在他 75 岁之前的人生和其他的老人并无不同。 但是经过他儿子的影响,在 75 岁的时候开始接触跑步的。一直就没有停下脚步,世界六大马拉松赛(纽约、伦敦、柏林、芝加哥、东京、波士顿)他已经完成了五个。 本来打算今年 4 月份站上波士顿马拉松的赛道上,完成最后的挑战。 完成之后,他就是世界华人这个年龄段里第一个完成世界六大马拉松赛的大满贯跑者。 但是由于疫情的原因,波士顿马拉松延期举行了。但是没有关系,我相信老爷子的执着,我也相信他会是第一人。 他说:“人生没有太晚的开始,关键是要行动起来。现在的年轻朋友很多都缺乏锻炼,作息时间不好,我希望年轻人都行动起来,我 80 岁都能跑步,难道你们不能跑吗?” 我之前说过,在赛道上你能看到很多有趣的、感动的画面。我喜欢跑马拉松,因为跑完之后总是能带给我爆棚的正能量。 人生需要一场马拉松,你可以迟到,但是你不能缺席。 好了,说回文章。 经典面试题 这次的文章还是绕回了我写的第三篇原创文章《 有的线程它死了,于是它变成一道面试题

【Java8】@FunctionalInterface

大憨熊 提交于 2021-01-09 05:03:59
阅读目录 什么是函数式接口(Functional Interface) 函数式接口用途 关于@FunctionalInterface注解 函数式接口里允许定义默认方法 函数式接口里允许定义静态方法 函数式接口里允许定义java.lang.Object里的public方法 JDK中的函数式接口举例 参考资料 什么是函数式接口(Functional Interface) 其实之前在讲Lambda表达式的时候提到过,所谓的函数式接口,当然首先是一个接口,然后就是在这个接口里面 只能有一个抽象方法 。 这种类型的接口也称为SAM接口,即Single Abstract Method interfaces。 函数式接口用途 它们主要用在Lambda表达式和方法引用(实际上也可认为是Lambda表达式)上。 如定义了一个函数式接口如下: @FunctionalInterface interface GreetingService { void sayMessage(String message); } 那么就可以使用Lambda表达式来表示该接口的一个实现(注:JAVA 8 之前一般是用匿名类实现的): GreetingService greetService1 = message -> System.out.println("Hello " + message); 关于