栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

6.java语言简介, java运行原理,java的数据类型、变量、运算符、注释,控制台的输入输出

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

6.java语言简介, java运行原理,java的数据类型、变量、运算符、注释,控制台的输入输出

java01-java概述(总)

文章目录
    • **一、java简介**
      • **1.1 前言**
      • 1.2 java版本
      • 1.3 java特点
        • 1. 面向对象
        • 2. 平台无关性
        • 3. 简单性
        • 4. 解释执行
        • 5. 多线程
        • 6. 分布式
        • 7. 健壮性
        • 8. 高性能
        • 9. 安全性
      • 1.4 java开发方向
        • 1. Java SE
        • 2. Java EE
        • 3. Java ME
    • 二.java开发环境的组成
      • **2.1 jvm虚拟机**
      • **2.2 JRE**
      • **2.3 jdk**
        • **2.4 jdk的安装(oracle官网下载jdk安装包)**
      • 2.4 安装
      • 2.5 环境配置
    • **三 HelloWorld入门程序**
      • **3.1 程序开发步骤说明**
      • **3.2 编写Java源程序**
      • **3.3 使用idea工具编写代码**
      • **3.4 java 注释**
  • **四.常量**
      • **4.1 概述**
      • **4.2 分类**
  • **五.变量和数据类型**
      • **5.1 变量**
      • **5.2 数据类型**
  • **六.运算符**
  • **七.类型转换**
  • 八、Scanner类,控制台的输入
  • 八、Scanner类,控制台的输入

一、java简介 1.1 前言

在1991年时候,James Gosling在Sun公司的工程师小组想要设计一种主要用于像电视盒这样的消费类电子产品的小型计算机语言。这些电子产品有一个共同的特点:计算处理能力和内存都非常有限。所以要求:语言必须非常小且能够生成非常紧凑的代码,这样才能在这样的环境中执行。另外,由于不同的厂商选择不同的CPU,因此,要求该语言不能和特定的体系结构绑在一起,要求语言本身是中立的,也就是跨平台的。最初这个语言命名为“Green”。其原先的目的是为家用消费电子产品开发一个分布式代码系统, 这样我们可以把E-mail发给电冰箱、 电视机等家用电器, 对它们进行控制, 和它们进行信息交流。开始, 准备采用C++,但C++太复杂, 安全性差, 最后基于C++开发一种新的语言Oak,Oak是一种用于网络的精巧而安全的语言, Sun公司此投标一个交互式电视项目, 但结果被SGI打败。 可怜的Oak几乎无家可归, 恰巧这时Mark Ardreesen开发的Mosaic(马塞克)和Netscape(网景浏览器)启发了Oak项目组的成员。他们用一种全新的语言编写了一款浏览器,得到了Sun公司首席执行官Scott McNealy的支持。在一次几位该成员组的会员在一家名为“爪蛙”咖啡的店里正在讨论给这个新的语言取什么名字时,有一个人灵机一动说:“就叫Java怎样”, 得到了其他人的赞赏, 于是, Java语言就诞生了。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oNOxdcDQ-1636265335018)(403.png)]

Java语言是美国Sun公司(stanford University Network),在1995年推出的高级编程语言。所谓编程语言是计算机的语言,人们可以使用编程语言对计算机下达命令,让计算机完成人们需要的功能。

1995年5月23日,Java语言正式诞生。

1996年1月,第一个JDK-JDK1.0诞生。

1996年4月,10个最主要的操作系统供应商申明将在其产品中嵌入Java技术。

1.2 java版本

Java 1.0~Java1.4时期

第一个版本的JDK于1996年1月23日发布,代号Oak,是为了纪念其前身。而真正稳定的JDK版本为1.0.2,被称为JAVA 1.0

之后在1998年12月8日推出Java1.2,加入了Collections框架等。

在2000年5月8日推出Java1.3,2002年2月6日推出Java1.4。

Java 5

Java1.5确实是一次重要的变革了。加入了泛型、自动装箱、注释处理、可变参数函数、强化for each 循环。 并且修改了命名,将Java1.5改为了Java 5。

Java 6~9

2006年12月,Java SE 6版本发布,代号Mustang。主要特点是支持脚本语言、JDBC4.0、Java编译API并整合了Web服务。

2011年7月

Java SE 7.0版本发布,代号Dolphin。这个版本距上次发布有5年之久,并且只有这个版本花费了这么久。主要特点是支持动态语言、Java nio包、多重异常处理、try with resourece功能和诸多小的增强。

Java 8 于2014年3月18日发布,包含了一些原本被项目在 Java 7却延迟的功能.

