菜鸟学Linux 第100篇笔记 tomcat 之 java

内容总览

java概述

java  包含四个独立却又彼此相关的技术

四个独立的技术运作流程

JVM的实现方式

JVM的虚拟机软件

JAVA应用领域的不同,Java可分为三类 SE, EE, ME

CGI (Common Gateway Interface)

servlet CGI (JSP)

JVM 虚拟机运行时内存空间

类加载器、类的生命周期

jdk的安装

java配置参数

Sun JDK监控和故障处理工具

可视化工具 gui

tomcat

PHP:

开发语言:脚本语言

运行环境:解释执行

Zend Engine: Opcode

Xcache, APC, eAccelerator

MVC (model view controller)

data数据

bussiness:业务

presentation:展示

C/C++ cpu, os

移植困难

维护成本高

高速

驱动

C: 面向过程

C++ 面向对象

C API (Application Programming Interface)

os, system call

api

windows, api

linux, api

POSIX: Portable Operating System

ABI: Application Binary Interface

oak: 橡树

java能够在不同的硬件平台上运行同一种语言所开发出来的程序

全球最流行语言

java  包含四个独立却又彼此相关的技术

java程序设计语言

Java API

Java Class文件格式 (运行在jvm上) bytecode: 字节码

JVM:Java Virtual Machine

Once for all 一次编译到处运行 Write Once, Run anywhere

四个独立的技术运作流程

使用java程序设计语言结合Java API所提供的库编写出来的原程序,由编译器编译成Java

Class文件格式最后将此文件在jvm上运行

JVM

提供公共类和私有类

class loader

JVM的实现方式

1. 一次性解释器,解释字节码并执行。

每次执行时还需要再进行编译才可执行,此次的编译则是将字节码编译成不同的硬件和软件

平台可以识别的执行程序

2. 即时编译器(just-in-time complier)

依赖于更多内存来缓存解释器解释后的结果

3. 自适应编译器

优化程序缓存的代码,缓存20%左右的代码,提高80%的速度

Java设计语言: Sun

Java API: Sun, Java规范开放组织定义的,第三方类库

Java class: Sun

JVM的虚拟机软件

JVM: Hostspot JVM(Sun)

JRE Java Runtime Environment运行时环境 (没有编译只可运行)

JDK Java Development Kit (开发编译+运行)

JVM: OpenJDK

开发+运行(开源实现)

JDK=Java + API + JVM 用于实现Java程序开发的最小环境

JRE=JVM + Java SE API

JAVA应用领域的不同,Java可分为三类

JAVA SE:Standard Edition, J2SE

JAVA EE:Enterprise Edition, J2EE

JAVA ME:Mobile Edition, J2ME

1995年, JAVA 1.0面世, James Gosling, Green Project

GPL (General Public License)

applet: 小程序 类库

动态网站

CGI (Common Gateway Interface) 协议和规范,

可以使web服务器额外调用其它应用程序或启动其它进程来执行用户所请求的动态程序类的资源

在本地执行以后,格式化为html文档再返回给客户端的一种技术

servlet CGI

以JAVA语言实现的CGI技术,以java来开发网站,开发必须遵守servlet规范,servlet能够接受

http请求,能够理解http协议,并且能够将html文档的执行结果通过封装成http报文的格式来

响应给客户端的请求

任何一种静态内容都得在java程序中生成,这使java程序开发者必须得懂html

JSP:是servlet的一种特殊类 Java Server Page (可以分离html和java动态)

可以将java的脚本程序嵌入至html文档中

<%language="java">

SSH: Structs, Spring, Hebernate

JSP --> servlet

jasper 将jsp转换成.java

java编译器 负责将.java 编译成 .class

.jsp --> .java --> (JVM) .class

JDK: javac, .java --> .class

Web

Servlet Container: Servlet 容器

web container

JVM 虚拟机运行时内存空间

线程私有内存区

程序计数器区 程序执行状态

java虚拟机栈 保存局部变量

线程共享内存区

本地方法栈

方法区 (类)

堆 (对象区) java自动内存回收 GC (Garbage collector)

垃圾回收算法

1. 标记 清除

2. 复制 (避免碎片,浪费内存)

3. 标记整理

垃圾回收器

Serial

ParNew 并行回收

Parallel Scavenge 降低垃圾回收所需要用的时间

Serial Old 单线程

Parallel Old 多线程

CMS:Concurrent Mark Sweep

并发收集,低停顿

无法收集浮动垃圾,由于基于标记,清除会产生碎片

G1 不会产生碎片,能够精准控制停顿时间

类加载器

jvm提供

外部提供

类生命周期

loading

verification

preparation

resolution

initialization

using

unloading

jdk的安装

从官方网站下载

www.oracle.com download

我这里下载的是jdk-8u121-linux-x64不知道为何没找到之前的版本呵呵

安装

下载到linux文件夹里 因为是rpm包直接命令rpm命令安装即可

# rpm -ivh jdk-8u121-linux-x64.rpm

配置环境变量

# vim /etc/profile.d/java.sh

添加如下两行

export JAVA_HOME=/usr/java/jdk1.8.0_121

export PATH=$PATH:$JAVA_HOME/bin

此时使用命令便可查看已经安装好的jdk版本信息

# java -version

java配置参数

-XX:+<option> 开启此参数指定的功能

-XX:-<option> 关闭功能

-XX:<option>=<value> 给option指定的选项赋值

-D<name>=<value>  set a system property

