Java基础语法

Java基础语法

一. 注释

单行注释: // ,多行注释 / * * /,文档注释 / ** */

// 单行注释
/*
多行
注释
*/
/**
*@ather 作者名
*@version 版本号
*@since JDK版本
*@param 参数值
*@return 返回值
*@throws 异常抛出情况
*/

二. 标识符与关键字

  • 所有的标识符都应该以字母(A-Z或者a-z),美元符($)、或者下划线(_)开始
  • 首字符之后可以是字母(A-Z或者a-z),美元符($)、下划线(_)或数字的任何字符组合不能使用关键字作为变量名或方法名。
  • 标识符是大小写敏感的
  1. 访问控制类关键字
关键字说明
private私有的
protected受保护的
public公共的
default默认
  1. 类、方法和变量修饰符
关键字说明
abstract声明抽象
class
extends扩充,继承
final最终值,不可改变的
implements实现(接口)
interface接口
native本地,原生方法(非 Java 实现)
new新,创建
static静态
strictfp严格,精准
synchronized线程,同步
transient短暂
volatile易失
  1. 程序控制语句
关键字说明
break跳出循环
case定义一个值以供 switch 选择
continue继续
default默认
do运行
else否则
for循环
if如果
instanceof实例
return返回
switch根据值选择执行
while循环
  1. 错误处理
关键字说明
assert断言表达式是否为真
catch捕捉异常
finally有没有异常都执行
throw抛出一个异常对象
throws声明一个异常可能被抛出
try捕获异常
  1. 包相关
关键字说明
import引入
package
  1. 基本类型
关键字说明
boolean布尔型
byte字节型
char字符型
double双精度浮点
float单精度浮点
int整型
long长整型
short短整型
  1. 变量引用
关键字说明
super父类,超类
this本类
void无返回值
  1. 保留关键字
关键字说明
goto是关键字,但不能使用
const是关键字,但不能使用
null

三. 数据类型

Java 的两大数据类型:

  • 内置数据类型
  • 引用数据类型
  1. 内置数据类型
    Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。

byte(字节型):

byte 数据类型是8位、有符号的,以二进制补码表示的整数;
最小值是 -128(-2^7);
最大值是 127(2^7-1);
默认值是 0

short(短整型):

short 数据类型是 16 位、有符号的以二进制补码表示的整数
最小值是 -32768(-2^15);
最大值是 32767(2^15 - 1);
默认值是 0

int(整形):

int 数据类型是32位、有符号的以二进制补码表示的整数;
最小值是 -2,147,483,648(-2^31);
最大值是 2,147,483,647(2^31 - 1);
默认值是 0 ;

long(长整型):

long 数据类型是 64 位、有符号的以二进制补码表示的整数;
最小值是 -9,223,372,036,854,775,808(-2^63);
最大值是 9,223,372,036,854,775,807(2^63 -1);
默认值是 0L;

float(单精度浮点):

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

double(双精度浮点):

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

boolean(布尔型):

boolean数据类型表示一位的信息;
只有两个取值:true 和 false;
默认值是 false;

char(字符型):

char类型是一个单一的 16 位 Unicode 字符;
最小值是 \u0000(即为 0);
最大值是 \uffff(即为65535);
char 数据类型可以储存任何字符;
  1. 引用类型
    在Java中,引用类型的变量非常类似于C/C++的指针。引用类型指向一个对象,指向对象的变量是引用变量。这些变量在声明时被指定为一个特定的类型,比如 Employee、Puppy 等。变量一旦声明后,类型就不能被改变了。
    对象、数组都是引用数据类型。
    所有引用类型的默认值都是null。
    一个引用变量可以用来引用任何与之兼容的类型

四. 数据类型扩展

  1. byte、int、long、和short都可以用十进制、16进制以及8进制的方式来表示。
    前缀 0 表示 8 进制,而前缀 0x 代表 16 进制, 例如:
int a = 100;
int b = 0144;
int c =  0x64;
  1. 和其他语言一样,Java的字符串常量也是包含在两个引号之间的字符序列。下面是字符串型字面量的例子:
"Hello World"
"Hello \n World"
"\"This is in quotes\""
  1. Java语言支持一些特殊的转义字符序列。
符号符号含义
\n换行 (0x0a)
\r回车 (0x0d)
\f换页符(0x0c)
\b退格 (0x08)
\0空字符 (0x0)
\s空格 (0x20)
\t制表符
"双引号
单引号
\反斜杠
\ddd八进制字符 (ddd)
\uxxxx16进制Unicode字符 (xxxx)

五. 类型转换

  1. 自动类型转换
    整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。
    转换从低级到高级。

     低  ------------------------------------>  高
     byte,short,char—> int —> long—> float —> double 
    

    数据类型转换必须满足如下规则:

     不能对boolean类型进行类型转换。
     不能把对象类型转换成不相关类的对象。
     在把容量大的类型转换为容量小的类型时必须使用强制类型转换。
     转换过程中可能导致溢出或损失精度
     浮点数到整数的转换是通过舍弃小数得到
    
  2. 强制类型转换
    条件是转换的数据类型必须是兼容的。
    格式:(type)value type是要强制类型转换后的数据类型 实例:

public class QiangZhiZhuanHuan{
    public static void main(String[] args){
        int a = 123;
        byte b = (byte)a;//强制类型转换为byte
        System.out.println("int强制类型转换为byte后的值等于"+b);
    }
}
------------------------------------结果----------------------------------
int强制类型转换为byte后的值等于123

六. 变量常量作用域

1. 变量

在Java语言中,所有的变量在使用前必须声明
Java语言支持的变量类型有:

1.类变量:独立于方法之外的变量,用 static 修饰。
2.实例变量:独立于方法之外的变量,不过没有 static 修饰。
3.局部变量:类的方法中的变量。

例如:

public class Variable{
    static int allClicks=0;    // 类变量
    String str="hello world";  // 实例变量
    public void method(){
        int i =0;  // 局部变量
    }
}
  1. 类变量(静态变量)

     1.类变量也称为静态变量,在类中以 static 关键字声明,但必须在方法之外。
     2.无论一个类创建了多少个对象,类只拥有类变量的一份拷贝。
     3.静态变量除了被声明为常量外很少使用,静态变量是指声明为 public/privatefinal 和 static 类型的变量。静态变量初始化后不可改变。
     4.静态变量储存在静态存储区。经常被声明为常量,很少单独使用 static 声明变量。
     5.静态变量在第一次被访问时创建,在程序结束时销毁。
     6.与实例变量具有相似的可见性。但为了对类的使用者可见,大多数静态变量声明为 public 类型。
     7.默认值和实例变量相似。数值型变量默认值是 0,布尔型默认值是 false,
     8.引用类型默认值是 null。变量的值可以在声明的时候指定,也可以在构造
     9.方法中指定。此外,静态变量还可以在静态语句块中初始化。
     10.静态变量可以通过:ClassName.VariableName的方式访问。
     11.类变量被声明为 public static final 类型时,类变量名称一般建议使用大写字母。如果静态变量不是 public 和 final 类型,其命名方式与实例变量以及局部变量的命名方式一致。
    
  2. 实例变量

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

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

2. Java 常量

常量在程序运行时是不能被修改的。
在 Java 中使用 final 关键字来修饰常量,声明方式和变量类似:
例如:

final double PI = 3.1415927;

七. 基本运算符

Java提供了一套丰富的运算符来操纵变量。我们可以把运算符分成以下几组:

1. 算术运算符
2. 关系运算符
3. 赋值运算符

1.算术运算符

操作符描述
  • | 加法—相加运算符两侧的值
  • | 减法—左操作数减去右操作数
    *| 乘法—相乘操作符两侧的值
    / |除法—左操作数除以右操作数
    % |取余—左操作数除以右操作数的余数
    ++ |自增: 操作数的值增加1
    – |自减: 操作数的值减少1

2.关系运算符

运算符描述
==检查如果两个操作数的值是否相等,如果相等则条件为真。
!=检查如果两个操作数的值是否相等,如果值不相等则条件为真。