Java 9 在2017年9月21日终于发布,又多了一些激动人心的功能和优化。

目前java版本已经更新到17

https://www.oracle.com/java/technologies/downloads/

1.3 java特点

Java 语言的风格很像 C 语言和 C++ 语言,是一种纯粹的面向对象语言,它继承了 C++ 语言面向对象的技术核心,但是拋弃了 C++ 的一些缺点,比如说容易引起错误的指针以及多继承等,同时也增加了垃圾回收机制,释放掉不被使用的内存空间,解决了管理内存空间的烦恼。

Java 语言是一种分布式的面向对象语言,具有面向对象、平台无关性、简单性、解释执行、多线程、安全性等很多特点,下面针对这些特点进行逐一介绍。

1. 面向对象

Java 是一种面向对象的语言,它对对象中的类、对象、继承、封装、多态、接口、包等均有很好的支持。为了简单起见,Java 只支持类之间的单继承,但是可以使用接口来实现多继承。使用 Java 语言开发程序,需要采用面向对象的思想设计程序和编写代码。

2. 平台无关性

平台无关性的具体表现在于,Java 是“一次编写,到处运行(Write Once,Run any Where)”的语言,因此采用 Java 语言编写的程序具有很好的可移植性,而保证这一点的正是 Java 的虚拟机机制。在引入虚拟机之后,Java 语言在不同的平台上运行不需要重新编译。

Java 语言使用 Java 虚拟机机制屏蔽了具体平台的相关信息,使得 Java 语言编译的程序只需生成虚拟机上的目标代码,就可以在多种平台上不加修改地运行。

3. 简单性

Java 语言的语法与 C 语言和 C++ 语言很相近,使得很多程序员学起来很容易。对 Java 来说,它舍弃了很多 C++ 中难以理解的特性,如操作符的重载和多继承等,而且 Java 语言不使用指针,加入了垃圾回收机制,解决了程序员需要管理内存的问题,使编程变得更加简单。

4. 解释执行

Java 程序在 Java 平台运行时会被编译成字节码文件,然后可以在有 Java 环境的操作系统上运行。在运行文件时,Java 的解释器对这些字节码进行解释执行,执行过程中需要加入的类在连接阶段被载入到运行环境中。

5. 多线程

Java 语言是多线程的,这也是 Java 语言的一大特性,它必须由 Thread 类和它的子类来创建。Java 支持多个线程同时执行,并提供多线程之间的同步机制。任何一个线程都有自己的 run() 方法,要执行的方法就写在 run() 方法体内。

6. 分布式

Java 语言支持 Internet 应用的开发,在 Java 的基本应用编程接口中就有一个网络应用编程接口,它提供了网络应用编程的类库,包括 URL、URLConnection、Socket 等。Java 的 RIM 机制也是开发分布式应用的重要手段。

7. 健壮性

Java 的强类型机制、异常处理、垃圾回收机制等都是 Java 健壮性的重要保证。对指针的丢弃是 Java 的一大进步。另外,Java 的异常机制也是健壮性的一大体现。

8. 高性能

Java 的高性能主要是相对其他高级脚本语言来说的,随着 JIT(Just in Time)的发展,Java 的运行速度也越来越高。

9. 安全性

Java 通常被用在网络环境中,为此,Java 提供了一个安全机制以防止恶意代码的攻击。除了 Java 语言具有许多的安全特性以外,Java 还对通过网络下载的类增加一个安全防范机制,分配不同的名字空间以防替代本地的同名类,并包含安全管理机制。

Java 语言的众多特性使其在众多的编程语言中占有较大的市场份额,Java 语言对对象的支持和强大的 API 使得编程工作变得更加容易和快捷,大大降低了程序的开发成本。Java 的“一次编写,到处执行”正是它吸引众多商家和编程人员的一大优势。

1.4 java开发方向 1. Java SE

Java SE(Java Platform Standard Edition,Java 平台标准版)以前称为 J2SE,它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的 Java 应用程序。Java SE 包含了支持 Java Web 服务开发的类,并为 Java EE 提供基础,如 Java 语言基础、JDBC 操作、I/O 操作、网络通信以及多线程等技术。图 1 所示为 Java SE 的体系结构。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UXIoECS1-1636265335021)(403.png)]

2. Java EE

Java EE(Java Platform Enterprise Edition,Java 平台企业版)以前称为 J2EE。企业版本帮助开发和部署可移植、健壮、可伸缩且安全的服务器端 Java 应用程序。Java EE 是在 Java SE 基础上构建的,它提供 Web 服务、组件模型、管理和通信 API,可以用来实现企业级的面向服务体系结构(Service Oriented Architecture,SOA)和 Web 2.0 应用程序。

