Java(入门之语法基础)

(一)入门

1、Java SE(标准版,标准版基础核心)、Java EE(企业版,大型企业应用开发)、Java ME(嵌入式开发) 

2、(1)JDK:Java Development kit(Java开发工具包),调试、编译源文件,生成文档等,包含各种开发工具(

安装完JDK后就有JRE和JVM),现在已经更新到JDK11(现在要做的就是,赶紧熟悉JDK 8,现在已经是很多互联

网企业标配。如果还在使用JDK4-7,那真的是要OUT,小黄呼吁大家赶紧赶紧更新新技术)

以下是各版本的名称及发布日期:

版本

名称

发行日期

JDK 1.1.4

Sparkler(宝石)

1997-09-12

JDK 1.1.5

Pumpkin(南瓜)

1997-12-13

JDK 1.1.6

Abigail(阿比盖尔–女子名)

1998-04-24

JDK 1.1.7

Brutus(布鲁图–古罗马政治家和将军)

1998-09-28

JDK 1.1.8

Chelsea(切尔西–城市名)

1999-04-08

J2SE 1.2

Playground(运动场)

1998-12-04

J2SE 1.2.1

none(无)

1999-03-30

J2SE 1.2.2

Cricket(蟋蟀)

1999-07-08

J2SE 1.3

Kestrel(美洲红隼)

2000-05-08

J2SE 1.3.1

Ladybird(瓢虫)

2001-05-17

J2SE 1.4.0

Merlin(灰背隼)

2002-02-13

J2SE 1.4.1

grasshopper(蚱蜢)

2002-09-16

J2SE 1.4.2

Mantis(螳螂)

2003-06-26

Java SE 5.0 (1.5.0)

Tiger(老虎)

2004-09-30

Java SE 6.0 (1.6.0)

Mustang(野马)

2006-04

Java SE 7.0 (1.7.0)

Dolphin(海豚)

2011-07-28

Java SE 8.0 (1.8.0)

Spider(蜘蛛)

2014-03-18

Java SE 9 2017-09-21
Java SE 10 2018-03

https://www.oschina.net/news/100305/java-11-released-sep-25?from=timeline&isappinstalled=0(可了解)     

(2)JRE:Java Runtime Environment(Java运行时环境),运行字节码文件,包含基础API和JVM

                   (1)源文件(.java)、(2)编译、(3)字节码文件(.class)、(4)解释器执行

(3)JVM:Java Vistual Machine(Java虚拟机,Java语言跨平台就是通过JVM实现的)     

        


          开发经验:多练、多问、自己动手,调试错误、复习和总结。

                           不追求技术的新,而是追求技术的稳定。
        
(二)变量和常量

1、Java关键字:Java 语言中有一些具有特殊用途的词被称为关键字

2、Java标识符:标识符就是用于给 Java 程序中变量、类、方法等命名的符号

    使用标识符时,需要遵守几条规则:

     (1)标识符可以由字母、数字、下划线(_)、美元符($)组成,但不能包含 @、%、空格等其它特殊字符,不能以数字
开头
。譬如:123name 就是不合法滴

     (2)标识符不能是 Java 关键字和保留字( Java 预留的关键字,以后的升级版本中有可能作为关键字),但可以包含关
键字和保留字。如:不可以使用 void 作为标识符,但是 Myvoid 可以

     (3)标识符是严格区分大小写的。 所以涅,一定要分清楚 imooc 和 IMooc 是两个不同的标识符哦!

     (4)标识符的命名最好能反映出其作用,做到见名知意。

3、变量

   在 Java 中,我们通过三个元素描述变量:变量类型、变量名以及变量值

   JAVA变量命名规则:
 
      (1)变量名由多单词组成时,第一个单词的首字母小写,其后单词的首字母大写,俗称骆驼式命名法(也称驼峰式命名
法)
,如 myAge

      (2)变量命名时,尽量简短且能清楚的表达变量的作用,做到见名知意。如:定义变量名 stuName 保存“学生姓名”信

        PS: Java 变量名的长度没有限制,但 Java 语言是区分大小写的,所以 price 和 Price 是两个完全不同的变量哦!


   JAVA变量使用规则:先声明后使用(可以声明变量的同时进行初始化,也可以先声明后赋值)

4、数据类型
    
    Java 语言是一种强类型语言。通俗点说就是,在 Java 中存储的数据都是有类型的,而且必须在编译时就确定其类型。  
    
    Java 中有两类数据类型:基本数据类型、引用数据类型,在 Java 的领域里,基本数据类型变量存的是数据本身,而引用

类型变量存的是保存数据的空间地址

        PS: 原生类型都是小写,原生类型的包装类是大写;可以这样写,但是这道题里120.5后面没有f,所以用double,主要是

