java 简介、JDK安装、Hello World体验、java语法(标示符、关键字)、变量、运算符

1、java介绍:

Java的发展可以归纳如下的几个阶段:

—————第一阶段(完善期)1995-1998

 

—————第二阶段(平稳期)JDK 1.3JDK 1.4

 

—————第三阶段(发展期):JDK1.52005年推出—–JDK 1.7(Oracle收购后推出)

 

(1)在开发上更是分为了Java SE, Java EE, Java ME:

J2SEJava 2 Platform Standard Edition( 2005年之后更名为Java SE )。包含构成Java语言核心的类。比如数据库连接、接口定义、数据结构、输入/输出、网络编程。

 

J2EEJava 2 Platform Enterprise Edition ( 2005年之后更名为Java EE )Enterprise Edition(企业版)包含J2SE中的所有类,并且还包含用于开发企业级应用的类。比如EJBServletJSPXML、事务控制,即是现在Java应用的主要方向,像一些银行或电信的系统大多基于此架构。

J2ME发展成为安卓

(2)如果从编程语言的角度而言,应该分为两种:

————–编译型:学习过C语言的同学应该知道,编译之后会出现一个*.exe文件,供用户使用。

————–解释型:像ASP语言那样,直接将代码放到服务器上进行解释执行。

所有的Java程序文件的后缀都应该是“*.java”,而任何一个*.java程序首先必须经过编译,编译之后会形成一个*.class的文件(字节码文件),而后在计算机上执行,但是解释程序的计算机并不是一台真正意义上的计算机,而是一台由软件和硬件模拟出来的计算机—Java虚拟机(Java Virtual Machine.  JVM)

 2、jdk安装

JRE(Java Runtime Environment Java运行环境)

包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等,如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。

JDK(Java Development Kit Java开发工具包)JDK是提供给Java开发人员使用的,其中包含了Java的开发工具,也包括了JRE。所以安装了JDK,就不用再单独安装JRE了。

 

JDK安装:

(1)jdk 下载,进入官方网站。下载后直接安装

(2)配置环境变量

右键计算机–>属性–>高级系统设置–>环境变量。

在系统变量中新建

在新建页面,输入变量名JAVA_HOME”;变量值是“你的jdk的路径

在系统变量区域,选择“新建”,输入变量名“CLASSPATH”:CLASSPATH=.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar

 在系统变量中查找 Path 编辑,在系统变量中新建
变量名:PATH
变量值:win7加上      .;%JAVA_HOME%lib;%JAVA_HOME%lib\tools.jar;。

 3、HelloWorld 体验

新建一个文件夹,起个名字如student改变后缀名改为    .java              文件起的名字要与文件中的相同

class student{

  public static void math(String[] args){

    System.out.println(“helloworld!”);       输出

  }

}

 大小写要区分,print  是不换行,加上ln就是换行

 

(1) public class定义:

类名称必须和文件名称保持一致,否则程序将无法编译,在一个*.Java之中只能有一个public

 

(2) 主方法main()

主方法表示的是一个程序起点,所有的程序代码都由此开始顺序执行,在Java中主方法也要放在一个类中。

 

(3) 系统输出System.out.println()

 

(4) 注释:

//表示单行注释,就是在注释内容前面加双斜线(//)Java编译器会忽略掉这部分信息。

/*…*/表示多行注释,多行注释,就是在注释内容前面以单斜线加一个星形标记(/*)开头,并在注释内容末尾以一个星形标记加单斜线(*/)结束。

4、java标示符与关键字 

 (1)标示符

java中用于定义名称的都为标识符,如文件名称、类名称、方法名称或变量名称等,在

Java中标识符的定义格式由字母、数字、_(下划线),$所组成,不能以数字开头,不能是Java中的关键字,而且每一个标识符都要有自己的意义,如StudentName,表示的是学生姓名。定义时可以用拼音

标识符区分大小写。

 (2)关键字

abstract

assert

boolean

break

byte

case

catch

char

class

continue

const

default

do

double

else

extends

enum

final

finally

float

for

goto

if

implements

import

instanceof

int

interface

long

native

new

package

private

protected

public

return

short

static

synchronized

super

strictfp

this

throw

throws

transient

try

void

volatile

while

 

 

 5、变量

变量是内存中装载数据的小盒子,你只能用它来存数据和取数据。

