前言
主要是针对我自己个人的一些不理解之处,并不包含所有知识点,仅为我自用的查缺补漏笔记。希望能坚持下去然后找到工作。
一、Scanner
通过Scanner来获取用户的输入
(1). 创建一个Scanner对象:
'Scanner s = new Scanner(System.in);'
(2). Scanner的用法
import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
// 从键盘接收数据
// next方式接收字符串
System.out.println("next方式接收:");
// 判断是否还有输入
if (scan.hasNext()) {
String str1 = scan.next();
System.out.println("输入的数据为:" + str1);
}
scan.close();
}
}
scan.next()遇到空格即停止,无法往下读,而scan.nextLine()会继续往下读。相对应的用法包括hasNextInt()、hasNextFloat()等可以对接下来的输入进行判断是否为整数或浮点数。
3. Scanner的关闭
IO使用完后应进行关闭,通过scan.close()语句进行关闭,否则会一直占用刺痛资源,应在调用Scanner时,先行写好scna.close()防止遗漏。
二、注解
注解有三种,前两种为//和/* /,第三种为说明注释,以/**开始/结束。
其中//为单行注解,/* /为多行注解,/* */可以使用javadoc生成信息,并输出到HTML文档中。
javadoc标签:
标签 | 描述 | 实例 |
---|---|---|
@author | 标识一个类的作者 | @author description |
@exception | 标志一个类抛出的异常 | @exception exception-name explanation |
@param | 说明一个方法的参数 | @param parameter-name explanation |
@return | 说明返回值类型 | @return explanation |
@since | 标记当引入一个特定的变化时 | @since release |
@throws | 和 @exception标签一样. | The @throws tag has the same meaning as the @exception tag. |
@version | 指定类的版本 | @version info |
三、增强for循环
for(声明语句 : 表达式){
//代码句子
}
此种用法中,表达式是要访问的数组名,或者是返回值为数组的方法,例:
int [] numbers = {10,20,30,40,50};
for (int x:numbers){
System.out.println(x);
}
四、命令行传参
写好代码并存为Demo_03;
public class Demo_03 {
public static void main(String[] args) {
for (int i = 0; i < args.length; i++) {
System.out.println("args["+i+"]:"+args[i]);
}
}
}
使用cmd进入Demo_03文件的文件夹下,可先在文件管理器中定位后在前面输入“cmd ”。如:
cmd D:\study\OneMonthsOneJob\src\Demo_1204
然后在命令行中输入javac Demo_03.java
以实现编译
然后转到src文件夹下,可使用cd../
向上一层回退
最后输入java Demo_1024.Demo03 this is HF
即可输出结果。
其中 Demo_1024是包名,Demo03 是class名,最后是参数,参数可以用-unicode utf-8等修饰。
五、可变参数
在方法的声明中,指定参数类型后,加一个省略号(...)。一个方法只可指定一个可变参数,且只能在最后。
public static void main(String[] args) {
DemoVariableParameter demo02 = new DemoVariableParameter();
demo02.test(1,2,3,4,5,6);
}
public void test(int... i){
System.out.println(i[0]);
System.out.println(i[1]);
System.out.println(i[2]);
System.out.println(i[3]);
System.out.println(i[4]);
System.out.println(i[5]);
}
六、递归
求阶乘:
public static void main(String[] args) {
System.out.println(f(5));
}
public static int f(int n){
if(n == 1){
return 1;
}else{
return n*f(n-1);
}
}
七、Java内存
堆和栈
比如建一个数组,先用int[] arr
声明一个数组,然后创建数组arr = new int[10]
。第一步就是在堆栈中压入一个arr,第二步就是在堆中开辟空间。
静态和动态初始化
静态:创建+赋值
int[] a = {1,2,3};
动态:包含默认初始化(创建完数组后,隐式初始化)
int[] b = new int[10];
b[0] = 10;