Java笔记 2 java概述和基础知识

  • 第2章 Java概述与基础知识
    • Java 历史
    • Java技术体系平台
    • Java 重要特点
      • Java 虚拟机[JVM]
    • JDK,JRE
      • JDK 基本介绍
      • JRE 基本介绍
      • JDK、JRE 和JVM 的包含关系
    • Java 快速入门
    • 注意细节
    • Java 转义字符
      • Java 常用的转义字符
    • 注释(comment)
      • Java 中的注释类型
      • 关于文档注释
        • javadoc 常见标签
    • Java 代码规范
    • DOS 命令
      • DOS 介绍
      • 常用的dos 命令
    • 环境变量path配置及其作用

第2章 Java概述与基础知识

Java 历史

  • 1990 sun公司启动绿色计划
  • 1992创建oak(橡树)语言->java
  • 1994 gosling参加硅谷大会演示java功能震惊世界。1995 sun 正式发布java第1个版本。
  • 2009年,甲骨文公司宣布收购Sun 。
  • 2011,发布java7

Java技术体系平台

  • Java SE (Java Standard Edition) 标准版
    支持面向桌面级应用(如Windows下的应用程序)的Java平台,提供了完整的Java核心API,此版本以前称为J2SE
  • Java EE(Java Enterprise Edition)企业版
    是为开发企业环境下的应用程序提供的一套解决方案。该技术体系中包含的技术如:Servlet、Jsp等,主要针对于Web应用程序开发。版本以前称为J2EE
  • Java ME(Java Micro Edition)小型版
    支持Java程序运行在移动终端(手机、PDA)上的平台,对Java API有所精简,并加入了键对移动终端的支持,此版本以前称为J2ME

Java 重要特点

  1. Java 语言是面向对象的(oop)
  1. Java 语言是健壮的。Java 的强类型机制、异常处理、垃圾的自动收集等是Java 程序健壮性的重要保证
  1. Java 语言是跨平台性的。[编译好的.class 文件可以在多个系统下运行,这种特性称为跨平台]
  1. Java 语言是解释型的解释性语言:javascript,PHP, java 编译性语言: c / c++
    区别是:解释性语言,编译后的代码,不能直接被机器执行,需要解释器来执行, 编译性语言, 编译后的代码, 可以直接被机器执行。

Java 虚拟机[JVM]

  1. JVM 是一个虚拟的计算机,具有指令集并使用不同的存储区域。负责执行指令,管理数据、内存、寄存器,包含在JDK 中。
  1. 对于不同的平台,有不同的虚拟机。
  1. Java 虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,到处运行”。

JDK,JRE

JDK 基本介绍

  1. JDK 的全称(Java Development Kit Java 开发工具包)
    JDK = JRE + java 的开发工具[java, javac,javadoc,javap 等]
  1. JDK 是提供给Java 开发人员使用的,其中包含了java 的开发工具,也包括了JRE。

JRE 基本介绍

  1. JRE(Java Runtime Environment Java 运行环境)
    JRE = JVM + Java 的核心类库[类]
  1. 包括Java 虚拟机(JVM Java Virtual Machine)和Java 程序所需的核心类库等,如果想要运行一个开发好的Java 程序,计算机中只需要安装JRE 即可。

JDK、JRE 和JVM 的包含关系

  1. JDK = JRE + 开发工具集(例如Javac,java 编译工具等)
  1. JRE = JVM + Java SE 标准类库(java 核心类库)
  1. 如果只想运行开发好的.class 文件只需要JRE

Java 快速入门

开发步骤

  1. 将Java 代码编写到扩展名为Hello.java 的文件中。
  1. 通过javac 命令对该java 文件进行编译,生成.class 文件。
  1. 通过java 命令对生成的class 文件进行运行。

注意细节

Java源文件以.java 为扩展名。源文件的基本组成部分是类(class),如本类中的Hello类。

