JDK

linux常用命令学习

|▌冷眼眸甩不掉的悲伤 提交于 2020-11-28 04:19:24
ls ls:显示当前目录的文件 ls -ll:以列表的形式显示当前目录的文件(包括权限列、创建时间、文件大小等),文件夹以d开头,文件以-开头 ls -ll <fileName>:只显示某个文件 ls -F:如果是文件夹会在后边显示\ cp cp [选项] <源文件> <目标文件>: 复制文件 源文件可以用正则表达式:cp /usr/bin/redis* /usr/local/redis:将/usr/bin下所有以redis开头的文件复制到/usr/local/redis文件夹下 cp -r <源文件> <目标文件>:复制目录 例如:cp -r /usr/local/a /usr/local/b:如果尚未创建文件夹b,则会将a文件夹的所有文件拷贝到b文件夹;如果已经创建文件夹b,那么会将a文件夹及其文件复制到b下,不满足要求。所以如果已经创建b文件夹,可以写成这样 cp -r /usr/local/a/. /usr/local/b java java -version 查看jdk版本 java -jar 执行java应用程序 ps ps -aux | grep [进程号/进程名(可以用通配符)] :查找相关进程 ps -ef |grep xxx:将含有xxx的进程显示出来 如:ps -ef |grep weblogic --colour 显示所有weblogic进程 ps -ef

JVM ZGC介绍

﹥>﹥吖頭↗ 提交于 2020-11-27 22:12:14
什么是ZGC > ZGC收集器(Z Garbage Collector)由Oracle公司研发.2018年提交了JEP 333将ZGC提交给了OpenJDK,推动进入OpenJDK11的发布清单中。ZGC收集器是基于 Region 内存布局,暂时不设分代,使用读屏障,着色指针和内存多重映射等技术来实现 并发的标记整理 算法,以低延迟为目标的一款收集器。 目标 > 在对吞吐量影响不大的情况下,对任意大小堆收集停顿时间都控制在10ms以内的低延迟。 ZGC堆内存布局 与G1一样,ZGC也采用基于 Region 的堆内存布局 ZGC的Region具有动态性 动态的创建和销毁 动态的 Region 容量大小 大小分类: 小型 Region (Small Region),固定大小2MB,存放小于256KB的小对象 中型 Region (Medium Region),固定大小32MB,存放大于256KB小于4MB的对象 大型 Region (Large Region),大小不固定,可以动态变化,但必须是2MB的整数倍,用于放大于4MB的大对象,每个大型 Region 只会放一个大对象,所以实际容量可能会小于中型 Region ,最小到4MB。大型 Region 在 ZGC 实现中不会被重分配,因为复制一个大对象代价太高。 着色指针 > 着色指针是一种直接将少量额外的信息存储在指针上的技术

zookeeper技术介绍[python书籍福利]

拜拜、爱过 提交于 2020-11-27 08:35:28
zookeeper技术介绍[python书籍福利] Zookeeper技术介绍 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。 ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。 ZooKeeper包含一个简单的原语集提供Java和C的接口。 ZooKeeper代码版本中,提供了分布式独享锁、选举、队列的接口,代码在zookeeper-3.4.3\src\recipes。其中分布锁和队列有Java和C两个版本,选举只有Java版本。 主要作用是用来解决分布式应用中经常遇到的一些数据管理问题,如集群管理、统一命名管理、分布式配置管理、分布式消息队列、分布式锁、分布式通知协调 官方网站: https://zookeeper.apache.org/ zookeeper体系结构 zk的集群中有一个Leader,有一个或多个follower,它们之间是相互通信的,然后还存在一个客户端用来访问zk服务器。 服务器端具有fast fail特性,一旦主故障后,会选举从成为新的主,主从模式是目前最常见的模式。

IDEA 编译 Jmeter 5.0(二次开发)

a 夏天 提交于 2020-11-27 02:31:23
windows10 操作系统,jdk1.8,Intellij IDEA 2018,jmeter5.0 1.下载 http://jmeter.apache.org/download_jmeter.cgi 2.解压 修改下列两个文件 如果修改不了,需要进入命令行去修改,我这边用的 win,也可以直接在终端里面修改 mac - terminal mv eclipse.classpath .classpath mv eclipse.project .project win - cmd ren eclipse.classpath .classpath ren eclipse.project .project 3编译 打开『IDEA』,点击『import』,引入『eclipse』项目(idea 导入项目大家都会,就不截图了) 调出idea的ant窗口 编译一下 下载jar包 如图设置source 将报错的jar包删掉 添加jar包 install一下 找到『src』 -> 『core』 -> 『NewDriver.java』,这个『java』文件是『Jmeter』的『main』方法 设置路径 运行 成功 其他问题:无效的源发行版:9 解决方法:换成8 来源: oschina 链接: https://my.oschina.net/u/4365992/blog/3710871

