JAVA - 技术教程文章

深入理解Java虚拟机——垃圾收集器与内存分配策略(读书笔记)【图】

判断对象是否存活 1、引用计数法 给对象添加一个引用计数器,每当有一个地方引用它时,计数器值加1,当引用失效时,计数器值减1, 任何时刻计数器为0的对象就是不可能再被使用的。 缺点:不能解决对象之间循环引用的问题 2、根搜索算法(GC Roots Tracing) 通过一系列名为“GC Roots”的对象作为起始点,从这些节点开始向下搜索,所走过的路径称为引用链,当一个对象到GC Roots没有任何引用链相连时,则证明此对象是不可用的。 可...

二、阿里云CentOS7的Java环境配置【图】

一、基本环境配置 1、修改主机名命令操作(root用户下): 打开hostname配置文件:vim /etc/hostname 进入vim编译器后,按“i”键可以进行修改,修改完毕后按ESC键再按“:”复合键后底部一行获取光标输入“wq!”,然后回车写入并强制退出,“!”是用来强制退出的,一般可以不用。最后输入“reboot”命令重启cloud服务器,hostname永久生效。 待服务器重启完后,通过xshell重新连接一下(重启需要时间的,耐心wait一下) 2、为Ce...

使用Java Service Wrapper将java程序作为linux服务并且开机自动启动

以java应用程序为例,打包为tianlong.jar,程序入口为tianlong.QueueTest。 下面在linux的/opt下建立tianlong目录,复制tianlong.jar到/opt/tianlong/lib目录下。? 1、下载Java Service Wrapper(目前版本wrapper-linux-x86-32-3.3.2), 解压。?http://wrapper.tanukisoftware.org/? 复制src/bin/sh.script.in到/opt/tianlong/bin目录,重命名为QueueTest 复制wrapper/bin目录下的wrapper文件到/opt/tianlong/bin目录? 复制src/conf/...

Linux(Centos7)安装tomcat并且部署Java Web项目

https://blog.csdn.net/gebitan505/article/details/54599598

linux 部署 java项目 常用命令【代码】

1、关闭进程//查看端口占用进程 netstat -anp|grep 1111 //关闭进程 2232 为进程代号 kill -9 2232 //查看某应用占用端口号 ps -ef|grep nginx kill -9 22322、导入sql文件//进入sql文件所在目录 mysql -u username -p dataName < sqlName.sql3、springboot jar 包导出可以参考这个:https://blog.csdn.net/qq_37105358/article/details/79467401 4、运行jar包//这句命令的作用是启动项目的时候不打印日志 java -jar name.jar > /...

ubuntu 14.04 java开发环境搭建 jdk 以及 inteliJ IDEA安装

1.安装包下载jdk1.7.0_71 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.htmliidea-IC-139.225.3 下载地址:http://www.jetbrains.com/idea/download/2.解压两个安装文件tar xvzf jdk-7u71-linux-x64.tar.gztar xvzf ideaIC-14.0.1.tar.gz3.设置环境变量假设安装包放在 /usr/local/下面,那么接下来sudo vim /etc/environment在PATH后面添加:/usr/local/jdk1.7.0_71/bin新建环境变量...

Java内存管理和垃圾回收【图】

内存结构 首先要知道java运行时内存结构,如下图。运行时内存包括方法区(Hotspot中又称“永久代”),堆,虚拟机栈,本地方法栈和程序计数器。 方法区和堆都是线程共享,方法区用于存放被虚拟机加载的类,常量,静态变量; 在大量使用反射,动态代理,ClassLoader的场景下,要考虑永久代的回收。堆主要是用于分配实例对象和数组,内存管理和垃圾回收基本都是针对堆的。 栈是存放局部变量的,本地方法栈是存非java...

CentOS安装Java JDK【代码】【图】

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。在Linux上安装Tomcat,而Tomcat服务器运行时是需要JDK支持的,所以服务器必须配置好JDK用到的那些环境变量。 vuninstall OpenJDK CentOS系统默认安装了openjdk的(如果操作系统不是最小安装),查看版本 rpm -qa | grep java或者java -version可以得到OpenJDK的具体型号以及其他的基本信息 查询CentOS自带的Java相关组件rpm -qa | grep javarpm:管理...

