一、java简介:

Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称。

Java体系:1.javaEE(Java 2 Platform,Enterprise Edition)企业版

                   2.javaSE(Java2 Platform Standard Edition)标准版

                   3.javaME(Java 2 Platform Micro Edition)微型版

    <1> java术语:

      JVM:java虚拟机

      JRE:java运行环境,JRE包括JVM

       JDK:java语言开发工具包,包括JRE

      <2>JDK下载与安装

             1、下载java开发工具包JDK,下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html

             2、根据提示安装JDK(傻瓜式安装)

             3、配置环境变量:

                    *安装完成后,右击"我的电脑",点击"属性",选择"高级系统设置";

                    *选择"高级"选项卡,点击"环境变量";

                    *在系统变量中点击新建,添加

                             变量名:JAVA_HOME

                            变量值:D:\tools\jdk1.8.0_71        // 要根据自己安装jdk的实际路径配置

                            变量名:CLASSPATH                  

                            变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;         //记得前面有个".;"

                    *在系统变量中找到path变量,点击编辑,添加 %JAVA_HOME%\bin

            4、测试JDK是否安装成功

                  * 打开DOS命令窗口:输入java若无错误,继续输入javac、java  -version可以查看相应JDK版本的基本信息                                   * 在D盘新建一个文件夹,文件夹里再新建一个以.java为后缀的文件。内容为:

                                 class Demo{}  

                  *DOS命令中输入:javac  Demo.java生成.class文件, (查看文件夹会出现一个.class的文件生成)再输入运行命令                             Java Demo(Demo指:Demo.class文件)运行结果报错:找不到或是无法加载Demo主类;返回.java文件加上主                          类:

                       

class Demo{
                           public  static void main(String[] args){
                             } ;                    
                         }

                      这是在输入命令:java Demo 运行结果没报错也没有内容,那是因为没有输出函数,需要再加上:System.out.println("hello world!"); 再次输入命令java Demo,就有内容hello  world!出现了即安装成功。若失败,需要重配置坏境变量。.java代码如下:

class Demo{   
    public  static void main(String[] args){  

        System.out.println("hello world!");
                                                                                 
    }                                      
 }

二、java标识符

Java所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。
         * 关于Java标识符,有以下几点需要注意:
         * 所有的标识符都应该以字母(A-Z或者a-z),美元符($)、或者下划线(_)开始 首字符之后可以是任何字符的组合 关键字不能用作标识符
         * 标识符是大小写敏感的 合法标识符举例:age、$salary、_value、__1_value 非法标识符举例:123abc、-salary
         

package javabiji;
/**
 * 标识符
 * @author Administrator
 *
 */
public class JavaIdentifier {
	public static void main(String[] args) {
		
		int a=123;
	//	int 12abc=2;//标识符不能以数字开头
	//	int class=1;//标识符不能以关键字开头
		int $abc=2;
	//	int 代码=1;//标识符可以用中文,但不建议用
		int _ac=2;
		char Ab123=8;
		//变量名声明:数据类型  数据名 = 初值
		int b,c, d=5; 
		int m=2,n=3;
		int p=6;
		System.out.print(a);
        System.out.print(_ac);
        System.out.print(代码);
		
	}

}

三、java关键字

关键字

描述

abstract

抽象方法,抽象类的修饰符

assert

断言条件是否满足

boolean

布尔数据类型

break

跳出循环或者label代码段

byte

8-bit 有符号数据类型

case

switch语句的一个条件

catch

和try搭配捕捉异常信息

char

16-bit Unicode字符数据类型

class

定义类

const

未使用

continue

不执行循环体剩余部分

default

switch语句中的默认分支

do

循环语句,循环体至少会执行一次

double

64-bit双精度浮点数

else

if条件不成立时执行的分支

enum

枚举类型

extends

表示一个类是另一个类的子类

final

表示一个值在初始化之后就不能再改变了

表示方法不能被重写,或者一个类不能有子类

finally

为了完成执行的代码而设计的,主要是为了程序的健壮性和完整性,无论有没有异常发生都执行代码。

float

32-bit单精度浮点数

for

for循环语句

goto

未使用

if

条件语句

implements

表示一个类实现了接口

import

导入类

instanceof

