JAVA基础
java数据类型
标识符
定义规则:
- 可以使用数字,字母,下划线(_),美元符($)进行定义,
- 不可以使用数字开头,不可以使用Java关键字,推荐使用字母开头,不建议使用下划线和美元符
- 起名字要见名知意,建议用英文,单词不会写,可拼音代替,不建议用汉字
- java对大小写敏感,严格区分大小写
- 建议使用驼峰命名法,单词首字母大写
- 长度无限制,但不建议太长
关键字
关键字:具备特殊含义、功能的词汇
变量和常量
常量
整型常量
实型常量
字符常量
单引号用来表示字符常量,‘A’是一个字符,"A"表示含有一个字符的字符串,在内存中存储的是该字符的unicode编码值,所以char类型可以当做int类型来处理
逻辑常量
字符串常量
变量
变量的声明
变量的赋值
变量的作用域:
- 作用域:作用范围
- 变量的作用域:变量的作用范围,在什么范围中这个变量是有效的
- 变量的作用域:离它最近的{}
基本数据类型
- 数值型
- 整数型
- byte 字节型
- short 短整数型
- int 整数型
- long 长整数型
- 浮点型
- float 单精度浮点型
- double 双精度浮点型
- 字符型
- char 字符型
- 布尔型
- boolean 布尔型
- 整数型
引用数据类型
- 类
- class
- 接口
- interface
- 数组
运算符
算术运算符: +,-,,/,%,++(自增),–(自减)
赋值运算符 =
扩展赋值运算符:+=,-=,=,/=
关系运算符: >,<,>=,<=,==,!=
逻辑运算符: &&,||,!,&,|,^
条件运算符 ?:
位运算符: &,|,^,~ , >>,<<,>>> (了解!!!)
优先级
赋值<三目<逻辑<关系<算术<单目
流程控制语句
选择语句
if
if(){}
if(){}else{}
if(){}else if(){}else{}
switch
switch(){
case 1:
break;
case 2:
break;
case 3:
break;
default:
break;
}
switch后面的()里面是一个等值,而不是区间
循环语句
while
代码中重复的东西太多了才使用的循环,循环为了解决重复代码的问题。
do{循环语句}while(判断条件);
do–while语句,先循环一次,再判断是否继续循环
while语句直接判断是否循环,如果是,进入循环,如果不是,退出循环
for
for(【1】条件初始化;【2】条件判断;【3】迭代){
【4】循环体
}
for循环在遍历中更加常用
退出循环
break
循环中加入break:停止(最近的)循环
continue
结束本次循环,继续执行下一次循环
return
结束整个方法
标记
可以为循环添加标记,从而直接退出外层循环
标记:for
标记:while
break 标记;
方法
对相同的功能进行代码的提取–》提取(抽取)出来的就是一段代码(程序)—》方法
方法格式
对相同的功能进行代码的提取–》提取(抽取)出来的就是一段代码(程序)—》方法
重载
同一个类中,方法名相同,形参列表不同,就构成了重载。
重载的必要条件:
(1)方法名相同
(2)形参列表不同
----》跟方法修饰符,方法返回值类型无关
递归
程序调用自身的编程技巧称为递归。
一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法
递归问题的特点
一个问题可被分解为若干层简单的子问题
子问题和其上层问题的解决方案一致
外层问题的解决依赖于子问题的解决
递归结构包括两个部分:
递归结束条件。解答:什么时候不调用自身方法。如果没有条件,将陷入死循环。
递归体。解答:什么时候需要调用自身方法。
递归的优点
简单的程序
递归的缺点
但是递归调用会占用大量的系统堆栈,内存耗用多,在递归调用层次多时速度要比循环慢的多
递归的使用场合
任何可用递归解决的问题也能使用迭代解决。
当递归方法可以更加自然地反映问题,并且易于理解和调试,并且不强调效率问题时,可以采用递归;
在要求高性能的情况下尽量避免使用递归,递归既花时间又耗内存。
数组
数组的特点
(1)数组用来存储数据的,存储的同一种数据类型的数据
(2)数组的长度一旦声明,就不可以改变。
(3)数组有索引/下标:从0开始,到 数组.length-1 结束
(4)如果索引你超出范围,报运行时异常:数组越界异常,
(5)数组在创建以后,有默认的初始化的值。
数组的声明赋值
静态初始化:
//第一种
int[] arr = {元素1,元素2,元素3....};
//第二种
int [] arr = new int[]{元素1,元素2,元素3....};
动态初始化
int[] arr = new int[数组长度];
arr[0] = 元素0;
arr[1] = 元素1;
arr[n] = 元素n;
可变参数
1.格式:int…arr double…arr String…arr
2.可变参数作用:解决了部分重载问题
3.形参为可变参数,实参可以传入几个数据:0,1,2,,,n,数组
4.可变参数作为形参,方法内部将可变参数作为数组来处理。
5.可变参数在JDK5之后加入。
6.可变参数跟其它类型一起做形参的时候,可变参数必须放在最后