JAVA学习-java基础讲义01

news2024/10/7 6:40:20

java基础讲义

  • 一 java语言
    • 1.1 java语言介绍
      • 1.1.1 什么是java
      • 1.1.2 java之父
      • 1.1.3 java语言发展史
    • 1.2 java语言的特点
  • 二 java环境搭建相关
    • 2.1 Java环境介绍
      • 2.1.1 虚拟机介绍
      • 2.1.2 JVM介绍
    • 2.2 Java跨平台
      • 2.2.1 跨平台
      • 2.2.2 跨平台原理
    • 2.3 java运行过程
    • 2.4 JDK、JRE、JVM关系图
      • 2.4.1 JRE介绍
      • 2.4.2 JDK介绍
    • 2.5 JDK下载安装
      • 2.5.1 JDK下载
  • 三 java基础语法
    • 3.1 关键字介绍
    • 3.2 java注释
    • 3.3 java标识符
  • 四 常量
    • 4.1 什么是常量
    • 4.2 常量分类
    • 4.3 案例

一 java语言

1.1 java语言介绍

1.1.1 什么是java

Java是一门面向对象编程语言,1995年诞生于Sun公司(Stanford University Network),在2009年被Oracle公司收购。
Java语言不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此 Java语言具有功能强大和简单易用两个特征。Java语言还拥有全球最大的软件开发团队和极其成熟的软件生态圈。

1.1.2 java之父

詹姆斯·高斯林(James Gosling)1955年5月19日出生于加拿大,1977年获得了加拿大卡尔加里大
学计算机科学学士学位,1983年获得了美国卡内基梅隆大学计算机科学博士学位,毕业后到IBM工作,
设计IBM第一代工作站NeWS系统,但不受重视。后来转至Sun公司,1990年,与Patrick,Naughton和
Mike Sheridan等人合作“绿色计划”,后来发展一套语言叫做“Oak”,后改名为Java。
2009年四月,Sun被Oracle公司并购。高斯林于2010年四月时宣布从Oracle司离职。
2011年3月29日,高斯林在个人博客上宣布将加入Google。
2011年8月30日,仅仅加入Google数月之后的高斯林就在个人博客上宣布离开Google,加盟一家从
事海洋机器人研究的创业公司Liquid Robotics,担任首席软件架构师。
在2011年5月建立的Scala公司Typesafe Inc.,高斯林被聘请为公司顾问。

1.1.3 java语言发展史

Java一开始的名称不叫Java而叫Oak,在申请注册商标时,发现Oak已经被人使用了,再想了一系列
名字之后,最终使用了提议者在喝一杯Java咖啡时无意提到的Java词语。

Java语言诞生于20世纪90年代,在1991年成立了一个称为Green的项目小组,这个小组由詹姆斯·
高斯林(James Gosling)领导在加利福尼亚州门洛帕克市沙丘路的一个小工作室里面研究开发新技术,
专攻计算机在家电产品上的嵌入式应用。大幅度提升消费类电子产品(如电视机顶盒、面包烤箱、移动
电话等)的智能化程度。

SUN公司介绍
成立到上市
Sun Microsystems是IT及互联网技术服务公司Sun Microsystems 创建于1982年。Sum和这个名字其
实是斯坦福大学校园网(Stanford University Network)的首字母缩写。主要产品是工作站及服务器。
1986年在美国成功上市。1992年sun推出了市场上第一台多处理器台式机SPARCstation 10 system,并
于1993年进入财富500强。

一年时间跌入低谷
2001年的sun公司,不仅人数规模、市场股值、办公面积远不能和八十年代相比(能人都走了,办公
楼也卖了,股票一落千丈),而且彻底退出了 IT 领域霸主之争。太阳公司从 1982 年成立到 2000 年达
到顶峰用了近二十年时间,而走下坡路只用了一年,足以令经营者为戒。

甲骨文(Oracle)收购
2009年4月20日甲骨文以现金收购Sun微系统公司,交易价格达74亿美元。该协议达成后,IBM公司
放弃了收购网络设备制造商。IBM公司此前表示愿意以每股9.40美元购买Sun公司的股票,但收购谈判破
裂后,IBM公司于2009年5月初取消独家谈判权,IBM并撤回其报价。

1.2 java语言的特点

简单性
语法简单快速上手、避免了复杂的指针、多继承等,java程序员无需手动内存管理且提供丰富的类
库等。

面向对象
支持面向对象的特点如:封装、继承、多态能让编写java程序拥有更多的复用性和灵活性,避免面向
过程思维所带来的编程复杂性。

