Java自查小记
第一个java程序:
public class HelloWorld{
public static void main(String[]args){
System.out.println("Hello World");
}
}
数据类型:
- 基本数据类型:分为4大类8种。
注:
1) java中布尔类型值只能是true和false。
2)随便写一个整数字面值,默认是int类型的,如果希望随便写一个整数默认是long型的必须在数据后加L或者l表示。
3)随便写一个小数字面值,默认是double类型的,如果希望这个小数是float类型的,必须在数据后加F或者f表示。
- 引用数据类型(除基本数据类型之外的,如String)
常用命令
类型转换
- 自动类型转换
类型范围小的变量,可以直接赋值给类型范围大的变量。
byte a = 12 ;
int b = a;
System.out.println(b); // 12
- 表达式的自动类型转换
在表达式中,小范围类型的变量会自动转换成当前较大范围的类型再运算。
- 强制类型转换
类型范围大的数据或者变量,不能直接赋值给类型范围小的变量,会报错,这个时候就用到强制类型转换。
//数据类型 变量2 = (数据类型)变量1或数据
int a = 20;
byte b = (byte)a;
强制类型转换可能造成数据(丢失)溢出;
注: 无论强制还是自动类型转换,char和int都是以ASCII码为基准进行转换的。
运算符
“+”符号与字符串运算的时候是用作连接符的,其结果依然是一个字符串。如果可以进行计算就直接计算,如果不能计算就字符串连接。
int a = 5 ;
System.out.println("abc" + 'a'); // abca
System.out.println("abc" + a); // abc5
System.out.println(5 + a); // 10
System.out.println("abc" + 5 + 'a');//abc5a
System.out.println(15 + "abc" + 15);//15abc15
System.out.println(a + 'a');//102
System.out.println(a + "" +'a');//5a
System.out.println(a + 'a'+" itheima ");//102 itheima
System.out.println("itheima"+ a + 'a');//itheima5a
System.out.println("itheima"+ ( a + 'a' ));//itheima102
自增自减运算符只能操作变量,不能操作字面量
异或:相同为false,不同为true
三元运算符:条件表达式 ? 值1 : 值2;
num1 > num2 ? num1 : num2;//true值1,false值2
switch的穿透性
如果代码执行到没有写break的case块,执行完后将直接进入下一个case块执行代码(而且不会进行任何匹配),直到遇到break才跳出分支,这就是switch的穿透性。
这种用法break和continue语句后面不能再有语句,否则会报错。
数组
静态初始化数组: 定义数组的时候直接给数组赋值。
数组变量名中存储的是数组在内存中的地址,数组是引用类型。
注: 数组一旦定义出来,程序执行的过程中,长度、类型就固定了。
易错:
一个Java文件中可以定义多个class类,且只能一个类是public修饰,而且public修饰的类名必须成为代码文件名。
实际开发中建议还是一个文件定义一个class类。
String类的特点详解
- String其实常被称为不可变字符串类型,它的对象在创建后不能被更改。
String是不可变字符串的原因?
- String变量每次的修改其实都是产生并指向了新的字符串对象。
- 原来的字符串对象都是没有改变的,所以称不可变字符串
封装的简单实现https://blog.csdn.net/lizhi20210729/article/details/123510476
黑马银行ATM系统https://blog.csdn.net/lizhi20210729/article/details/123510656