JDK

“JVM性能调优解析”,查缺补漏JVM进阶面试题77问.你都遇到过哪些?

烈酒焚心 提交于 2020-08-17 08:42:35
前言 Java虚拟机有自己完善的硬件架构,如处理器、堆栈等,还具有相应的指令系统。 Java虚拟机本质上就是一个程序,当它在命令行上启动的时候,就开始执行保存在某字节码文件中的指令。Java语言的可移植性正是建立在Java虚拟机的基础上。任何平台只要装有针对于该平台的Java虚拟机,字节码文件(.class)就可以在该平台上运行。这就是“一次编译,多次运行”。 Java虚拟机不仅是一种跨平台的软件,而且是一种新的网络计算平台。该平台包括许多相关的技术,如符合开放接口标准的各种API、优化技术等。Java技术使同一种应用可以运行在不同的平台上。Java平台可分为两部分,即Java虚拟机(Java virtual machine,JVM)和Java API类库。 1、java中会存在内存泄漏吗,请简单描述。 2、64 位 JVM 中,int 的长度是多数? 3、Serial 与 Parallel GC 之间的不同之处? 4、32 位和 64 位的 JVM,int 类型变量的长度是多数? 5、Java 中 WeakReference 与 SoftReference 的区别? 6、JVM 选项 -XX:+UseCompressedOops 有什么作用?为什么要使用 当你将你的应用从 32 位的 JVM 迁移到 64 位的 JVM 时,由于对象的指针从32 位增加到了 64 位

Linux利用war包一键搭建Jenkins(免插件安装)

我的未来我决定 提交于 2020-08-17 08:06:46
1. 安装JDK8 CentOS快速安装JDK8 Ubuntu快速安装JDK8 2.下载jenkins相关文件 2.1 jenkins war下载 #linux下执行wget,若提示wget命令不存在,则按照yum install -y wget或则apt install -y wgetwget http://mirrors.jenkins.io/war-stable/2.235.4/jenkins.war 2.2 jenkins_home文件下载 点击这里免费下载 2.3 解压jenkins_home文件 #在jenkins.war所在的目录执行如下命令tar xzvf jenkins.tar.gz 则会在当前目录生成.jenkins目录 3.启动jenkins 创建对应目录 mkdir -p /var/lib/jenkinsmkdir -p /var/cache/jenkins/warmkdir -p /var/log/jenkins/ 前台启动 #在jenkins.war目录下执行如下命令 java -jar jenkins.war -DJENKINS_HOME=/var/lib/jenkins --logfile=/var/log/jenkins/jenkins.log --webroot=/var/cache/jenkins/war 后台启动 nohup java

小师妹学JavaIO之:文件系统和WatchService

北慕城南 提交于 2020-08-17 06:41:02
简介 小师妹这次遇到了监控文件变化的问题,F师兄给小师妹介绍了JDK7 nio中引入的WatchService,没想到又顺道普及了一下文件系统的概念,万万没想到。 监控的痛点 小师妹:F师兄最近你有没有感觉到呼吸有点困难,后领有点凉飕飕的,说话有点不顺畅的那种? 没有啊小师妹,你是不是秋衣穿反了? 小师妹:不是的F师兄,我讲的是心里的感觉,那种莫须有的压力,还有一丝悸动缠绕在心。 别绕弯子了小师妹,是不是又遇到问题了。 更多精彩内容且看: 区块链从入门到放弃系列教程-涵盖密码学,超级账本,以太坊,Libra,比特币等持续更新 Spring Boot 2.X系列教程:七天从无到有掌握Spring Boot-持续更新 Spring 5.X系列教程:满足你对Spring5的一切想象-持续更新 java程序员从小工到专家成神之路(2020版)-持续更新中,附详细文章教程 更多内容请访问 www.flydean.com 小师妹:还是F师兄懂我,这不上次的Properties文件用得非常上手,每次修改Properties文件都要重启java应用程序,真的是很痛苦。有没有什么其他的办法呢? 办法当然有,最基础的办法就是开一个线程定时去监控属性文件的最后修改时间,如果修改了就重新加载,这样不就行了。 小师妹:写线程啊,这么麻烦,有没有什么更简单的办法呢? 就知道你要这样问,还好我准备的比较充分

Scoop

