首页 > 编程语言 >2.JAVA入门 了解JAVA 配置环境

2.JAVA入门 了解JAVA 配置环境

时间:2024-04-17 11:56:17浏览次数:19  
标签:Java 入门 JDK java 编译成 配置 程序 JVM JAVA

Java入门

Java特性和优势

  1. 简单性:Java语言设计简洁,易于学习和使用。它摒弃了许多复杂的特性和语法,使得编程变得更加直观和容易上手。
  2. 面向对象:Java是一种纯粹的面向对象编程语言,所有的代码都以类和对象的形式组织。这种面向对象的特性使得代码更加模块化、可重用性更高,并且更容易维护和扩展。
  3. 可移植性:Java程序可以在不同的平台上运行,而不需要针对每个平台单独编写代码。这是因为Java程序编译成字节码,然后在Java虚拟机(JVM)上运行,JVM负责将字节码翻译成特定平台的机器码。
  4. 高性能:尽管Java是一种解释型语言,但通过即时编译器(Just-In-Time Compiler,JIT)的优化,Java程序的性能可以与编译型语言相媲美。此外,Java的多线程支持也有助于提高程序的并发性能。
  5. 分布式:Java提供了强大的网络和分布式编程支持,使得开发分布式系统变得更加容易。通过Java的RMI(远程方法调用)和Socket API,开发者可以轻松地创建分布式应用程序。
  6. 动态性:Java具有动态加载类的能力,这意味着程序可以在运行时动态地加载、链接和执行类和资源,从而实现更灵活和动态的应用程序设计。
  7. 多线程:Java内置了对多线程编程的支持,开发者可以方便地创建多线程应用程序,实现并发执行和异步处理,从而提高程序的效率和响应性。
  8. 安全性:Java在设计上考虑了安全性,提供了安全性特性和机制来保护程序免受恶意攻击和不当访问。例如,Java的安全管理器(Security Manager)可以控制程序对系统资源的访问权限。
  9. 健壮性:Java通过强类型检查、异常处理和垃圾回收等机制保证了程序的健壮性。它能够有效地检测和处理错误,防止程序因为异常情况而崩溃或产生不可预测的行为。

JDK,JRE,JVM

  • JDK(Java Development Kit 开发工具):JDK是Java开发工具包,是Java开发人员用来编写、编译、调试和运行Java程序的核心工具。它包含了Java编译器(javac)、Java运行时环境(JRE)、Java类库(Java API)以及其他一些工具和资源。在JDK中,开发者可以利用各种工具来编写和构建Java应用程序。
  • JRE(Java Runtime Environment 运行环境):JRE是Java运行时环境,是用户在执行Java程序时所需的环境。它包含了Java虚拟机(JVM)和Java类库(Java API),可以让用户在计算机上运行Java应用程序。JRE并不包含开发工具,只提供了运行Java程序所需的最小环境。
  • JVM(Java Virtual Machine java虚拟机(跨平台的理由)):JVM是Java虚拟机,是Java程序的运行平台。它负责将Java字节码(由Java编译器生成的中间代码)解释执行或编译成特定平台的机器码。JVM提供了内存管理、垃圾回收、安全性等功能,同时还提供了对Java程序的调试和监控支持。

卸载JDK

  1. 删除java 的安装目录
  2. 删除JAVA_HOME
  3. 删除path关于java的目录
  4. java -version

安装JDK

  1. 百度JDK8
  2. 同意协议
  3. 下载对应版本
  4. 双击安装JDK
  5. 记住安装的路径
  6. 配置环境变量
    1. 我的电脑->右键->属性
    2. 环境变量->JAVA_HOME
    3. 配置path变量 CSDN学习链接
  7. 测试JDK是否成功(java -version)
  8. 下载notepat++

Helloworld

  1. 随便新建文件夹,存放代码

  2. 新建一个java文件

    • 文件后缀名为.java
    • Hello.java
  3. 编写代码

public class Hello{
	public static void main(String[] args)
		{
			System.out.print("Helloworld!");
		}
}
  1. 编译javac java文件,会生成一个class文件
  2. 运行class文件,java class文件