|检查左操作数的值是否大于右操作数的值,如果是那么条件为真。
< |检查左操作数的值是否小于右操作数的值,如果是那么条件为真。
= |检查左操作数的值是否大于或等于右操作数的值,如果是那么条件为真
<= |检查左操作数的值是否小于或等于右操作数的值,如果是那么条件为真

3.赋值运算符

运算符描述
=简单的赋值运算符,将右操作数的值赋给左侧操作数
+ =加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数
- =减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数
* =乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数
/ =除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数
(%)=取模和赋值操作符,它把左操作数和右操作数取模后赋值给左操作数
<< =左移位赋值运算符
>> =右移位赋值运算符
&=按位与赋值运算符
^ =按位异或赋值操作符
=按位或赋值操作符

八. 自增自减

操作符描述
++自增: 操作数的值增加1
自减: 操作数的值减少1

提示:

前缀自增自减法(++a,--a): 先进行自增或者自减运算,再进行表达式运算。
后缀自增自减法(a++,a--): 先进行表达式运算,再进行自增或者自减运算 

例如:

public class selfAddMinus{
    public static void main(String[] args){
        int a = 5;//定义一个变量;
        int b = 5;
        int x = 2*++a;
        int y = 2*b++;
        System.out.println("自增运算符前缀运算后a="+a+",x="+x);
        System.out.println("自增运算符后缀运算后b="+b+",y="+y);
    }
}
------------------------------------结果----------------------------------
自增运算符前缀运算后a=6,x=12
自增运算符后缀运算后b=6,y=10

九. 逻辑运算符/位运算符

  1. 逻辑运算符
运算符描述
&&称为逻辑与运算符。当且仅当两个操作数都为真,条件才为真。会造成短路状况
||称为逻辑或操作符。如果任何两个操作数任何一个为真,条件为真。会造成短路状况
称为逻辑非运算符。用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false。
  1. 位运算符

Java定义了位运算符,应用于整数类型(int),长整型(long),短整型(short),字符型(char),和字节型(byte)等类型。
位运算符作用在所有的位上,并且按位运算
例如:

A = 0011 1100
B = 0000 1101
-----------------
A&B = 0000 1100
A | B = 0011 1101
A ^ B = 0011 0001
~A= 1100 0011
运算符描述
如果相对应位都是1,则结果为1,否则为0 不会造成短路情况
|如果相对应位都是 0,则结果为 0,否则为 1 不会造成短路情况
^如果相对应位值相同,则结果为0,否则为1
按位取反运算符翻转操作数的每一位,即0变成1,1变成0。
<<按位左移运算符。左操作数按位左移右操作数指定的位数。

|按位右移运算符。左操作数按位右移右操作数指定的位数。

|按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。

十. 三元运算符

条件运算符也被称为三元运算符。该运算符有3个操作数,并且需要判断布尔表达式的值。该运算符的主要是决定哪个值应该赋值给变量。

variable x = (expression) ? value if true : value if false

实例:

public class Test {
   public static void main(String[] args){
      int a , b;
      a = 10;
      // 如果 a 等于 1 成立,则设置 b 为 20,否则为 30
      b = (a == 1) ? 20 : 30;
      System.out.println( "Value of b is : " +  b );
 
      // 如果 a 等于 10 成立,则设置 b 为 20,否则为 30
      b = (a == 10) ? 20 : 30;
      System.out.println( "Value of b is : " + b );
   }
}
------------------------------------结果----------------------------------
Value of b is : 30
Value of b is : 20

十一. 包机制

为了更好的组织类,Java提供了包机制,用于区别类名的命名空间
包语言的语法格式为:

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

一般利用公司域名倒置作为包名;

为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。使用"import”语句可完成此功能

import package1[.package2...].(classname|*);

十二. JavaDoc

JavaDoc命令是用来生成自己API文档的

参数信息
*@ather 作者名
*@version 版本号
*@since JDK版本
*@param 参数值
*@return 返回值
*@throws 异常抛出情况
生成JavaDoc文档:
Doc代码
javadoc -encoding UTF-8 -charset UTF-8  文件名.后缀名
           ⇡编码集          ⇡字符集  
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值