Java 复习(一)
1. java特性和优势
简单性
面向对象
可移植性(java虚拟机)
高性能
分布式
动态性
多线程
安全性
健壮性
2. JDK、JRE、JVM
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7mODMemn-1614610156045)(https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fpic002.cnblogs.com%2Fimages%2F2012%2F382439%2F2012031917123015.jpg&refer=http%3A%2F%2Fpic002.cnblogs.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1617102522&t=93ad43c697843a1f3a9053dafa0389c5)]
JDK:Java Development Kit
JRE:Java Runtime Environment
JVM:Java Virtual Machine
3. 标识符
关键字:
标识符注意点:
-
所有的标识符都应该以字母(A-Z或者a-z),美元符($) 、或者下划线( _ )开始
-
首字符之后可以是字母(A-Z或者a-z),美元符($) 、或者下划线( _ )或数字的任何字符组合
-
不能使用关键字作为变量名或方法名。
-
标识符是大小写敏感的
-
合法标识符举例:age、$salary、. value、_1_value
-
非法标识符举例:123abc、-salary、.#abc
4. 数据类型
4.1 强类型语言
要求变量的使用严格符合规定,所有变量必须先定义后使用
4.2 什么是字节
位(bit):是计算机内部数据储存的最小单位,11001100是一个八位二进制数。
字节(byte):是计算机中数据处理的基本单位,习惯上用大写B来表示。1B(byte,字节)= 8bit(位)
字符:是指计算机中使用的字母、数字、字和符号。
4.3 Java的数据类型
- 基本类型(primitive type)
- 引用类型(reference type)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l7Ejls49-1614610156049)(https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fp1.jquerycn.cn%2F111cn%2F3%2F0%2F1474650195_6131.jpg&refer=http%3A%2F%2Fp1.jquerycn.cn&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1617103667&t=ce6ce696c4e7c9b77c9eb6ecab0d4bf6)]
4.3.1 基本类型
整数类型:
byte:占1个字节范围:-128~127
short:占2个字节范围:-32768~32767
int:占4个字节范围:-2147483648~2147483647
long:占8个字节范围:-9223372036854775808~9223372036854775807
浮点类型:
float:占4个字节范围:-3.4E38~3.4E38
double:占8个字节范围:-1.7E308~1.7E308
字符类型:
char:占2个字节范围
布尔类型:
Boolean:占1个字节范围
4.3.2 引用类型
类:
String:
public void test1(){
String str1 = "Hello";
String str2 = "Hello";
String str3 = new String("Hello");
String str4 = new String("Hello");
System.out.println(str1 == str2);
System.out.println(str3 == str4);
}
结果:true false
原因:
接口:
数组:
4.3.3 转义字符
4.4 变量
类变量、实例变量、局部变量
public class var {
static int a = 0; //类变量
String str = "Hello"; //实例变量 从属于对象 如果不进行初始化,就会赋默认值
int a; //int 默认值为0; boolean默认值为false
//除了基本类型,其余都是null;
public void method(){
int i = 0; //局部变量 必须声明和初始化值
System.out.println(i);
System.out.println(a);
}
}
4.5 常量
常量(Constant):初始化(initialize)后不能再改变值!不会变动的值。
所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。
常量名一般使用大写字符
//final 常量名 = 值;
final double PI = 3.14;
4.6 变量命名规范
- 所有变量、方法、类名:见名知意
- 类成员变量:首字母小写和驼峰原则: monthSalary 除了第一个单词以外,后面的单词首字母大写
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线:MAX VALUE
- 类名:首字母大写和驼峰原则:Man,GoodMan
- 方法名:首字母小写和驼峰原则:run(),runRun()
4.7 运算符
- 算术运算符:+,-,*,/,%,++,–
- 赋值运算符:=
- 关系运算符:>,<,>=,<=,==,!= instanceof
- 逻辑运算符:&&,||,!
- 位运算符:&,|,^,~,>>,<<,>>>(了解! ! ! )
- 条件运算符:? :
- 扩展赋值运算符:+=,-=,*=,/=
4.7.1 短路运算
- 要使(表达式1)&&(表达式2)运算结果为真则要求:表达式1,表达式2都为真,如果表达式1为假,则不计算表达式2了,因为此时已经确定(表达式1)&&(表达式2)运算结果不可能为真,这就是&&运算的短路特性。
- 要使(表达式1)||(表达式2)运算结果为假则要求:表达式1,表达式2都为假,如果表达式1为真,则不计算表达式2了,因为此时已经确定(表达式1)||(表达式2)运算结果不可能为假,这就是||运算的短路特性。
public void test01(){
int x = 0;
int y = 10;
System.out.println((y < 0) && (0 > x++)); // &&取false 只要前面判断为false,后面的判断就不会执行
System.out.println("x:"+x);
System.out.println((y > 0) || (0 > x--)); // ||取true 只要前面判断为true,后面的判断就不会执行
System.out.println("x:"+x);
}
/*执行结果:
false
x:0
true
x:0
*/
4.7.2 位运算(二进制运算)
A = 0011 1100 B = 0000 1110 A&B = 0000 1100 都是1则为1 有0为0 A|B = 0011 1110 都是0则为0 有1为1 A^B = 0011 0010 相同为0 不相同为1 ~A = 1100 0011 完全相反 << >> 面试题: 2*8怎么算最快 2*8 = 16 = 2*2*2*2 2<<3 0000 0010 2 左移三位 0001 0000 16 效率极高
4.7.3 字符串连接符
public void test2(){
int a = 10;
int b = 20;
System.out.println(""+a+b); //1020 ""在前面,会拼接
System.out.println(a+b+""); //30 ""在后面会先运算在拼接
}
4.7.4 三元运算符
public void test3(){
int a = 1;
int b = 2;
System.out.println(a > b ? "大于" : "不大于");
}
//结果 不大于