在黑马很开心,这几天也学到了一些知识,让我懂得了Java的乐趣
一,Variable变量:
8个基本类型以及 引用类型
[]表示可选的,加也可以,不加也可以
变量的本质是存储单元,你给这个单元命一个名字称为变量,通过这个变量,引用存储的单元
Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。
变量在使用前必须对其声明,只有在变量声明以后,才能为其分配相应长度的存储单元
int a; //变量的声明
a=5; //变量的初始化
可以在一行中声明多个变量,但是不提倡这种风格,逐一声明每一个 变量可以提高程序的可执行性
可以将变量的声明和初始化放在同一行中,例如:
int a=5; //变量的声明及初始化值
1.局部变量local Variable
方法或者语句块内部定义的变量
-在使用前必须先声明和初始化(赋初值)。
2.实例变量(成员变量)
方法外部,类的内部定义的变量
-如果不自行初始化,他会自动初始化成该类型的默认初始值(数值型变量初始化成0或0.0,字符型变量的初始化值是16位的0,布尔类型默认是false)
3. Final常量
只能被初始化一次,意味着赋值了就不能改变
一般常量用大写来区分,好分别。
final int C=34; //前面加final
final MAX_VALUE //下划线有一个用处,方便区分看清意思
二,所有变量,方法,类名的命名规范:见名知意
变量,方法名:
-首字母小写和驼峰原则
-run(),run()Run,age ageNew monthSalary
常量:
-大写字母和下划线:MAX_VALUE
类名:
-首字母大写和驼峰原则:Man,GoodMan
方法(method,function)
方法就是一个功能块,有输入输出,输入是形式参数,输出是返回值(有的方法不需要返回值就写void),Java的方法类似于其它语言的函数,声明格式:
[修饰符1 修饰符2 ...] 返回值类型 方法名(形式参数列表){
Java语句;... ... ...
}
方法有定义与调用
void代表没有返回值
!形式参数:在方法被调用时用于接收外界输入的数据
!实参:调用方法时实际传给方法的数据
返回值:方法在执行完毕后,返还给,调用它的环境的数据
返回值类型:事先约定的返回值的数据类型,如无返回值,必须给出返回值类型void。
Java语言中使用下述形式调用方法:对象名,方法名(实参列表)
实参的数目,数据类型和次序必须和所调用方法声明的形参列表匹配
!return 语句终止方法的运行并指定要返回的数据
-Java中进行方法调用中传递参数时,遵循值传递的原则:
基本类型传递的是该数据值本身。引用类型传递的是对对象的引用,而不是对象本身
JAVA中只有值传递!
设计方法的原则:我们设计方法的时候,最好保持方法的原子性,就是一个方法只完成一个功能,这样利于我们后期的扩展
后续补Note:
返回的参数 是当 形式参数 中需要有返回值得时候写的,例如:
public static void test02()
//test02中有值才要标明,否则不用
类:类是由属性和方法组成
引用类型:
Java语言中除基本类型之外的变量类型都成为引用类型
Java中的对象是通过 ! 引用 ! (reference) 对其操作的
类是对象的模板
Student s1= new Studnet(); //未赋值状态,系统有默认Student值,除了八种数据类型之外的其它任何数据都是null(说白了就是引用类型,所有引用类型都是null),八种数据类型默认是0(小数为0.0);boolean值是false(boolean是一位,false是0,true是1);char两字节,值是\u0000;(解释1)
类的属性:
属性 field,或者叫成员变量
属性用于定义该类或该类对象包含的数据或者说静态属性
属性作用范围是整个类体
在定义成员变量是可以对其初始化,如果不对其初始化,Java使用默认的值对其初始化。(见解释1)
属性定义格式:
[修饰符] 属性类型 属性名 =[默认值]
修饰符:可以省略。可以是:public protected,private Static final 将到隐藏和封装时再说
属性类型:可以是任何类型,基本类型和引用类型
类的方法:
面向对象中,整个程序的基本单位是类,方法是从属于类的
方法定义格式:
[修饰符] 方法返回值类型 方法名(形参列表){
//n条语句
}
JAVA中方法参数传递是:值传递!
public int add(int a,int b,int c){
int k=a+b+c;
return k; //结束的是方法的运行!!!
}
变量的作用域:
全局变量,程序集变量(实例变量,成员变量),局部变量
程序集变量(实例变量,成员变量):作用于整个类
成员变量系统会帮你初始化;局部变量必须自己初始化一下才可以使用,系统不会帮你初始化
内存分析:
栈(自动分配连续的空间,先出后进) 放置:局部变量
堆(不连续的空间,随便放) 堆:放置new出的对象
方法区(也是堆) 存放:类的代码信息,static变量,常量池
!!!具体内存分析参考图片[内存分析.png]!!!
JVM虚拟机找class,没有去类路径下面找,找到加载,没找到报错没有找到,找的是class字节码源码,而不是java代码,找到加载,通过类加载器Class,加载后,在方法区中就有了Student类的信息!
JVM虚拟机,虚拟机有一个类加载器
操作对象就是操作地址
public void (String names)开辟帧,把字符串传进去
以类为模板再建一个
所有的引用都是四个字节
八大基本数据类型可以直接赋值
|
|