3. Java ME

Java ME(Java Platform Micro Edition,Java 平台微型版)以前称为 J2ME,也叫 K-JAVA。 Java ME 为在移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。

Java ME 包括灵活的用户界面、健壮的安全模型、丰富的内置网络协议以及对可以动态下载的联网和离线应用程序。基于 Java ME 规范的应用程序 只需编写一次就可以用于许多设备,而且可以利用每个设备的本机功能。

二.java开发环境的组成 2.1 jvm虚拟机

JVM 是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。

2.2 JRE

Java运行环境(Java Runtime Environment,简称JRE)是一个软件,由SUN微系统所研发,JRE可以让计算机系统运行Java应用程序(Java Application)。JRE的内部有一个Java虚拟机(Java Virtual Machine,JVM)以及一些标准的类别函数库(Class Library)。

2.3 jdk

java development kit

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。(电工的工具包钳子,螺丝刀,欧姆表。。。 )jdk中自带有jre。

2.4 jdk的安装(oracle官网下载jdk安装包)

Plain Text

约定:

. 以后任何安装路径都不要有中文路径

1. 以后我们的软件统一装到某个盘的某个文件夹中 E:app

2. 我们安装完成之后 又弹出一个框 这是提示我们安装jre,Jdk安装完成之后 已经有jre了 所以 这个地方取消安装

3. 安装完成jdk之后 在jdk文件夹中

​ Bin 这里面是java的执行文件

​ Include 这里面导入c和c++的一些代码

​ Jre java的运行环境

​ Lib 资源库

4. 配置jdk的环境变量(可以理解成告诉你的电脑 我们安装了jdk 我们要开发java 并且 jdk安装到哪了)

下载的是版本11

2.4 安装

无脑下一步即可

2.5 环境配置

JAVA_HOME

D:Program FilesJavajdk1.8.0_172

ClassPath:编译的时候如果需要依赖其他类去哪找 默认是当前.

%JAVA_HOME%= D:Program FilesJavajdk1.8.0_172

.;%JAVA_HOME%lib;%JAVA_HOME%libtools.jar

为了命令提示符下的:java javac命令可用 bin文件是可执行文件

path 路径配置

%JAVA_HOME%bin

%JAVA_HOME%jrebin

三 HelloWorld入门程序 3.1 程序开发步骤说明

开发环境搭建完成后,可以开始开发我们的第一个java程序了。

Java程序开发三步走:编写,编译,运行

解释性:脚本

编译型:

XXX.java–编译–>XXX.class

javac.exe :编译器 javac 编译命令

java.exe :解释器 java 运行命令

3.2 编写Java源程序

1.新建一个文本文档文件,其中编写以下代码

Java

public class HelloWorld{

​ public static void main(String[] args){

​ System.out.println(“Hello World java!!!”);

​ }

}

注意:类名要跟文件名完全一致。要遵循大驼峰命名。规定。

3.3 使用idea工具编写代码

1.安装idea

无脑下一步

2.创建项目

3.运行项目

3.4 java 注释

单行注释

多行注释

四.常量 4.1 概述

常量:是指在java程序运行期间固定不变的数据

4.2 分类
类型含义数据类型
整数所有的整数0,1,567,-9
浮点数所有的小数0.0,-0.1,3.55
字符单引号引起来,只能写一个字符,必须有内容‘a’ , ’ ’ , ‘好’
字符串双引号引起来,可以写多个字符,也可以不写“A”, “Hello” , “你好” ,""
布尔只有两个值,流程控制语句中使用true, false
空常量只有一个值(引用数据类型讲解)没有任何数据null

常量命名:全大写+下划线字母命名

练习:演示打印输出所有的类型

五.变量和数据类型 5.1 变量

​ 1.概述:程序中可以改变的量称为变量,内存中最小的存储单元

​ 为什么用变量?间接的思想,间接的越多,证明程序越优秀!

​ 数学中可以使用字母代替数字的方式运算,例如x=1+5或者6=x+5;程序中也是一样是的,相当于一个容器,内部可以存储数据。Java中要求一个变量每次只能保存一个数据,必须明确保存的数据类型。

​ 定义变量的格式:

​ 数据类型 变量名 ;

变量名=值;	

Plain Text

int a;

a = 10;

数据类型 变量名 =值;

Plain Text

int b = 20;

public class Demo02 {

​ public static void main(String[] args) {

​ //年龄

​ int age; //定义一个int类型的变量

​ age = 10;//给age赋值在内存中开辟一块内存空间 起名为age 并且这块内存空间中只能存储int类型的数据

​ //int a,b,c;//同时定义多个变量

​ int a=10,b=8,c=9; //定义变量的同时,初始化

​ System.out.println(age);

​ }

}