Java注解详解

被刻印的时光 ゝ 提交于 2020-11-27 01:45:51
在使用SpringBoot作为Web敏捷开发的框架之后,SpringBoot除了自动装配配置的便捷之外,在很多时候需要基于注解来开发。注解不仅增加了代码的可读性,还增加了开发的速度。这篇文章主要讲述Java 注解。 元注解 元注解用于注解其他注解的。Java 5.0定义了4个标准的元注解,如下: @Target @Retention @Documented Inherited 现在来说说这四个元注解有什么作用。 @Target  @Target注解用于声明注解的作用范围,例如作用范围为类、接口、方法等。它的取值以及值所对应的范围如下: CONSTRUCTOR:用于描述构造器 FIELD:用于描述域 LOCAL_VARIABLE:用于描述局部变量 METHOD:用于描述方法 PACKAGE:用于描述包 PARAMETER:用于描述参数 TYPE:用于描述类、接口(包括注解类型) 或enum声明 @Retention 该注解声明了注解的生命周期,即注解在什么范围内有效。 SOURCE:在源文件中有效 CLASS:在class文件中有效 RUNTIME:在运行时有效(即运行时保留) 大多数注解都为RUNTIME @Documented 是一个标记注解,有该注解的注解会在生成 java 文档中保留。 @Inherited 该注解表明子类是有继承了父类的注解。比如一个注解被该元注解修饰

Ubuntu18.04 安装Tomcat 8.5

孤街醉人 提交于 2020-11-26 17:54:01
转载地址:https://blog.csdn.net/weixx3/article/details/80808484 Ubuntu18.04 安装Tomcat 8.5 环境信息: OS:Ubuntu18.04 JDK:1.8 Tomcat: 8.5.31 1.下载Tomcat 8.5.31 到Apache Tomcat®官网,选择 tar.gz 包下载, 点击跳转 : 2.安装配置 2.1 把tomcat放到你想要方的位置 sudo cp apache-tomcat-8.5.31.tar.gz /usr/local/ 2.2 解压 sudo tar -zxvf apache-tomcat-8.5.31.tar.gz 2.3 赋权限 sudo chmod 755 -R apache-tomcat-8.5.31 2.4 修改启动脚本 进入tomcat的bin目录下: sudo vi startup.sh 在最后一行之前加入如下信息(注意根据自己实际情况修改JAVA_HOME和TOMCAT_HOME): #set java environment export JAVA_HOME=/usr/local/jdk1.8 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:%{JAVA_HOME}/lib:%{JRE_HOME}/lib

Java开发岗面试知识点解析

梦想的初衷 提交于 2020-11-26 08:30:11
本文作者参加过多场面试,应聘岗位均为 Java 开发方向。在不断的面试中,分类总结了 Java 开发岗位面试中的一些知识点。 主要包括以下几个部分: Java 基础知识点 Java 常见集合 高并发编程(JUC 包) JVM 内存管理 Java 8 知识点 网络协议相关 数据库相关 MVC 框架相关 大数据相关 Linux 命令相关   面试,是大家从学校走向社会的第一步。 互联网公司的校园招聘,从形式上说,面试一般分为 2-3 轮技术面试 + 1 轮 HR 面试 。 但是一些公司确实是没有 HR 面试的,直接就是三轮技术面。 技术面试中,面试官一般会先就你所应聘的岗位进行相关知识的考察,也叫 基础知识 和 业务逻辑面试 。 只要你回答的不是特别差,面试官通常会说:“咱们写个代码吧”,这个时候就开始了算法面试。 也就是说,一轮技术面试 = 基础知识和业务逻辑面试 + 算法面试。   本文我们主要从技术面试聊起。 技术面试 包括:业务逻辑和基础知识面试。   首先是业务逻辑面试,也就是讲项目。 面试官会对你简历上写的若干个项目其中之一拿出来和你聊聊。在期间,会针对你所做的东西进行深度挖掘。 包括:为什么要这么做?优缺点分析,假如重新让你做一次,你打算怎么做? 等等。这个环节主要考察我们对自己做过的项目(实习项目或者校内项目)是否有一个清晰的认识。 关于业务逻辑面试的准备