分布式
Java包括支持HTTP和FTP等基于TCP/IP协议,针对网络协议进行封装让java应用访问网络对象时像
访问本地对象一样方便。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。

健壮性
Java语言检查程序错误分为编译时错误和运行时错误,错误尽可能在编译期间检查发现,避免了运
行时发生。避免多继承、指针、手动内存管理等都是进一步避免不必要的问题发生。

安全性
Java 编译器和虚拟机强制实施的内置的语言安全特性:强大的数据类型管理、编译时检查、自动内
存管理、字节码验证、安全的类加载等。

可移植性
Java与C/C++不同,Java规范中没有“依赖具体实现的地方”。基本数据类型的大小以及有关运算都做
了明确的说明。例如,Java中的int永远是32位的整数,而在C/C++中,int可能是16位整数,32位整数,
也可能是编译器提供商指定的其他大小。在Java中对数据类型固定大小,具备良好的可移植性。

跨平台
Java程序(write once, run anywhere)号称一次编写到处运行,Java程序编译完成后可以在
Windows、Linux、MAC等系统运行。

高性能
Java程序字节码可以在运行时动态、快速、高效地翻译成对应运行这个应用特定CPU的机器语言。

多线程
Java语言支持多线程让程序可以分为多个小任务并发或并行执行,让程序可以有更好的交互性能和
实时控制性能。另一方面可以提高对CPU的利用率。

结构中立
Java的字节码实现了结构中立,与计算机结构无关。编译器生成一个体系结构中立的目标文件格式
(字节码),精心设计的字节码不仅可以很容易地在任何机器上解释执行,而且还可以迅速地翻译成本
地机器的代码。

动态性
Java的动态特性是其面向对象设计方法的拓展,它允许程序动态的装入运行过程中的所需要的类。
也可以通过网络来载入所需要的类有利于程序的扩展和升级。

二 java环境搭建相关

2.1 Java环境介绍

2.1.1 虚拟机介绍

虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的。简单的
理解就是虚拟出来的一台机器,你用的笔记本电脑就是一台真实的物理机,虚拟机都是建立在物理机的
操作系统之上,虚拟机就是一个软件。

2.1.2 JVM介绍

Java虚拟机(Java Virtual Machine 简称JVM)是运行所有Java程序的抽象计算机,是Java语言的运
行环境。初学者可以简单的理解为JVM就是用来执行JAVA程序的,如果没有JVM开发好的java程序无法运行。
JVM是一种规范,可以采用硬件或软件方式来实现。如果是硬件方式实现,那么这台硬件计算机只
能执行java程序。如果采用软件方式实现,那么软件是安装在操作系统基础之上的,这台机器除了可以
执行java程序以外,还能够安装执行其他的软件程序。

2.2 Java跨平台

2.2.1 跨平台

Java程序(write once, run anywhere)号称一次编写到处运行,Java程序编写完成后可以在
Windows、Linux、MAC等系统运行。
平台:
跨平台的平台指的是操作系统。

2.2.2 跨平台原理

Java语言跨平台核心依赖的是JVM,在各个不同类型的操作系统安装对应操作系统版本的JVM即
可,JVM屏蔽了不同类型操作系统的差异性。
在这里插入图片描述

2.3 java运行过程

在这里插入图片描述

2.4 JDK、JRE、JVM关系图

在这里插入图片描述

2.4.1 JRE介绍

JRE(Java Runtime Environment)Java运行环境,包含JVM标准实现及Java核心类库,是java程序最
小运行环境。

JRE可以单独下载安装,如果想要运行一个编译好的Java程序,计算机中只需要安装JRE即可。

2.4.2 JDK介绍

JDK(Java Development Kit) Java语言开发工具包,包含了JRE和Java开发工具,工具包也是java语言
开发的java程序。如果安装了JDK就不用再安装JRE。

JDK包含JRE的目的:
1.使用工具开发好程序以后方便运行测试程序。
2.JDK目录下的bin目录下有很多的exe执行文件,这些exe文件都是JDK提供的一些工具,这些工具是
采用java语言编写的java程序,为了方便使用打包为exe文件,如果没有JRE,jdk所提供的工具也无法使
用。

2.5 JDK下载安装

2.5.1 JDK下载

官网地址: jdk下载
不做详细说明,可以参考其他下载安装的流程
超详细JDK下载与安装步骤
idea下载安装

三 java基础语法

3.1 关键字介绍

什么是关键字?
就是被java语言赋予特殊含义的单词。
关键字的特点
组成关键的字母都是小写。
常见关键字
class,public,static,void … 。
关键字注意事项
goto和const是java语言的保留字。
类似于editplus这样的高级文本编辑器对关键字都是有颜色变化的。
关键字列表
在这里插入图片描述

