简单了解java

一.java发展史

Java发展的主要里程碑:

0.1991年 :在sun(斯坦福大学校办公司)公司,提出一种语言开发需求,程序要在一些内存非常小的设备上运行,还要求程序可以适应不同的cpu. 于是詹姆斯•高斯林带领小组进行研发。

1. 1995年:Sun发布了Java编程语言和Java平台的第一个版本。它在当时引起了巨大的轰动,因为它是一种可以在不同操作系统上运行的跨平台语言。——java(印度尼西 爪哇岛 盛产咖啡 )。

2. 1996年:Sun发布了Java的第一个重要更新——Java 1.0。这一版本引入了许多新的功能,包括内置的事件模型和AWT图形库。

3. 1998年:Sun发布了Java 2,这是一个重大的版本更新,引入了许多新的特性,包括Java虚拟机(JVM)、Java标准版(Java SE)、企业版(Java EE)和微型版(Java ME)等不同的版本。

4. 2006年:Sun发布了Java平台的重要更新——Java SE 6。这一版本引入了许多新的功能,包括对脚本语言的支持和性能优化。

5. 2009年:Oracle(Oracle全球最大的企业级软件开发公司)收购了Sun Microsystems,成为了Java的新所有者。2010年,Java之父——詹姆斯·高斯林(James Gosling)正式离开了Oracle。

6. 2014年:Oracle发布了Java 8,这是一个重要的版本更新,引入了许多新的特性,包括Lambda表达式、函数式接口和新的日期/时间API。

7. 2017年:Oracle发布了Java 9,这是一个重要的版本更新,引入了模块化系统,以提高Java的灵活性和性能。

8. 2018年:Oracle发布了Java 10和Java 11,这两个版本都引入了一些新的特性和改进,包括局部变量类型推断和统一的垃圾收集器接口。

现在每半年更新一次 版本(每年 3月和9月)。

今天,Java仍然是世界上最受欢迎的编程语言之一,被广泛应用于企业级应用、移动应用、嵌入式系统和大数据处理等领域。

二.Java语言的优点

Java作为一种编程语言具有许多优点,其中一些包括:

1. 跨平台性:Java程序可以在不同的操作系统上运行,这得益于Java的“编写一次,到处运行”的特性,因为Java程序在运行时是在Java虚拟机(JVM)上执行而不是直接在操作系统上执行。

2. 面向对象:Java是一种面向对象的编程语言,它支持面向对象的编程范式,使得代码更加灵活、可扩展和可维护。

3. 强类型:Java是一种强类型语言,它提供了严格的类型检查和类型推断,可以帮助开发人员避免很多潜在的编程错误。

4. 垃圾回收:Java具有自动内存管理和垃圾回收功能,开发人员不需要手动管理内存,这有助于减少内存泄漏和让开发过程更加简单。

5. 多线程支持:Java提供了内置的多线程支持,使得并发编程变得更加容易。

6. 大型的生态系统:Java拥有一个庞大且丰富的类库和工具箱,其中包含了许多开发人员可以使用的库、框架和工具。

7. 安全性:Java对安全性有着严格的控制,提供了安全管理机制和沙箱模型,使得Java程序可以在安全的环境中运行。

总之,Java具有跨平台性、面向对象、强类型、垃圾回收、多线程支持、丰富的类库和安全性等许多优点,使得它成为一种非常受欢迎的编程语言。

三.java程序运行机制

Java的运行机制主要包括以下几个步骤:

1. 编写:开发者使用文本编辑器或集成开发环境(IDE)编写Java代码,保存为以“.java”为扩展名的文件。

2. 编译:使用Java编译器(javac)将Java源代码文件编译成字节码文件(以“.class”为扩展名),字节码文件包含了与特定平台无关的代码。

3. 加载字节码文件:Java虚拟机(JVM)加载并解释字节码文件,将其转换为特定平台的机器码。

4. 执行程序:JVM执行转换后的机器码,运行Java程序并与操作系统交互。

5. 垃圾回收:JVM自动管理内存,包括内存分配和垃圾回收,以确保程序运行的可靠性和性能。

 四.java如何实现跨平台

在Java中实现跨平台主要是通过Java虚拟机(JVM)和Java的跨平台特性来实现的。

实现跨平台的方法有:

1. 编写跨平台的Java代码:Java是一种跨平台的编程语言,编写的Java代码可以在任何支持Java的平台上运行。Java代码不依赖于特定的操作系统和硬件架构,因此可以轻松地实现跨平台。

2. 使用Java虚拟机(JVM):Java程序在运行时需要一个Java虚拟机来解释和执行代码。这意味着同一份Java代码可以在不同的平台上运行,只要这些平台上都有对应的JVM即可。

3. Java标准库:Java提供了丰富的标准库和API,这些库和API能够屏蔽不同平台之间的差异,使得开发者可以使用相同的代码来操作文件系统、网络、图形界面等功能,而不用关心具体的平台和系统。

总的说:

是平台无关性:

java程序只需要开发一次,然后就可以在不同的操作系统上运行,前提是在不同的操作系统上安装不同java虚拟机(虚拟环境)。

 五.什么是JDK,JRE,JVM三者之间的关系

JDK(Java Development Kit)和

JRE(Java Runtime Environment)及

JVM(Java Virtual Machine)