…衆ロ難τιáo~ 提交于 2020-08-17 06:20:15
Scoop - Windows 下的包管理工具 这里是 scoop官网 的官方网站 ,里面有 scoop 的说明和文档 ,这里只是提供给读者一个中文交流的环境 . 进入 PowerShell 你可以以下几种方式进入 PowerShell : Win + r 打开运行 , 输入 powershell ,随后确定即可进入 . 在键盘 Win徽标 右键打开 powershell 一行命令安装 Scoop iex (new-object net.webclient).downloadstring('https://get.scoop.sh') 运行界面截图如下 : 填坑指南 不允许本地的脚步在未签名的状态下运行 . 解决方法 : 无法连接远程服务器 . 解决方法 : 只能私信作者了 . Demo : 安装 git 下载好了 scoop 将它当作工具来安装 git (版本控制工具) 同时介绍第一个命令 , install software-name install 安装 scoop install git Demo : 安装 jdk 如果你是 Java 程序员 , jdk 环境必不可少 ,在 jdk 的安装中会新介绍一些命令给你 . 使用刚刚学到的命令 ,安装 jdk ( Java 开发者工具) scoop install java 安装失败了 ,提示没有找到 jdk .

清华毕业扫地僧,用157集终于把java给讲完了,总计3.13GB

空扰寡人 提交于 2020-08-17 05:32:10
前言 JAVA起于1995年,经过20多年的发展,在众多语言中脱颖而出,JAVA如今已经发展成为世界第一编程语言。而且越来越多的人加入到JAVA开发的大军中。 2014年的数据:全球的软件开发者数量达到1850万,其中1100万是专业的软件开发人员,另外750万是开发爱好者,其中我国程序员占比是很少的,大概只有90万不到。14亿人口只有大概90万,稀缺资源。 2020年,没有具体数据,但是从我国的各大论坛博客,CSDN,开源中国,51CTO等的用户量来看,我国程序员人数翻倍增长,大概突破500万,而且还在不断地增加!!! 那java有什么优势呢?下面用六大优势为你拓展! ● 简单易学,JAVA是一个面向对象的编程语言。它吸收了C++的许多优点,摒弃了C++里难以理解的多继承、指针等概念,大大简化了程序设计,初学者学起来比较容易,常常是编程开发者的入门必选语言。 ● 跨平台,跨平台是JAVA最大的优势。 JAVA运行在JVM(JAVA虚拟机)上,在任何平台只要安装了JVM。JAVA就可以运行。它架构在操作系统之上,屏蔽了底层的差异。真正实现了“一次编写,多次使用”。 ● 安全,JAVA中没有指针,这样就没有办法直接访问内存了。另外JAVA也不容易出现内存泄露。 ● 多线程,JAVA内置对多线程的支持,可以方便地在程序中实现多线程的功能。不像其他不支持多线程的语言

23种设计模式-----行为模式