3.2 java注释

注释介绍
用于解释说明程序的文字,有利于程序调试、后期维护和扩展等。
初学者在开发时先写程序时,先写思路再写代码。代码里面既包含程序思路、程序解释、程序代码
等,程序思路和程序说明不属于程序执行的一部分,必须进行注释。
注释分类
单行注释
格式: // 注释的文字
多行注释
格式: /* 注释的文字 /
文档注释
格式: /
* 注释的文字 */

//这是我开发的第一个java程序
class HelloWorld{
/*
main是一个主方法,是程序的入口
*/
public static void main(String[] args){
System.out.println("HelloWorld!");
    }
}

3.3 java标识符

什么是标识符

就是给类,接口,方法,变量,常量等起名字时使用的字符序列
字符序列:
多个字母组成

标识符的组成规则

英文的大小写字母(a-z,A-Z)
数字字符(0-9)
$和_

标识符注意事项

不能以数字开头
不能是java中的关键字
区分大小写

命名规则

项目名命名
全部小写
包名命名
全部小写

类名命名

//一个单词组成,单词首字母大写
//多个单词组成,每个单词首字母大写
//例如:
public class MyFirstClass{}

变量名、方法名命名

//一个单词组成,单词首字母小写
//多个单词组成,第一个单词首字母小写,后面的每个单词的首字母都要大写
//例如:
int index = 0 ;
public void toString(){}

常量名命名

/*一个单词组成,单词所有字母大写
多个单词组成,单词所有字母大写,多个单词用下划线分开。
例如:*/
public static final String GAME_COLOR = "RED";

四 常量

4.1 什么是常量

在程序运行过程中其值不会发生改变的数据就是常量。
程序运行过程:
运行时间
运行次数

4.2 常量分类

在这里插入图片描述

4.3 案例

