用户交互
Scanner
Scanner s
=
new
Scanner
(
System
.
in
);
next & nextLine
两者区别:
next():
1
、一定要读取到有效字符后才可以结束输入。
2
、对输入有效字符之前遇到的空白,
next()
方法会自动将其去掉。
3
、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
4
、
next()
不能得到带有空格的字符串。
nextLine()
:
1
、以
Enter
为结束符
,
也就是说
nextLine()
方法返回的是输入回车之前的所有字符。
2
、可以获得空白。
3
、其他方法
if
(
scan
.
hasNextInt
()) {
//
判断输入的是否是整数
i
=
scan
.
nextInt
();
//
接收整数
System
.
out
.
println
(
"
整数数据:
"
+
i
);
}
判断输入的时候是整数,也可以判断浮点数等等
顺序结构
JAVA
的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行
选择结构
阿里巴巴Java开发手册规范,
【强制】大括号的使用约定。如果是大括号内为空,则简洁地写成
{}
即可,不需要换行
;
如果
是非空代码块则:
1
)
左大括号前不换行。
2
)
左大括号后换行。
3
)
右大括号前换行。
4
)
右大括号后还有
else
等代码则不换行
;
表示终止的右大括号后必须换行。
左小括号和字符之间不出现空格
;
同样,右小括号和字符之间也不出现空格。详见
第
5
条下方正例提示
if
/
for
/
while
/
switch
/
do
等保留字与括号之间都必须加空格。
if
单选择结构
if
双选择结构 if else
if
多选择结构 if else if
嵌套的
if
结构
循环结构
Java
中有三种主要的循环结构:
while
循环
do…while
循环
for
循环
另外 jdk5中 新增增强for循环
1
、
while
循环
while
(
布尔表达式
) {
//
循环内容
}
2
、
do…while
循环 至少执行一次
3
、
For
循环
虽然所有循环结构都可以用
while
或者
do...while
表示,但
Java
提供了另一种语句
—— for
循环,使一
些循环结构变得更加简单。
for
循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构。
break & continue
1
、
break
关键字
break
主要用在循环语句或者
switch
语句中,用来跳出整个语句块。
2
、
continue
关键字
continue
适用于任何循环控制结构中。作用是让程序立刻跳转到下一次循环的迭代。
在
for
循环中,
continue
语句使程序立即跳转到更新语句。
在
while
或者
do…while
循环中,程序立即跳转到布尔表达式的判断语句
方法
1
、何谓方法?
在前面几个章节中我们经常使用到
System.out.println()
,那么它是什么呢?
println()
是一个方法。
System
是系统类。
out
是标准输出对象。
这句话的用法是调用系统类
System
中的标准输出对象
out
中的方法
println()
。
Java
方法是语句的集合,它们在一起执行一个功能。
方法是解决一类问题的步骤的有序组合
方法包含于类或对象中
方法在程序中被创建,在其他地方被引用
方法的优点
使程序变得更简短而清晰。
有利于程序维护。
可以提高程序开发的效率。
提高了代码的重用性。
命名规则 小写字母开头 驼峰命名法
方法包含一个方法头和一个方法体。下面是一个方法的所有部分:
修饰符:
修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。
返回值类型 :
方法可能会返回值。
returnValueType
是方法返回值的数据类型。有些方法执行所需
的操作,但没有返回值。在这种情况下,
returnValueType
是关键字
void
。
方法名:
是方法的实际名称。方法名和参数表共同构成方法签名。
参数类型:
参数像是一个占位符。当方法被调用时,传递值给参数。这个值被称为实参或变量。参
数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数。
形式参数:在方法被调用时用于接收外界输入的数据。
实参:调用方法时实际传给方法的数据。
、方法调用
JAVA
中只有值传递!
方法的重载
上面使用的
max
方法仅仅适用于
int型数据。但如果你想得到两个浮点类型数据的最大值呢?解决方法是创建另一个有相同名字但参数不同的方法,
、可变参数 传入的应该是数组类型
typeName
...
parameterName
在方法声明中,在指定参数类型后加一个省略号
(...)
。
一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在它之前声
明
递归
递归是一种常见的解决问题的方法,即把问题逐渐简单化。递归的基本思想就是
“
自己调用自己
”
,一个
使用递归技术的方法将会直接或者间接的调用自己。
利用递归可以用简单的程序来解决一些复杂的问题。它通常把一个大型复杂的问题层层转化为一个与原
问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计
算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。
递归结构包括两个部分:
1.
递归头。解答:什么时候不调用自身方法。如果没有头,将陷入死循环。
2.
递归体。解答:什么时候需要调用自身方法。
Static
static方法
static方法一般称作静态方法,由于静态方法不依赖于任何对象就可以进行访问,因此对于静态方法来说,是没有this的,因为它不依附于任何对象,既然都没有对象,就谈不上this了。并且由于这个特性,在静态方法中不能访问类的非静态成员变量和非静态成员方法,因为非静态成员方法/变量都是必须依赖具体的对象才能够被调用。
但是要注意的是,虽然在静态方法中不能访问非静态成员方法和非静态成员变量,但是在非静态成员方法中是可以访问静态成员方法/变量的。
static变量
static变量也称作静态变量,静态变量和非静态变量的区别是:静态变量被所有的对象所共享,在内存中只有一个副本,它当且仅当在类初次加载时会被初始化。而非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响。
static代码块
static关键字还有一个比较关键的作用就是 用来形成静态代码块以优化程序性能。static块可以置于类中的任何地方,类中可以有多个static块。在类初次被加载的时候,会按照static块的顺序来执行每个static块,并且只会执行一次。
为什么说static块可以用来优化程序性能,是因为它的特性:只会在类加载的时候执行一次。