Java基础语法
一,Java运行原理
1)JVM简介
java虚拟机JVM。JVM是java语言最大的特点,java的优缺点也是缘于JVM技术。JVM是一个可运行Java字节码的虚拟计算机系统。它有一个解释器组件,可以实现Java字节码和计算机操作系统之间的通信。还包括一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。 JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的字节码,就可以在多种平台上不加修改地运行。这个也是java最大的特色跨平台性,也就是一处编写,处处运行。JVM在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器指令执行。编译虚拟机的指令集与编译微处理器的指令集非常类似。这就是java最受人批评的一个地方,运行在JVM上面当然没有直接运行在操作系统上快。所以有人总是说java的运行速度比不上C语言。
  
  
Java程序保存、编译及运行
- 打开文本编辑器,书写代码,并保存为    .java   文件.java文件通过  JDK中的   javac .exe 程序进行编译,    
  
- 运行java程序,通过JDK中 java.exe 程序把编译生成的xxx.class放到JVM上运行的
 
      
Java标识符
Java所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。关于标识符有以下几点需要注意:
- 所有标识符都应以字母 ,$ ,或者下划线(_)开始
 - 首字符之后可以是任何字符的组合
 - 关键字和保留字不能做标识符
 - 标识符是大小写敏感的
 
类的声明与实例化
类可以看成是创建Java对象的模板
一个类应包括 1、变量 2、方法 3、构造器
声明形式为:
访问控制符 class 类名{
访问控制符 变量类型 变量名;
·
·
·
访问控制符 返回值类型 方法名(参数列表){
方法体
}
}
类的实例化 :创建对象的过程 ,方法如下
类名 对象名 = new类名();就可以获取一个对象
变量的声明与使用
Java变量类型
在Java语言中所有的变量在使用前必须声明。基本格式如下:
Java数据类型 变量一名 ,变量二名 ;
Java支持的变量类型有:
- 
-  局部变量
- 局部变量声明在方法、构造器或者语句块中;
 - 局部变量在方法、构造方法、或者语句块被执行的时候创建,当它们执行完成后,变量将会被销毁;
 - 访问修饰符不能用于局部变量
 - 局部变量只在声明它的方法、构造方法或者语句块中可见;
 - 局部变量是在栈上分配的。
 - 局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用。
 
 -  实例变量
- 实例变量声明在一个类中,但在方法、构造方法和语句块之外;
 - 实例变量的值应该至少被一个方法、构造方法或者语句块引用,使得外部能够通过这些方式获取实例变量信息;
 - 实例变量可以声明在使用前或者使用后;
 - 实例变量在对象创建的时候创建,在对象被销毁的时候销毁;
 - 当一个对象被实例化之后,每个实例变量的值就跟着确定;
 - 访问修饰符可以修饰实例变量;
 - 实例变量对于类中的方法、构造方法或者语句块是可见的。一般情况下应该把实例变量设为私有。通过使用访问修饰符可以使实例变量对子类可见;
 - 实例变量具有默认值。数值型变量的默认值是0,布尔型变量的默认值是false,引用类型变量的默认值是null。变量的值可以在声明时指定,也可以在构造方法中指定;
 - 实例变量可以直接通过变量名访问。但在静态方法以及其他类中,就应该使用完全限定名:ObejectReference.VariableName。
 
 -  类变量
- 类变量也称为静态变量,在类中以static关键字声明,但必须在方法、构造方法和语句块之外。
 - 无论一个类创建了多少个对象,类只拥有类变量的一份拷贝。
 - 静态变量除了被声明为常量外很少使用。常量是指声明为public/private,final和static类型的变量。常量初始化后不可改变。
 - 静态变量储存在静态存储区。经常被声明为常量,很少单独使用static声明变量。
 - 静态变量在程序开始时创建,在程序结束时销毁。
 - 与实例变量具有相似的可见性。但为了对类的使用者可见,大多数静态变量声明为public类型。
 - 默认值和实例变量相似。数值型变量默认值是0,布尔型默认值是false,引用类型默认值是null。变量的值可以在声明的时候指定,也可以在构造方法中指定。此外,静态变量还可以在静态语句块中初始化。
 - 静态变量可以通过:ClassName.VariableName的方式访问。
 - 类变量被声明为public static final类型时,类变量名称必须使用大写字母。如果静态变量不是public和final类型,其命名方式与实例变量以及局部变量的命名方式一致。
 
 
 -  局部变量
 