测试一个对象是否是某个类的实例

int

32位整型数

interface

接口,一种抽象的类型,仅有方法和常量的定义

long

64位整型数

native

表示方法用非java代码实现

new

分配新的类实例

package

一系列相关类组成一个包

private

表示私有字段,或者方法等,只能从类内部访问

protected

表示字段只能通过类或者其子类访问

子类或者在同一个包内的其他类

public

表示共有属性或者方法

return

方法返回值

short

16位数字

static

表示在类级别定义,所有实例共享的

strictfp

浮点数比较使用严格的规则

super

表示基类

switch

选择语句

synchronized

表示同一时间只能由一个线程访问的代码块

this

表示调用当前实例

或者调用另一个构造函数

throw

抛出异常

throws

定义方法可能抛出的异常

transient

修饰不要序列化的字段

try

表示代码块要做异常处理或者和finally配合表示是否抛出异常都执行finally中的代码

void

标记方法不返回任何值

volatile

标记字段可能会被多个线程同时访问,而不做同步

while

while循环

四、java的数据类型

char

         * char类型是一个单一的16位字符; 
         * 最小值是’\u0000’(即为0); 
         * 最大值是’\uffff’(即为65,535);
         * char数据类型可以储存任何字符; 

 

int   

         *int数据类型是32位、有符号的以二进制补码表示的整数;

         *最小值是-2,147,483,648(-2^31);

         *最大值是2,147,483,647(2^31 - 1);

         *一般地整型变量默认为int类型;

        *默认值是0;

float

        * float数据类型是单精度、32位浮点数;
         *  float在储存大型浮点数组的时候可节省内存空间; 
         *  默认值是0.0f;
         * 浮点数不能用来表示精确的值,如货币;

double

         * double数据类型是双精度、64位浮点数;
         *  浮点数的默认类型为double类型;
         * double类型同样不能表示精确的值,如货币;
         *  默认值是0.0d

package javabiji;

import java.math.BigDecimal;

/**
 * 浮点数据类型
 * @author Administrator
 *
 */
public class javaFloatDouble {
	public static void main(String[] args) {
		//双精度浮点型 e2表示十的二次方 e-2表示十的负二次方, 大小写一样。
		double a=314e2;		
		double b=314E2;
		double c=314e-2;
		double f=3456d;
		
		//单精度浮点型
		float d=65536l;//在后面加L表示为数据类型是float类型
		
		System.out.println(a);
		System.out.println(b);
		System.out.println(c);
		System.out.println(d);
		System.out.println(f);
		System.out.println("-------------------------");
		
		
		//比较		
		double g = 0.1;
		float h = 1.0f/10.0f;
		System.out.println("g==h:"+(g==h));//运行结果为false
		System.out.println("-------------------------");
		
		//使用精确浮点运行,推荐BigDecimal
		BigDecimal bd =BigDecimal.valueOf(1.0);
		bd=bd.subtract(BigDecimal.valueOf(0.1));
		bd=bd.subtract(BigDecimal.valueOf(0.1));
		bd=bd.subtract(BigDecimal.valueOf(0.1));
		bd=bd.subtract(BigDecimal.valueOf(0.1));
		System.out.println(bd);
		System.out.println(1.0 - 0.1 - 0.1 - 0.1 - 0.1);
		
		System.out.println("-------------------------");
		BigDecimal bd2 =BigDecimal.valueOf(0.1);
		BigDecimal bd3 =BigDecimal.valueOf(1.0/10);
		System.out.println(bd2.equals (bd3));
		
		
		
		
	}

}

long:

    *long数据类型是64位、有符号的以二进制补码表示的整数;

   *最小值是-9,223,372,036,854,775,808(-2^63);

   *最大值是9,223,372,036,854,775,807(2^63 -1);

  *这种类型主要使用在需要比较大整数的系统上;

  *默认值是0L;

 

short:

   *short数据类型是16位、有符号的以二进制补码表示的整数

   *最小值是-32768(-2^15);

   *最大值是32767(2^15 - 1);

   *Short数据类型也可以像byte那样节省空间。一个short变量是int型变量所占空间的二分之一;

   *默认值是0;

