Java匹马行天下之JavaSE核心技术——Java基础语法

Java基础语法

1、基础语法规则

一、变量

1.一、变量的概述             

                  用于存储可变数据的容器。html

1.二、变量的特色

  1. 必需要有大小
  2. 存储必定格式的可变数据
  3. 必需要有名字

1.三、变量的声明和赋值

数据类型  变量名 = 值前端

 

二、常量

2.一、常量的概述

常量是指在程序运行过程当中其值不能改变的量。java

 

 

2.二、常量的类型

Java中常量的分类:程序员

    整数常量 : 全部整数编程

    小数常量 : 全部小数数组

    布尔常量 : 只有true和false函数

    字符常量 :使用’’引发来的单个字符工具

    字符串常量 :使用“”引发来的字符序列,“”  、“a” 、” ” 字体

    null常量 : 只有一个值null大数据

 

三、标识符

3.一、什么是标识符

就是程序员在定义java程序时,自定义的一些名字,例如helloworld 程序里关键字class 后跟的Demo,就是咱们定义的类名。类名就属于标识符的一种。

标识符除了应用在类名上,还能够用在变量、函数名、包名上。

3.二、标识符的规则

  1. 标识符由26个英文字符大小写(a~zA~Z)、数字(0~9)、下划线(_)和美圆符号($)组成。
  2. 不能以数字开头,不能是关键字
  3. 严格区分大小写
  4. 标识符能够为任意长度

 

3.三、标识符命名规范

  1. 1.  包名

多个单词组成时全部字母小写(例:package  com.itcast)

  1. 2.  类名和接口

多个单词组成时全部单词的首字母大写(例:HelloWorld)

  1. 3.  变量名和函数名

多个单词组成时第一个单词首字母小写,其余单词首字母大写(例:lastAccessTime、getTime)。

  1. 4.  常量名

多个单词组成时,字母所有大写,多个单词之间使用_分隔(例:INTEGER_CACHE)

注意:只是为了增长规范性、可读性而作的一种约定,标识符在定义的时候最               好见名知意,提升代码阅读性。

四、注释

4.一、注释的做用

经过注释提升程序的可读性,是java程序的条理更加清晰,易于区分代码行与注释行。另外一般在程序开头加入做者,时间,版本,要实现的功能等内容注释,方便后来的维护以及程序员的交流。

 

4.二、注释的种类

单行注释(line comment)

用//表示,编译器看到//会忽略该行//后的所文本

多行注释(block comment)

用/**/表示,编译器看到/*时会搜索接下来的*/,忽略掉/**/之间的文本。

文档注释

用/** */表示,是java特有的注释,其中注释内容能够被JDK提供的工具 javadoc 所解析,生成一套以网页文件形式体现的该程序的说明文档。

 

文档注释   (编写软件说明书)

  1. 须要使用sum给咱们提供的javadoc工具生成一个html的说明文档。
  2. 只能抽取public的属性或者方法内容。

如何生成软件说明书:

  1. 同时按win+R,在弹出框中输入cmd,按回车,进入Dos命令窗口
  2. 输入java –version查看是否安装了JDK,若是出现如图信息,说明已安装,未出现则说明未安装,须要先安装JDKJDK

     

    具体安装过程见:http://www.javashuo.com/article/p-huwodycu-cq.html
  3. 若是JDK已安装,先找到你所要生成软件说明书的java源文件路径如图,找到源文件路径后,在DOS命令窗口中将路径切换为Java源文件路径

     如图,找到源文件路径后,在DOS命令窗口中将路径切换为Java源文件路径

  4. 切换DOS命令窗口中的路径后,输入javac –d . Hello.java(源文件),编译源文件,看源文件是否有错误,若是没任何错误,输入javacdoc Hello.java(源文件)生成软件说明书

     

    如上图
  5. 生成软件说明书后找到 源文件名.html文件并打开,

     

    如图
  6. 你看到的文档即为软件说明书

     

 

 

 

 

javadoc 工具软件识别如下标签:

@author 做者

         @version 版本

         @param 方法的参数

         @return 返回值