函数的声明与使用
语法:
[访问修饰符] [static] 返回值类型 函数名(参数列表){
要执行的代码
}
函数的使用:
函数应定义在类中,可以通过 对象名.函数名(参数列表) 的方法进行调用函数
基本数据类型
Java语言提供了八中基本数据类型
共分为4类
整型:bety(8位) short(16位) int(32位) long(64位)
浮点型:float(单精度) double(双精度)
字符型:char
布尔型:布尔型只有两个值 true 或 false
运算符
Java运算符
计算机的最基本的用途之一就是执行数学运算,作为一门计算机语言,Java也提供了一套丰富的运算符来操作变量。
Java中的运算符可分为以下几种:
- 算术运算符
 - 关系运算符
 - 位运算符
 - 逻辑运算符
 - 赋值运算符
 - 其他运算符
 
    一、算数运算符
顾名思义,算数运算符就是用作数学运算的运算符。
| 操作符 | 描述 | 
| + | 加法:相加运算符号两边的值 | 
| - | 减法:左边的树减去右边的树 | 
| * | 乘法:相乘操作两侧的数 | 
| / | 除法:左边的数除以右边的数 | 
| % | 取模(或称取余):左边的数除以左边数得到的余数 | 
| ++ | 自增:操作数值加一。 | 
| -- | 自减:操作数减一。 | 
二、关系运算符
关系运算符用于比较两个数之间的关系的,符合判断则为真,否则为假。
|  ==  | 
判断符号两边的值是否相等,相等为真否则为假 | 
| != | 判断两边的值是否不等,不想等为真,否则为假 | 
| > | 判断左边的值是否大于右边的值,如果大于为真否则为假 | 
| < | 判断左边的值是否小于右边的值,如果小于为真否则为假 | 
| >= | 判断左边的值是否大于或等于右边的值,如果是为真否则为假 | 
| <= | 判断左边的值是否小于或等于右边的值,如果是为真否则为假 | 
三、逻辑运算符
1、与(&&)运算
运算符两边操作都为真,条件才为真
2、或( || )运算
如果两个操作任何一个为真,条件就为真
3、非( !)运算
          用来反转操作的逻辑状态,如果条件为真,通过  ! 运算则会为假,同理如果条件为假,运算后则为真
四、赋值运算符
| = | 简单的赋值运算符,将右操作数的值赋给左侧操作数 | C = A + B将把A + B得到的值赋给C | 
| += | 加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数 | C + = A等价于C = C + A | 
| -= | 减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数 | C - = A等价于C = C -A | 
| *= | 乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数 | C * = A等价于C = C * A | 
| /= | 除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数 | C / = A等价于C = C / A | 
| (%)= | 取模和赋值操作符,它把左操作数和右操作数取模后赋值给左操作数 | C%= A等价于C = C%A | 
    五、条件运算符  
条件运算符也称三元运算符,该运算符有3个操作数,并且需要判断布尔表达式,该运算符主要决定哪个值应该付给变量。
举例: a = (B>C)?B:C
如果(B>C)为真,则将B的值赋予a,为假则将C的值赋予a
Java修饰符
像其他语言一样,Java可以使用修饰符来修饰类中的方法和属性。主要有两类修饰符
- 1.访问控制修饰符
 - publicdefault
- 共有的对所有类可见,被声明为public的类、方法、构造方法和接口能被其他任何类访问。如果几个相互访问的public类在不同的包中,则需要导入相应public类所在的包
 
 - 
- 
- 默认的,在同一个包内可见,
 
 - protected
- 受保护的,对同一包内的类和所有子类可见,protected访问修饰符不能修饰类和接口,方法和成员变量能够声明为protected,但是接口的成员变量和方法不能声明为protected
 
 - private
- 私有的在同一类中可见,private是最严格的的访问级别,被声明为private的方法变量和构造器这能被所属类访问,并且类和接口不能声明为private
 
 
 - 
 
2.非访问控制修饰符
- 
- static
 
 
static关键字用来声明独立于对象的静态变量和静态方法。无论类实例化多少对象,他的静态变量只有一份拷贝,静态方法不能使用类的非静态变量。
- 
- final
 
 
final变量能被显示的初始化并且只能初始化一次,被声明为final的对象的引用不能指向不同的对象,但里面的值可以改变
final方法,可以被子类继承但不能被子类修改,声明为final的方法主要目的防止该方法的内容被修改
- 
- abstract
 
 
被abstract修饰的类称为抽象类,抽象类不能用来实例化对象,声明抽象类的唯一目的是为了将来对该类进行扩充
                    
                
 
                
            
        
浙公网安备 33010602011771号