变量就是一个标识符。

命名规则:

硬性要求:

1.必须以字母、_、$开头。

​ 2.后边可以跟数字、字母_或者$

3.变量名中间不能有空格

4.不能用关键字。也不能用预留字

a1?- a 1? a1a ---- $1— #1 1a

软性要求:

  1. 类名首字母大写,后边的所有单词首字母都大写。MyName----大驼峰

  2. 变量名首字母小写,后边所有单词首字母大写。myName----小驼峰。

  3. 常量名:所有都大写,多个单词之间用_。MY_NAME

  4. 知名知意。

注意:

  1. 变量必须初始化后才能使用

  2. 不能有同名变量

  3. 在该个类型的变量中只能存储该类型的数据。

  4. 可以同时定义多个变量并赋值(但是,不推荐使用!)

5.2 数据类型

声明:数据类型 变量名 = 初始值;

背住:

基本数据类型:

​ 四类八种:

​ 整型 整数 byte short int long

​ 浮点型 小数 float double

​ 字符型 一个字符 char

​ 布尔型 boolean

引用数据类型:

​ String字符串 数组,函数,对象 Enum枚举

分类:

整数类型变量

  • 整型类变量用来存储整数数值,即没有小数部分的值

整数类型分四种不同的类型:

  • 字节型(byte)、短整型(short)、整型(int)默认、长整型(long)

为什么java中要整四个类型表示整数?

因为不同的类型 所占的内存大小不一样,那么存储的范围也就不一样。

Java

// 右侧不能超出左侧的数据范围

​ byte a = 124;

​ System.out.println(“a:”+a);

​ short b = 2560;

​ System.out.println(“b:”+b);

​ int c = 2000;

​ System.out.println(“c:”+c);

​ double d = 30000000;

​ System.out.println(“d:”+d);

浮点类型

  • 浮点类型分为两种:单精度浮点(float)、双精度浮点(double)

  • double型所表示的浮点数比float型更精确;浮点数的默认类型为double类型。

  • 小数默认double 如果非要用float 必须加上 F 的后缀

字符类型

  • 字符类型变量用于存储一个单一字符,Java中用char表示。

  • Java中,每个char类型的字符变量都会占用2个字节。

  • char类型的变量赋值时,需要英文的单引号’’把字符括起来,如’a’。

char类型的变量赋值范围是0~65535内的整数。

char a = ‘中’;

面试题:char类型能存储汉字吗?

​ 能,因为一个汉字是两个字节

  • 任何字符在内存中都是以数字的形式存储的。

注意事项:

​ 1.字符串是引用数据类型

​ 2.浮点型可能只是一个近似值,并非精确的值

​ 3.数据范围与字节数不一定相关,

​ 例如float 数据范围比long更加广泛,但是float是4字节,long是8字节

​ 4.浮点数默认double类型,如果一定要使用float类型,需要加上一个后缀 F。

​ 如果是整数,默认为int类型,如果一定要使用long类型,需要加上一个后缀L表示long类型。

​ 后缀推荐使用大写字母。

Boolean

布尔类型变量用来存储布尔值,在Java中用boolean表示,boolean类型的变量只有两个值,即true和false,默认值为false。每个boolean占8位。

Java

boolean flag = true;

System.out.println(“flag:”+flag);

变量使用时的注意事项:

变量就是一个标识符。

命名规则:

硬性要求:

1.必须以字母、_、$开头。

​ 2.后边可以跟数字、字母_或者$

3.变量名中间不能有空格

4.不能用关键字。也不能用java的保留字

软性要求:

  1. 类名首字母大写,后边的所有单词首字母都大写。MyName----大驼峰

  2. 变量名首字母小写,后边所有单词首字母大写。myName----小驼峰。

  3. 常量名:所有都大写,多个单词之间用_。MY_NAME

  4. 见名知意。

1.如果创建多个变量,那么变量之间的名称不可以重复。

2.对于float和long类型来说,字母后缀F和L不能丢掉。

3.变量右侧的数据值不能超过左侧类型的范围。

4.变量一定要赋值*(初始化)后才能使用。不赋值不能直接使用。

5.变量的使用不能超出作用域的范围。

​ 作用域: 从定义变量的一行开始,一直到直接所属的大括号结束为止。

6.可以通过一个语句来创建多个变量,但是不推荐使用。

六.运算符

算术运算符:+(字符串拼接运算) - * / % ++ – ;

++ – 一元运算符

​ 1.如果直接使用,前置++跟后置++没有区别

