java的变量名大小写是敏感的,并且java属于强类型语言
数据大小转换
1bit = 1位
1B = 8bit
1024B = 1KB
1024KB = 1M
1024M = 1GB
数据类型
数据转换的话 小到大不需要强转 大到小需要强转float num = 50.1F
有一个例外就是long
Long num = 30L(可以理解为 long太长???)
char只能是单个字符
char name = ‘刘’ 可以
char name = ‘刘某人’ 不可以
数字精度
如果使用浮点数会出现精度丢失的现象,这时使用BigDicemal即可
java的基本结构
顺序结构
变量跟常量
常量一般使用全大写字母代替,并且使用final修饰 不可更改
修饰符
修饰符这玩意 static final等等 不存在顺序,你高兴就行
运算符
++ - - 自增自减运算符
int b = a++ 表示执行完这行代码之后,先将a赋值给b,然后a再自增
int c = ++a 表示先进行a的自增,再将自增后的值赋值给c
位移运算符<<(*2) >>(/2)
三元运算符 x?y:z 如果x为true则x为y 否则为z
for循环
for( ; ; ) 这个写法就是死循环
增强for循环
for(int x : numbers){
sout(x)}
循环遍历numbers将其值赋给x然后一个一个打印出来x的值为多少
break&continue
break在循环语句直接死,语句结束
continue则是跳过本次循环进入下次循环
java是值传递的
方法重载(重载重载,载 车载,一台车,一个类)
在一个类中,方法名一样,参数不同
可变参数
可变参数就是不定项参数
public void test(int…i) 这表示传参都只能是int类型
递归
递归头:什么时候不调用自身的方法,如果无头将会死循环
递归体:什么时候需要调用自身方法
也就是使用递归的时候需要一个边界条件来告诉自己什么时候停下来
但是递归什么的 能不用就不用 容易oom
阶乘
2! 21
3! 321
4! 4321
数组
数组就是相同类型数据的有序集合
数组的下标是从0开始的
静态初始化 int[]a = {1,2,3,4,5,6}
动态初始化 int[]b = new int[10]
数组一旦创建,长度不变
数组需要类型相同,不允许杂交
数组是一个对象存在堆中
数组边界[0,lenght-1]
Arrays类中有许多实用的方法
Arrays.tostring 打印出来
Arrays.sort 排序
Arrays.fill 填满
稀疏数组
当一个数组中大部分元素为0或者是同一个值的时候,使用稀疏数组来进行保存
处理方式:记录数组中一共有几行几列,有几个不同的值,不同的值都会记录在一个小规模的的数组中
面向对象编程OOP
面向过程:步骤简单,一步一步去做,适合简单问题
面向对象:物以类聚,分类的思维模式,适合复杂的问题,需要多人协作
编程的本质
以类的方式组织代码
以对象的组织封装数据
类是对象的模板
对象是类的具体事例
构造器
默认会有一个无参构造,当书写有参构造的时候需要保留无参构造
捕获异常
快捷键Ctrl+Alt+T
throw:方法内抛出异常
throws:方法上抛出异常