Java语言基础
1、Java类
Java中“类”是程序组织的最基本单元。
Java程序是由一个或者多个“类”组成,类都应写在扩展名为.java的文本文件(Java源程序)中,一个源文件中最多只能由一个公共类,即每一个公共类都应该写在一个单独的Java源文件中,而且公共类的类名应该和文件名完全相同(不含文件扩展名)。
每个类编译后生成的.class的字节码(Bytecode)文件,在Java虚拟机中执行。
每个Java应用程序都应该有一个main方法,作为执行入口。
/**
*文件名为JavaExample.java,文件名与公共类名完全相同
*/
public class JavaExample{
/公共静态main方法作为程序入口,static关键字作为静态方法*/
public static void main(String []args){
System.out.printIn("A java program example!");//输出
}
}
运行结果:
A java program example!
- "/*文档注释/"所标识的注释块支持javadoc文档。
- public class表示公共类,可以被其他客户类访问。
- public static void main为公共的、静态的方法。公共方法是为了让java解释器能够调用此方法,static是因为调用main是还没有任何对象。
- 程序中每一条语句都用分号结束。
2、代码注释与规范
2.1 代码规范
- 代码不可写成这样:
- 代码应该有合适的注释:
2.2 代码注释
- 注释是对代码的解释和说明。
- 注释范围内的任何内容都不会被计算机编译。
- 注释的类别:
- 单行注释 //
- 多行注释 /* */
- 文档注释
3、变量和常量
3.1 标识符与关键字
标识符可以理解为一个名字,用来标识类名、变量名、方法名以及数组名等。
标识符由任意顺序的字母、下划线(_),美元符号($)和数字组成,并且第一个字符不能是数字,表示符不能是Java中的保留关键字。
Java的标识符区分大小写。
Java的标识符使用Unicode标准字符集,但是不要用中文来命名,不然换平台会乱码
-
标识符命名规范:
- 类名:通常使用名词,第一个字母必须大写,后续单词首字母大写。
- 方法名:动词。第一个字母小写,后续单词首字母大写。
- 变量:第一个单词首字母小写,后续单词首字母大写。
- 常量:所有字母钧大写。
- 单词的拼接:通常使用userLastName方式拼接单词,而不是user_Last_Name.
-
关键字
在Eclipse中变成紫色粗体字体的都是,都是关键字。
abstract boolean break byte
case catch char class
const continue default do
double else extends final
finally float for goto
if implements import instanceof
int interface long native
new package private protected
public return short static
strictfp super switch synchronized
this throw throws transient
try void volatile while
3.2 变量
变量是可以改变值的量。可以把变量理解成为一个“容器”,变量可以不断变换值。
- 变量声明:告诉编译器这个变量属于哪一种数据类型,这样编译器就知道分配多少空间给他。在声明变量的时候可以不必赋值,也可以直接赋初值。
- 变量命名
- 变量名必须是一个有效的标识符。
- 变量名不可以使用Java中的关键字。
- 变量名不能重复。
- 应选择有意义的单词作为变量名。
3.3 常量
在程序执行过程中一直不会改变的量称为常量。常量在整个程序过程中只能被赋值一次,如果常量被多次赋值,则会发生编译错误。
Java中常量声明需要指定数据类型和final关键字进行限定。常量名采用大写字母进行命名。
final double PI = 3.1415926; //声明double型常量PI并赋值
4、基本数据类型
Java中有8种基本数据类型来存储数值、字符和布尔值。
- 数值类型:整数:byte、short、int、long;浮点:float、double
- 字符类型:char
- 布尔类型:boolean
4.1 整数类型
- int型:占4个字节,32位bit。(为Java的默认的整数数据类型)取值范围:-2147483648~2147483647
- byte型:占1个字节,8位bit。取值范围:-128~127
- short型:占2个字节,16位bit。取值范围:-32768~32767
- long型:占8个字节,64位bit。long型在赋值的时候需要在数据的后面加上L或l.
4.2 浮点类型
- float型:占4个字节,32位bit。需要在小数后面加F或f.声明float型变量时如果不加F或f,系统会认为是double类型而出错。
- double型:占8个字节,64位bit。默认状态下小数点都是double型。
4.3 字符类型
字符类型char用于存储单个字符,占16位bit的内存空间。在声明字符型变量时,要以单引号表示,如’s’表示一个字符。
Java采用Unicode编码,可存储65536个字符。
- 转义字符:一种特殊的字符变量,以反斜线’'开头,后跟一个或多个字符。
\t : 制表符,用于Tab键
\b : 退格符,即Backspace键
\n : 换行符
\r : 回车符
\f : 换页符
\ : 反斜杠本身
’ : 单引号
" : 双引号
\ddd : 八进制字符,ddd表示字符的值
\uxxxx : 十六进制Unicode字符,xxxx表示字符的Unicode编码
4.4 布尔类型
布尔类型又称逻辑类型,只有false和true两个值。
布尔值不能与整数类型进行转换。
布尔类型通常被用在流程控制中作为判断条件。
5、数据类型转换
类型转换是将一个值从一种数据类型更改为另一种数据类型的过程。由两种类型:
5.1 隐式转换
从低级类型向高级类型的转换,系统将自动执行,程序员无须进行任何操作,这种类型的转换称为隐式转换,也可以称为自动转换。这种类型按精度从“低”到“高”排列的顺序为:byte<short<int(char)<long<float<double.
其中char类型比较特殊,它可以与部分int型数字兼容,且不会发生精度变化。
- 当级精度和高精度运算时,隐式转换自动提升精度
5.2 显式转换
高精度向低精度转换的场景采用显式转换。
显式转换可能会导致精度缺失。
语法如下:
(类型名)要转换的值
6、运算符
- 赋值运算符: 用于将值赋给变量,如 = 表示赋值运算,+= 表示加并赋值。
- 算术运算符: 用于执行基本的数学运算,+加法、-减法、*乘法、/除法和%取模(取余)等。+运算符也有拼接字符串的功能。
- 自增和自减运算符: 用于增加或减少变量的值,例如 ++ 表示自增,-- 表示自减。
自增和自减运算符摆放位置不同,增减的操作顺序也会随之不同。前置的是先自增或自减,然后参与表达式的运算;后置运算符是先进行表达式运算然后进行自增或自减。 - 关系运算符: 二元运算符,用于比较两个值的关系,关系运算符返回布尔值(true 或 false),用于条件判断。==等于、<小于、>大于、<=小于等于、>=大于等于、!=不等于
- 逻辑运算符: 用于执行逻辑运算,如逻辑与、逻辑或和逻辑非等。逻辑运算符通常用于布尔值的操作,它们返回布尔结果。例如,&& 表示逻辑与,|| 表示逻辑或,! 表示逻辑非。
- 位运算符: 用于执行位级别的操作,如按位与、按位或、按位异或和位移操作等。位运算符通常用于整数数据类型。例如,& 表示按位与,| 表示按位或,~取反、^异或,<< 表示左移、>>表示右移、>>>表示无符号右移。
- 复合赋值运算符:将赋值运算符和其他运算符合并成一个运算符来使用,从而实现两种运算符的效果。
运算符 | 说明 |
---|---|
+= | 相加结果赋予左侧 |
-= | 相减结果赋予左侧 |
*= | 相乘结果赋予左侧 |
/= | 相除结果赋予左侧 |
%= | 取余结果赋予左侧 |
&= | 与结果赋予左侧 |
= | 或结果赋予左侧 |
^= | 异或结果赋予左侧 |
<<= | 左移结果赋予左侧 |
'>>= | 右移结果赋予左侧 |
'>>>= | 无符号右移结果赋予左侧 |
- 三元运算符:条件表达式?值1:值2
- 圆括号:提升公式中计算过程的优先级。还有强制转换功能
- 运算符优先级