Java入门知识回顾
Java入门知识回顾
环境搭建:
1.下载JDK
2.JDK环境变量配置
注意:安装JDK,安装目录不要有中文和空格!!!
标识符
Java中,需要我们程序员取名字的,都是标识符
包括:变量名,方法名,类名
硬性规定:
变量名首字母不能为数字,且定义变量时禁止使用除$,_以外的其他符号,标识符不能有中文
软性规定:
变量名,方法名(使用小驼峰) 如:name,getName
类名(使用大驼峰) 如:Demo,HelloWorld
常量:
目前,代码中写死的值,用final修饰
如:private static final int MAX_SIZE = 1024;
变量:
变量的理解:
任何程序需要运行,都需要加载到内存中执行
变量就是运行时内存中的一小片空间,这片空间保存的值是可以改变的。我们通过变量名来使用这片内存。
数据类型:
数据类型转换
Java的基本数据类型包括八种:
整数类型(byte,short,int long)
浮点数类型(double,float)
布尔类型(boolean)
字符类型(char)
类型从小到大依次为:
byte < short < int < long < float < double
(char)
1.Java基本类型之间转换的两种方式:
1). 自动(隐式)类型转换:从小类型到大类型,不需要强制转换符
2).强制类型转换:从大类型到小类型,需要强制转换符实现强制转换
3). 强制转换符:(需要转换成的类型)变量
2.关于byte、short、char赋值与运算的强转规则:
1).不参与运算,整数直接量可以直接赋值给byte,short,char,不需要强转。
2).byte,short,char型变量参与运算时,需要强转
如:byte a = 1; byte b = 2;
byte c = (byte)(a+b);
运算符
算术运算符 : +,-,*, / ,% ,++,–
赋值运算符 : = ,+=,-=,*=, /=,%=
逻辑运算符 : && , || , &, | , ! , ^
关系运算符 : >, >=, < ,<= ,==, !=
3元运算符 : 布尔表达式 ? 表达式1 : 表达式2
流程控制语句
1.顺序结构
2.选择结构 if else,switch
3.循环结构 for,while,do…while();,break,continue,return
break:
跳出总上一层循环,不再执行循环(结束当前的循环体)
continue:
跳出本次循环,继续执行下次循环(结束正在执行的循环,进入下一个循环条件)
return:
程序返回,不再执行下面的代码(结束当前的方法 直接返回)
debug
步骤:
1.打断点(方法的有效语句第一行)
2.右键,debug运行
3.F7,单步查看
4.红色正方形标记,停止
5.删除断点(左键再次单击断点删除)
注意:
1.调试中,如果遇到键盘录入的情况,必须录入数据才能继续
2.调试过程中,注意下方法的进栈弹栈
3.方法的参数类型是基本数据类型,是将数据值传入方法,各用各的,互不影响
快捷键:
1.F7单步运行
2.F9继续运行到下个断点处
3.F8单步跳过(不进入方法,方法内不要打断点)
4.Shift+F8跳出方法
获取键盘录入
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
生成随机数
//生成50-100范围内的随机数
//其 Random 对象的 nextInt(int) 方法,默认范围是0 ~ 参数之间随机取值的整数,如r.nextInt(100),取值范围是[0,100)。
Random r = new Random();
//公式:r.nextInt(max-min+1)+min;
int num = r.nextInt(100-50+1)+50;
ArrayList集合(crud + 遍历)
遍历方式:
1.迭代器(Iterator)
public class IteratorDemo1 {
public static void main(String[] args) {
//创建集合对象
Collection<String> c = new ArrayList<>();
//添加元素
c.add("hello");
c.add("world");
c.add("java");
c.add("javaee");
//Iterator<E> iterator():返回此集合中元素的迭代器,通过集合的iterator()方法得到
Iterator<String> it = c.iterator();
//用while循环改进元素的判断和获取
while (it.hasNext()) {
String s = it.next();
System.out.println(s);
}
}
}
2.普通for循环
public class ForDemo1 {
public static void main(String[] args) {
//创建集合对象
List<String> list = new ArrayList<>();
//添加元素
list.add("a");
list.add("b");
list.add("c");
list.add("d");
//普通for循环遍历
for(int i = 0; i < list.size(); i++){
System.out.println(list.get(i));
}
}
}
3.增强for循环
public class ForDemo1 {
public static void main(String[] args) {
//创建集合对象
List<String> list = new ArrayList<>();
//添加元素
list.add("a");
list.add("b");
list.add("c");
list.add("d");
//增强for循环遍历
for(String str : list){
System.out.println(str);
}
}
}
Path环境变量的作用?
Windows操作系统有个特性,你输入一个命令,例如:javac,它会在当前目录下寻找这个命令,如果找不到,它还会去Path配置的目录中寻找。这样,执行命令就比较方便,不用切换到命令所在的目录去执行,在任意盘符都可以执行命令。
JAVA_HOME环境变量的作用?
告诉其他依赖Java的程序jdk安装的根目录在哪里
基本类型与引用类型的区别?
基本类型变量保存的是数据值:
int i = 10;
引用类型变量保存的是地址值:
int[] arr = new int[3];
数据类型范围从小到大排序
byte(1字节)–>short,char(2字节)—>int(4字节)---->long(8字节)–>float(4字节)—>double(8字节)
了解:
浮点数与整数的存储规则不同,所以4个字节的float能保存比8个字节的long更大的数.
float vs long 哪个数据范围大?
float大
Java中的类型转换有哪些?特点如何?
赋值,运算,只要类型不一致,就会出现类型转换
1.自动类型转换(隐式转换): 特点从小到大,自动完成.
long lg = 100; long = int;
float f = 200L; float = long;
2.强制类型转换(显式转换), 大变小
int i = (int)100L;
int i = (int)10000000000L; //数据丢失
注意:
要确保目标类型的取值范围能容纳定义数值,否则会出现溢出
boolean不参与转换
请说说,什么是数组的初始化?
给元素分配空间,并为每个元素赋予默认值。
数组动态及静态初始化的格式?
int[] arr = new int[3];//动态初始化,程序员指定数组长度,系统赋默认值
int[] arr = new int[] {1,2};//静态初始化,程序员提供初始化值,系统确定长度
int[] arr = {1,2}; //简化格式
数组的遍历什么意思?
将数组的元素依次取出来进行处理,可以打印,也可以对其进行赋值,也可以获取其值,最常见的操作是打印
如何判断一个数是否为偶数?
num % 2 == 0 //偶数
num % 2 != 0 //奇数
如何获取一个5位数的每一位上的值?
int num = 54321;
int wang = num / 10000 % 10;
int qian = num / 1000 % 10;
int bai = num / 100 % 10;
int shi = num / 10 % 10;
int ge = num % 10;