byte:

    *byte数据类型是8位、有符号的,以二进制补码表示的整数;

   *最小值是-128(-2^7);

   *最大值是127(2^7-1);

   *默认值是0;

  *byte类型用在大型数组中节约空间,主要代替整数,因为byte变量占用的空间只有int类型的四分之一;

boolean:

      *boolean数据类型表示一位的信息;

     *只有两个取值:true和false;

     *这种类型只作为一种标志来记录true/false情况;

     *默认值是false;

package javabiji;
/**
 * 布尔类型
 * @author Administrator
 *
 */

public class javaBoolean {
    public static void main(String[] args) {
    	
    	boolean fig;
    	fig=true;
    	if(fig) {
    		System.out.println("条件为真!");//ture
    	}
    	else{
    		System.out.println("条件为假!");//false
    	}
    }
}

五、java数据类型

     1、局部变量:局部变量声明在方法、构造方法或者语句块中; 
         * 局部变量在方法、构造方法、或者语句块被执行的时候创建,当它们执行完成后,变量将会被销毁;
         * 访问修饰符不能用于局部变量; 局部变量只在声明它的方法、构造方法或者语句块中可见; 局部变量是在栈上分配的。
         * 局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用。

     2、成员变量:

         * 成员变量声明在一个类中,但在方法、构造方法和语句块之外; 当一个对象被实例化之后,每个成员变量的值就跟着确定;
         * 成员变量在对象创建的时候创建,在对象被销毁的时候销毁; 成员变量的值应该至少被一个方法、构造方法或者语句块引用,使得外部能够通过这些方式获取成员变量信息;
         * 成员变量可以声明在使用前或者使用后; 访问修饰符可以修饰成员变量;
         * 成员变量对于类中的方法、构造方法或者语句块是可见的。一般情况下应该把成员变量设为私有。通过使用访问修饰符可以使成员变量对子类可见;
         * 成员变量具有默认值。数值型变量的默认值是0,布尔型变量的默认值是false,引用类型变量的默认值是null。变量的值可以在声明时指定,
         * 也可以在构造方法中指定;
         * 成员变量可以直接通过变量名访问。但在静态方法以及其他类中,就应该使用完全限定名

六、java进制

       *二进制以0b开头,由0~1数字组成
       *八进制以0开头,0~7数字组成
       *十进制以0开头,0~9数字组成
       *八进制以0开头,0~9数字、 a~f字母组成

package javabiji;

public class javaSystem {
   public static void main(String[] args) {
	    short salary=180;
	    byte age=18;
	    int a=40000;
	    long b=45000000L;       //在后面加L表示为数据类型是long
	    
	    int c=0b0101;     	  //二进制以0b开头,由0~1数字组成
	    int d=01234; 		 //八进制以0开头,0~7数字组成
	    int e=23;			//十进制以0开头,0~9数字组成
	    int f=0xba02;	   //八进制以0开头,0~9数字、 a~f字母组成
	    
	    System.out.println("工资="+salary);
	    System.out.println("age="+age);
	    System.out.println("a="+a);
	    System.out.println("b="+b);
	    System.out.println("二进制="+c);
	    System.out.println("八进制="+d);
	    System.out.println("十进制="+e);
	    System.out.println("十六进制="+f);
	    
	    
   }
}

七、java运算符

       1、算术运算符

             

操作符

描述

例子

+

加法 - 相加运算符两侧的值

A + B等于30

-

减法 - 左操作数减去右操作数

A – B等于-10

*

乘法 - 相乘操作符两侧的值

A * B等于200

/

除法 - 左操作数除以右操作数

B / A等于2


取模 - 左操作数除以右操作数的余数

B%A等于0

++

自增 - 操作数的值增加1

B++ 或 ++B 等于 21

--

自减 - 操作数的值减少1

B-- 或 --B 等于 19

       2、赋值运算符

操作符

描述

例子

=

简单的赋值运算符,将右操作数的值赋给左侧操作数

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

<< =

左移位赋值运算符

C << = 2等价于C = C << 2

>> =

右移位赋值运算符

C >> = 2等价于C = C >> 2

&=

按位与赋值运算符

C&= 2等价于C = C&2

^ =

按位异或赋值操作符

C ^ = 2等价于C = C ^ 2

| =

按位或赋值操作符

C | = 2等价于C = C | 2