Java基础语法

1. 注释

1.1 单行注释

语法:在需要注释的内容前添加“//”

    // 这是注释的内容
1.2 多行注释

语法:在需要注释的内容其前添加“/*”,其后添加“*/”

    /* 
        这是注释的内容1
        这是注释的内容2
        这是注释的内容3
    */
1.3 文档注释

语法:在需要注释的内容其前添加“/**”,其后添加“*/”,并在每行之前添加“*”

    /**
     *
     * @author:作者。
     * @version:版本。
     * @docroot:表示产生文档的根路径。
     * @deprecated:不推荐使用的方法。
     * @param:方法的参数类型。
     * @return:方法的返回类型。
     * @see:用于指定参考的内容。
     * @exception:抛出的异常。
     * @throws:抛出的异常,和exception同义
     *
     */

 


 

2. 标识符和关键字

2.1 认识标识符和关键字
  • 标识符:在Java中,类名、变量名以及方法名都被称为标识符

  • 关键字:在Java中,Java语言提前预定义的具有特殊意义的标识符为关键字,常见关键字如下:

    abstractassertbooleanbreakbyte
    casecatchcharclassconst
    continuedefaultdodoubleelse
    enumextendsfinalfinallyfloat
    forgotoifimplementsimport
    instanceofintinterfacelongnative
    newpackageprivateprotectedpublic
    returnstrictfpshortstaticsuper
    switchsynchronizedthisthrowthrows
    transienttryvoidvolatilewhile
2.2 标识符的注意点
  • 所有标识符应以字母(A-Za-z)、美元符号($)或下划线(_)开头
  • 从第二位开始可以是字母(A-Za-z)、美元符号($)、下划线(_)或数字的自由组合
  • 不能使用关键字作为变量名或方法名
  • 标识符大小写敏感
  • 合法标识符举例:name, $num1, _bank
  • 不合法标识符举例:123, #age, *red
  • 可以使用中文作为标识符,但不推荐

 


 

3. 数据类型

3.1 数据类型的分类

数据类型分为两大类:基本数据类型(primitive type)引用数据类型(reference type),其中基本数据类型分为数值类型字符类型boolean类型,而数值类型又细分为整数类型浮点数类型字符类型。整数类型包括byteshortintlong,浮点数类型包括floatdouble,字符类型只有char,boolean类型只有boolean。引用类型分三类:接口数组

1

3.2 基本数据类型
3.2.1 数值类型
  • 整数类型

    • byte,占1个字节,范围:-128~127

      //byte变量的定义
      byte byteNumber = 10;
      
    • short,占2个字节,范围:-32768~32767

      //short变量的定义
      short shortNumber = 2000;
      
    • int,占4个字节,范围:-2147483648~2147483647(最常用)

      //int变量的定义
      int intNumber = 40000;
      
    • long,占8个字节,范围:-9223372036854775808~9223372036854775807

      //long变量的定义
      long longNumber = 3000000000L;	//注意在数字后面加上L
      
  • 浮点数类型

    浮点数是有限的、离散的,其具有舍入误差,不适合进行高精度的比较。若要进行浮点数比较用BigDecimal数学工具类

    • float,占4个字节

      //float变量的定义
      float floatNumber = 888.88888F;	//注意在数字后面加上F
      
    • double,占8个字节(最常用)

      //double变量的定义
      double doubleNumber = 888.88888;
      
  • 常用进制表示

    • 二进制

      //前缀0b表示二进制
      int num = 0b10101100; //0b10101100相当于十进制的172
      
    • 八进制

      //前缀0表示八进制
      int num = 0254; //0254相当于十进制的172
      
    • 十六进制

      //前缀0x表示十六进制
      int num = 0xAC; //0xAC相当于十进制的172
      