Java应用程序的执行入口是main(方法。它有固定的书写格式:
public static void main(String[] args)

Java语言严格区分大小写。

一个源文件中最多只能有一个public类。其它类的个数不限。每个类对应一个class。

如果源文件包含一个public类,则文件名必须按该类名命名!

一个源文件中最多只能有一个public类。其它类的个数不限,也可以将main方法写在非public类中,然后指定运行非public类,这样入口方法就是非public 的main方法。

//这是java的快速入门, 演示java的开发步骤
//对代码的相关说明
//1. public class Hello 表示Hello是一个类,是一个public公有的类
//2. Hello{ } 表示一个类的开始和结束
//3. public static void main(String[] args) 表示一个主方法,即我们程序的入口
//4. main() {} 表示方法的开始和结束
//5. System.out.println("hello,world~"); 表示输出"hello,world~"到屏幕
//6. ;表示语句结束
public class Hello {//编写一个main方法public static void main(String[] args) {System.out.println("timerring hello");}}//一个源文件中最多只能有一个public类。其它类的个数不限。[演示]
//Dog 是一个类
//编译后,每一个类,都对于一个.class
class Dog {//一个源文件中最多只能有一个public类。其它类的个数不限,也可以将main方法写在非public类中,//然后指定运行非public 类,这样入口方法就是非public 的main方法public static void main(String[] args) {System.out.println("hello, 狗狗");}
}class Tiger {public static void main(String[] args) {System.out.println("hello, 老虎");}}

Java 转义字符

Java 常用的转义字符

在控制台,输入tab 键,可以实现命令补全
\t :一个制表位,实现对齐的功能
\n :换行符
\ :一个
" :一个"
' :一个'
\r :一个回车System.out.println("timerring\r 北京"); 注意:回车不换行。

注释(comment)

Java 中的注释类型

  1. 单行注释//
  1. 多行注释/* */ (多行注释里面不允许有多行注释嵌套)
  1. 文档注释/** */

关于文档注释

/*** @author  timerring* @version  1.0*/// 其中author  version  是javadoc的标签
public class Comment02 { //编写一个main方法public static void main(String[] args) {}
}

注释内容可以被JDK提供的工具javadoc所解析,生成一套以网页文件形式体现的该程序的说明文档,一般写在类

javadoc -d 生成的doc所存的文件夹名 -author -version Comment02.java

javadoc 常见标签

标签

描述

示例

@author

标识一个类的作者

@author description

@deprecated

指名一个过期的类或成员

@deprecated description

{@docRoot}

指明当前文档根目录的路径

Directory Path

@exception

标志一个类抛出的异常

@exception exception-name explanation

{@inheritDoc}

从直接父类继承的注释

Inherits a comment from the immediate surperclass.

{@link}

插入一个到另一个主题的链接

{@link name text}

{@linkplain}

插入一个到另一个主题的链接,但是该链接显示纯文本字体

Inserts an in-line link to another topic.

@param

说明一个方法的参数

@param parameter-name explanation

@return

说明返回值类型

@return explanation

@see

指定一个到另一个主题的链接

@see anchor

@serial

说明一个序列化属性

@serial description

@serialData

说明通过writeObject( ) 和 writeExternal( )方法写的数据

@serialData description

@serialField

说明一个ObjectStreamField组件

@serialField name type description

@since

标记当引入一个特定的变化时

@since release

@throws

和 @exception标签一样.

The @throws tag has the same meaning as the @exception tag.

{@value}

显示常量的值,该常量必须是static属性。

Displays the value of a constant, which must be a static field.

@version

指定类的版本

@version info

Java 代码规范

  1. 类、方法的注释,要以javadoc的方式来写。
  1. 非Java Doc的注释,往往是给代码的维护者看的,着重告述读者为什么这样写,如何修改,注意什么问题等
  1. 使用tab操作,实现缩进,默认整体向右边移动,时候用shift+tab整体向左移
  1. 运算符和=两边习惯性各加一个空格。
  1. 源文件使用utf-8编码
  1. 行宽度不要超过80字符
  1. 代码编写次行风格和行尾风格(!) 推荐行尾风格。

DOS 命令

DOS 介绍

Dos:Disk Operating System 磁盘操作系统, 简单说一下windows 的目录结构。

常用的dos 命令

  1. 查看当前目录是有什么内容 dir
    dir d:\abc2\test200
  1. 切换到其他盘下:盘符号cd : change directory
  1. 切换到当前盘的其他目录下(使用相对路径和绝对路径演示), ..\表示上一级目录
  1. 切换到上一级:
    案例演示: cd ..
  1. 切换到根目录:cd
    案例演示:cd \
  1. 查看指定的目录下所有的子级目录tree
  1. 清屏cls
  1. 退出DOS exit
  1. (md[创建目录],rd[删除目录],copy[拷贝文件],del[删除文件],echo[输入内容到文件],type,move[剪切])echo ok > pic.txt

环境变量path配置及其作用

  1. 环境变量的作用是为了在dos的任意目录,可以去使用java 和 javac命令
  1. 先配置 JAVA_HOME = 指向jdk安装的主目录
  1. 编辑path环境变量,增加 %JAVA_HOME%\bin

Java 历史

  • 1990年:Sun Microsystems启动了一个代号为“绿色项目”的研究计划,旨在开发一种新的编程语言和平台,用于家用电器等设备。
  • 1991年:James Gosling领导的团队开始设计一种新的语言,最初命名为Oak(橡树)。
  • 1993年:随着互联网的兴起,Oak被重新命名为Java,并且团队开始将其作为网络应用开发的语言。
  • 1994年:Gosling在硅谷的一个会议上展示了Java的功能,引起了极大的关注。
  • 1995年:Sun Microsystems正式发布了Java的第一个版本Java 1.0。
  • 2000年:Sun发布了Java 2平台,分为三个版本:Java SE, Java EE, Java ME。
  • 2009年:Oracle Corporation宣布收购Sun Microsystems,随后接管了Java的开发和维护工作。
  • 2011年:Oracle发布了Java 7,引入了一些新的特性和改进。

Java 技术体系平台

  • Java SE (Java Standard Edition):标准版,适用于桌面应用程序开发。
  • Java EE (Java Enterprise Edition):企业版,专注于服务器端应用开发,如Web应用、企业级应用。
  • Java ME (Java Micro Edition):小型版,适用于资源受限的设备,如智能手机、嵌入式系统。

Java 重要特点

  • 面向对象:Java完全支持面向对象编程(OOP)的所有概念,如封装、继承、多态等。
  • 健壮性:Java通过严格的错误检查和异常处理机制来增强程序的稳定性。
  • 跨平台性:Java程序编译成字节码(.class文件),由Java虚拟机(JVM)解释执行,这使得Java程序可以在任何安装了JVM的操作系统上运行。
  • 解释型与编译型:Java是一种半编译半解释型语言,首先编译成字节码,然后由JVM解释执行。

Java 虚拟机[JVM]

  • 架构:JVM是一个软件层,它为Java程序提供了一种独立于硬件的抽象计算模型。
  • 执行引擎:JVM包括解释器和即时编译器(JIT Compiler),能够将字节码转换为机器码并高效执行。
  • 内存管理:JVM管理堆内存和栈内存,自动处理垃圾回收。

JDK, JRE

  • JDK (Java Development Kit)
    • 包含了JRE以及开发工具,如编译器javac、调试器jdb等。
    • 主要面向开发者,用于编写和测试Java程序。
  • JRE (Java Runtime Environment)
    • 包含了JVM和运行Java程序所需的类库。
    • 主要面向最终用户,用于运行已开发完成的Java程序。
  • 包含关系
    • JDK包含了JRE,而JRE又包含了JVM和核心类库。

Java 快速入门

  • 步骤
    1. 创建源文件Hello.java
    2. 使用javac Hello.java编译源文件,生成Hello.class
    3. 使用java Hello命令运行编译后的程序。
  • 注意点
    • Java程序通常以.java扩展名保存。
    • public class定义了一个公共类,且文件名必须与公共类名一致。
    • public static void main(String[] args)是程序的入口点。

Java 转义字符

  • 常用转义字符
    • \t:水平制表符。
    • \n:新行。
    • \":双引号。
    • \':单引号。
    • \\:反斜杠。
    • \r:回车(光标回到行首但不换行)。

注释

  • 类型
    • 单行注释://
    • 多行注释:/* ... */
    • 文档注释:/** ... */
  • 文档注释
    • 可以被javadoc工具解析,用于生成HTML格式的文档。
    • 常见标签:
      • @author:作者信息。
      • @version:版本信息。
      • @param:方法参数描述。
      • @return:返回值描述。
      • @throws:可能抛出的异常。

Java 代码规范

  • 编码风格
    • 使用Javadoc注释公共接口和重要方法。
    • 使用清晰的缩进和空格。
    • 保持合理的代码行长度。
    • 维持一致的编码风格。

DOS 命令

  • 基本命令
    • dir:列出当前目录的内容。
    • cd:改变当前目录。
    • tree:显示目录结构。
    • cls:清屏。
    • exit:退出命令提示符。
    • md:创建目录。
    • rd:删除目录。
    • copy:复制文件。
    • del:删除文件。
    • echo:打印文本或向文件写入文本。
    • type:显示文件内容。
    • move:移动文件。

环境变量path配置及其作用

  • 配置
    • 设置JAVA_HOME环境变量指向JDK安装目录。
    • PATH环境变量中添加%JAVA_HOME%\bin,使用户能够在任何位置调用Java相关命令。
  • 作用
    • 通过设置这些环境变量,用户可以在命令行中无需指定完整路径即可执行Java编译器(javac)和Java运行时(java)命令。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/425609.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java多线程编程示例

程序功能 程序展示了 Java 中如何使用多线程来并行执行任务。具体功能如下: 程序创建了三个线程,每个线程执行相同的任务类 Task。 每个线程在运行时输出自身名称,并模拟执行五次任务,每次任务间隔 1 秒。 主线程在启动这三个线程…

「Next.js中文文档」网站发布

大家好,我是程普(weijunext),我联合“阿伟dev”搭建了一个「Next.js 中文文档」网站👇 这个网站我们设计得很特别: 样式很特别 我们模仿 Next.js 官方网站样式,努力做到除了语言不同&#xff…

基于PHP的丽江旅游管理系统

有需要请加文章底部Q哦 可远程调试 基于PHP的丽江旅游管理系统 一 介绍 此丽江旅游系统基于原生PHP开发,数据库mysql,前端bootstrap。系统角色分为用户和管理员。 技术栈:phpmysqlbootstrapphpstudyvscode 二 功能 用户 1 注册/登录/注销…

Java集合(八股)

这里写目录标题 Collection 接口List 接口ArrayList 简述 1. ArrayList 和 LinkedList 区别?⭐️⭐️⭐️⭐️2. ArrayList 和 Array 的区别?⭐️⭐️⭐️ArrayList 和 Vector 区别?⭐️⭐️ArrayList 的扩容机制?⭐️⭐️⭐️ Qu…

Nginx从入门到入土(一):DNS域名解析

前言 hostName,在Linux系统上是一个命令,用来显示和设置系统的主机名称。其实它就是域名。 常见的域名有我们熟悉的taobao.com;baidu.com等等。 我们在地址栏输入baidu.com 进入的就是此页面。我们看到地址栏里显示的是www.baidu.com 。 注意&#xf…

机器人相关知识的本身和价值

简要将人类简史分为 农业工业信息智能 四个时代。 在信息时代,知识本身就可以等同于价值。 常识看,学历可以变现,高品质文凭能极大概率获得工资远远高于平均值的工作机会。 在智能时代,知识本身毫无价值,知识的应…

Android SPN/PLMN 显示逻辑简介

功能描述 当设备驻网后(运营商网络),会在状态栏、锁屏界面、下拉控制中心显示运营商的名称。 此名称来源有两种: 1、SPN(Service Provider Name) 2、PLMN (Public Land Mobile Name) 功能AOSP默认逻辑SPN提供SIM卡的运营商名称预置在SIM EF中,SIM卡发行运营商名称…

SOCKS4和SOCKS5的区别是什么?

SOCKS4和SOCKS5是两种常用的网络代理协议,它们在功能、性能和应用场景上存在一些关键的区别。以下是对这两种协议区别的详细解析: 1. 支持的协议类型 SOCKS4:只支持TCP协议(传输控制协议)。这意味着SOCKS4代理只能用…

面向超万卡集群的新型智算技术方案

面向超万卡集群的新型智算技术白皮书 超万卡集群将有助于压缩大模型训练时间,实现模型能力的快速迭代,并及时对市场趋势作出应对。然而,如何在超万卡集群中实现高效的训练,并长期保持训练过程的稳定性,是将大模型训练扩…

Java入门,初识Java

Java背景知识 Java是早期美国 sun 公司(Stanford University Network)在1995年推出的一门计算机高级编程语言。Java早期称为Oak(中文翻译为:橡树),后期改名为Java。(因为当时sun公司门口有很多…

【C语言必学知识点六】自定义类型——联合体与枚举

联合体与枚举 导读一、联合体1.1 联合体的声明1.2 联合体中的内存对齐1.3 联合体与结构体1.3.1 相同点1.3.2 不同点 1.4 联合体的使用1.5 小结 二、枚举2.1 枚举类型的声明2.2 枚举类型的内存分配2.2.1 常量的分类2.2.2 #define定义的标识符常量2.2.3 枚举常量 2.3 枚举类型的使…

Pytorch详解-Pytorch核心模块

Pytorch核心模块 一、Pytorch模块结构_pycache__Cincludelibautogradnnoptimutils 二、Lib\site-packages\torchvisiondatasetsmodelsopstransforms 三、核心数据结构——Tensor(张量)在深度学习中,时间序列数据为什么是三维张量?…

python植物大战僵尸项目源码【免费】

植物大战僵尸是一款经典的塔防游戏,玩家通过种植各种植物来抵御僵尸的进攻。 源码下载地址: 植物大战僵尸项目源码 提取码: 8muq

IDA f5 无法生成伪代码 too big function 的原因之一以及解决方法

IDA 提示 0x00xxxxx: too big function 其中可能的原因可能是因为 c的异常 try catch 导致函数跳转太远导致的 找到地址 B64778 在 jmp ___CxxFrameHandler3上按 “e” 将函数的结尾定在这里 然后再按 f5 函数就已经成功生成了

aspcms webshell漏洞复现

1、在网址后输入/admin_aspcms/login.asp进入后台登陆界面 2、输入账号admin 密码123456 进行登录 3、点击【扩展功能】--》【幻灯片设置】--》点击 【保存】--》开启代理进行抓包 4、修改数据包中slideTextStatus的参数1%25><25Eval(Request(chr(65)))25><%25 5、…

微积分-积分应用5.5(函数的平均值)

很容易计算有限多个数字 y 1 , y 2 , … , y n y_1, y_2, \dots, y_n y1​,y2​,…,yn​ 的平均值&#xff1a; y ave y 1 y 2 ⋯ y n n y_{\text{ave}} \frac{y_1 y_2 \cdots y_n}{n} yave​ny1​y2​⋯yn​​ 但是&#xff0c;如果可以进行无限多次的温度读取&…

7 递归——206. 反转链表 ★

7 递归 206. 反转链表 给你单链表的头节点head,请你反转链表,并返回反转后的链表。 示例 1: 输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1] 算法设计 可以充分利用原有的存储空间,通过修改指针实现单链表的就地逆置。相当于将所有的箭头反向,头指针指向原链表的尾部。…

策略路由与路由策略的区别

&#x1f423;个人主页 可惜已不在 &#x1f424;这篇在这个专栏 华为_可惜已不在的博客-CSDN博客 &#x1f425;有用的话就留下一个三连吧&#x1f63c; 目录 一、主体不同 二、方式不同 三、规则不同 四、定义和基本概念 一、主体不同 1、路由策略&#xff1a;是为了改…

微信小程序页面制作——婚礼邀请函(含代码)

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

SprinBoot+Vue民宿预约微信小程序的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍&#xff1a;CSDN认证博客专家&#xff0c;CSDN平台Java领域优质…