【Java】内存中的数组【图】

在讲内存中的数组之前,我们了解一下内存,Java是怎么使用内存的呢?简单的介绍一下java的内存机制。在Java里面把内存划分成两种:一种是栈内存,另一种是堆内存。 在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中,当在一段代码块定义一个变量时,Java 就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java 会自动释放掉为该变量分配的内存空间,该内存空间可以立即被其他变量使用。 堆内存用来存...

[java] 在linux+chrome/firefox上使用java applet【代码】

我现在的浏览器用不了java applet,我的环境是archlinux + chrome or firefox。 java网站的指引是这样说的按照这些说明操作,以便在 Ubuntu Linux 上的 Web 浏览器中启用 Java。 Google Chrome通过执行以下操作成为超级用户:运行 su 命令,然后输入超级用户口令。键入:sudo -s如果没有名称为 plugins 的目录,请创建一个。键入:mkdir -p /opt/google/chrome/plugins创建符号链接之前,请切换至 Google chrome plugins 目录。键入...

java内存模型详解【图】

对于本篇文章,将从四个概念来介绍:内存模型基础,重排序,顺序一致性和happens-before 1.内存模型基础 在并发编程中,有两个关键问题:线程之间如何通信和如何同步。由此而引出了两种并发模型:共享内存的并发模型和消息传递的并发模型。 1.1 消息传递的并发模型 该模型是指两个线程之间通过发送消息来进行显式的通信,而同步则是隐式进行的,因为发送消息的动作要先于接收消息。go语言采用的就是这种并发模型。 1.2 共享内存的并...

CentOS 6.4出现Disk sda contains BIOS RAID metadata解决方法 jajavaja的专栏【图】

在安装CentOS 6.4系统的时候,当进到检测硬盘的时候,总是过不去,报错如下: Disk sda contains BIOS RAID metadata, but is not part of any recognized BIOS RAID sets. Ignoring disk sda 。如下图显示:而且,硬盘显示偶尔/dev/sda,偶尔/dev/sdb。。 从提示看貌似以前该硬盘做过RAID。。该提示导致系统无法认到硬盘,没法继续安装系统。 解决方法:后来经过一番Google,安装系统时,输入linux nodmraid就可以继续安装了。。 ...

Java 中处理异常的 9 个最佳实践

在本文中,作者介绍了9个处理异常的最佳方法与实践,以举例与代码展示结合的方式,让开发者更好的理解这9种方式,并指导读者在不同情况下选择不同的异常处理方式。以下为译文: Java中的异常处理不是一个简单的话题。初学者很难理解,甚至有经验的开发人员也会花几个小时来讨论应该如何抛出或处理这些异常。 这就是为什么大多数开发团队都有自己的异常处理的规则和方法。如果你是一个团队的新手,你可能会惊讶于这些方法与你之前使...

Java 内存溢出排查【图】

Java OOM 毫无疑问是开发人员常见并且及其痛恨的问题,但是任何服务的开发都没法避免 OOM。 因此,OOM 的排查及定位是每个 Java 工程师都必备的技能。 所遇到的问题 在使用 scala 开发的一个 web 服务,在用户使用中,经常出现: java.lang.OutOfMemoryError: Java heap space 。而且还束手无策,每次都只能重启服务解决。 准备 服务使用 jetty 发布的,先来看一下我这个服务的启动参数: /opt/soft/jdk/jdk1.7.0_40/bin/java -s...

Java线程面试题 Top 50

不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题。Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员的欢迎。大多数待遇丰厚的Java开发职位都要求开发者精通多线程技术并且有丰富的Java程序开发、调试、优化经验,所以线程相关的问题在面试中经常会被提到。 在典型的Java面试中, 面试官会从线程的基本概念问起, 如:为什么你需要使用线程, 如何创建线程,用什么方式创建线程比较好(比如:继...