3.2.2 字符类型
  • char,占两个字节

    //char变量的定义
    char charName = 'A';
    
  • 转义字符,具有特殊意义的字符

    • \a 响铃(BEL) 007
    • \b 退格(BS) 008
    • \f 换页(FF) 012
    • \n 换行(LF) 010
    • \r 回车(CR) 013
    • \t 水平制表(HT) 009
    • \v 垂直制表(VT) 011
    • \\ 反斜杠 092
    • ? 问号字符 063
    • \’ 单引号字符 039
    • \" 双引号字符 034
    • \0 空字符(NULL) 000
    System.out.println("Hello\tWorld!");	//输出Hello	World!
    System.out.println("Hello\nWorld!");	/* 输出:Hello
    											    World! */
    
3.2.3 boolean类型
  • boolean,占一位,其值只有true和false两个

    //boolean变量的定义
    boolean flag = true;
    
3.3 引用数据类型
  • 类,class
  • 接口,interface
  • 数组,[]
3.4 类型转换

类型转换有两种:自动类型转换强制类型转换

3.4.1 自动类型转换
  • 自动类型转换遵循低到高的原则:byet,short,char–>int–>long–>float–>double
  • 在运算中,不同类型的数据先转换为高字节占位的同一类型,然后运算
  • byte、short、char之间的运算都先转换为int再运算
  • 在运算中,运算结果超出当前类型范围时会造成内存溢出
//自动转换
byte num1 = 10;
short num2 = num1;
int num3 = num2;
long num4 = num3;
float num5 = num4;
double num6 = num5;

//short num7 = num1 + num2; (错)
int num7 = num1 + num2;	//(对)

int num8 = 2000000000;
//int num9 = num8*20; (错)
long num9 = num8*20;	//(对)
3.4.2 强制类型转换
  • 转换格式:(类型)变量名

  • 不能把不相关的类型进行转换

  • 不能对boolean值进行转换

  • 由高到低强制转换可能存在内存溢出或精度问题

//强制转换
short num1 = 10;
byte num2 = (byte)num1;
double num3 = (double)num2;

//char与int互相转换(字符类型本质为字符表中的字符序号)
char charNum1 = 'A';
int num4 = (int)charNum; //num4的值为65
int num5 = 66;
char charNum2 = (char)num5;	//charNum2的值为'B'

//int num6 = (int)true; (错)

double num7 = 49.9;
int num8 = (int)num7;	//num8值为49

 


 

4. 变量、常量、作用域

4.1 变量
  • 变量是程序中最基本的单元,其没有固定值,可以变化
  • 在使用变量之前都必须预先定义,定义格式:数据类型 变量名 = 值
  • 变量必须有数据类型,可以是基本数据类型或引用类型
  • 变量名必须是合法的标识符
//定义变量
//int a=1,b=2,c=3; 可以写在一行,但不推荐
int num = 100;	//基本数据类型
String str = new String("Hello");	//引用类型
4.2 常量
  • 常量是初始化赋值后就不能改变的量,值始终不变
  • 常量可以看成是一种特殊的变量,它的值设定后就不允许改变
  • 常量名一般用大写字符加下划线
//常量的定义 final 常量名 = 值
final double PI = 3.14159265;
4.3 变量的作用域
  • 类变量(全局变量、静态变量)
  • 实例变量(成员变量)
  • 局部变量
public class Demo {
    
    static int staticNum = 0;	//类变量,作用于全局
    int oNum;	//实例变量,默认值为0,作用于类的实例化对象
    
	public static void main(String[] args) {
		
		int num = 66;	//局部变量,必须初始化值,作用于前后'{}'之内
        
	}
}
4.4 变量的命名规范
  • 所有变量、方法、类名要见名知意
  • 类成员变量(属性)、局部变量、方法名:首字母小写驼峰原则:除了第一个单词的首字母小写以外,后面的单词首字母一律大写,例如:myBook
  • 常量:大写字母加下划线,例如:MAX_VALUE
  • 类名:首字母大写驼峰原则,例如:RedBook

 


 

5. 运算符

java语言支持以下运算符:

  • 算术运算符:+,-,*,/,%,++,-- (返回值为运算结果)
  • 赋值运算符:=,+=,-=,*=,/= (将后面的值赋予前面的变量)
  • 关系运算符:>,<,>=,<=,==,!=,instanceof (返回值为true或false)
  • 逻辑运算符:&&,||,! (返回值为true或false)
  • 位运算符:&,|,^,~,>>,<<,>>> (了解)
  • 条件运算符:? : (根据条件判断返回冒号前或后的值)
