Java学习笔记-01【基础】【上】
1. 简单介绍
1.1 计算机语言和Java
计算机语言主要由一些指令(包括数字、符号和语法等)组成,可以分为机器语言、汇编语言、高级语言三大类。Java是一种高级计算机语言,是一种可以编写跨平台应用软件、完全面向对象的程序设计语言。
1.2 Java特点
简单,面向对象,安全(不支持指针,一切对内存的访问都必须通过对象的实例变量来实现),跨平台,支持多线程(程序中有多个任务可以并发执行)。
1.3 Java是如何运行的
程序源代码 → 编译器(JDK) → 字节码→ JVM(Java虚拟机(JRE))→ 机器码010010… →计算机
1.4 JDK和JRE
Java开发环境,简称JDK(Java Development Kit),它是整个Java的核心,其中包括Java编译器、Java运行工具、文档生成工具、Java打包工具等。
Java的运行环境,简称JRE(Java Runtime Environment)。现在JDK工具中自带了一个JRE。
1.5 定义标识符遵循的规则
- 包名所有字母一律小写,例如cn.itcast.test
- 类名和接口名每个单词的首字母都要大写,例如ArrayList
- 常量名所有字母都大写,例如DAY_OF_MONTH
- 变量名和方法名的第一个单词首字母小写,之后的单词首字母大写,例如lineNumber、getNum
- 尽量使用有意义的单词来定义标识符,例如passWord表示密码,userName表示用户名。
2. Java基础语法特性
2.1 标识符
2.2 数据类型
Java分为两大数据类型:基本数据类型和引用数据类型
2.2.1 基本数据类型
8大基本数据类型,包括整型,浮点型,字符型和布尔型。
8种基本数据类型及取值范围
- 整型:
byte:-2^7 ~ 2^7-1,即-128 ~ 127。1字节。
short:-2^15 ~ 2^15-1,即-32768 ~ 32767。2字节。
int:-2^31 ~ 2^31-1,即-2147483648 ~ 2147483647。4字节。
long:-2^63 ~ 2^63-1,即-9223372036854774808 ~ 9223372036854774807。8字节。 - 浮点型:
float:4字节。
double:8字节。 - 布尔型:
boolean : true和false - 字符型:
char:2字节。
编码为UTF8:
char值为英文字符所占字节长度:1
char值为中文字符所占字节长度:3
编码为GBK(默认编码):
char值为英文字符所占字节长度:2
char值为中文字符所占字节长度:2
2.3 常量与变量
2.3.1 常量
- 整型常量。
- 二进制:0b或0B开头,0和1组成的数字序列,例如0b0110、0B1101。
- 八进制:0开头,0~7组成的数字序列,例如:0342。
- 十进制:0~9组成的数字序列。
- 十六进制:0x或0X开头,09、AF组成的数字序列,例如0x25AF。
- 浮点数常量。
- float单精度浮点数(32位)结尾F或f;
- double双精度浮点数(64位)结尾D或d,例如3.84e+20f(3.84*1020)
- 字符常量。用单引号,例如 ‘a’ ‘1’ ‘\r’ ‘\u0000’(表示空白字符)。
- 字符串常量。用双引号,例如 “HelloWorld”。
- bool常量。含两个值true和false。
- null常量。只有一个值null,表示对象的引用为空。
2.3.2 变量
变量类型转换
分为自动类型转换和强制类型转换。
-
自动类型转换也叫隐式类型转换,两种数据类型彼此兼容且目标类型的取值范围大于源类型的取值范围。
-
强制类型转换也叫显式类型转换,两种数据类型彼此不兼容或目标类型的取值范围小于源类型的取值范围
2.4 Java中的转义字符
反斜杠\
为转义字符,\r
表示回车符,\n
表示换行符,\t
表示制表符,\b
表示退格符,\’
表示单引号字符,\”
表示双引号字符,\\
表示反斜杠字符。
2.5 运算符
2.5.1 算数运算符
加+
减-
乘*
除/
取余%
自增++
自减--
a++和++a的区别
a++先赋值再自增,++a先自增再赋值int a = 1; int b = a++; //先赋值再自增 System.out.println("a = " + a); //a = 2 System.out.println("b = " + b); //b = 1
int a = 1; int b = ++a; //先自增再赋值 System.out.println("a = " + a); //a = 2 System.out.println("b = " + b); //b = 2
2.5.2 关系运算符
相等==
不等!=
大于>
小于<
大于等于>=
小于等于<=
使用以上运算符成立则返回true,否则返回false。
2.5.3 位运算符
操作符 | 描述 |
---|---|
& | 与;如果相对应位都是1,则结果为1,否则为0 |
| | 或;如果相对应位都是 0,则结果为 0,否则为 1 |
^ | 异或;如果相对应位值相同,则结果为0,否则为1 |
〜 | 按位取反运算符;翻转操作数的每一位,即0变成1,1变成0。 |
<< | 按位左移运算符;左操作数按位左移右操作数指定的位数。左移n位后结果=原值*2n。 |
>> | 按位右移运算符;左操作数按位右移右操作数指定的位数。右移n位后结果=原值/2n,值要取整。 |
>>> | 按位右移补零操作符;左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。 |
a=20,b=37
二进制表示:
a = 0001 0100
b = 0010 0101
a&b = 0000 0100
a|b = 0011 0101
a^b = 0011 0001
~a = 1110 1011
a<<2 = 0101 0000
a>>2 = 0000 0101
a>>>2 = 0000 0101
b>>>2 = 0000 1001
异或还可以实现两数交换:
a = a ^ b;
b = b ^ a;
a = a ^ b;
2.6 选择与循环语句
2.6.1 选择结构语句
if(判断条件){执行语句}
if(判断条件){执行语句}else{执行语句}
if(判断条件){执行语句}else if(判断条件){执行语句}...else if(判断条件){执行语句}else{执行语句}
switch(表达式){case 目标值1:执行语句1 break;case 目标值2:执行语句2 break;case 目标值n:执行语句n break;}
2.6.2 循环结构语句
while(循环条件){执行语句} //先判断,后执行
do{执行语句}while(循环条件); //先执行,后判断
for(初始化表达式;循环条件;操作表达式){执行语句}
注:break,主要用在循环语句或者switch语句中,用来跳出整个语句块;continue,适用于任何循环控制结构中,是让程序立刻跳转到下一次循环的迭代。
public static void main(String[] args) {
int[] n = {1,2,3,4,5};
for (int x : n){
if(x == 3){
break;
}
System.out.println(x);
}
}
运行结果:
1
2
public static void main(String[] args) {
int[] n = {1,2,3,4,5};
for (int x : n){
if(x == 3){
continue;
}
System.out.println(x);
}
}
运行结果:
1
2
4
5