目录
1、安装IDE编辑器
在开始内容之前,先下载IDE,可以是Eclipse或STS,笔者这里选择STS
STS下载地址:https://spring.io/tools
根据自己的操作系统选择对应的进行下载,笔者是windows
下载后,放到指定文件夹
双击jar文件,或者使用解压软件解压
解压出sts-4.17.1.RELEASE文件夹后,就可以将原jar文件删除
进入解压后的sts-4.17.1.RELEASE文件夹
双击SpringToolSuite4.exe文件打开STS,或者将SpringToolSuite4.exe发送到桌面快捷方式,方便后续打开
可以选择一个电脑上已经有的文件夹,或者新建一个文件夹,作为工作区(Workspace,用来存放项目的地方),笔者新建一个文件夹作为工作区
勾选 Use this as the default and do not ask again,以后打开STS时就不会再提示选择工作区了,点击Launch,打开STS
STS使用
新建一个Java项目
项目名称是learn,java环境选择java8
这里也实现一个HelloWorld
关于编辑器的快捷键和代码提示后面会详细介绍,这里主要测试编辑器是否好用
打印Hello World! STS编辑器安装成功,后面的学习都是在STS上进行讲解
2、关键字和保留字
Java语言中一些具有特殊意义的单词被称为关键字(keyword),关键字不能用作变量名、方法名、类名和包名
Java关键字
abstract | assert | boolean | break | byte |
case | catch | char | class | const |
continue | default | do | double | else |
enum | extends | final | finally | float |
for | if | goto | implements | import |
instanceof | int | interface | long | native |
new | package | private | protected | public |
return | short | static | strictfp | super |
synchronized | switch | this | throw | throws |
transient | try | void | volatile | while |
Java保留字
上表关键字中,goto和const也被称为保留字,意思是Java现在还未使用这2个关键字,未来可能使用
3、标识符
Java程序中的变量、类、方法命名的符号称为标识符。Java语言中的标识符必须以字母、下划线(_)、美元符($)开头,后面可以跟任意数量的字母、数字、下划线(_)和美元符号($)。
标识符命名规则
(1)、必须以字母、下划线(_)或美元符号($)开头,余下的字符可以是下划线、美元符号或任何的字母或数字,长度不限
(2)、标识符不能是Java关键字或保留字
(3)、标识符不能包含空格
4、分隔符
在Java语言中,分号 ; 、大括号 {}、中括号 []、括号()、空格、点 . 具有特殊的分隔作用,被称为分隔符
5、数据类型
Java是强类型语言,即所有变量必须先声明,后使用;指定类型的变量只能接受与类型匹配的值
Java中数据类型分为两大类,基本类型和引用类型
基本类型:一共有8个,4个整数类型(byte、short、int、long)、1个字符类型(char)、2个浮点类型(float、double)、1个布尔类型(boolean)
(1)、整数类型:整型,包括4种,byte、short、int、long
int是最常用的整数类型,一般情况下,直接定义的整数值默认是int类型
定义long类型需要在整数后面加一个l或者L作为后缀,推荐L,因为英文字母l容易和数字1混淆
从Java7开始新增了对二进制整数的支持,以0b或0B开头,如0B1001
(2)、字符类型
字符类型表示单个字符,必须使用英文单引号(')括起来。Java使用16位的Unicode字符集进行编码。例如 'a','中'
转移字符:使用\将其转化成字符本身,以‘\’为开头的字符
计算机底层使用字符对应的编号保存字符,Java字符类型固定长度是16位,因此可以将0~65535(2^16-1)范围内的一个整数值直接赋给char类型变量,系统会自动把整数当成char类型处理,其中前256个字符和ASCII码中的字符一样
(3)、浮点类型
浮点类型有2种,float(单精度浮点数)和double(双精度浮点数),默认是double类型,如果要声明一个变量为float类型,则需在数字后面加f或F,例如 0.2f 或 0.2F
Java语言浮点数有2种表示方式
十进制数形式:如1.2、1.0、.23,必须包含一个小数点
科学计数形式:如1.2e3(即1.2✖10^3)或1.2E3
Java7引入新功能,可以在数值中使用下划线,方便查看数值位数,即整数和浮点数中都可以使用下划线,如
int a = 0B1_000;
float f = 0.12_4F;
double d = 5.233_456;
Java浮点类型有固定的表数范围和字段长度,遵循IEEE754标准,使用二进制数据的科学计数法表示浮点数。float类型第1位表示符号,接下来8位表示指数,再下面23位表示尾数;double类型第1位表示符号,接下来11位表示指数,再下面52位表示尾数
(4)、布尔类型
布尔类型:boolean 表示逻辑上的真或假,只有2个值,true 和 false。Java中没有强制指定boolean类型占用的内存空间
6、基本类型的数据类型转换
基本类型的数据类型转换有2种方式,自动类型转换和强制类型转换
自动类型转换:Java中的数值型变量可以相互转换,当一个表数范围小的数值或变量赋给一个表数范围大的变量时,系统会自动进行类型转换
boolean类型不能转换成其他类型
整型、字符型、浮点型在相互转换时,遵循下面规则
上面的类型转换可能会有个疑问,为什么64位的long能装换成32位的float,原因在于long类型在内存中是直接换算成二进制存储的,而float是用科学计数法存储的
任何基本类型的值和字符串进行连接运算时,基本类型的值会自动转换成字符串类型。因此若想把基本类型的值转换成字符串,可以将基本类型的值与一个空字符串连接,可以使用+运算符
强制类型转换:容量大的数据类型转化成容量小的数据类型时,需要强制类型转换。强制类型转换的语法是:变量=(目标类型)值,强制类型转换的运算符是圆括号()。强制类型转换可能造成精度降低或溢出
7、表达式类型的自动提升
当一个算数表达式有多个基本类型的值时,整个表达式的数据类型将发生自动提升。Java中定义如下提升规则
(1)、byte、short、char类型提升到 int 类型
(2)、整个算数表达式的数据类型将提升到表达式中最高的类型
8、变量
变量:在程序运行时可以发生变化的量
Java中变量声明的格式:变量类型 变量名称 = 变量值
//定义byte类型变量b=1
byte b = 1;
//定义short类型变量s=6
short s = 6;
//定义int类型变量a=5
int a = 5;
//定义long类型变量l=100
long l = 100L;
//定义float类型变量f=0.2
float f = 0.2F;
//定义double类型变量d=0.6
double d = 0.6;
//定义boolean类型变量bool=true
boolean bool = true;
//定义char类型变量c=A
char c = 'A';
9、运算符
运算符:一种特殊的符号,表示数据的运算、赋值和比较等
Java语言中的运算符有下面几种
算数运算符,+、﹣、*、/、%、++、 --
赋值运算符,=、+=、﹣=、*=、/=、%=
比较运算符,>、<、>=、 <=、= =、!=
逻辑运算符,!、&&、||、&、|、^
位运算符,&、|、^ 、 ~、>>、<<、>>>
(1)、算数运算符
除法运算符/,当除法运算符的2个操作数都是整数时, 计算结果也是整数,是除法结果取整的部分,即5/2=2,5/3=1。如果2个操作数有1个是浮点数,那么结果也是浮点数,结果是自然除法的结果,即 5.0/3=1.666666
++,自加,单目运算符,可以出现在操作数左边,也可以出现在操作数右边。例如 i++,先把操作数 i 放入表达式中运算,然后将 i+1;++i,先把 i 的值 + 1,然后才将操作数 i 放入表达式
--,自减,单目运算符,用法类似++,区别是将操作数的值减1
(2)、赋值运算符
赋值运算符,为变量指定变量值
(3)、比较运算符
比较运算符,用于判断2个变量或常量的大小,返回结果是一个布尔值
>、大于
<、小于
>=、大于等于
<=、小于等于
= =、等于
!=、不等于
(4)、逻辑运算符
逻辑运算符,用于2个布尔型变量或常量
!、非,取反。如果操作数是true,则返回false,反之相反
&&、与,只有前后2个操作数都为true,才返回true,否则返回false
&、不短路与,作用和&&相同,区别是不会短路
||、或,只有前后2个操作数都是false,才返回false,否则返回true
|、不断路或,作用和 || 相同,区别是不会短路
^、异或,只有2个操作数不同时才返回true,如果2个操作数相同则返回false
(5)、位运算符
&、按位与,只有当参加运算的2位都为1时才返回1,否则为0
|、按位或,只有参加运算的2位都为0时才返回0,否则为1
^ 、按位异或,当参加运算的2为不同时,返回1;相同时返回0
~、按位非,单目运算符。将操作数的每个位(包括符号位)全部取反
>>、右移
<<、左移
>>>、无符号右移
(6)、三目运算符
三目运算符格式:表达式1?表达式2:表达式3
当表达式1为true时,返回表达式2的值;当表达式1为false时,返回表达式3的值
看下面程序中的三目运算符
String 是定义一个字符串类型,后面会讲解
public static void main(String[] args) {
int a = 5;
int b = 6;
//定义字符串类型接收结果
String res = a>b?"a大于b":"b大于a";
//打印结果字符串
System.out.println(res);
}
结果输入 b大于a
10、运算符的优先级
运算符有不同的优先级,优先级高的运算符在程序中先执行
算术运算符优先级 > 关系运算符优先级 > 逻辑运算符优先级 > 赋值运算符优先级
括号优先级最高,可使用括号()来控制表达式的执行顺序
下表是运算符优先级
从上到下,优先级从大到小
1 | 单目运算符 | ++ -- ~ ! |
2 | 强制类型转换运算符 | (type) |
3 | 乘 除 取余 | * / % |
4 | 加 减 | + - |
5 | 移位运算符 | << >> >>> |
6 | 比较运算符 | < <= > >= == != |
7 | 位运算符 | & ^ | |
8 | 逻辑运算符 | && || |
9 | 三目运算符 | ?: |
10 | 赋值运算符 | = += -+ *= /= %= |
至此完