Java程序运行机制

  1. 编译型(直接翻译):
    • 在编译型语言中,源代码被编译成目标机器的本地代码,这个过程发生在程序执行之前。编译器将源代码转换成机器码,使得程序在运行时可以直接由计算机硬件执行,因此执行速度较快。
    • 在Java中,源代码首先被编译成字节码(bytecode),这是一种与特定平台无关的中间代码。然后,字节码通过Java虚拟机(JVM)在目标机器上解释执行或者通过即时编译器(Just-In-Time Compiler,JIT)编译成本地代码执行。
  2. 解释型(有翻译官):
    • 在解释型语言中,源代码不是直接编译成机器码,而是由解释器逐行解释执行。解释器将源代码一行一行地解释成机器码并立即执行,因此执行速度相对较慢。
    • 在Java中,虽然字节码也需要通过解释器进行解释执行,但Java虚拟机具有即时编译器(JIT)的功能,可以将频繁执行的字节码编译成本地代码,从而提高程序的执行速度。

IDEA安装

  1. IDEA官网下载IDEA
  2. 创建hello工程

标签:Java,入门,JDK,java,编译成,配置,程序,JVM,JAVA
From: https://www.cnblogs.com/zuojiawang/p/18140249

相关文章

  • openGauss中使用gs_initdb时保留旧配置
    openGauss中使用gs_initdb时保留旧配置一、使用场景该需求来源于社区issue:重建库脚本。在开发过程中,可能会修改系统表,或者各种debug情况下导致的库坏掉的情况,建议增加一种重建数据库的脚本。当前可以通过重新安装或gs_initdb建一个新库解决该问题,但用户觉得重装比较......
  • Yii2-url路由配置
    Yii2-url路由配置没做任何处理的情况下,url地址如下http://www.yii2-basic.com/index.php?r=site/about去掉index.php和开启url美化/web/目录下添加.htaccess文件RewriteEngineon#如果是一个目录或者文件,就访问目录或文件RewriteCond%{REQUEST_FILENAME}!-d......
  • 前端【小程序】01-入门篇【注册小程序账号】【开发环境搭建】
    小程序的优势: 学习内容: 两部分内容:1、组件、配置、生命周期、事件处理、数据渲染、API、自定义组件、VantUI、分包加载等2、通告管理、用户管理、房屋管理、报修管理、访客管理等各个功能模块一、注册小程序账号微信公众平台1、在微信公众平......
  • day14_我的Java学习笔记 (常用API、Lambda、常见算法)
    1.常用API1.1Date类【案例】:计算出当前时间往后走1小时121秒之后的时间是多少。1.2SimpleDateFormat【练习】:秒杀活动1.3Calendar2.JDK8新增日期类2.1概述、LocalTime/LocalDate/LocalDateTime2.2Ins......
  • vscode 配置go环境
    https://www.zhihu.com/question/486786946/answer/2723663432注意一定要安装最新版,否则不容易debug//main.gopackagemain//说明hello.go这个文件在main这个包中import"fmt"//导入内置包,可以使用其中函数等funcmain(){ fmt.Println("HelloWorld!")}上面弄完之......
  • IDEA2023版本创建Spring项目只能勾选17和21却无法使用Java8的完美解决方案
    参考:https://www.jb51.net/program/308256k4b.htm方案一:替换创建项目的源我们只知道IDEA页面创建Spring项目,其实是访问springinitializr去创建项目。故我们可以通过阿里云国服去间接创建Spring项目。将https://start.spring.io/或者http://start.springboot.io/替换为https://......
  • day12_我的Java学习笔记 (package包、权限修饰符_private+缺省+protected+public、fin
    1.包IDEA配置自动导包:2.权限修饰符同一个类中的,【private、缺省、protected、public】都可以访问同一个包中的其他类,【private】不可以访问,【缺省、protected、public】都可以访问不同包下的无关类,【private、缺省、protected】都不可以访问,只有【public......
  • 配置ZSH, TMUX, VIM
    Linux神器sudoapt-getinstallsilversearcher-agtreehtopzshgitgit-coreautojumpopenssh-servervimcurlhddtemplm-sensors-yZSHsh-c"$(curl-fsSLhttps://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"sudochsh$USER-s......
  • 2.JavaScript
    变量/对象声明var-绑定到window,无法清理,且重复声明会污染全局(尽量不用)let-只在let命令所在的代码块{}内有效const-与let类似但它是只读常量,值不可修改参考视频增删改查letobj={}//创建对象obj.a=1//新增属性a,值为1obj['1']=1//新增属性1,值为1(可以在属性为数......
  • MyBatis-04-数据库配置
    XML解析时对environment节点的处理TransactionFactorytxFactory=transactionManagerElement(child.evalNode("transactionManager"));DataSourceFactorydsFactory=dataSourceElement(child.evalNode("dataSource"));DataSourcedataSource=dsFactory......