JavaSe基础---语法
第1章Java语言概述
1.1、java语言概述
- 计算机语言:人与计算机之间进行信息交流沟通的一种特殊语言
- Java语言:是美国Sun公司(Stanford University Network)在1995年推出的计算机语言
- java之父:詹姆斯·高斯林(James Gosling)
- 重要事件:2009年,Sun公司被甲骨文公司收购,所以我们现在访问oracle官网即可:https://www.oracle.com
1.2、java应用版本的区分
2005 年,Java 诞生十周年,从之前的J2SE/J2EE/J2ME 分别改名为:JaveSE/JavaEE/JavaME。
JavaSE 是Java 的标准版,是学习JavaEE 和JavaME 的基础,JavaEE 是企业版,JavaME 是微型版。
JavaSE:java基础语法+核心技术🤺
JavaEE:企业版
- 为我们提供了13项技术规范,这些技术规范其中都包含了例如:Web开发,数据库,JDBC开发,邮件开发……但是实际项目开发中,JavaEE(企业版),我们根本就不用!!!因为Java的类库,不仅仅只是第一方强大,很多第三方提供的类库更加的强大。如果说要使用JavaEE的类库,我们只学习使用两项规范。分别是servlet规范,以及jsp规范。
JavaME:微型版、游戏版 —>现在早就已经过时了
Java版本划分:
JavaSE 标准版 Java核心技术 必学
JavaEE 企业版 13项技术规范 servlet jsp
JavaME 微型版/游戏版 过时了 肯定不用
1.3、java语言特性
简单性(相对于C和C++):Java 语言底层采用C语言实现,相对于C来说,Java 是简单的,在Java语言中程序员不需要再操作复杂的指针(指针的操作是很复杂的),继承方面也是只支持单继承(C语言是一种半面向对象的编程语言,支持多继承,多继承会导致关系很复杂),在很多方面进行了简化。
面向对象:Java 中提供了封装、继承、多态的面向对象机制。
健壮性:在C程序当中的无用数据/垃圾数据需要编程人员手动释放,当忘记释放内存的时候,会导致内存使用率降低,影响程序的执行;在Java 语言当中这种问题得到了解决,因为Java 语言引入了自动垃圾回收机制(GC 机制),Java 程序启动了一个单独的垃圾回收线程,时刻监测内存使用情况,在特定时机会回收/释放垃圾数据,这样会让内存时刻处于最好的状态。
**多线程:**Java 语言支持多个线程同时并发执行,同时也提供了多线程环境下的安全机制。
可移植性/跨平台:
a. 平台:指的是操作系统
- Windows
- MacOS
- Linux
b. 跨平台
- Java程序不需要进行任何修改,就可以在任意操作系统上运行。(注意:不是所有语言都具备这样的特征。例如C#只能在Windows上运行)
c. 实现跨平台的原理
编写的Java代码并不是直接运行在操作系统当中的。而是运行在操作系统安装的JVM虚拟机中。每一个操作系统都会对应各自版本的JVM虚拟机
1.4、JDK、JRE、JVM 三者关系
JDK:JDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK)。它是每一个 Java 软件开发人员必须安装的。JDK 安装之后,它会自带一个 JRE,因为软件开发人员编写完代码之后总是要运行的。
JRE:JRE(Java Runtime Environment,Java 运行环境),运行JAVA 程序所必须的环境的集合,包含JVM 标准实现及Java 核心类库。
- JVM:JVM 是Java Virtual Machine(Java 虚拟机)的缩写,JVM 是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM 是实现Java 语言跨平台的法宝。
- 如下图所示:
- JVM:JVM 是Java Virtual Machine(Java 虚拟机)的缩写,JVM 是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM 是实现Java 语言跨平台的法宝。
JDK、JRE、JVM 之间存在这样的包含关系:JDK 包含JRE,JRE又包含JVM。换句话说,只要安装了JDK,JRE 和JVM 则自动就安装了。
JDK: Java开发工具包。做Java开发,必须安装,安装JDK,自带安装JRE
JRE: Java运行环境。JVM虚拟机 + Java核心类库
JVM:Java虚拟机,作用运行Java程序可实现跨平台
1.5、初步了解java的加载与执行
- 在编写第一个 Java 程序之前,我们应当对 Java 的加载与执行提前有一个简单的了解
如图所示:
第2章Java基础语法
2.1、注释
作用:解释说明,在程序中不运行,增加程序的可读性
注释的分类:
(1) 单行注释 //
(2) 多行注释 / 注释内容 /
(3) 文档注释 /** 注释内容 */
2.2、关键字
(1)关键字在Java中具有一定特殊含义,全部小写,如:class public static void ………
(2)注意:在EditPlus中,编写Java源文件时没有更改主题,则蓝色的字体都是Java中的关键字
(3)Java中的关键字,如图所示:
2.3、标识符
标识符就是名字,对类名、变量名称、方法名称、参数名等修饰
标识符的命名规则:
- 标识符可以由字母,数字,下划线(_) , 美元符($)构成 (注意中文标识符)
- 数字不能开头
- 区分大小写
- 不能使用关键字
- 注意:以上几点需要大家在以后不断的练习中进行掌握,不需要死记硬背
标识符的命名规范:
- 建议:标识符见名知意,也就是编写单词,如:name age
- 建议:类名每个单词首字母大写,如:HelloWorld Homework Student
- 建议:使用驼峰命名规则
- 建议:比较长的单词也可以适当以缩写形式呈现(没有具体规则)
- 注意:中文的标识符是可以使用的,但是开发中千万不要使用中文的标识符。
2.4、变量
2.4.1、字面量
- 字面量就是数据(文字信息/数值等 都是数据)例如:1234,true,”abc”,”你好”,3.14都是数据。在现实生活中每天都会接触到数据,例如:你今天的体重是 86Kg,你今天花了 500 元,买了个西瓜重量是8.6Kg,外面明明是晴天,你却说狂风暴雨,你说的是假话(false)。
以上这些具体的数据就是字面量。
2.4.2、变量
变量:
- 变量是用来存放以上字面量的容器
- 存放的数据是可以改变的,所以叫变量
变量的操作步骤
优化变量的操作步骤
常用的数据类型:
整数类型int
浮点类型double
字符串类型String
2.4.3、变量的分类
- 变量按声明的位置(作用范围)分为:
- 局部变量:在方法中声明的
- 成员变量:在方法外声明的,也就是在类中声明的变量。例如:
1 |
|
- 变量按数据类型分为:
- 基本数据类型变量:在内存中存放真正的值,如:int、double、char……..
- 引用数据类型变量:在内存中存放的是地址,如:String…
2.5、基本数据类型
2.5.1、基本数据类型概述
java中的数据类型包括两大类:一类是基本数据类型,一类是引用数据类型,基本数据类型又包括:
- 整数型:byte,short,int,long
- 浮点型:float,double
- 字符型:char
- 布尔型:boolean
补充:计算机存储的是二进制信息,也就是0和1(日常生活中使用十进制0—-9)计算机中以字节为单位存储和解释信息,规定一个字节由八个二进制位构成。
计算机存储单位:
8bit(位)———————— >1byte
1024byte —————- >1KB
1024KB —————— >1MB
1024MB —————– >1GB
1024GB —————— >1TB
PB、EB、ZB、YB、BB、NB、DB、CB…
2.6、字符编码
- 对于以上的八种基本数据类型来说,其中七种类型 byte,short,int,long,float,double,boolean计算机表示起来是很容易的,因为这七种类型底层直接就是数字,十进制的数字和二进制之间有固定的转换规则,所以计算机可直接表示和处理。但是大家别忘了,除了以上的七种数据类型之外,还有一种类型叫做字符型char,这个对于计算机来说表示起来就不是那么容易了,因为字符毕竟是现实世界当中的文字,而文字每个国家又是不同的。
- 最初的时候美国标准协会制定了ASCII 码,ASCII 码采用1 个字节编码,1 个字节可以表示256 种不同的形式(前面说过了),对于英文来说这个足够了,因为英文单词就是由26 个英文字母拼凑而成,大小写全部才52 个,再加上数字和标点符号也不会超过256 个。但ASCII 码对于中文来说那就不够了,因为汉字不止256个。
常见的 ASCII 码需要大家能够记住几个,在 ASCII 码中规定
‘a’对应 97,’b’对应98,以此类推,’A’对应65,’B’对应66,以此类推,‘0’字符对应48,’1’字符对应49。 - 在字符编码当中,有这样两个常见的术语需要大家了解一下:编码和解码,它们都是什么,我们拿字符’a’来解释一下:’**a’是97,97 对应的二进制是01100001,那么从’a’到二进制01100001的转换过程称为编码,从二进制 01100001 到’a’的转换过程称为解码。**大家一定要注意:编码和解码要采用同一种字符编码方式(要采用同一个对照表),不然会出现乱码。这也是乱码出现的本质原因。
- 在上世纪90 年代初,国际组织制定了一种字符编码方式,叫做Unicode 编码,这种编码方式统一了全球所有国家的文字,具体的实现包括:UTF-8,UTF-16,UTF-32 等。Java 为了国际化,为了支持所有国家的语言,所以Java 采用的编码方式为Unicode 编码。例如字符’中’对应的 Unicode 码是’\u4e2d’。在实际开发中几乎所有的团队都会使用 Unicode 编码方式,因为这种方式更通用,兼容性更好。Java 采用 unicode 编码,目前在实际的开发中大部分团队都会选择UTF-8 的编码方式。
2.7、数据类型
1 |
|
基本数据类型之间是存在固定的转换规则的,现总结出以下6 条规则,无论是哪个程序,将这6 个规则套用进去,问题迎刃而解:
- 八种基本数据类型中,除boolean 类型不能转换,剩下七种类型之间都可以进行转换;如果整数型字面量没有超出 byte,short,char 的取值范围,可以直接将其赋值给byte,short,char 类型的变量;
- 小容量向大容量转换称为自动类型转换,容量(以及转换规则)从小到大的排序为:byte < short(char) < int < long < float < double,其中short 和char 都占用两个字节,但是char 可以表示更大的正整数;
- 大容量转换成小容量,称为强制类型转换,编写时必须添加“强制类型转换符”(类型),但运行时可能出现精度损失,谨慎使用;
- byte,short,char 类型混合运算时,先各自转换成int 类型再做运算;未来的实际项目开发,不会出现byte,short,char的混合运算,对于整型的计算,一般我们直接将变量的类型声明为int就可以了,如果需求分析中确定int不够用,我们会使用long类型。
- 多种数据类型混合运算,各自先转换成容量最大的那一种再做运算。