↘锁芯ラ 提交于 2020-08-17 04:36:09
行为模式: 关注系统中对象之间的相互交互,研究运行时对象之间的相互通信和协作,明确对象职责 1.模板方法模式(template method) 定义了一个操作中的算法 骨架 ,将某些步骤延迟到子类中实现。这样,新的子类可以在不改变一个算法结构的前提下重新定义该算法的某些特定步骤。 即:处理步骤父类中定义好,具体实现延迟到子类中定义。 开发中:数据库访问的封装、Junit单元测试、servlet中doGet/doPost方法调用、Hibernate中模板程序等等 银行案例: 1 public abstract class BankTemplateMethod { 2 3 // 具体方法 4 public void takeNumber() { 5 System.out.println("取号排队" ); 6 } 7 8 // 办理具体业务 、钩子方法 9 public abstract void transact(); 10 public void evaluate() { 11 System.out.println("反馈评分" ); 12 } 13 14 // 模板方法 15 public final void process() { 16 this .takeNumber(); 17 18 this .transact(); 19 20 this .evaluate(); 21

大数据外出实训报告一(2018/7/9)

别等时光非礼了梦想. 提交于 2020-08-17 04:19:50
石家庄铁道大学信息科学与技术学院实习实训日志 学生姓名 ** 所学专业 软件工程 班级学号 ********** 实习时间 2018年 7月 9日 今天学 习过程 和小结 1:介绍了大数据,云计算,人工智能概念 2:安装CentOS6.5,安装配置linux网络环境 3:使用SFTP工具上传jdk1.8到虚拟机中 4:使用Xshell工具创建目录,并解压jdk文件到linux系统中 5:我们简单了解到了java语言中的内存机制,java数据类型,堆区、栈区和方法区。 遇到问 题汇总 在使用linux命令的时遇到问题 在解压jdk的时候,发现jdk文件损坏,后来重新下载了一个 学习技能思维导图 (持续增加) Java 内存机制, javap 反编译原理, java 编译原理。 大数据,人工智能,云计算 来源: oschina 链接: https://my.oschina.net/u/4343420/blog/4301559

程序员入职第一天,被技术总监骂了2小时,试用期又遭遇各种波折

青春壹個敷衍的年華 提交于 2020-08-17 04:01:04
职场中,沟通是双向的,别只怪对方,做事情是需要自悟的,做的对才是最重要的。近日,一位程序员在职场论坛发帖吐槽:入职第一天,就被技术总监骂了2小时,后续的试用期更是遭遇各种波折: 入职第一天,直接被技术总监骂,骂了两个小时,问我为啥不带电脑,我说公司不是有吗?为啥要带?后续大概是hr没有通知到位,然后又骂了一通hr。hr也很无奈,事情又不大。后来经理安抚我,然而事情就完了嘛?不是的,进来就让我做微信服务号,公司架构也没人跟我说,版本没人跟我说,自己安装环境用了三天,要来源代码才知道我之所以不能登录成功,是因为他们用的jdk版本1.6改用1.7的话有一个值是空的! 然后,以前没接触过微信接口,很多不懂,不知道framework标签会不能用,于是又调试,踩了很多坑跌跌撞撞的过了试用期。然后被同事和领导责怪,有问题没人帮只能自己查,每天都是10点下班,周六还来免费上班,试用期结束的时候,有个演讲,又要被项目经理说。 然后,转到清算组,进来教我的同事说一遍就走了,交给我的东西做完后,代码看的也差不多了,我向组长要事干,组长说你看代码吧,我连续三个星期都问,都让我看代码,半年后有一个考评,问我为啥一个月就干了那么点事? 然后,又去问微信组的项目经理,结果断定我做事不行……百口莫辩……若不是因为那时候工资一万一个月对我有特殊意义,我早已离职,是为了爱情。因为

从jvm源码看synchronized

情到浓时终转凉″ 提交于 2020-08-17 03:47:45
synchronized的使用 synchronized关键字是Java中解决并发问题的一种常用方法,也是最简单的一种方法,其作用有三个:(1)互斥性:确保线程互斥的访问同步代码(2)可见性:保证共享变量的修改能够及时可见(3)有序性:有效解决重排序问题,其用法也有三个: 修饰实例方法 修饰静态方法 修饰代码块 修饰实例方法 public class Thread1 implements Runnable{ //共享资源(临界资源) static int i=0; //如果没有synchronized关键字,输出小于20000 public synchronized void increase(){ i++; } public void run() { for(int j=0;j<10000;j++){ increase(); } } public static void main(String[] args) throws InterruptedException { Thread1 t=new Thread1(); Thread t1=new Thread(t); Thread t2=new Thread(t); t1.start(); t2.start(); t1.join();//主线程等待t1执行完毕 t2.join();//主线程等待t2执行完毕 System.out

AQS

瘦欲@ 提交于 2020-08-17 03:47:06
jdk1.8版本 ReentantLock内部使用的是AQS,AQS的基础实现是CAS+Volatile; 调用lock方法,会调用Sync类中的lock()方法 public void lock() { sync .lock(); } Sync中的lock()方法,使用compareAndSetState final void lock() { if (compareAndSetState( 0 , 1 )) setExclusiveOwnerThread(Thread. currentThread ()); else acquire( 1 ); } 调用AbstractQueuedSynchronizer(AQS)中的compareAndSetState, protected final boolean compareAndSetState( int expect, int update) { // See below for intrinsics setup to support this return unsafe .compareAndSwapInt( this , stateOffset , expect, update); } 调用unsafa.compareAndSwapInt进入到static final class NonfairSync extends