是Java开发和运行过程中的重要组成部分,它们间的关系:

1. JDK(Java Development Kit):JDK是Java开发工具包,它包括了Java编译器(javac)、Java运行时环境(JRE)、Java类库以及一些开发工具(如debugger和Java文档生成工具等)。JDK对于开发人员来说是必不可少的,因为它包含了开发Java程序所需的所有工具和资源。

2. JRE(Java Runtime Environment):JRE是Java运行时环境,它提供了Java程序在特定平台上运行所需的环境。JRE包括了Java虚拟机(JVM)和Java类库,它用于执行Java程序。

3. JVM(Java Virtual Machine):JVM是Java虚拟机,它是Java程序运行的关键组件。JVM负责将Java字节码(.class文件)解释成特定平台上的机器码,并管理程序的内存和执行。

因此,JDK包含JRE;

      而JRE包含JVM。

JDK用于开发Java程序,

JRE用于运行Java程序,

而JVM是实际执行Java程序的虚拟机。

六.Java技术体系平台

JavaSE:Java Standard Edition(标准版): java语言的基础 包含java语言中最核心的类(库)

JavaEE:Java Enterprise Edition(企业版): servlet = server(服务) + applet(应用程序) 服务器端的程序

企业版中包含标准版,还包含企业级开发相关的类

JavaME:Java Micro Edition(微缩版) : 早期电子产品开发, 现在已被安卓开发取代

安卓开发: 主要开发安卓手机app 只要掌握javaSE知识,就可以学习安卓开发

七.Java运行环境的安装与配置

下载jdk

安装jdk 注意安装的位置!!!

配置 jdk/bin目录到 系统环境变量path中:

{

1.复制jdk/bin的路径

2.右键“此电脑”,打开属性;再打开高级设置,再打开环境变量,然后打开下面方框内容内面的Path,新建,将其jdk/bin的路径粘贴,点击确定。

}

在任意的目录中 ,输入cmd,使用java命令

JDK(Java Development Kit Java开发工具包) 是给开发人员提供的一个集成工具包;

工具包中包含了:

1.jdk中包含编译工具,打包工具等.

2.JRE(Java Runtime Environment Java运行环境),

包含java程序运行时,需要的类库 例如:String System 还包含虚拟机。

3.JVM(Java Virtual Machine Java虚拟机) 是最终运行java程序的核心环境。

八.第一个程序HelloWorld

public class Hello{

public static void main(String[] args){

     System.out.print("hello world");

}

}

  • 22
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Java中使用gRPC进行简单的使用包括以下几个步骤: 1. 定义.proto文件:首先,你需要定义一个.proto文件,用于描述你的服务和消息格式。这个文件可以使用Protocol Buffers语言编写。例如,你可以定义一个简单的服务和消息格式如下: ```protobuf syntax = "proto3"; package com.example; service GreetingService { rpc SayHello(HelloRequest) returns (HelloResponse); } message HelloRequest { string name = 1; } message HelloResponse { string message = 1; } ``` 2. 生成Java代码:一旦你定义了.proto文件,你可以使用gRPC的编译器将其生成为Java代码。你可以使用以下命令生成代码: ```bash protoc --java_out=<output_directory> <proto_file>.proto ``` 这将生成与.proto文件相匹配的Java类。 3. 实现服务逻辑:在服务器端,你需要编写一个类来实现你定义的服务接口。例如,对于上面的例子,你可以编写一个GreetingServiceImpl类来实现GreetingService接口: ```java package com.example; import io.grpc.stub.StreamObserver; public class GreetingServiceImpl extends GreetingServiceGrpc.GreetingServiceImplBase { @Override public void sayHello(HelloRequest request, StreamObserver<HelloResponse> responseObserver) { String greeting = "Hello, " + request.getName() + "!"; HelloResponse response = HelloResponse.newBuilder().setMessage(greeting).build(); responseObserver.onNext(response); responseObserver.onCompleted(); } } ``` 4. 启动服务器:你需要编写一个服务器类来启动gRPC服务器并注册你的服务实现类。例如: ```java package com.example; import io.grpc.Server; import io.grpc.ServerBuilder; import java.io.IOException; public class ServerMain { public static void main(String[] args) throws IOException, InterruptedException { Server server = ServerBuilder.forPort(50051) .addService(new GreetingServiceImpl()) .build(); server.start(); System.out.println("Server started"); server.awaitTermination(); } } ``` 5. 创建客户端:最后,你可以编写一个客户端类来调用你的服务。例如: ```java package com.example; import io.grpc.ManagedChannel; import io.grpc.ManagedChannelBuilder; public class ClientMain { public static void main(String[] args) { ManagedChannel channel = ManagedChannelBuilder.forAddress("localhost", 50051) .usePlaintext() .build(); GreetingServiceGrpc.GreetingServiceBlockingStub stub = GreetingServiceGrpc.newBlockingStub(channel); HelloRequest request = HelloRequest.newBuilder().setName("Alice").build(); HelloResponse response = stub.sayHello(request); System.out.println(response.getMessage()); channel.shutdown(); } } ``` 这样,你就可以使用gRPC进行简单通信了。在实际使用中,你可能还需要处理错误、流式传输等更复杂的场景。你可以参考gRPC的官方文档和示例来深入了解更多用法和细节。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值