java_生态环境

Which Java package do I need?
Software Developers: JDK (Java SE Development Kit). For Java Developers. Includes a complete JRE plus tools for developing, debugging, and monitoring Java applications.
Administrators running applications on a server:  Server JRE (Server Java Runtime Environment) For deploying Java applications on servers. Includes tools for JVM monitoring and tools commonly required for server applications, but does not include browser integration (the Java plug-in), auto-update, nor an installer. Learn more arrow
End user running Java on a desktop: JRE: (Java Runtime Environment). Covers most end-users needs. Contains everything required to run Java applications on your system.

http://www.eclipse.org/subversive/
http://mirrors.cnnic.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.zip
http://mirrors.yun-idc.com/eclipse//technology/epp/downloads/release/mars/2/eclipse-jee-mars-2-linux-gtk-x86_64.tar.gz

JDK

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

http://download.oracle.com/otn-pub/java/jdk/8u77-b03/jdk-8u77-windows-x64.exe

java

http://docs.oracle.com/javase/8/  主入口

Reference》Developer Guides  跟随这个路径就到了下面的地址了

http://docs.oracle.com/javase/8/docs/  有java体系图

Reference》Java Language and Virtual Machine Specifications跟随这个路径就到了下面的地址了

http://docs.oracle.com/javase/specs/index.html

http://docs.oracle.com/javase/specs/jls/se8/jls8.pdf

http://docs.oracle.com/javase/specs/jvms/se8/jvms8.pdf

https://docs.oracle.com/javase/8/docs/api/index.html  api参考

http://docs.oracle.com/javase/7/docs/

http://docs.oracle.com/javaee/7/index.html

=====================

总结:

java.exe用于启动window console  控制台程序

javaw.exe用于启动 GUI程序

javaws.exe用于web程序。

jvm.dll就是java虚拟机规范在windows平台上的一种实现

============================

java api总结

泛型表示 E,K,V,T
string
time
collections
stream        
io
nio
xml
net
jdbc

============================

jdk-8u111-windows-x64.exe

安装JDK 选择安装目录 安装过程中会出现两次安装提示 。第一次是安装 jdk ,第二次是安装 jre 。建议两个都安装在同一个java文件夹中的不同文件夹中。(不能都安装在java文件夹的根目录下,jdk和jre安装在同一文件夹会出错)

C:ProgramDataOracleJavajavapath;
%SystemRoot%system32;
%SystemRoot%;
%SystemRoot%System32Wbem;
%SYSTEMROOT%System32WindowsPowerShellv1.0


都是系统变量
java_home
C:Program FilesJavajdk1.8.0_91
classpath
.;%JAVA_HOME%libdt.jar;%JAVA_HOME%lib	ools.jar;此时需要注意的是最前有.;,
path
%java_home%in;%java_home%jrein;

java程序,java编程

对java程序员来说,ant(ant的build.xml)与maven(pom.xml)是更为常用的工具

对linux程序员来说,make是更为常用的工具
在此,我想多说关于程序编译的一些规范和方法,一般来说,无论是C、C++、还是pas,首先要把源文件编译成中间代码文件,在Windows下也就是 .obj 文件,UNIX下是 .o 文件,即 Object File,这个动作叫做编译(compile)。然后再把大量的Object File合成执行文件,这个动作叫作链接(link)。

初学者遇到最多的困惑是:上课也能听懂,书上的例题也能看明白,可是到自己动手做编程时,却不知道如何下手。发生这种现象的原因有三个:
一、所谓的看懂听明白,只是很肤浅的语法知识,而我们编写的程序或软件是要根据要解决问题的实际需要控制程序的流程,如果你没有深刻地理解C语言的语句的执行过程(或流程),你怎么会编写程序解决这些实际问题呢?
二、用C语言编程解决实际问题,所需要的不仅仅是C语言的编程知识,还需要相关的专业知识。例如,如果你不知道长方形的面积公式,即使C语言学得再好你也编不出求长方形的面积的程序来。
三、C语言程序设计是一门实践性很强的课程,“纸上谈兵”式的光学不练是学不好C语言的。例如,大家都看过精彩自行车杂技表演,假如,你从来没有骑过自行车,光听教练讲解相关的知识、规则、技巧,不要说上台表演、就是上路你恐怕都不行。