public class ConstantDemo {
public static void main(String[] args){
	//输出整数常量
	System.out.println(12345);
	//输出小数常量
	System.out.println(3.14);
	//输出字符常量
	System.out.println('A');
	//输出布尔常量
	System.out.println(true);
	//输出字符串常量
	System.out.println("HelloWorld!");
   }
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JaVers:自动化数据审计

在开发应用程序时,我们经常需要存储有关数据如何随时间变化的信息。此信息可用于更轻松地调试应用程序并满足设计要求。在本文中,我们将讨论 JaVers 工具,该工具允许您通过记录数据库实体状态的更改来自动执行此过程。 Javers如何工作&#x…

RT-thread lts-v3.1.x版本,GD32F450以太网,上电之后有一定概率ping不通问题处理。

先给结论 官方驱动没有按照GD32F4XX手册要求,等待ENET_DMA_CTL第20bit清0后再写 synopsys_emac.c 文件,void EMAC_FlushTransmitFIFO(struct rt_synopsys_eth * ETHERNET_MAC)函数,增加一句判断即可解决。 /*** Clears the ETHERNET transm…

Kotlin高仿微信-第4篇-主页-消息

Kotlin高仿微信-项目实践58篇详细讲解了各个功能点,包括:注册、登录、主页、单聊(文本、表情、语音、图片、小视频、视频通话、语音通话、红包、转账)、群聊、个人信息、朋友圈、支付服务、扫一扫、搜索好友、添加好友、开通VIP等众多功能。 Kotlin高仿…

Android Studio / IDEA 调试金手指:live template自动打印方法名以及所有变量

ctrl alt s 搜设置,template,结果是在 live template 区域设置代码模板的,不知这功能和直播有何关系,live stream? live template 就是自动完成一段代码。比如输入 fori,然后ctrl空格补全循环体&#xf…

Apache-DButils以及Druid(德鲁伊) 多表连接查询的解决方案:两种

Apache-DButils以及Druid(德鲁伊) 多表连接查询的问题 每博一文案 张爱玲说,于千万人之中,遇到你所要遇到的人,于千万年之中,时间的无涯的荒野里,没有 早一步,也没有晚一步,刚巧赶上了。 人生海…

iPhone开机密码什么时候会用到?忘记了怎么办?

iPhone的开机密码也是屏幕解锁密码,它的作用还是很重要的。一般用在: 解锁手机手机重启后解锁手机系统更新后第一次解锁手机手机连接电脑需要信任设备Face ID或指纹解锁失败三次后连接Apple Watch后第一次解锁手机 虽然我们现在经常使用其他的解锁方式&…

马斯克特斯拉内部邮件火了:痛恨开会,少说黑话

金磊 羿阁 发自 凹非寺量子位 | 公众号 QbitAI马斯克给员工的一封内部邮件火了。鼓励员工拒绝开会、公司规定不合理可以不遵守……俨然一个为员工着想的好老板。一开始人们还奇怪马斯克的画风怎么变这么快,后来才发现原来这是他6年前写的。对象也不是推特员工&#…

BCN点击试剂:1516551-46-4,BCN-succinimidylester,BCN NHS

●中文名:丙烷环辛炔-活性酯,BCN-琥珀酰亚胺酯 ●英文名:BCN-NHS, BCN-NHS 酯,BCN-活性酯,BCN-succinimidylester 【产品理化指标】: CAS号: 1516551-46-4 分子式:C15H17…

58 - 类模板的概念和意义

---- 整理自狄泰软件唐佐林老师课程 1. 思考 在C中是否能够将泛型的思想应用于类? 1.1 类模板 一些类主要用于存储和组织数据元素类中数据组织的方式和数据元素的具体类型无关 如:数组类、链表类、Stack类、Queue类,等 C中模板的思想应用于…

【LeetCode】No.103. Binary Tree Zigzag Level Order Traversal -- Java Version

题目链接:https://leetcode.com/problems/binary-tree-zigzag-level-order-traversal/ 1. 题目介绍(Binary Tree Zigzag Level Order Traversal) Given the root of a binary tree, return the zigzag level order traversal of its nodes’…

【网络编程】第二章 网络套接字(socket+UDP协议程序)

🏆个人主页:企鹅不叫的博客 ​ 🌈专栏 C语言初阶和进阶C项目Leetcode刷题初阶数据结构与算法C初阶和进阶《深入理解计算机操作系统》《高质量C/C编程》Linux ⭐️ 博主码云gitee链接:代码仓库地址 ⚡若有帮助可以【关注点赞收藏】…

html实训大作业《基于HTML+CSS+JavaScript红色文化传媒网站(20页)》

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

群晖修改默认端口为80、443

写之前哔哔两句 我这个人是个有强迫症的人,本来群晖用的好好的,然后觉得为什么还要输入5000、5001端口呢? 然后我就尝试着去修改端口,想修改为40、443的时候,结果提示端口被保留,这我哪能忍,ss…

springboot整合canal

该篇博客是基于前两篇的基础上来实现的,如果没有看过可以看一下前面的步骤 使用docker搭建 MYSQL主从_极速小乌龟的博客-CSDN博客docker 上面搭建mysql主从服务器https://blog.csdn.net/qq_35771266/article/details/128101019?spm1001.2014.3001.5501 ShardingS…

Matlab optimtool优化阵列天线的幅相激励

摘要: 阵列天线的激励幅度和相位控制着其方向图形状。例如锥削分布的幅度可实现低副瓣、递变相位激励可改变波束指向,采用幅相综合控制则可实现平顶波束、余割平方等波束赋形。下面介绍利用Matlab optimtool优化阵列天线的幅相激励实现上述需求。 推文…

超市结算系统|Springboot+Vue通用超市结算收银系统

作者主页:编程千纸鹤 作者简介:Java、前端、Pythone开发多年,做过高程,项目经理,架构师 主要内容:Java项目开发、毕业设计开发、面试技术整理、最新技术分享 收藏点赞不迷路 关注作者有好处 项目编号&…

JavaScript基础语法(变量)

JavaScript基础语法(变量) 学习路线:JavaScript基础语法(输出语句)->JavaScript基础语法(变量)->JavaScript基础语法(数据类型)->JavaScript基础语法&#xff…

(一)DepthAI-python相关接口:OAK Device

消息快播:OpenCV众筹了一款ROS2机器人rae,开源、功能强、上手简单。来瞅瞅~ 编辑:OAK中国 首发:oakchina.cn 喜欢的话,请多多👍⭐️✍ 内容可能会不定期更新,官网内容都是最新的,请查…

SuperMap iPortal 与独立代理服务的 session 共享通过redis配置实现

作者:yx 文章目录前言一、支持的Tomcat系列二、使用步骤1.将 /lib 中所有的 jar 拷贝到 tomcat/lib 目录2.给 tomcat 添加一个系统环境变量 "catalina.base",变量取值为 tomcat 的根目录3、修改 redis 的相关配置4、在 【SuperMap iPortal / i…

Dreamweaver简单网页——HTML+CSS小米官网首页的设计与实现

常见网页设计作业题材有 个人、 美食、 公司、 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 舞蹈、 动漫、 服装、 体育、 化妆品、 物流、 环保、 书籍、 婚纱、 游戏、 节日、 戒烟、 电影、 摄影、 文化、 家乡、 鲜花、 礼品、 汽车、 其他等网页设计题目, A…