菜鸟的蜕变
变量
变量是来源于数学,是计算机语言中用于存储计算数据,储存计算结果的存储结构
1.1变量的声明:
数据类型+变量名,多个变量,如果类型相同,可以在一条语句中声明,用逗号隔开
列:
int a;//声明一个变量
int a ,b;//同时声明两个变量
1.2变量的初始化:
初始化即第一次给变量赋值
1.3变量的命名:
*只能包含字母,数字,下划线和$符,并且 不能以数字开头
严格区分大小写
不能使用关键字
允许中文命名,但不建议,建议“英文的见名知意”,“小驼峰命名法”
八种基本数据类型
byte, short, int, long, fioat, double, boolean, char
byte | 一个字节 | 范围-128到127 |
---|---|---|
short | 两个字节 | |
int | 四个字节 | 2147483647到-2147483648 |
long | 八个字节,后面加“L” | -922337203685477808到922337203685477807 |
fioat | 四个字节,后面加“F” | 浮点数直接量默认为double类型,若想表示float需在数字后加F或f |
double | 八个字节 | double与float型数据参与运算时,有可能会发生舍入误差,精确场合不能使用 |
boolean | 一个字节 | · 只能取值为true或false |
char | 两个字节采用的是Unicode字符集编码格式,一个字符对应一个码,表现的形式是字符char | 本质上是码int(0到65535)(ASCII码:‘a’----97 ‘A’----65 ‘0’----48 ) 特殊符号需通过 “\”来转义 |
*自动/隐式类型转换:小类型到大类型
*强制类型转换:大类型到小类型
*类型间的转换:
*数据类型从小到大依次为:byte,short,char,int,long,float,double
*整数直接量可以直接赋值给byte,short,char,但不能超出范围
*byte,short,char型数据参与运算时,系统将其自动转换为int再运算
运算符和分支结构
一.算术:+、-、*、/、%、++、–
1.“%”取模/取余,余数为0的即为整除
2“++/–”自增1/自减1,可以变量前也可在变量后
a++的值为a--------------(a–的值为a)
++a的值为a+1----------(–a的值为a-1)
关系:>、 <、 >=、 <=、 ==、 != boolean
逻辑:&&、 ||、 ! Boolean
&&:逻辑与,并且,(两边都为真则为真,见false则false)
||:逻辑或,或者,(两边都为真则为真,见true则true)
!:逻辑非,取反,非true为false,非false为true
赋值:=、 +=、 —=、 *=、 /=、 %=
字符串连接:+(10+20+”a”)//30a (10+”a”+20+1)//10a201
条件/三目:boolean?数1:数2–条件为真则是数1,条件为假则是数2
二.分支结构:基于条件执行的语句
if结构:1条路
if…else结构:2条路
1.if(boolean){语句块1
}else{ 语句块2}//如果条件为true则执行语句块1 若为false则执行语句块2
switch…case结构:多条路若正好是对整数来判断相等------------------switch…case是首选
优点:效率高、结构清晰
缺点:只能对整数判断相等
break:跳出switch
循环:反复多次执行一段相同或相似的代码
循环结构:
while结构:先判断在执行,有可能一次都不执行
do…while结构:先执行在判断,至少执行一次
if(boolean){ //只判断一次
语句块 //最多执行一次
}
while(boolean){ //判断多次,只到boolean为false结束
语句块 //执行多次
}
任何复杂的程序逻辑都可以通过三种结构来实现:
顺序结构:从上往下逐行执行,每句必走
分支结构:有条件的执行某语句一次,并非每句必走
循环结构:有条件的执行某语句多次,并非每句必走
for结构:应用率最高,与次数相关
三种循环结构如何选择
先看是否与次数相关:
若相关--------------------------直接上for
若无关,再看要素1与要素3是否相同:
若相同----------------------直接上do…while
若不同----------------------直接上while
break:跳出循环
continue:跳过循环体中剩余语句而进入下一次循环
嵌套循环:
循环中套循环,一般多行多列时使用,常常外层控制行,内层控制列
执行规则:外层循环走一次,内层循环走所有次
建议:嵌套层数越少越好,能一层就不用两层,能两层就不用三层
break只能跳出当前一层循环
数组
是一种数据类型(引用类型)
是相同类型元素的集合
定义:声明整型数组arr,包含10个元素,每个元素都是int型,默认值为0;
int[ ] arr=new int[ ];
初始化:—初始化数组中的数据
int[] arr = new int[3]; //0,0,0
int[] arr = {2,5,8}; //2,5,8
int[] arr = new int[]{2,5,8}; //2,5,8
int[] arr;
//arr = {2,5,8}; //编译错误,此方式只能声明同时初始化
arr = new int[]{2,5,8}; //正确
*访问:--访问的是数组中的数据;
通过(数组名.length)可以获取数组的长度(元素个数);
通过下标/索引来访问数组中的数据,下标从0开始,最大到(数组的长度-1)
int[] arr = new int[10];
for(int i=0;i<arr.length;i++){ //遍历arr数组
arr[i] = (int)(Math.random()*100);
System.out.println(arr[i]);
}
int和int[ ]是两种完全不同的数据类型
随机数
Math.random()-------------0.0到0.9999999999999...
*100----------------------0.0到99.999999999999...
(int)---------------------0到99
数组复制
1)System.arraycopy(a,1,b,0,4);
2)int[] b = Arrays.copyOf(a,6);
a = Arrays.copyOf(a,a.length+1); //扩容
·排序
1)Arrays.sort(arr); //对arr进行升序排列
*方法:函数、过程
封装一段特定的业务逻辑功能
方法应尽可能独立,只干一件事
方法可以被反复多次调用
减少代码重复,有利于代码维护
2.1方法的定义:
方法的定义包括五要素
修饰词 返回值 方法名(参数列表){方法体}
2.2方法的调用:
1对于无返回值的方法,直接 调用即可,该传参传参
2对于有返回值的方法,常常调用时应先声明对应类型的变量来接受,该传参传参
2.3 return
return的两种用法:
1return值 结束方法的执行,返回结果给调用方—用在有返回值方法中