jdk就是java的开发工具集,顾名思义就是你做开发用的,其中包括javac,也就是java compiler等。
jre(java runtime environment),就是java程序的运行环境。你所写的java程序在经过javac编译后会形成字符行文件,这个java的中间文件,计算机是看不懂的,而这个文件是给jvm(java的虚拟机)用的,由jvm进行解释后形成机器语言给计算机。而这个jvm就在jre中,也就是说java程序的运行要有jre来担当。
所以jdk和jre的区别就是一个用于开发,一个用于运行,联系就是他们都是java开发者所必备的(除非你就想运行java程序,那么用jre就足够了)。

同一个包不同类之间调用

package it.java.base.ch01;

public class Demo01 {
   public void sayHello(){
       System.out.println("hh ch01.d01");
   }
}



package it.java.base.ch01;

public class Demo02 {
    public void sayHello(){
        System.out.println("ch01.d02");
    }
    public static void main(String[] args) {
        Demo01 demo01 = new Demo01();
        demo01.sayHello();
    }
}

包,类,方法

不同包之间类调用如下
要做导包操作:准确来说是导类
import it.java.base.ch01.Demo02;

不管面向对象的语言,方法的内部还是面向过程的,从上往下,从前往后,一行一行执行的
新建一个项目,编写一个模块,一段小程序完成一个小功能。
使用java.util.Scanner提供的方法获取键盘输入
1.导入包
2.使用Scanner类的next方法

70%的时间是在调试代码
写代码只占一小部分时间
逐条语句执行程序--观察执行情况--发现问题--解决问题

程序的主入口只有一个就是main

创建方法,然后在主入口main函数中调用方法

打断点,来进行调试,快捷键f5逐语句,f6逐过程(这些都是c的概念)

jvm,jre,jdk
运行java程序 jre
编写java程序 jdk
/*
 *这是我的第一个java程序
 *2016-06-26
 *ff
*/


public class HelloWorld{
		//主方法,有一个字符串数组
	public static void main(String[] args){
		//输出helloworld到控制台
		System.out.println("hello worldaaaaaaaaaa!");
	}
}

上面的这段代码保存为utf-8编码格式的java文件
执行时会报错,因为a后面有一个中文字符叹号
所以要这样子

C:Usersfgy>javac -encoding utf-8 HelloWorld.java

C:Usersfgy>java HelloWorld
hello worldaaaaaaaaaa!
才能执行成功

jmc

tomcat开启jmx

启动windows中jdk的jmc建立一个到3.255的tomcat的jmx连接,有无密与有密两种情况

Java Flight Recorder (JFR)

service:jmx:rmi:///jndi/rmi://localhost:7091/jmxrmi
service:jmx:rmi:///jndi/rmi://<hostname>/jmxrmi

vi catalina.sh,加入下面,尽量靠前加
CATALINA_OPTS="$CATALINA_OPTS
-Dcom.sun.management.jmxremote
-Djava.rmi.server.hostname=192.168.3.225
-Dcom.sun.management.jmxremote.port=9999
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false"

ip是你要监控的tomcat所在服务器的ip地址
端口号,是你要开启的监控端口号。
sll,false 表示不使用ssl链接
authenticate,false 表示不使用认证,即不需要用户名和密码

上面是不使用鉴权文件的配置,下面是使用鉴权文件的配置。

CATALINA_OPTS="$CATALINA_OPTS
-Dcom.sun.management.jmxremote
-Djava.rmi.server.hostname=192.168.3.225
-Dcom.sun.management.jmxremote.port=9999
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=true
-Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password
-Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access"

authenticate,true 开启鉴权功能
access.file,权限文件路径
password.file,密码文件路径


将 JAVA_HOME/jre/lib/management 下面的 jmxremote.access 和jmxremote.password.template 拷贝到 tomcat conf目录下(我的是/apache-tomcat-7.0.42/conf),并对两个文件做以下修改
1:jmxremote.password.template文件名修改为jmxremote.password。
2:修改两个文件的权限
chmod 600 jmxremote.access
chmod 600 jmxremote.password
3:修改jmxremote.access文件,将文件最后两行显示【monitorRole和controlRole】的注释取消,其中monitorRole为只拥有只读权限的角色,controlRole有更高权限:读写等。编辑完成后,保存。 
4:修改jmxremote.password文件。同样将文件最后两行显示【monitorRole和controlRole】的注释取消。然后保存。

bean的含义

bean译过来即为“豆子”的意思,大家对豆子的印象是什么,大概就是只能看到豆子硬硬的外皮,而看不到内部的东西。那么在java中,bean可以看成是一个黑盒子,即只需要知道其功能而不必知道其内部构造和设计。

可以理解为类

Java中的各种bean对应的意义(VO,PO,BO,QO, DAO,POJO,DTO)

原文地址:https://www.cnblogs.com/createyuan/p/5343078.html