​ 2.如果用于 赋值 js中那一套。

关系(比较)运算符:>= <= > < !=;

==:

1.如果是基本数据类型比较值。

2.如果是引用数据类型 比较的内存的地址值!

​ 他的结果一定是一个boolean值,true/false,如果是连续判断不能连着写。

逻辑运算符:只能使用boolean值,条件可以连续写

​ &&(并且) 所有条件全都满足才是true,否则false

​ ||(或者) 至少有一个是true就是true否则false

​ ! (取反) 直接相反的结果

赋值运算符:=, += , -=, *= ,%= ,/= 复合赋值运算符会隐含强制类型转换。

条件运算符:? : 三目表达式

​ 格式:数据类型 变量名称 = 条件判断 ?表达式A : 表达式B;

​ *(表达式A和表达式B 要同时符合左侧的数据类型)

​ 流程:首先判断条件是否成立

​ 如果成立 表达式A

​ 如果不成立 表达式B

​ 一元,二元,三元 元就代表需要一个数据

优先级

() ++ ,-- 》 算术运算符 --》关系运算符–》逻辑运算符–》赋值运算符–》条件运算符

  • ++

  • 条件运算符:

七.类型转换

Java中要求参与计算的数据,必须保证数据类型的一致性,如果数据类型不一致将发生类型的转换。

  • 隐式转换(自动)

  • 特点:自动完成,不需特殊处理

  • 规则:范围从小–>大

  • 显式转换(强制)

  • 特点:需要数据处理,不能自动进行

  • 规则:小范围 变量名 = (范围小的类型)范围大的数据

Java

​ byte a = 10;

​ int b = a;

​ //1.自动转换

​ //此时 a是Byte b 是int类型 —》由小范围 ——-》大范围

​ System.out.println(b);

​ int c = 10;

​ byte c1 = (byte) c;

​ //此时 c是 int c1 是byte --> 此时放不下

​ //2.如果非要放 强制类型转换

​ // 由大范围 ——-》小范围

​ // 小数据类型 变量 = (左边的小数据类型) 大类型的值。

​ //注意:强制类型转换有可能会造成 精度丢失 和 数据溢出

​ //精度丢失

​ double d1 = 3.141592657678686876;

​ float d2 = (float) d1;

​ System.out.println(“d2 :”+d2);

​ int d3 = (int)d2;

​ System.out.println(“d3 :”+d3);

​ //数据溢出

​ long l1 = 7000000000L;

​ int l2 = (int)l1;

​ System.out.println("l2: "+l2);

}

两个数据运算,得到的结果会自动的提升为两个数据中较大的类型。

进行运算的时候 结果自动转化为类型比较大的那个

int > short 结果是 int类型 如果要写成short类型 强制类型转换

八、Scanner类,控制台的输入

是java提供给我们的类,我们只需要直接用就可以了。

1.创建一个对象

Java

Scanner scanner = new Scanner(System.in)

//

面试题:

请问:下边的代码执行的结果是什么?

short a = 5;

a = a+5;

System.out.println(a);

报错

a是一个short类型 5是默认的类型int

a=a+5 是将一个int类型的值赋给short所以报错

请问下边代码执行的结果是?

short a = 5;

a+=5;

System.out.println(a);

能够正确的运行

a+=5 是默认进行数据类型的强制转换

a=a+5; 默认执行的是a=(short)(a+5)

补充:

二进制的加法

1+0=1

0+1=1

1+1=0 进位1

乘法

0*0=0

1*0=0

0*1=0

l1 = 7000000000L;

​ int l2 = (int)l1;

​ System.out.println("l2: "+l2);

}

两个数据运算,得到的结果会自动的提升为两个数据中较大的类型。

进行运算的时候 结果自动转化为类型比较大的那个

int > short 结果是 int类型 如果要写成short类型 强制类型转换

八、Scanner类,控制台的输入

是java提供给我们的类,我们只需要直接用就可以了。

1.创建一个对象

Java

Scanner scanner = new Scanner(System.in)

//

面试题:

请问:下边的代码执行的结果是什么?

short a = 5;

a = a+5;

System.out.println(a);

报错

a是一个short类型 5是默认的类型int

a=a+5 是将一个int类型的值赋给short所以报错

请问下边代码执行的结果是?

short a = 5;

a+=5;

System.out.println(a);

能够正确的运行

a+=5 是默认进行数据类型的强制转换

a=a+5; 默认执行的是a=(short)(a+5)

补充:

二进制的加法

1+0=1

0+1=1

1+1=0 进位1

乘法

0*0=0

1*0=0

0*1=0

1*1=1

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/439718.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号