黑马程序员技术交流社区
标题:
javaSE技术贴
[打印本页]
作者:
zcy50314399
时间:
2018-8-12 18:25
标题:
javaSE技术贴
1.Random随机数
A.作用:用于产生一个随机数
B.使用步骤:
a.导包,import java.util.Random;
b.创建对象,Random r = new Random();
c.获取随机数,int number = r.nextInt(n);
C.获取的随机数的范围为[0,n-1];若想要得到[m,n]的随机数,则int number = r.nextInt(n-m+1)+m;
2.导包快捷键:Ctrl+Shift+O
直接创建对象后按Ctrl+Shift+可以自动导包,例如可以不需要自己输入import java.util.Random;/import java.util.Scanner;
3.方法:
A.简单的说:方法就是完成特定功能的代码块
在很多语言里面将其称之为函数;
函数在Java中被称为方法;
B.格式:
修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2…) {
函数体;
return 返回值;
}
C.方法格式的调用解释说明:
a.修饰符:目前就用 public static。后面课程还有很多
b.返回值类型:就是功能结果的数据类型。
c.方法名:符合命名规则即可。方便我们的调用
d.参数:
实际参数:就是实际参与运算的。
形式参数;就是方法定义上的,用于接收实际参数的。
e.参数类型:就是参数的数据类型
f.参数名:就是变量名
g.方法体语句:就是完成功能的代码。
h.return:结束方法的。
i.返回值:就是功能的结果,由return带给调用者。
D.要想写好一个方法,就必须明确两个东西:
A:返回值类型
结果的数据类型
B:参数列表
你要传递几个参数,以及每个参数的数据类型
E.方法的注意事项:
a:方法不调用不执行
b:方法与方法是平级关系,不能嵌套定义
c:方法定义的时候参数之间用逗号隔开
d:方法调用的时候不用再传递数据类型
e:如果方法有明确的返回值,一定要有return带回一个值,每个节点都必须有明确的返回值(注意switch与if语句)
F.方法重载:
a.方法重载概述:在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。
b.方法重载特点:
1.与返回值类型无关,只看方法名和参数列表
2.在调用时,虚拟机通过参数列表的不同来区分同名方法
4.数组
A.数组的概念:数组是存储同一种数据类型多个元素的容器。数组既可以存储基本数据类型,也可以存储引用数据类型。
B.数组的定义格式:
a.数据类型[] 数组名;
b.数据类型 数组名[];(禁用!)
C.数组初始化:
a.概述:Java中的数组必须先初始化,然后才能使用。
所谓初始化:就是为数组中的数组元素分配内存空间,并为每个数组元素赋值。
b.动态初始化:初始化时只指定数组长度,由系统为数组分配初始值
格式:
数据类型[] 数组名 = new 数组名[数组长度];
c.静态初始化:初始化时指定每个数组元素的初始值,由系统决定数组长度。
格式:
a.数据类型[] 数组名 = new 数据类型[]{元素1,元素2,…};
b.数据类型[] 数组名 = {元素1,元素2,…};
举例:
int[] arr = new int[]{1,2,3};
解释:
定义了一个int类型的数组,这个数组中可以存放3个int类型的值,并且值分别是1,2,3。
其实这种写法还有一个简化的写法
int[] arr = {1,2,3};
5.JVM内存划分:Java 程序在运行时,需要在内存中的分配空间。
为了提高运算效率,就对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。
1.栈 存储局部变量
2.堆 存储new出来的东西(实体、对象)
2.1 每个对象都有地址值
2.2 每个对象的数据都有默认值
byte short int long 默认值是0;
float double 默认值是0.0;
char 默认值是 “\u0000”
boolean 默认值是 false
引用数据类型 默认值是 null
3.方法区 (面向对象进阶讲)
4.本地方法区 (和系统相关)
5.寄存器 (给CPU使用)
6.数组操作的两个常见小问题:
A.Array Index Out Of Bounds Exception(数组索引越界异常)
原因:我们访问了不存在的索引。
B.Null Pointer Exception(空指针异常)
原因:null是指不再指向堆内存的数据,而我们还在访问堆内存的数据
7.排序方法:
A.选择排序法
for (int i = 0; i < array.length-1; i++) {
for (int j = i+1; j < array.length ; j++) {
if(array[i] < array[j]){
int tm = array[j];
array[j] = array[i];
array[i] = tm;
}
}
}
B.冒泡排序法
for (int i = 0; i < array.length-1; i++) {
for (int j = 0; j < array.length-1-j ; j++) {
if(array[j] < array[j+1]){
int tm = array[j];
array[j] = array[j+1];
array[j+1] = tm;
}
}
}
规律:
1.相邻两两之间进行比较
2.每循环一次从尾部确定一个数(最大或者最小值)
3.每次比较都只需比较a.length-1-i(第i次)
4.n个数只需比较n-1轮;
8.输出数组值的方法:System.out.println(Arrays.toString(数组名));例如:array[] = {1,2,3,4,5};则用该方法输出的结果为{1,2,3,4,5}
9.被private修饰的方法,只能在本类中访问,在其它类中不能被访问。
10.被public修饰的方法,在所有类中都可以被访问。
11.如果方法有返回值,那么在每个节点都必须有明确的返回值。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2