/*************算术运算符*************/

int num1 = 2 + 3;	// +为加,num1值为5

int num2 = 3 - 2;	// -为减,num2值为1

int num3 = 2 * 3;	// *为乘,num3值为6

int num4 = 3 / 2;	// /为除,num4值为1

double num5 = 3 / (double)2;	// /为除,num5值为1.5

int num6 = 5 % 3;	// %为取余,num6值为2

int num7 = 5;
num7++;	// ++为自增1,num7值为6(也可以写成++num7,++在前先进行自增运算,++在后后进行自增运算)

int num8 = 5;
num8--;	// --为自减1,num8值为4(也可以写成--num8,--在前先进行自增运算,--在后后进行自增运算)

//要进行幂运算可使用Math数学工具类
System.out.println(Math.pow(2,3));	//Math.pow(2,3)为2的3次方,输出8

/*************赋值运算符*************/

int num9 = 5;	// =为赋值符号,将5赋值给num9,num9的值为5

int num9 += 1;	// +=为加赋值符号,相当于num9 = num9 + 1,num9的值为6

int num9 -= 1;	// -=为加赋值符号,相当于num9 = num9 - 1,num9的值为5

int num9 *= 2;	// *=为乘赋值符号,相当于num9 = num9 * 2,num9的值为10

int num9 /= 2;	// /=为加赋值符号,相当于num9 = num9 / 2,num9的值为5


/*************关系运算符*************/

boolean flag1 = (2 > 3);	// >为大于比较符号,flag1的值为false

boolean flag2 = (2 < 3);	// <为小于比较符号,flag2的值为true

boolean flag3 = (2 >= 3);	// >=为大于等于比较符号,flag3的值为false

boolean flag4 = (2 <= 3);	// <=为小于比较符号,flag4的值为true

boolean flag5 = (2 == 3);	// ==为等于比较符号,flag5的值为false

boolean flag6 = (2 != 3);	// !=为不等于比较符号,flag6的值为true

Integer num10 = 1;	//Integer为int的包装类
boolean flag7 = (num10 instanceof Integer);
// instanceof为判断前面的对象是否属于后面的类,flag7的值为true


/*************逻辑运算符*************/

boolean flag8 = (true && false);
/* &&为短路与符号,&&左右都为true时返回true,只要遇见一个false结果就返回false并不再执行后面的判断,flag8的值为false */

boolean flag9 = (true || false);
/* ||为短路或符号,||左右都为false时返回false,只要遇见一个true结果就返回true并不再执行后面的判断,flag9的值为true */

boolean flag10 = !true;	// !为非符号,将!后面的结果取反,flag10的值为false


/*************位运算符*************/

System.out.println(0b1100 & 0b1010);	// &为按位与运算符,输出8,即0b1000

System.out.println(0b1100 | 0b1010);	// &为按位或运算符,输出13,即0b1110

System.out.println(0b1100 ^ 0b1010);	// &为按位异或运算符,输出6,即0b0110

System.out.println(~ 0b1010);	// ~为按位取反运算符,输出-11,即-0b0101

System.out.println(0b0010 >> 1);	// >>为右移运算符,输出1,即0b0001

System.out.println(0b0010 << 1);	// <<为左移运算符,输出1,即0b0100

System.out.println(0b0010 >>> 1);	// >>>为无符号右移运算符,输出1,即0b0001


/*************条件运算符*************/

System.out.println((2 > 3) ? 1 : 0);
// ?:为条件判断运算符,当?前为true则返回:前的值,否则返回:后的值,输出0

 


 

6. 包机制

  • 为了更好的组织类,Java提供的包机制,用于区别类名的命名空间
  • 包语句的语法格式:package pkg1[.pkg2[.pkg3…]]
  • 一般用公司的域名倒置作为包名,例如:com.baidu.www
  • 要使用其他包的成员,需要用“import”语句导入包,格式:
package pkg1[.pkg2[.pkg3…]].(classname|*);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值