计算机存储设备的最小信息单元“位(bit

计算机最小的存储单元“字节(byte

 

1个字节(8位)

 

 (1)变量的基本类型:4类8种

java中默认的整数类型是int类型:Java中整数常量如果不在-2147483648~2147483648之间就必须添加“L”后缀

 

 

java中默认的浮点类型是double类型:Java中所有没有后缀以及使用“D”后缀(小写也可以,但建议使用大写)的小数都是double类型;float类型常量必须添加“F”后缀

 

 

 

l————-3.14没有后缀,所以它是double类型;

l ————5.28Ddouble类型;

l =———-1.26Ffloat类型。

四类

八种

字节数

数据表示范围

         byte

1

-128~127

        short

2

-32768~32767

        int

4

-2147483648~2147483648

        long

8

-263~263-1

浮点型

        float

4

-3.403E38~3.403E38

       double

8

-1.798E308~1.798E308

字符型

       char

2

表示一个字符,如(‘a’,’A’,’0’,’家’)

布尔型

      boolean

1

只有两个值true与false

 

 (2)定义变量

定义变量的语法格式:

数据类型  变量名  =  数据值;

    int            a       =  100;

———————–变量定义后可以不赋值,使用时再赋值。不赋值不能使用。

———————–变量使用时有作用域的限制。

 例如:

public static void main(String[] args) {

int x = 20;

{

    int y = 20;                       不在一个作用域里面即不在一个大括号里,当然java有一个全局变量是所有域都可以调用如int x=20;

}

System.out.println(x);//读取x变量中的值,再打印

System.out.println(y);//读取y变量中的值失败,失败原因,找不到y变量,因为超出了y变量作用范围,所以不能使用y变量

}

 

n 变量不可以重复定义。

 例如:

blic static void main(String[] args){

      int x = 10;

      double x = 5.5;//编译失败,变量重复定义

}

 (3)数据类型转换

byte -> short -> int -> long -> float -> double

 ———————-自动转换:范围大的数据类型 变量 = 范围小的数据类型值;

例如:

 double d = 1000;

 

 

    int i = 100;

 

    double d2 = i;

 

———————–强制转换:范围小的数据类型  变量 = (范围小的数据类型) 范围大的数据类型值;

例如:

int  i = (int)6.718;   //i的值为6

 

 

double  d = 3.14;

 

int  i2 = (int)d;     //i2的值为3

 

 6、运算符

(1)算数运算符

 

运算符

运算规则

范例

结果

+

正号

+3

3

+

2+3

5

+

连接字符串

“中”+“国”

“中国”

负号

int a=3;-a

-3

3-1

2

*

2*3

6

/

5/2

2

%

取模

5/2

1

++

自增

int a=1;a++/++a

2

自减

int b=3;a–/–a

2

 

 (2) 算数运算符++的使用

 (1)a++    b–

      int a = 3;

      int b = 3;

      a++;

      b–;

      System.out.println(a);

      System.out.println(b);

上面代码的输出结果a值为4b值为2

这说明a的原有值发生了改变,在原有值的基础上自增1b的原有值也发生了改变,在原有值的基础上自减1

l——————– ++运算符,会在原有值的基础上自增1;

l                           –运算符,会在原有值的基础上自减1。

 

(2)++a     –b

      int a = 3;

      int b = 3;

      ++a;

      –b;

      System.out.println(a);

      System.out.println(b);

上面代码的输出结果a值为4b值为2

这说明++,–运算符单独使用,不参与运算操作时,运算符前后位置导致的运算结果是一致的。

 

(3)+,–运算符参与运算操作时,发生了怎样的变化,我们来看一段代码:

int a = 3;

int b;

b = a++ + 10;

System.out.println(a);

System.out.println(b);

上面代码的输出结果a值为4b值为13

这里我要强调一下了,当++运算符参与运算操作时,后置++的作用:

l ++,–运算符后置时,先使用变量a原有值参与运算操作,运算操作完成后,变量a的值自增1或者自减1;

 

(4)++,–运算符前置时,参与运算操作的变化,我们来看一段代码:

int a = 3;

int b;

b = ++a + 10;

System.out.println(a);

System.out.println(b);

上面代码的输出结果a值为4,b值为14;

这里我强调一下,当++,–运算符参与运算操作时,前置++,–的作用:

l ++,–运算符前置时,先将变量a的值自增1或者自减1,然后使用更新后的新值参与运算操作。

 

 

商场库存清单案例,这个案例最终会在控制台输出如下结果

 

代码:

class kucun 
{
    public static void main(String[] args) 
    {
        String model="MacBookAir";
        double size=13.3;
        double price=6988.88;
        int kucun=5;

        String model1="thinkpad";
        double size1=14.0;
        double price1=5999.99;
        int kucun1=10;

        String model2="asus";
        double size2=15.6;
        double price2=4999.5;
        int kucun2=5;
        
        int sum=kucun+kucun1+kucun2;
        double sumprice=price+price1+price2;

        System.out.println("品牌型号"+'\t'+"尺寸"+'\t'+"价格"+'\t'+"库存");
        System.out.println(model+'\t'+size+'\t'+price+'\t'+kucun);    
        System.out.println(model1+'\t'+size1+'\t'+price1+'\t'+kucun1);
        System.out.println(model2+'\t'+'\t'+size2+'\t'+price2+'\t'+kucun2);
        System.out.println("总库存数"+':'+sum);
        System.out.println("库存商品总金额"+':'+sumprice);
    }
}

 (3)赋值运算符

 

运算符

运算规则

范例

结果

           =

赋值

int a=2

2

           +=

加后赋值

int a=2a+=2,(a=a+2)

4

           -=

减后赋值

int a=2a-=2

(a=a-2)

0

           *=

乘后赋值

int a=2a*=2

a=a*2

4

            /=

整除后赋值

int a=2a/=2

1

            %=

取模后赋值

int a=2a%=2

0

 

 

例如:a+=2、b-=2、c*=2等

class demo2 

{
    public static void main(String[] args) 
    {
        Scanner sc=new Scanner(System.in);
        /*System.out.print("请输入一个数字");
        int n=sc.nextInt();
        System.out.println("n的值为"+n);*/
        int a=2;
     int b=2;
int c=2
a
+=2;//a=a+2
b-=2;//b=b-2
c*=2;//c=c*2 System.out.println(a+"....."+b+"...."+c); } }

 

 运行结果:

 

注意:当使用赋值运算符,会将结果自动强转成等号左边的数据类型。

 例如:byte a=10;

           x=a+20;

x的属性也变成了byte

 

 (4)比较运算符

 

运算符

运算规则

范例

结果

==

相等于

4==3

False

!=

不等于

4!=3

True

<

小于

4<3

False

>

大于

4>3

True

<=

小于等于

4<=3

False

>=

大于等于

4>=3

True

 

 例如==和=的区别:

int a = 3;

int b = 4;

System.out.println( a=b );

System.out.println( a==b );

 

 

 (5)逻辑运算符

运算符

运算规则

范例

结果

&

false&true

False

|

false|true

True

^

异或

true^flase

True

!

!true

Flase

&&

短路与

false&&true

False

||

短路或

false||true

True

  短路与&&和短路或||           短路与        &&       和          与      &        的区别区别是&&只要第一个条件不满足,后面条件就不再判断。 &要对所有的条件都进行判断。

短路或       ||      和或   |               区别是||只要满足第一个条件,后面的条件就不再判断。 |         要对所有的条件进行判断。

 


class demo2
{
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);

boolean b = 100>10;

boolean b2 = false;

System.out.println(b&&b2); // 打印结果为 false

System.out.println(b||b2); //打印结果为 true

System.out.println(!b2); //打印结果为 true

System.out.println(b && 100>10); //打印结果为 true

 } }

 

 

 

 

 (6)三元运算符

System.out.println( 3>2 ? “正确” : “错误” ); 

 

(7)优先级(没仔细看)

优先级

描述

运算符

1

括号

()[]

2

正负号

+

3

自增自减,非

++!

4

乘除,取余

*/%

5

加减

+

6

移位运算

<<>>>>>

7

大小关系

>>=<<=

8

相等关系

==!=

9

按位与

&

10

按位异或

^

11

按位或

|

12

逻辑与

&&

13

逻辑或

||

14

条件运算

?:

15

赋值运算

=+=-=*=/=%=

16

位赋值运算

&=|=<<=>>=>>>=

 

 

优先级顺序看完了,我们来通过代码,加强一下:

int n = 3>4 ? 100 : 200;

这行的代码运算执行顺序我们来写一下:

l 1.执行 3>4操作,得到布尔类型false的结果

l 2.通过结果false,将对应的表达式2的结果200,作为运算的最终结果

l 3.把200 赋值给变量n

 

接下来,我们看一个比较复杂的代码:

int a = 5;

 int b = 3;

 int c = 1;

int n2 = (a>b && b>c) ? (c++) : (++c);

这段代码运算执行顺序我们也写一下:

l 1.小括号优先级高,我们先运算第一组小括号中的代码

l 1.1. 比较运算符”>” 优先级大于 逻辑运算符”&&”

先执行 a>b,得到结果true;

再执行 b>c,得到结果true;

最后执行 a>b的结果 && b>c的结果,即 true && true, 结果为true

l 2.三元运算符中的条件判断结果为true,返回表达式1的结果 c++

先将变量c的原有值赋值给变量n2,即n2值为1;

再将变量c的值自增1,更新为2。

 

运算符我们学到这里就结束了,稍后在“趣味乐园”中,我们可以运用运算符进行练习。