注释的使用细节:

         三种注释能够出如今程序的任何地方,可是不推荐找任意位置。

1. 编程习惯:

                  1. 给哪条语句进行说明,注释应该写在该语句的旁边。

2. 单行注释通常写在语句的后面多行注释和文档注释通常写在语句的上面

         注意:文档注释只能出如今类、属性、方法的上面。

五、运算符

计算机的最基本用途之一就是执行数学运算,做为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量。咱们能够把运算符分红如下几组:

 

算术运算符

 

 

关系运算符

运算符

运算

例子

结果

==

相等于

4= =3

false

!=

不等于

4!= 3

true

小于

4 < 3

flase

大于

 4>3

true

<=

小于等于

4<=3

false

>=

大于等于

4>=3

true

Instanceof

检查是不是类的对象

"hello"instanceof String

true

 

位运算符

 

位运算符

 

运算符含义

 

&

与(AND)

|

或(OR)

^

异或

~

取反

 

逻辑运算符

 

 

赋值运算符

  • = , +=, -=, *=, /=, %=

运算符

运算

范例

结果

=

赋值

a=3,b=2

a=3,b=2

+=

加等于

a=3,b=3;a+=b;

a=5,b=2;

-=

减等于

a=3,b=2,a-=b;

a=1,b=2;

*=

乘等于

a=3,b=2,a*=b;

a=6,b=2

/=

除等于

a=3,b=2,a/=b;

a=1,b=2;

%=

模等于

a=3,b=2,a%=b;

a=1,b=2

 

其余运算符

三元运算符

格式

(条件表达式)?表达式1:表达式2;

若是条件为true,运算后的结果是表达式1;

若是条件为false,运算后的结果是表达式2;

示例:

1获取两个数中大数。

int x=3,y=4,z;

z = (x>y)?x:y;//z变量存储的就是两个数的大数。

int x = 1;

       int y = 2;

       int z;

       z = x > y ? x : y;

       System.out.println(z); //2

2判断一个数是奇数仍是偶数。

int x=5;

System.out.println((x%2==0?"偶数":"奇数"));

 

运算符的优先级与结合性

 

 

 

六、数据类型

Java 基本数据类型

变量就是申请内存来存储值。也就是说,当建立变量的时候,须要在内存中申请空间。

内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据。

所以,经过定义不一样类型的变量,能够在内存中储存整数、小数或者字符。

Java 的两大数据类型:

  • 内置数据类型
  • 引用数据类型

详见http://www.javashuo.com/article/p-fctqqunr-y.html

 

数据类型转换

整型、实型(常量)、字符型数据能够混合运算。运算中,不一样类型的数据先转化为同一类型,而后进行运算。

转换从低级到高级:

低  ------------------------------------>  高

byte,short,char—> int —> long—> float —> double

数据类型转换必须知足以下规则:

  • 不能对boolean类型进行类型转换;
  • 不能把对象类型转换成不相关类的对象;
  • 在把容量大的类型转换为容量小的类型时必须使用强制类型转换;
  • 转换过程当中可能致使溢出或损失精度;

自动类型转换(也叫隐式类型转换)

要实现自动类型的转换,须要知足两个条件:

第一两种类型彼此兼容

第二目标类型取值范围必须大于源类型。

全部的数字类型,包括整形和浮点型彼此均可以进行转换。

强制类型转换(也叫显式类型转换)

当两种类型彼此不兼容,或者目标类型取值范围小于源类型(目标是byte源是int)

没法自动转换,此时就须要进行强制类型转换。

 

强制类型转换须要注意:

   损失精度!!!

类型转换的原理

能够把byte 理解为1两的碗,short 2两的碗,int 4两的碗,long 8两的碗。1两碗的满碗酒能够倒入 2两 4两 8两的碗中。可是 4两碗的酒倒入1两碗的酒就有一些问题。

 

何时要用强制类型转换

   好比小数部分只想保留整数部分.

   必定要清楚要转换的数据在转换后数据的范围内不然会损失精度.

public static void main(String[] args) {

       byte b = 100;

       b = (byte) (b + 2);

       System.out.println(b); // 102

        //舍弃小数部分

        double d=5.5;

       int num=(int)d;

}

 