double price=120.5d的d可以省略不写,float不可以省略
   
  在 Java 程序中,不同的基本数据类型的数据之间经常需要进行相互转换(自动类型转换和强制类型转换)

【自动类型转换】

    满足特定的条件:

         1、目标类型能与源类型兼容,如 double 型兼容 int 型,但是 char 型不能兼容 int 型
         
         2、目标类型大于源类型,如 double 类型长度为 8 字节, int 类型为 4 字节,因此 double 类型的变量里直接可

以存放 int 类型的数据,但反过来就不可以了
   
【强制类型转换】

     语法:( 数据类型 ) 数值(强制类型转换可能会造成数据的丢失)

     PS:就相当于一被水可以倒进一个桶,没有任何问题,小类型到大类型属于自动转换。一桶水倒进杯子,如果你非要强制执

行,肯定会溢出,属于大类型到小类型,强制转换(内存溢出

5、常量的应用
   
      所谓常量,可以理解为是一种特殊的变量,值被设定后,在程序运行过程中不允许改变。语法:final 常量名 = 
值;

     程序中使用常量可以提高代码的可维护性。例如,在项目开发时,我们需要指定用户的性别,此时可以定义一个常量 SEX

,赋值为 "男",在需要指定用户性别的地方直接调用此常量即可,避免了由于用户的不规范赋值导致程序出错的情况。

     PS: 常量名一般使用大写字符

(三)常用运算符

    运算符是一种“功能”符号,用以通知 Java 进行相关的运算。譬如,我们需要将变量 age 的值设置为 20 ,这时候就需

要一个“=”,告诉程序需要进行赋值操作。

   1、算术运算符:算术运算符主要用于进行基本的算术运算,如加法、减法、乘法、除法等。

       PS:int b=a++;(将a的值赋给b,然后再执行自增)

              int b=++a;(让a先执行自增,然后将值赋给b)

        自增和自减运算符只能用于操作变量,不能直接用于操作数值或常量

   2、赋值运算符(% 用来求余数,也称为”取模运算符“)

   3、比较运算符(比较运算符用于判断两个数据的大小,例如:大于、等于、不等于。比较的结果是一个布尔值( true 或 
false ))

        (1)> 、 < 、 >= 、 <= 只支持左右两边操作数是数值类型

        (2)== 、 != 两边的操作数既可以是数值类型,也可以是引用类型

   4、逻辑运算符

        (1)与:要求所有人都投票同意,才能通过某议题

        (2)或:只要求一个人投票同意就可以通过某议题

        (3)非:某人原本投票同意,通过非运算符,可以使其投票无效

        (4)异或:有且只能有一个人投票同意,才可以通过某议题(a ^ b)
  
   5、条件运算符
    
    条件运算符( ? : )也称为 “三元运算符”。

          语法形式:布尔表达式 ? 表达式1 :表达式2

    运算过程:如果布尔表达式的值为 true ,则返回 表达式1 的值,否则返回 表达式2 的值

        String mark = (score>=60 ) ? "及格":"不及格";(表达式记得加括号)

【运算符优先级】
      
         实际开发中,一般会使用小括号辅助进行优先级管理

    
(四)流程控制语句

【条件语句】

   1、if

      if(条件){
         条件成立时执行代码
      }

      PS:如果 if 条件成立时的执行语句只有一条,是可以省略大括号滴!但如果执行语句有多条,那么大括号就是不可或缺

   2、if... else

      if(条件的布尔表达式){
         代码块1
      }else{
         代码块2
      }

   3、多重if

      if(条件1){
         代码块1
      }else if(条件2){
         代码块2
      }else{
         代码块3
      }

    PS:当需要判断的条件是连续的区间时,使用多重 if 语句是非常方便

   4、嵌套if(只有当外层 if 的条件成立时,才会判断内层 if 的条件)

      if(条件1){
          if(条件2){
            代码块1
          }else{
            代码块2
          }
      }else{
         代码块3
      }

   5、switch

      使用规则:

         (1)switch 后面小括号中表达式的值必须是整型或字符型

         (2)case 后面的值可以是常量数值,如 1、2;也可以是一个常量表达式,如 2+2 ;但不能是变量或带有变量的表达式

,如 a * 2

         (3) case 匹配后,执行匹配块里的程序代码,如果没有遇见 break 会继续执行下一个的 case 块的内容,直到遇到

break 语句或者 switch 语句块结束 ,如果没有匹配的 case 语句则执行 default 块的代码

【循环语句】

   Java 常用的 3 种循环: while 、 do...while 、 for

   1、while

      while(判断条件){
         循环操作
      }

       先判断,后操作

   2、do... while

      do{
         循环操作
      }while(判断条件)

       先执行,后判断

   3、for

      for(循环变量初始化;循环条件;循环变量变化){
         循环操作
      }

   4、break(跳出整个循环

   5、continue(跳出本次循环

   6、多重循环

     循环体中包含循环语句的结构称为多重循环。三种循环语句可以自身嵌套,也可以相互嵌套,最常见的就是二重循环。

二重循环中,外层循环每执行一次,内层循环要执行一圈

(五)数组

    数组可以理解为是一个巨大的“盒子”,里面可以按顺序存放多个类型相同的数据,比如可以定义 int 型的数组 

scores 存储 4 名学生的成绩(数组下标从0开始)

       1、使用数组(三个步骤)

    (1)声明数组

         语法:  数据类型[ ] 数组名;(或数据类型 数组名[ ];)

         其中,数组名可以是任意合法的变量名

    (2)分配空间

         语法:  数组名 = new  数据类型 [ 数组长度 ];(数组长度就是数组中能存放元素的个数)

    (3)赋值(初始化)

            分配空间后就可以向数组中放数据了,数组中元素都是通过下标来访问的

        PS:在 Java 中还提供了另外一种直接创建数组的方式,将声明数组、分配空间和赋值合并完成

                 int[] scores={1,2,3,4};

                 int[] scores=new int[]{1,2,3,4};(不能指定长度


    2、遍历数组中的元素(数组名.length 用于获取数组的长度)
        
      (1)数组下标从 0 开始。因此 scores[3] ,表示数组中的第 4 个元素,而并非第 3 个元素

      (2)数组下标的范围是 0 至 数组长度-1 ,如果越界访问,就会报错
        
            // 使用循环遍历数组中的元素
            for(int i=0;i<hobbys.length;i++){

                 System.out.println(hobbys[i])

              }


    3、使用Arrays操作数组

    Arrays 类是 Java 中提供的一个工具类,在 java.util 包中。该类中包含了一些方法用来直接操作数组,比如可直接
实现数组的排序、搜索等

    (1)语法:  Arrays.sort(数组名);
 
            可以使用 sort( ) 方法实现对数组的排序,只要将数组名放在 sort( ) 方法的括号中,就可以完成对该数组的排
序(按升序排列)

    (2)语法:  Arrays.toString(数组名);

        可以使用 toString( ) 方法将一个数组转换成字符串,该方法按顺序把多个数组元素连接在一起,多个元素之间
使用逗号和空格隔开

    4、使用 foreach 操作数组

     foreach 并不是 Java 中的关键字,是 for 语句的特殊简化版本,在遍历数组、集合时, foreach 更简单便捷。

      语法:foreach(元素类型 元素变量:遍历对象){

                    执行的代码

                 }

    5、二维数组

    所谓二维数组,可以简单的理解为是一种“特殊”的一维数组,它的每个数组空间中保存的是一个一维数组。

       (1)声明数组并分配空间

              数据类型[][] 数组名=new 数据类型[行的个数][列的个数];

       (2)赋值:二维数组的赋值,和一维数组类似,可以通过下标来逐个赋值,注意索引从 0 开始,也可以在声明数组的同

时为其赋值

       (3)处理数组:二维数组的访问和输出同一维数组一样,只是多了一个下标而已。在循环输出时,需要里面再内嵌一个

循环,即使用二重循环来输出二维数组中的每一个元素
    

(六)方法

    语法:访问修饰符  返回值类型  方法名(参数列表){
                   方法体
                }

   其中:

    1、 访问修饰符:方法允许被访问的权限范围, 可以是 public、protected、private 甚至可以省略 ,其中 public 表示

该方法可以被其他任何代码调用,其他几种修饰符的使用在后面章节中会详细讲解滴

   2、 返回值类型:方法返回值的类型,如果方法不返回任何值,则返回值类型指定为 void ;如果方法具有返回值,则需要

指定返回值的类型,并且在方法体中使用 return 语句返回值

   3、 方法名:定义的方法的名字,必须使用合法的标识符

   4、 参数列表:传递给方法的参数列表,参数可以有多个,多个参数间以逗号隔开,每个参数由参数类型和参数名组成,以
空格隔开 

   根据方法是否带参、是否带返回值,可将方法分为四类

      Ø 无参无返回值方法

      Ø 无参带返回值方法

      Ø 带参无返回值方法

      Ø 带参带返回值方法

  5、 方法的重载:如果同一个类中包含了两个或两个以上方法名相同、方法参数的个数、顺序或类型不同的方法,则称为方法
的重载,也可称该方法被重载

     判断方法重载的依据:

       (1)必须是在同一个类中

       (2)方法名相同

       (3)方法参数的个数、顺序或类型不同

       (4)与方法的修饰符或返回值没有关系

    

                 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值