2019-02-02 07:49:57 | 作者: 宇熙 | 标签: 目标,办法,变量 | 浏览: 7818
一、标识符
概念:JAVA里边咱们能够给他取名字的(变量、类、办法等等)就是标识符:
留意:1、标识符只能包括字母、数字、下划线还有美元符号$
2、只能以字母、下划线和美元符号最初
二、变量
概念:JAVA中贮存数据的最小单元
扩展:核算机中保存数据的最小单元是位(一个0或是一个1就是一位)
8bite = 1byte(字节) 1024byte = 1KB 1024kb = 1MB
一个英文字符占1个字节;一个中文字符占2个字节
效果:运用变量名来替代了核算机内存中的地址
分类:
依照方位上来分:
1、成员变量:界说在类的里边,办法的外面
2、局部变量:界说在办法里边的
依照数据类型来分
1、根本数据类型:4类8种
2、运用数据类型:除了根本数据类型之外的都是根本数据类型
效果域:变量的适运用范围
一般情况下变量在哪对大括号中界说就只能在哪对大括号中运用
三、数据类型
概念:对变量名界说一个寄存数据的类型,然后对变量进行赋值
4类8种数据类型:
4类:
1、布尔类型(boolean)
一般用来表明逻辑运算只要true和false两个值
2、字符类型(char)
字符串的常量要运用双引号“ ” 假如是字符的常量要运用单引号‘ ’
留意:JAVA的字符类型是2个字节 C言语是1个字节的
JAVA运用的是unicode编码(考虑:了解一下字符编码的概念及效果)
3、整数类型
byte(1) short(2) int(4) long(8)正确运用能够节约内存的占用率
long型变量后边要加上L
4、浮点类型
float double
数据类型之间的转化规则:
1、小的主动转化成大的
(从低到高数据类型次序)byte short char int long float double
2、boolean和其他数据类型之间不允许进行转化
3、大的转化成小的数据类型要加强制类型转化,有必要要留意溢出的问题
4、byte、short、char之间不能进行转化,假如参加了运算会先把自己转化成int类型
再 参加运算
注:当有多种数据类型混合运算的时分先把数据类型转化成参加运算的数据类型最高的那一个再参加运算
运算符中 比逻辑与运算功率更高,由于当时面的核算成果出来之后为false的话就不需求再核算后边的而是直接给出成果
四、参数
实践参数:办法调用的时分传入的参数既称为实践参数
形式参数:就是用来承受实践参数的,一般放在被调用的函数体里边的
留意:形式参数和实践参数的数据类型要相同,个数要匹配
五、面向目标和面向进程的差异
面向进程:它所考虑的是进程和过程,比方说开车去深圳咱们要考虑的是怎样去也就是说:what to do
面向目标:它所考虑的是有几个目标,比方开车去深圳咱们要考虑的就是有几个目标,也就是说:how to do
六、类
概念:是目标的模板,它是具有相同特色和行为(办法)的一组目标的调集
目标和类的差异:类是笼统的,而目标是详细存在的
常识扩大:同一个文件夹中只能有一个类是public的,并且main()办法肯定是包括在public类傍边
七、结构办法(结构器、结构函数)
效果:1、主要是用来创立目标 2、初始化成员变量
特色:1、有必要与类名相同 2、没有返回值类型,void也没有 3、每一个类都会有一个隐式的结构办法,没有参数和办法体 4、手动增加显式的结构办法那么隐式的结构办法主动消失
常识扩大:面向目标编程思想过程:1、考虑有几个目标 2、经过目标断定有几个类 3、找出每一个类中存在的办法 4、调用相应的办法完成功用
例如这个简略的比如:
public class test{ public static void main(String[] args){ Mouse mouse = new Mouse(); mouse.name = "mick"; Cat cat = new Cat(); cat.name = "Tom"; cat.Catch(mouse); class Cat{ String name; public void Catch(Mouse mouse){ mouse.cry(); class Mouse{ String name; public void cry(){ System.out.println(name + " is crying"); }
思想办法:找出有两个目标tom猫和mick老鼠。进而找出有两个类一个是猫类一个是老鼠类,然后断定两个目标内部别离包括两个办法一个是归于tom目标的catch()办法一个是归于mick 目标的cry()办法
专家形式:一个办法改动的是那个目标的状况(特色),那么该办法就归于谁
八、JVM(JAVA虚拟机)的四个区域
1、代码区(code segment):寄存的是字节码
2、堆区(heap segment):寄存的是目标
3、栈区(Stack segment):寄存的是局部变量
4、栈区的一块特别区域(static segment):寄存字符串常量和静态变量
堆和栈的差异:堆能够保存大的数据类型运转速度慢;栈只能够保存小的数据内容可是运转速度快
局部变量和成员变量重名的问题解决办法
办法:该情况下运用this指针,由于每一个目标都有一个this指针,相当于当时目标的引证。原理如下图所示:
图 1
九、成员变量初始化
1、JAVA傍边,成员变量会默许初始化
数值类型:默许为0 布尔类型(boolean):默许为false 字符类型(char):默许是空 引证数据类型:默许是NULL
null值的意义:表明一个引证没有指向任何一个目标,也就是谁栈中的一个引证没有指向任何一个栈中的内存地址,如上图所示形象来说就是“引证”的那个箭头没有
2、JAVA中的废物回收机制(GC)
假如一个目标没有指向任何一个引证,那么这个目标就是JAVA中的废物,JAVA会主动调用GC主动回收
常识延伸:假如说在JAVA中需求一个目标运用完后就被GC回收,最好的变法就是把指向这个目标的引证设置为NULL
十、Static关键字
1、加上static的成员变量称之为静态变量(类变量)
static segment中的数据不能重复,一切目标同享其数据,其间一个目标对其进行修正之后那么其他的目标的值也随之改动
由于一切目标同享它,跟目标没有任何关系,所以也就称之为类变量;能够运用 类名.变量名 来调用
如下图所示逻辑:
图 2
堆里边的两个目标同享 Static segment里边的静态变量Corcol;假如要改动其值只需运用 Person.Corcol 即可改动其值
2、加上static的办法称之为静态办法(类办法)
类办法不需求创立目标来调用,能够直接是用 类名.办法名 调用
留意:(1)、静态的办法只能拜访静态的成员变量
(2)、非静态的办法既能够拜访静态的成员变量也能够拜访非静态的成员变量
常识延伸:为什么main()办法是static的?
由于main()办法是程序的进口,在运用main()办法之前不允许有任何的目标被调用,所以说main()办法有必要是static的
sun.misc.BASE64Encoder找不到jar包的解决方法ITeyesina
JAVA学习笔记——JAVA根底语法之精华ITeyemingxing