表达式的数据类型自动提高

算术表达式,逻辑表达式                               

全部的byte型、short型和char的值将被提高到int型。

若是一个操做数是long型,计算结果就是long型;

若是一个操做数是float型,计算结果就是float型;

若是一个操做数是double型,计算结果就是double型。

 

自动类型提高

  

byte b = 3;

       int x = 4;

       x = x + b;// b会自动提高为int 类型参与运算。

       System.out.println(x);// 7

 

 

强制类型转换

 

byte b = 2;

       /*

        * 强制类型转换,强制将b+2强制转换为byte类型,再赋值给b

        */

       b = (byte) (b + 2);

       System.out.println(b);// 4

 

 

分析 System.out.println(‘a’+1)结果?

System.out.println(‘a’+1)结果

美国人为了让计算机识别他们生活中的文字,让二进制表示生活中的文字.因此一个字母表明了一个二进制.,二进制也有十进制的表现形式.,把生活中的字母都用数字来标识,例如97 表明a ,98 表明 b。打印’a’就把a做为输出显示,没有疑问。可是 ‘a’+1  有加号涉及到了运算。根据java自动类型提高规则,一样道理 char 提高为int 。就把’a’表明的数字体现了出来。a 表示的是97  97+1就是98; 那么 想要查看98 表示的char 是什么 怎么实现呢 ?就要用到刚才介绍的强制类型转换了 System.out.println(char(‘a’+1));就取到了98 在ASCII码表中表示的字符。大写A 和小写a 在 ASCII有不一样的表现。还有一个概念字符’1’ 在ASCII中 不是数字 1,能够运行代码查看,到此就能够明白了char 类型,char类型也是能够参与运算的,为何能够参与运算呢。由于字符在ASCII表中都有对应的数字体现。全部的计算机兼容ASCII。

        System.out.println('a'+1); //98

      System.out.println((char)('a'+1));  //b

补充问题:

       int i='a'+'b';

       System.out.println(i);//结果?     

       System.out.println("hello"+'j'); //结果?

 

总结:

全部数值运算符均可以用在char型数据上,若是另外一个操做数是一个数字或者字符,那么char会自动提高为int型,若是另外一个操做数是字符串,那么字符就会和字符串相连。

 

 

 

七、修饰符

 Java语言提供了不少修饰符,主要分为如下两类:

  • 访问控制修饰符 : default, public , protected, private
  • 非访问控制修饰符 : final, abstract, static, synchronized

修饰符用来定义类、方法或者变量,一般放在语句的最前端。

 

详见http://www.javashuo.com/article/p-atcgslon-y.html

 

八、流程控制

分支语句

(1)if-else-if语句

语法:

if(条件){

//当条件为true时,执行大括号内的代码

}else if(条件){

}

 

(2)switch-case语句

概念:

switch 语句判断一个变量与一系列值中某个值是否相等,每一个值称为一个分支。

语法:

switch( 变量 ){

case 值1:

    break;

case 值2:

    break;

default:

}

当程序执行到break关键字时,跳出当前的switch语句;

 

循环语句

(1)while循环

语法:

while(条件){

//当条件为true时,执行循环体内的代码;

}

备注:

知足循环的三个条件:初始化变量、关系运算、迭代

 

(2)do-while循环

语法:

do{

}while(条件);

备注:与while循环的区别是,当条件为false时,也会被执行一次。

 

(3)for循环

语法:

for(int i = 0 ; i < 10 ; i++){

}

说明:

  • 最早执行初始化步骤。能够声明一种类型,但可初始化一个或多个循环控制变量,也能够是空语句。
  • 而后,检测布尔表达式的值。若是为 true,循环体被执行。若是为false,循环终止,开始执行循环体后面的语句。
  • 执行一次循环后,更新循环控制变量。
  • 再次检测布尔表达式。循环执行上面的过程。

 

(4)foreach循环

Java5 引入了一种主要用于数组的加强型 for 循环。

 

Java 加强 for 循环语法格式以下:

for(声明语句 : 表达式) {

//代码句子

}

声明语句:

声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其做用域限定在循环语句块,其值与此时数组元素的值相等。

表达式:

表达式是要访问的数组名,或者是返回值为数组的方法。

 

详见http://www.javashuo.com/article/p-ttcklmhr-bb.html

 

九、数组

详见http://www.javashuo.com/article/p-qnvakzqy-be.html

 

十、函数

详见http://www.javashuo.com/article/p-qnvakzqy-be.html

十一、参数

语法:

  • 在方法名后面的括号中声明;
  • 参数的个数为大于等于0;
  • 写法:方法名(类型  变量名,类型 变量名,……){}
  • 参数是当前方法的局部变量,是一种特殊的局部变量;
  • 参数的赋值过程,是在调用该方法时完成的;
  • 当有多个参数,调用该方法时,依次按照括号中的顺序为参数赋值;
  • 参数的类型能够为Java的任何数据类型;

 

十二、方法重载

概念:重载(overloading) 是在一个类里面,方法名字相同,而参数不一样。与返回值类型、访问修饰符无关。

规则:

  • 参数的类型不一样;
  • 参数个数不一样;
  • 参数的顺序不一样;

 

1三、变量做用域

规则:

  • 变量的范围是程序中该变量能够被引用的部分。
  • 方法内定义的变量被称为局部变量。
  • 局部变量的做用范围从声明开始,直到包含它的块结束。
  • 局部变量必须声明才可使用。
  • 方法的参数范围涵盖整个方法。参数其实是一个局部变量。
  • for循环的初始化部分声明的变量,其做用范围在整个循环。
  • 但循环体内声明的变量其适用范围是从它声明到循环体结束。
  • 能够在一个方法里,不一样的非嵌套块中屡次声明一个具备相同的名称局部变量,但不能在嵌套块内两次声明局部变量。

 

1四、源文件声明规则

当在一个源文件中定义多个类,而且还有import语句和package语句时,要特别注意如下规则:

  • 一个源文件中只能有一个public类。
  • 一个源文件能够有多个非public类。
  • 源文件的名称应该和public类的类名保持一致。例如:源文件中public类的类名是Employee,那么源文件应该命名为Employee.java。
  • 若是一个类定义在某个包中,那么package语句应该在源文件的首行。
  • 若是源文件包含import语句,那么应该放在package语句和类定义之间。若是没有package语句,那么import语句应该在源文件中最前面。
  • import语句和package语句对源文件中定义的全部类都有效。在同一源文件中,不能给不一样的类不一样的包声明。

 

1五、Java包

为了更好地组织类,Java 提供了包机制,用于区别类名的命名空间。

包的做用:

  • 把功能类似或相关的类或接口组织在同一个包中,方便类的查找和使用。
  • 如同文件夹同样,包也采用了树形目录的存储方式。同一个包中的类名字是不一样的,不一样的包中的类的名字是能够相同的,当同时调用两个不一样包中相同类名的类时,应该加上包名加以区别。所以,包能够避免名字冲突。
  • 包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类。

包语句的语法格式为:

package pkg1[.pkg2[.pkg3…]];

例如,一个Something.java 文件它的内容

package net.java.util;

public class Something{

   ...

}

那么它的路径应该是 net/java/util/Something.java 这样保存的。

Package关键字:

  • package(包) 的做用是把不一样的 java 程序分类保存,更方便的被其余 java 程序调用。
  • 一个包(package)能够定义为一组相互联系的类型(类、接口、枚举和注释),为这些类型提供访问保护和命名空间管理的功能。
  • Java 使用包(package)这种机制是为了防止命名冲突,访问控制,提供搜索和定位类(class)、接口、枚举(enumerations)和注释(annotation)等。

在Java中,若是给出一个完整的限定名,包括包名、类名,那么Java编译器就能够很容易地定位到源代码或者类。Import语句就是用来提供一个合理的路径,使得编译器能够找到某个类。

例如,下面的命令行将会命令编译器载入java_installation/java/io路径下的全部类

import java.io.*;

相关文章
相关标签/搜索