java -XX:+PrintFlagsFinal  显示所支持的所有参数和其默认值

Sun JDK监控和故障处理工具

jps  JVM process status tool  显示指定系统内所有的hotspot虚拟机进程的列表信息

jstat JVM statistics Monitoring tool 收集并显示hotspot虚拟机各方面的运行数据

jinfo 显示正在运行的hotspot虚拟机配置信息

jmap 生成某hotspot虚拟机的内存转储快照

可视化工具

jconsole  Java的监控与管理控制台

jvisualvm java的虚拟化控制台工具 可视化的vm

本文转自Winthcloud博客51CTO博客,原文链接http://blog.51cto.com/winthcloud/1896001如需转载请自行联系原作者

Winthcloud

菜鸟学Linux 第100篇笔记 tomcat 之 java相关推荐

  1. 菜鸟学Linux 第090篇笔记 corosync+drbd+mysql

    菜鸟学Linux 第090篇笔记 corosync+drbd+mysql 内容总览 上节回顾 DRBD (Distributed Replicated Block Device) 分布式复制块设备 配 ...

  2. 菜鸟学Linux 第052篇笔记 httpd-install and section2

    菜鸟学Linux 第052篇笔记  httpd-install and section2 apache 17years NCSA, httpd A Patchey Server = Apache FS ...

  3. 菜鸟学Linux 第093篇笔记 keepalived

    菜鸟学Linux 第093篇笔记 keepalived 内容总览 keepalived介绍 配置keepalived的ipvs功能 keepalived的几个问题解决方法 keepalived 它可以 ...

  4. 菜鸟学Linux 第044篇笔记 算法和私有CA

    菜鸟学Linux 第044篇笔记 算法和私有CA 证书吊销列表CRL(Certificate Revocation List ) 如何解决私钥丢失 PKI: Public Key Infrastruc ...

  5. windows pxe 安装linux,菜鸟学Linux 第103篇笔记 pxe自动化安装linux

    菜鸟学Linux 第103篇笔记 pxe自动化安装linux 内容总览 linux的系统安装 kickstart文件的组成部分 DHCP (Dynamic Host Configuration Pro ...

  6. 菜鸟学Linux 第050篇笔记 dhcp

    菜鸟学Linux 第050篇笔记 dhcp DHCP (Dynamic Host Configuration Protocol) 早期bootp (boot protocol) lease Clien ...

  7. 菜鸟学Linux 第033篇笔记 bootloader,inittab

    菜鸟学Linux 第033篇笔记 bootloader,inittab Linux 系统自启动流程 PC OS (Linux) POST-->BIOS(Boot Sequence)-->M ...

  8. Linux 日志 klogd,菜鸟学Linux 第038篇笔记 日志系统 syslogd,klogd

    菜鸟学Linux 第038篇笔记 日志系统 syslogd,klogd Linux上的日志系统 syslog开源 syslog-ng  商业版 日志系统 syslog syslog 服务 syslog ...

  9. 菜鸟学Linux 第034篇笔记 vmlinuz, initrd, modules, script

    菜鸟学Linux 第034篇笔记  vmlinuz, initrd, modules, script 内核两部分 核心 /boot/vmlinuz-version 内核模块 /lib/modules/ ...

最新文章

  1. 对标以太坊的EOS再火,也拼不过InterValue的区块链4.0
  2. MySQL 5.7 密码策略
  3. 2019年年初iOS招人心得笔记(附面试题)
  4. 【运筹学】表上作业法 ( 最小元素法分析 | Vogel 方法 )
  5. 如何成为自己所在领域内前1%的顶尖人才? 凤凰科技 09-29 07:42 原标题:如何成为自己所在领域内前1%的顶尖人才? 有时你会觉得,可能你永远也实现自己的梦想。你清楚地知道自己想做什么,但有
  6. 通用测试用例大全(转自——知了.Test)
  7. python文件解除占用_如何使用Python解锁锁定的文件和文件夹(mac)
  8. was java sdk_关于WAS9单独安装SDK的问题?
  9. 注意.NET Core进行请求转发问题
  10. 机器学习与数据挖掘——第二章 数据与数据预处理
  11. AsyncTask知识整理笔记
  12. C++中默认构造函数使用时的要点
  13. java 输出字符串的所有排列_JAVA 输出指定字符串所有排列组合
  14. STEP 7 MicroWIN SMART编程软件PG_PC以太网接口搜索不到CPU怎么办?
  15. WIN7使用各种激活软件都不管用的解决办法
  16. 扒一扒那些叫欧拉的定理们(四)——平面几何欧拉定理美学鉴赏
  17. 字幕/打轴/压制小tip——Aegisub MeGUI 极简操作指南
  18. 自动化产线自动刀补实现
  19. MapReduce: 大规模集群上的简化数据处理
  20. xpadder教程:自定义设置游戏手柄的图片

热门文章

  1. 本地邮件系统的安装及配置
  2. 【Java】String,StringBuffer和StringBuilder区别
  3. jstack处理Java中CPU100%的思路流程
  4. https连接加载http资源
  5. MySQL查询优化之索引
  6. 蚂蚁区块链在司法存证领域的探索与实践
  7. 把用户输入的文本转义(主要针对特殊符号和emoji表情)
  8. 360安全卫士v3.0beta3版发布!
  9. VMworld 2016 US带来了哪些惊喜?
  10. 基本STRUTS标签-学习笔记-Bean标签