#一个字符的空格
#大约三个字 符的空格
1.字面量
1.特殊值的书写
1.\n 换行 \t 一个tab
2.变量
1.变量的注意事项
1.变量的范围只在{}之间
2.定义可以不给赋值,但是使用之前必须赋值
2.变量的原理
1个字节(B)=8bit
1KB=1024b
1M=1024KB
3.进制转换
1.十转二 :除二取余法
2.二转十:
OB,O,OX 分别表示 二,八,十六进制
3.数据类型
1.基本数据类型
3.数据类型转换
1.自动类型转换
范围小的可以赋值给范围大的
2.表达式的自动类型转换
3.强制类型转换
把大范围的变量转换成小范围的变量(可能会数据丢失)
4.运算符
1."+"做连接符
能算则算,不能算则拼接起来
2.自增运算符
++1 ->先+后使用
1++ ->先使用后+
3.赋值运算符
+= ,-=等等
4.关系运算符
>=,<=,>等等 结果为True或者False
5.逻辑运算符
&与 两个都为Ture才为True
|或 一个为Ture就为True-----> (左右都执行)
逻辑异或 两个不同结果为True------> (左右都执行)
&&逻辑与 左边为false,-------->右边则不执行
||逻辑或 左边为true,---------->右边则不执行
6.三元运算符
表达式?值1:值2
7.运算符的优先级
4.分支结构
1.If
三种格式
2.switch及其switch穿透性
注意事项:1.如果最后都没有符合的执行default
2.表达式支持byte,short,char,int,String,不支持double,float,long
3.case中不支持变量
4.不要忘记Break否则会一直往下执行(break的穿透性)
5.循环结构
1.for循环
2.while循环
3.do-while循环
先执行再判断
4.continue,break
break结束循环,continue结束本次循环
6.数组
1.静态初始化数组
//静态初始化数组
double[] s=new double[]{1.3,9.9,322.9};
//简化版
double[] s1={1.3,9.9,322.9};
数组名表示的是数组的地址,数组是引用类型
也可以是 数据类型 数字名[]或者数据类型[] 数字名
2.动态初始化数组
int[] arr=new int[3]
arr[0]=1
注意:int[] arr=new int[3]{30,40,50}错误的,内容和数字不能同时存在
3.数组的内存图
1.两个变量指向同一个数组
两个变量指的是同一个堆内存的数组,一改既改
4.数组的常见问题
1.越界问题
2.数组变量指向为空,查询数组长度或者获取数组值会报错
5.DeBug工具的使用
1.先标记点
2.进行Debug进行测试
7.方法
1.方法的格式
2.方法调用的内存图
3.方法的传参机制(值传递)
1.基本类型的传参---->传递的参数是值
2.引用类型的参数传参---->例如:数组传参是地址
4.方法重载
方法名相同,形参列表不同(参数个数,位置,类型)–>跟返回值等无关
8.面向对象
1.注意事项
1.在一个文件中可以定义多个类,但是只能有一个public的类,并且这个public的类的名字为文件的名字
2.如果没有赋值的话会有默认值,byte,short,int,long为0-----double,float为0.0----boolean为false–String为null
2.对象在内存中的运行机制
3.存在垃圾回收机制
会定期的进行清理
4.构造器
1.有参构造器,无参构造器
2.无参构造器默认有的,如果写了有参构造器无参构造器就没有了,想使用自己建立
5.this关键字
this代表当前对象的地址
6.JavaBean
也可以被成为实体类,其对象用于封装在程序中的数据
书写要求:
成员变量用private,提供相应的Setxxx()和Getxxx()方法
必须提供一个无参构造器
9.API
1.String
代表字符串类型的类,一旦创建不可修改。
可以修改是因为在堆内存中选择了新的字符串对象
1.创建方式
//方式一:使用双引号得到字符串对象
String s1="wo+1";
System.out.println(s1);
//方式二:
// 1创建一个空白字符串对象,不包含任何内容
String s2=new String();
// 2.根据传入内容
String s3=new String("1233");
// 3.根据字符数组
char[] a={'1','2','3'};
String s4=new String(a);
// 4.根据字节数组
byte[] b={'1','2','3','4'};
String s5=new String(b);
2.原理
1.以双引号-“”创建的是放在堆中的常量池中的,重复的只会有一个
2.以对象创建的是在堆中创建不止一个
原理图如下
3.字符串比较
其中==是比较的字符串的地址
如果想进行比较需要用equal,或者用equalignorse------>忽略大小写
4.字符串常用API
2.ArrayList
1.基本使用
List.add()---------------->添加内容
List.add(1,内容)----------->指定位置添加
2.泛型
一般都要添加,但是泛型不支持基本类型,支持引用类型,也就是只能在里面添加这个类型的数据
3.常用API和遍历
10.static
1.Static静态关键字
1.可以修饰成员变量和成员方法
2.static表示在内存中只有一份,可以被共享和修改
3.属于这个类
4.静态成员变量使用------------------------类名.变量
2.Static修饰成员变量的原理
3.Static修饰方法和原理
注意:同一个类中,访问静态方法,类名可以省略不写
注意事项:
- 静态方法只能访问静态成员,不能"直接" 访问实例成员
- 静态方法中不能出现this关键字
- 由于工具类不需要创建对象,所以建议将构造类私有化