一、 数据类型
1、基本数据类型
如果new 一个对象存储在堆中再引用就不是特别的方便,直接存储更方便高效
描述一些具体的数字单元:小类型到大类型的自动转换
- 数值型
整型(0):byte、short、int、long
浮点型(0.0): float、double - 布尔型号(false):boolean
- 字符型(’/u0000’):char
- 注:int类型
MAX+1 = MIN 数据溢出会循环 - 定义Long型 L或者long转换 把一个变成long
2、引用数据类型
内存相关的使用
- 数组、字符串、类、接口 (null)
3、包装类型(对应基本数据类型)
byte ------- Byte
short ------ Short
int ---------- Integer
long -------- Long
char -------- Character
float -------- Float double ----- Double
boolean----- Boolean
3.1、出现的原因
Java是一个面向对象的语言,基本类型不具有对象的性质,包装类型,丰富了基本类型的操作,
3.2 自动装箱和自动拆箱
- 自动装箱:将基本类型赋值给引用变量,系统自动包装为相应的包装类实例,这样基本类型的值就可以当对象使用 :调用了valueOf()方法
- 自动拆箱:需要基本类型的值得时候,系统会自动把包装类的对象拆开,得到值,这样包装类的对象就可以当做基本类型的值用,调用了xxxValue()方法
事实上,包装类比基本类型更好用;包装类范围判断时注意127
二. 运算符
对于代码而言,尽量不要写很复杂的计算,更多希望编写简单易懂的代码
数学计算(±/%)
简化运算符(+=、-=、=、/、%=)
自增自减(++ --)
++/-- 变量 先自增自减 再计算
变量++/-- 先计算 再自增自减
关系运算(>、<、>=、 <=、==)
三目运算符:逻辑关系判断后,进行赋值处理
关系运算 ? 满足的内容:不满足的内容
三目操作可以嵌套 但是 可读性很差,看实际情况使用
位运算符 && | · << 都是装换成二进制计算
& 和\ 可以进行位运算和逻辑运算
逻辑计算是所有的判断条件都要执行
位运算只是针对当前数据进行与或处理(二进制计算后十进制输出?)
逻辑运算还可以使用&&(只要有false)和||(只要有true)就可以
三、 程序逻辑控制-分支与循环
1. 分支结构
针对关系表达式判断处理的分支操作
if(布尔表达式){
满足时执行
}else{
不满足时执行
}
switch(数据){// int char string 枚举
case 数值:
满足时执行
break;//循环到break结束
default:
所有都不满足的时候执行
}
2. 循环结构
while循环
whlle(布尔表达式){
修改满足条件;
修改循环条件;
}
do{
条件满足时执行;
修改循环条件}
while{
修改循环条件}
for循环
for(定义循环的初始化数值;循环判断;修改循环条件){
循环体;
}
明确循环次数的情况 优先for循环
不知道次数,但是知道循环结束条件,使用while循环
循环控制:break、continue
- break是退出整个循环
- continue是结束当前循环,当前循环的后续代码不执行,直接进行下一个循环
打印乘法口诀:
public static void main(String[] args){
for(int i =1;i<=9 ;i++){
for(int y =1;y<=x;y++){
System.out.print(y+"*"+x+"="+(x*y));
}
System.out.println();
}
}
三、 方法
能够帮我们进行重复的调用
变量名称和方法名称都要第一个字母小写,其余每个单词的首字母大写
语法:
public [返回值类型] 参数名称([参数类型 变量.........]){
//方法内容
[return [返回值];] //返回值是Java中的基本数据类型、引用数据类型
}
1、方法重载
当方法名称相同,参数的类型或者个数不同的时候称为方法重载,与返回值类型无关
public int add(int a, int b){}
public int add(int a, int b,int c){}
2、递归调用
方法自己调用自己:解决重复且麻烦的情况
- 一定要考虑结束条件:
- 每一次调用一定要修改传递的参数条件