Java 开发岗面试知识点

五迷三道 提交于 2020-11-26 08:07:53
本文作者在一年之内参加过多场面试,应聘岗位均为 Java 开发方向。在不断的面试中,分类总结了 Java 开发岗位面试中的一些知识点。 主要包括以下几个部分: Java 基础知识点 Java 常见集合 高并发编程(JUC 包) JVM 内存管理 Java 8 知识点 网络协议相关 数据库相关 MVC 框架相关 大数据相关 Linux 命令相关 面试,是大家从学校走向社会的第一步。 互联网公司的校园招聘,从形式上说,面试一般分为 2-3 轮技术面试 +1 轮 HR 面试。 但是一些公司确实是没有 HR 面试的,直接就是三轮技术面。 技术面试中,面试官一般会先就你所应聘的岗位进行相关知识的考察,也叫基础知识和业务逻辑面试。 只要你回答的不是特别差,面试官通常会说:“咱们写个代码吧”,这个时候就开始了算法面试。 也就是说,一轮技术面试 = 基础知识和业务逻辑面试 + 算法面试。 关于算法面试的总结,各位可以查阅我先前交流的 Chat:“知名互联网公司校招中常见的算法题”。 本文我们主要从技术面试聊起。技术面试包括:业务逻辑和基础知识面试。 首先是业务逻辑面试 ,也就是讲项目。 面试官会对你简历上写的若干个项目其中之一拿出来和你聊聊。在期间,会针对你所做的东西进行深度挖掘。 包括:为什么要这么做?优缺点分析,假如重新让你做一次,你打算怎么做? 等等。这个环节主要考察我们对自己做过的项目

java8 Stream的实现原理 (从零开始实现一个stream流)

岁酱吖の 提交于 2020-11-26 07:50:17
1.Stream 流的介绍 1.1 java8 stream介绍   java8新增了stream流的特性,能够让用户以函数式的方式、更为简单的操纵集合等数据结构,并实现了用户无感知的并行计算。 1.2 从零开始实现一个stream流   相信很多人在使用过java8的streamAPI接口之后,都会对其实现原理感到好奇,但往往在看到jdk的stream源码后却被其复杂的抽象、封装给弄糊涂了,而无法很好的理解其背后的原理。究其原因,是因为jdk的stream源码是高度工程化的代码,工程化的代码为了效率和满足各式各样的需求,会将代码实现的极其复杂,不易理解。   在这里,我们将抛开jdk的实现思路, 从零开始实现一个stream流 。   我们的 stream流 同样拥有 惰性求值 , 函数式编程接口 等特性,并 兼容jdk的Collection等数据结构 (但不支持并行计算 orz)。   相信在亲手实现一个stream流的框架之后,大家能更好的理解流计算的原理。 2.stream的优点   在探讨探究stream的实现原理和动手实现之前,我们先要体会stream流计算的独特之处。   举个例子: 有一个List<Person>列表,我们需要获得年龄为70岁的前10个Person的姓名。 过程式的解决方案:    稍加思考,我们很快就写出了一个过程式的解决方案( 伪代码 ):

Java线程面试题 Top 50 (个人总结)(转)

爷,独闯天下 提交于 2020-11-26 03:56:54
问答总结: 1、 JDK1.5引入了哪些更高阶的并发工具 2、 Java中CyclicBarrier 和 CountDownLatch有什么不同? CountDownLatch和CyclicBarrier都能够实现线程之间的等待,只不过它们侧重点不同:     CountDownLatch一般用于某个线程A等待若干个其他线程执行完任务之后,它才执行;     而CyclicBarrier一般用于一组线程互相等待至某个状态,然后这一组线程再同时执行;     另外,CountDownLatch是不能够重用的,而CyclicBarrier是可以重用的。 3、 Java内存模型是什么    JVM定义了一组规则,通过这组规则来决定一个线程对共享变量的写入何时对另一个线程可见,这组规则也称为 Java内存模型(即JMM) ,JMM是围绕着程序执行的 原子性、有序性、可见性展开的 ,下面我们看看这三个特性。 总而言之,我们应该清楚知道,JMM就是一组规则,这组规则意在解决在并发编程可能出现的线程安全问题,并提供了内置解决方案(happen-before原则)及其外部可使用的同步手段(synchronized/volatile等),确保了程序执行在多线程环境中的应有的原子性,可视性及其有序性。 4、 为什么wait, notify 和 notifyAll这些方法不在thread类里面?