java 基础语法之Java介绍和基础语法(01)
本人还是个Java小菜鸟,正在成长期,如有不规范的地方请大佬勿喷!!!
Java特性(特点)
一种纯面向对象的编程语言。
- 一种与平台无关(跨平台)的语言。(它提供了在不同平台下运行的解释环境)
- 一种健壮的语言,吸收了 C/C++语言的优点(取其精华去其糟粕)。
- 有较高的安全性,有些要出错的地方不允许发生而是提前告知。(自动回收垃圾,强制类型检查,取消指针)
Java跨平台原理
跨平台意思就是在这个平台(window)写的代码可以在另一个平台(MacOs)上运行。
首先Java代码由编译器编译成Java字节码文件(.class),而字节码文件运行在jvm上,又因为对于不同的平台os,有不同的jvm,所以每一个os都可以运行Java字节码文件,也就可以运行Java程序。
根据上术所言可以看出jvm的重要性,我们可以这样看待jvm------一个可运行Java字节码文件的虚拟操作系统。
- 它可以实现Java字节码与操作系统之间的通信。
- jvm屏蔽了底层运行平台的差别,实现一次编译,随处运行。
- 对于不同的os有不同的jvm。
垃圾回收器GC
- 不再使用的内存空间应当进行回收-垃圾回收。
- 在 C/C++等语言中,由程序员负责回收无用内存;而Java 语言消除了程序员回收无用内存空间的责任。
- 程序在运行中,JVM 提供了一种系统线程(就是GC)跟踪存储空间的分配情况。并在 JVM 的空闲时,检查并释放那些可以被释放的存储空间。
- 垃圾回收器在 Java 程序运行过程中自动启用,程序员无法精确控制和干预。
JVM、JRE和JDK的区别:
JVM(Java Virtual Machine):java虚拟机,用于保证java的跨平台的特性。
java语言是跨平台,jvm不是跨平台的。
JRE(Java Runtime Environment):java的运行环境,包括jvm+java的核心类库。
JDK(Java Development Kit):java的开发工具,包括jre+开发工具(各种API)
环境变量path和classpath的作用是什么?
(1)path是配置Windows可执行文件的搜索路径,即扩展名为.exe的程序文件所在的目录,
用于指定DOS窗口命令的路径。
(2)Classpath是配置class文件所在的目录,用于指定类搜索路径,JVM就是通过它来寻找该类的class类文件的。
语法
注释 :java 程序有三种注释方式
单行注释://注释
多行注释:/注释/
文档注释:/*注释/
语法规则:
java 是严格区分大小写的
java 是一种自由格式的语言
代码分为结构定义语句和功能执行语句
功能执行语句的最后必须用分号结束
变量
变量实质就是系统为程序分配的一块内存单元,作用是用来存储各种类型的数据。由于该存储单元中的数据可以发生改变,因此得名为"变量"。
- 变量分类:
-
按所属的数据类型划分:
- 基本数据类型变量
- 引用数据类型变量
-
按被声明的位置划分:
- 局部变量:方法或语句块内部定义的变量
- 成员变量:方法外部、类的内部定义的变量
特别注意:类的外面不能有变量的声明
-
类变量 和 成员变量
-
类变量
- 静态变量,只属于类
- 类变量也声明在类中,方法体之外,但必须声明为static类型。
- 静态变量,只属于类
-
成员变量
- 非静态变量,属于类的某个实例对象
- 成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候被实例化。成员变量可以被类中的方法、构造方法和特定的语句块访问。
- 非静态变量,属于类的某个实例对象
数据类型
由于变量记录的数据内容大小不同, 导致所需的存储单元大小不同,在 Java 语言中使用数据类型的概念加以描述 。
(加以描述的是对这个变量存什么样的数据,数据的大小是多少等等,例如水杯和钱包可以理解为数据类型,都是存储数据的,那水杯存储什么样的数据?钱包呢?就要用数据类型对变量就行补充说明,奥,水杯存储水而钱包存储钱,水杯存半杯水而钱包存500元。)
字节是计算机信息技术用于计量存储容量的一种计量单位,作为一个单位来处理的一个二进制数字串,是构成信息的一个小单位。Java 中的字节是八位的字节,即它包含八位的二进制数。
数据类型的分类:
而Java中有以下的8种基本数据类型:
类型 | 占用内存 | 值范围(含边界值) |
---|---|---|
整数型(int) | 4 字节 | -2 147 483 648 ~ 2 147 483 647(稍大于 20 亿) |
短整数型(short) | 2 字节 | -32 768 ~ 32 767 |
长整数型(long) | 8 字节 | -9 223 372 036 854 775 808L ~ 9 223 372 036 854 775 807L |
字节型(byte) | 1 字节 | -128 ~ 127 |
字符型(char) | 2 字节 | ‘ \u0000 - u\ffff ’ |
浮点型(float) | 4 字节 | -3.40292347E+38-3.40292347E+38 |
双 精 度 型(double) | 8 字节 | -1.79769313486231570E+308-1.79769313486231570E+308 |
布尔型(boolean ) | 1 字节 | true 或 false |
标识符
Java 对包、类、方法、参数和变量等要素命名时使用的字符序列称为标识符。 规则 如下:
- 只能由字母(a-z,A-Z),数字(0-9),下划线(_)和美元符号($)组成
- 不能以数字开头
- 不能与关键字重名
- 严格区分大小写
- 示例:
- 合法标识符:HelloWord、username2、user_name、_userName、$abc_123
- 非法标识符:2UserName、user#Name、Hello World、class
类命名规范
首字母大写,后面每个单词首字母大写(大驼峰式)。
方法命名规范
首字母小写,后面每个单词首字母大写(小驼峰式)。
变量名规范
首字母小写,后面每个单词首字母大写(小驼峰式)。
…
…
类型转换
- boolean 类型不能转换成任何其它数据类型。
- 自动类型转换:容量小的类型自动转换成容量大的数据类型
- byte,short,int -> float ->long ->double
- byte,short,int 不会互相转换,它们三者在计算时会转换成 int 类型
- byte,short,int -> float ->long ->double
- 强制类型转换:容量大的类型转换成容量小的数据类型时,要加上强制转换符
- long l = 100L;
int i = (int)l;
- long l = 100L;
有可能造成精度降低或数据溢出,使用时要小心。
关键字大全
Java 中有一些赋予特定的含义,有专门用途的字符串称为关键字(keyword)。全部是小写。
学习 内容。