第二章 基本语法
IDE
IDE 集成开发环境,是用于提供程序开发环境的应用程序,一般包括代码编辑器,编译器,调试器和图形用户界面等工具。
常用的Java开发工具有:
IntelliJ IDEA 捷克的一家公司 收费的
Eclipse IBM公司开发的 现在捐给eclipse基金会
注释
1.对程序功能的说明
2.以某种特定符号做标记
3.程序在运行过程中不会执行注释
Java语言有三种注释方式
-
//… 单行注释
-
/* … */ 多行注释
-
/**
*
*/ 文档注释 用于类,方法,属性功能进行说明,调用时可以提示其功能介绍
关键字
定义:被Java语言赋予了特殊含义,用来修饰例如类,属性,方法。
特点:关键字中所有字母都要小写。
保留字
现有Java版本尚未使用,但以后版本可能会作为关键字使用。 预留的,命名时不能使用。
例如:goto const
标识符
Java中对变量,类,方法等命名时使用的字符序列。
通俗讲:自己可以命名的名称。 (见名知意)
1.由26个英文字母大小写,0-9,_ 或 $ 组成
2.数字不可以开头
3.不可以使用关键字和保留字,但可以包含关键字和保留字。
4.Java中严格区分大小写,长度无限制。
5.标识符不能包含空格。
变量
程序中基本存储单元,在运行过程中值可变。
本质上变量就是内存中的一块区域,通过变量名访问。
在使用前变量必须赋值,才能使用。
其要素包括变量名,变量类型。
变量分类:
从数据类型角度分:
基本类型变量,引用类型变量
从位置分:
成员变量/类的属性(定义在类中)
局部变量(定义在方法中)
Java数据类型
java语言是一种强数据类型语言,每个数据必须指定类型,指导jvm分配内存空间。
数据类型:
1.基本类型:只有8种,便于使用。
2.引用类型:除了8种基本类型,其余都是引用类型。用类作为类型的,数组是引用类型。
Java基本数据类型
整数类型
byte 1字节(1byte(1个字节)==8bit)
short 2字节
int 4字节
long 8字节
浮点类型
float 4字节 由于在计算机中的计算方式不同,4字节浮点大于4字节,8字节的整数。
浮点数默认值为double类型,声明float值需要加 f/F float f = 10.5f;
计算机中小数是以近似值方式存储的。
布尔boolean逻辑型
逻辑值 只能使用 true/false
char字符型
utf-8是一种可变长度的编码表
用来表示通常意义上的”字符“,字符是用单引号括起来的单个字符。
char 2字节(可参与运算,使用字符对应的ASCII码)
计算机底层都是二进制 计算机如何表示字符
编码表 人为定义的
字符在不同的编码表中有一个对应的十进制数,最终在计算机上使用这个数存储。
最早的编码表ASCII只能表示英文。
不同的国家就定义自己国家的编码 例如:中国 GBK GB2312
后来,就诞生了unicode编码表,里面包含全球各个国家的文字字符。
基本数据类型转换
8种基本类型之间除了布尔型,其余7种之间都可以转换。
默认转换
容量小的类型默认转换为容量大的数据类型。
容量大的可以包含下容量小的。
参与混合运算时,小容量会自动转换为大容量。
强制转换
容量大的转换容量小的。
long x = 10000L;
int y = (int)x; 强制将x转换int
(会有问题,1.溢出 2.精度降低)
运算符
算数运算符:+,-,*,/,%,++,–
字符串连接:+
比较运算符
==,!= 基本类型数值之间的比较
(>,<,>=,<=) 数值与数值
逻辑运算符
& 逻辑与 | 逻辑或 !逻辑非
&& 短路与 ||短路或 ^逻辑异或
& | ^ 左右操作数为逻辑值(true/false) 否则为位运算
& false决定
| true决定
赋值运算符
=
注意: = 两边类型与值相匹配
基本数据类型转换:默认转换,强制类型转换
+=,-=,*=,/=,%=
short s = 3; 3是int,但是虚拟机支持将int类型3赋给short,byte
s = s+2; x (报错)
s+ = 2; √(隐式转换)
= 赋值 == 等于
条件运算符
(条件表达式)?表达式1:表达式2
条件表达式结果为true 执行表达式1,否则执行表达式2
位运算
日常开发中位运算不常用,但是很巧妙的使用位运算可以大量减少运行开销,优化算法。
<< 左移 空位补0,被移位的高位丢弃,空缺位补0.
(>>) 右移
(>>>) 无符号右移 不需关心高位上的符号(如果影响到了符号位,只需在符号位补0)
(二进制中左右移)
& 二进制位进行&运算,只有1&1时结果时1,否则是0.
| 只有0|0时为0,否则为1.
^ 1^1 =0,0^0=0
-
1^0 = 1, 0^1=1
- 正数取反,各二进制码按补码各位取反
负数取反,各二进制码按补码各位取反