JDK、JVM、JRE的区别以及作用
JDK:Java开发工具包(包括JRE和相关工具包)
JVM:Java虚拟机(通过JVM可以实现跨平台开发)
JRE:Java运行环境(包含JVM及Java核心类库)
Java语言特性
简单
面向对象
跨平台(一次编译 处处运行)
多线程
Java基础语法
标识符
标识符就是在Java中取的所有名称的总称。
合法标识符
由字母、数字、下划线和$组成,且不可以以数字开头
标识符不能使用Java关键字和保留字(保留字及未来可能赋予特殊含义的字)
大小写敏感
长度不限制,最好在16字符之内
标识符习惯
要见其名,知其意(例如Name,一看就知道是名字的意思)
类名一般采用驼峰式命名规范,若是由一个单词组成,首字母大写其余小写(例如:Test)
如果由多个单词组成,则每一个单词的首字母大写,其余小写(例如:TestStudent)
变量名一般采用小驼峰式命名规范,若是由一个单词组成,则全部小写(例如:age),如果由多个单词组成,则第一个单词全部小写,其余单词首字母大写(例如:myStudentAge)
常量名一般全部采用大写,如果由多个单词拼接,则单词之间用下划线连接(例如:MY_CIRCLE_PI)
变量和常量
变量
变量是在Java的内存中保存数据的容器
定义方法
方法一:
int temp;//声明
temp = 1;//赋值
System.out.println(i);//操作(这里是打印操作)
方法二:
int temp = 1;//声明并赋值
方法三:
int a = 1, b = 2, c = 3;//同时声明多个变量
常量
常量是在Java的内存中用来保存永不会改变的数据的容器
定义格式
final double PI = 3.14//final定义的值不可改变
数据类型
计算机最小的存储单元是"位(bit)",我们称之为比特位,通常用小写b来表示
计算机最小的存储单位是"字节(Byte)",通常用B来表示,一个字节是由连续的8个位组成的,即:1 Byte = 8 bits
Java语言是强类型语言。所谓强类型指的是数据都要归属于某一种数据类型,不同的数据类型分配了不同大小的存储空间,所以他们可以表示的数据大小也不一样
数据类型的分类
转义字符
通常情况下,输出字符串时,字符串会原样显示,但是如果字符串出现了特殊字符(例如:\,"等),就会无法正常显示,若想其正常显示,需要使用转义字符进行转义
常见转义字符如下:
转义字符 | 含义 |
\\ | 代表一个反斜线符号"\" |
\" | 代表一个双引号字符" |
\' | 代表一个单引号字符' |
\r\n | 换行 |
\t | TAB |
类型转换
类型转换就是在Java中对数据类型的相互转换
自动类型转换
从低精度的数据类型向高精度的数据类型转换(整数 -> 浮点)
从小字节的数据类型向大字节的数据类型转换(byte -> short -> int -> long)
强制类型转换
从高精度的数据类型向低精度的数据类型转换(浮点 -> 整数)
从大字节的数据类型向小字节的数据类型转换(long -> int -> short -> byte)
运算符
算数运算符
符号 | 概念 | 案例 |
+ | 正号 | +23 |
- | 负号 | -23 |
+ | 拼接符 | "abc"+"qqq" |
+ | 加号 | 1 + 1 = 2 |
- | 减号 | 1 - 1 = 0 |
* | 乘号 | 1 * 1 = 1 |
/ | 除号 | 1 / 1 = 1 |
% | 取模 | 3 % 2 = 1 |
赋值运算符
符号 | 含义 |
= | 把右侧的值赋给左侧变量 |
+= | int a += 3 ==> int a = a + 3 |
-= | int a -= 3 ==> int a = a - 3 |
*= | int a *= 3 ==> int a = a * 3 |
/= | int a /= 3 ==> int a = a / 3 |
%= | int a %= 3 ==> int a = a % 3 |
自增自减运算符
符号 | 含义 |
++ | 自增 |
-- | 自减 |
++变量:前自增,本身先加一,然后再赋值
变量++:后自增,先赋值,本身再加一
比较运算符
符号 | 含义 |
== | 相等比较,相等结果为true,反之为false |
> | 大于比较 |
>= | 大于等于比较 |
< | 小于比较 |
<= | 小于等于比较 |
!= | 不等于 |
逻辑运算符
符号 | 含义 |
& | 逻辑与,两侧都true则true反之假 |
| | 逻辑或,有一侧true则true反之假 |
&& | 短路与,左侧假则假(不用判断右侧当左侧条件不满足时) |
|| | 短路或,左侧真为真 |
^ | 异或,不同为true,相同为false |
! | 非,取反 |
三目运算符
三目运算符被称为三元运算符,由三块组成,内部做简单的分支处理
格式:
boolean表达式?true时执行的表达式:false时执行的表达式;
位运算符
符号 | 含义 | 案例 |
& | 与1 1得 1,其余为0 | 2 & 3 |
| | 或0 0得0,其余为1 | 2 | 3 |
^ | 异或 不同为1,相同为0 | 2 ^ 3 |
~ | 取反 1得0,0得1 | ~2 |
<< | 左移 | 2<<3 |
>> | 带符号右移 | 2>>3 |
>>> | 无符号右移 | 8>>>2 |
运算符的优先级
一目、二目、三目
一目:运算符只有一个操作数。例如:++、--、!
二目:运算符有两个操作数。例如:+、-、*、/、%、|、&、^、&&、||、>、>=、<、<=、!=、==
三目:运算符有三个操作数。例如:?:
运算符优先级
一目运算符高于二目,二目运算符高于三目
同目时,* /高于+-,&&高于||
可以通过加()改变优先级
Scannner
Scanner是一个类,是引用数据类型,主要实现从控制台获取动态输入的数据
步骤:
Scanner scanner = new Scanner(System.in)//创建Scanner对象
System.out.println("请输入一个整数")//提示语句
int temp = scanner.nextInt();//定义变量接受从控制台输入的数据
方法 | 数据 |
nextByte() | byte |
nextShort() | short |
nextInt() | int |
nextLong() | long |
nextFloat() | float |
nextDouble() | double |
nextBoolean() | boolean |
next() | String |
nextLine() | String |