关于java的1234

1.Java特性之一
一次编译,到处运行 -----是因为有jvm(Java虚拟机)—java运行的软件环境
Java字节码只能运行在jvm中
.java–编译–.class----在特定系统的jvm中执行(解释,执行)
2.JDK,JRE,JVM
JDK包含JRE,而JRE包 含JVM。
(1)JDK是sun公司开发的Java开发工具,包括了Java类,编译器,解释器,运行环境和命令行工具。
安装jdk后需要配置环境变量----这样子Eclipse和Tomcat就可以找到JDK了
jdk中的核心成分:
bin:最主要的是编译器(javac.exe)
lib:类库
jre:java运行环境
(2)JRE(Java Runtime Environment,Java运行环境),包含JVM标准实现及Java核心类库。JRE是Java运行环境,并不是一个开发环境,所以没有包含任何开发工具(如编译器和调试器)
(jre里有运行.class的java.exe
a.JDK和JRE区别:JDK还有jar.exe, javadoc.exe等等用于开发的可执行指令文件。这也证实了一个是开发环境,一个是运行环境
b.JRE和JVM区别:JVM并不代表就可以执行class了,JVM执行.class还需要JRE下的lib类库的支持。
总结:JDK(开发环境)-----能够编译+运行(JRE 运行环境)
JRE-----能够解释+执行(JVM+一些需要交互的类)
开发安装jdk,只是运行安装jre
3.jar包
通常JAR文件是一种压缩文件
当开发了一个应用程序后,这个应用程序包含了很多类,如果需要把这个应用程序提供给别人使用,通常会将这些类文件打包成一个JAR文件
与zip的对比:
与传统的 ZIP 文件不同的是 Jar 包不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序并可被编译器和 JVM 等工具直接使用
还可以:
Jar 包可以保证安全性(对 Jar 文件内容加上数字化签名)、
增加传输平台扩展性(作为 Java 扩展框架)
很多 Jar 包包含一个 META-INF 目录:进行配置配置数据
4.socket编程
用于进行网络进程间的通信
(1)利用三元组(ip地址,协议,端口)来标识网络的进程
(2)socket 是“套接字”的意思,是计算机之间进行通信的一种约定,也可以认为是一种技术。通过 socket 这种约定,一台计算机可以接收其他计算机的数据,也可以向其他计算机发送数据。学习 socket,就是学习计算机之间如何通信,并能够用编程语言开发出实用的程序

综上所述:IP地址和端口能够在广袤的互联网中定位到要通信的程序,协议和数据传输方式规定了如何传输数据,有了这些,两台计算机就可以通信了。

socket也是基于“打开open -> 读写write/read –> 关闭close”模式来操作Socket一些socket函数就是对其进行的操作(读/写IO、打开、关闭)
例:fd = socket(int domain, int type, int protocol);
//相当于获得了一个标志(fd就是这个服务器了),以后想用这个服务器就去找fd就行了
●domain:协议域或协议族,例如AF_INET、AF_INET6、AF_LOCAL等,其决定了socket的地址类型,例如我们常用的AF_INET决定了要用ipv4地址(32位)+端口号(16位)的组合。
●type:指定socket类型,常用的有SOCK_STREAM、SOCK_DGRAM、SOCK_RAM等等 (SOCK_STREAM 表示面向连接的数据传输方式 D…无连接)
●protocal:指定协议,TCP协议、UDP协议、STCP协议、TIPC协议
//注意:并不是上面的type和protocol可以随意组合的,如SOCK_STREAM不可以跟IPPROTO_UDP组合。设置protocol为0时,会自动选择type类型对应的默认协议。
总结:
1.应用程序通常通过"套接字"向网络发出请求或者应答网络请求。 在Internet上的主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务。
2.重要的是,socket 是面向客户/服务器模型而设计的,针对客户和服务器程序提供不同的socket系统调用。客户随机申请一个socket (相当于一个想打电话的人可以在任何一台入网电话上拨号呼叫),系统为之分配一个socket号;服务器拥有全局公认的 socket ,任何客户都可以向它发出连接请求和信息请求(相当于一个被呼叫的电话拥有一个呼叫方知道的电话号码)。

猜你喜欢

转载自blog.csdn.net/qq_35297774/article/details/85159880
今日推荐