8.4晨写
1.JVM 内存分配有哪些,有哪些作用
栈内存:存储局部变量用的这个内存区域
堆内存:new 出来的对象存储这个区域
方法区: 字节码文件区域
----方法调用过程需要加载类里面存储很多的方法,这些方法被调用,加载进栈内存
static区域 ----- main方法就是被static修饰的
常量池 ----- 常量的都是在常量池
后面和cpu以及系统相关
寄存器:
本地方法区:
java语言开源,但是很多底层一些东西(线程--依赖于进程),底层c语言操作的
jdk源码上:方法上 关键字native:非java语言实现
2.没有返回值类型的方法的定义以及调用
没有具体返回值类型的方法定义格式
public static void 方法名(形式参数类型1 变量名1,参数类型2 变量名2){
完成业务之后,输出....
}
调用格式:
单独调用
方法名(实际参数1,实际参数2.....) ;
import java.util.Scanner ;
class Demo{
public static void main(String[] args){
Scanner sc = new Scanner(System.in) ;
System.out.println("请您输入一个数据1-9:") ;
int number = sc.nextInt();
printNN(number) ;
}
public static void printNN(int num){
for(int x = 1 ; x <=num; x ++){
for(int y = 1 ; y <=x ; y ++){
System.out.print(x+"*"+y+"="+(y*x)+"\t") ;
制表符 类似于tab键 缩进 , 转移字符 "\x" ,X任意字符 \n :代表换行符号
}
System.out.println() ;
}
}
}
3.什么是方法重载?
方法重载:
方法名相同,参数列表不同,与返回值无关的这些方法;
参数列表不同:
参数个数不同
参数类型不同
参数类型的顺序
判断以下哪些方法是重载关系?
public static void open(){}
public static void open(int a){}
static void open(int a,int b){}
public static void open(double a,int b){}
public static void open(int a,double b){}
public void open(int i,double d){}
public static void OPEN(){}
public static void open(int i,int j){}
public static void open(int x,int y){}
4.什么是数组,数组的定义格式有哪些
数组一种容器 ,容器只能存储同一种类型的元素
数组的定义格式
两种
数据类型[] 数组名称;
int[] arr ;
数据类型 数组名称[] ;
int arr[] ;
初始化两种
1)动态初始化
数据类型[] 数组名称 = new 数据类型[数组长度];
int[] arr = new int[3] ;
int arr[] = new int[3] ;
2)静态初始化
数据类型[] 数组名称 = new 数据类型[]{元素1,元素2....} ;
简写格式
数据类型[] 数组名称 = {元素1,元素2....} ;
int[] arr = {11,22,33} ;
创建一个数组的注意事项
初始化的时候不能动静结合: 不能够同事动态和静态初始化,只能有一种
int[] arr = new int[3]{1,2,3} ;
int[] arr = new int[3] ;
int [] arr = {1,2,3} ;
5.遍历一个数组的步骤 ,代码体现
class Demo{
public static void main(String[] args){
int[] arr = {87,56,13,24,17};
printArray(arr) ;
}
public static void printArray(int[] array){
System.out.print("[") ;
for(int x = 0 ; x < array.length ; x ++){
if(x==array.length-1){
System.out.println(array[x]+"]") ;
}else{
System.out.print(array[x]+", ") ;
}
}
}