【JavaSE】之基础语法

简介: 【JavaSE】之基础语法

前言


本文为【JavaSE】基础语法相关介绍,Java全栈学习路线可参考:【Java全栈学习路线】最全的Java学习路线及知识清单,Java自学方向指引,内含最全Java全栈学习技术清单~


一、注释

//单行注释
/* 
多行
注释 
*/
/**
* @Description    文档注释
* @author 某某    
*/

二、标识符和关键字


1.标识符定义


标识符定义:


包名、类名、方法名、参数名、变量名等,这些符号被称为标识符

标识符可以由字母、数字、下划线(_)和美元符号($)组成

标识符不能以数字开头,不能是java中的关键字

首字符之后可以是字母(A­Z 或者 a­z),美元符($)、下划线(_)或数字的任何字符

标识符对大小写敏感


正确的标识符:

Username、username123、user_name、_userName、$username

不正确的标识符:


2.Java标识符规则


包名所有字母必须小写。例如:cn.itcast.test 类名和接口名每个单词的首字母都要大写。例如:ArrayList

常量名所有的字母都大写,单词之间用下划线连接。例如:DAY_OF_MONTH

变量名和方法名的第一个单词首字母小写,从第二个单词开始,每个单词首字母大写。例如:lineName、getLingNumber

在程序中,应该尽量使用有意义的英文单词来定义标识符,使得程序便于阅读。例如:使用userName表示用户名,password表示密码。


3.Java关键字


下面列出了 Java 关键字。这些保留字不能用于常量、变量、和任何标识符的名称

所有的关键字都是小写

程序中的标识符不能以关键字命名

const和goto是保留字关键字,虽然在java中还没有任何意义,但在程序中不能用来作为自定义的标识符

true、false和null不属于关键字,它们是一个单独标识类型,不能直接使用


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


三、数据类型


1.Java基本数据类型


位(bit):计算机内部数据储存的最小单位,1100 0111是一个八位二进制数

字节(byte):是计算机中处理数据的基本单位,习惯上用大写B来表示

1B(byte,字节) = 8bit(位)

字符:是指计算机中使用的字母、数字、字和符号


1bit表示1位, 1Byte = 8bit, 1024B = 1KB, 1024KB = 1MB,1024MB = 1GB


基本类型 占据空间大小 取值范围 默认值
boolean 不确定 true/false 0
byte 一个字节 -128——127 0
short 2个字节 -215-215-1 0
int 4个字节 -231-231-1 0
long 8个字节 -263-263-1 0L
float 4个字节 -2128-2128 0.0F
double 8个字节 -21024-21024 0.0D
char 2个字节 \u0000


2.Java引用数据类型


类、接口、数组 String Byte Integer ……


四、类型转换


//---------强制转换
//强制转换  高-->低
int i = 128;    
byte b = (byte)i;  // -128  内存溢出
//---------自动转换
//自动转换  低-->高
int i2 = 128;
double d = i2; 
//精度丢失
System.out.println((int)23.7); //输出23
System.out.println((int)-45.89f); //输出-45
char c = 'a';
int d = c+1;
System.out.println(d);        // 输出 98
System.out.println((char)d);  // 输出b

转换中需要注意的问题:

不能对布尔类型进行转换

不能把对象类型转换为不相干的类型

再把高容量转换到低容量时后,强制转换

转换的时候可能存在内存溢出,或精度问题!

JDK7新特性,数字之间可以用下划线间隔:

   int money = 10_0000_0000;  // int范围  -2^31 ~ 2^31-1
   System.out.println(money);    // 输出1000000000

五、变量、常量、作用域


1.变量


Java语言支持的变量类型有:

类变量:独立于方法之外的变量,用 static 修饰。

实例变量:独立于方法之外的变量,不过没有 static 修饰。

局部变量:类的方法中的变量。

public class Variable{
  //类变量 static 
  static int allClicks=0;    // 类变量
   //实例变量:从属于对象,如果不自行初始化 数值默认值为0 0.0,
   //boolean 默认为 false
   //除了基本类型,其他默认都为null
  String str="hello world";  // 实例变量
  public void method(){
       //必须声明和初始化值
      int i =0;  // 局部变量
  }
}

2.变量的命名规范


所有变量、方法名、类名:见名知意!

类成员变量:首字母小写和驼峰原则:userName,除了第一个单词以外,后面的单词首字母都大写。lastName

局部变量:首字母小写和驼峰命名

常量:大写字母和下划线:MAX_VALUE

类名:首字母大写和驼峰原则,GoodMan

方法名:首字母小写和驼峰原则:run() getUser()


3.常量


  • 常量:初始化后不能在改变的值!不会变动的值。
  • 所谓常量可以理解为一种特殊的变量,它的值设定以后,在程序运行期间不允许被改变。
final 常量名 = 值
final double PI = 3.14;
常量常用大写字母来表示。

六、基本运算符


1.java语言支持的运算符总览


算数运算符:+,-,*,/,%,++,—

赋值运算符:=

关系运算符:>,<,>=,<=,==,!=,instanceof

逻辑运算符:&&,||,!

条件运算符: ?

扩展赋值运算符:+=,-=,/=,*=


        long a = 1153132165465155L;
        int b = 1234;
        short c = 10;
        byte d = 1;
        //相加会自动到大类型
        System.out.println(a+b+c+d); //类型 long
        System.out.println(b+c+d);  //类型 int
        System.out.println(c+d);    //类型 short

2.自增,自减运算符

        //++ -- 自增,自减  一元运算符
        int a = 3;
        int b = a++; //执行代码后,先给b赋值,再自增
        //a++ a = a+1;
        int c = ++a; //执行完这行代码前,先自增,再给c赋值
        System.out.println(a);  //输出5
        System.out.println(b);  //输出3
        System.out.println(c);  //输出5

3.逻辑运算符

//与(and) 或(or) 非(取反)
boolean a = true;
boolean b = false;
//逻辑与运算:两个变量都为真,结果才为真
System.out.println("a&&b :" + (a && b));  
//逻辑或运算:两个变量有一个为真,结果为真  
System.out.println("a||b :" + (a || b));   
//如果是真:则为假。如果是假,则为真 
System.out.println("!(a&&b) :" + !(a && b));

4.位运算符

/*
            A = 0011 1100
            B = 0000 1101
            ------------------
            A&B = 0000 1100  与运算
            A|B = 0011 1101  或运算
            A^B = 0011 0001  异或,相同为0,不同为1
            ~B  = 1111 0010  取反
            2*8 = 16    ---> 2*2*2*2
            <<  左移运算  *2
            >>  右移运算  /2
            0000 0000    0
            0000 0001    1
            0000 0010    2
            0000 0100    4
            0000 1000    8
            0001 0000    16
         */
        System.out.println(2<<3);  //输出16

5.运算的特殊情况

int a =10;
int b =20;
a+=b;   // a = a+b;
System.out.println(a); //输出 30
a-=b;   // a = a-b;
System.out.println(a); //输出 10
System.out.println("===============");
//对于String字符串类型的,当进行+时,会自动把所有类型转换成String类型
//字符串在前面,后面的都转换成了String类型所以输出1020
System.out.println(""+a+b); //输出1020
//这时先进行 a+b的操作算成30 然后 30再转换成String类型,所以输出30
System.out.println(a+b+""); //输出30

6.三元运算符


// x ? y :z
//如果x==true,则结果为y,否则结果为z
int score = 80;
String type = score>60?"及格":"不及格";
System.out.println(type); // 及格

七、包机制


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

包语句的语法格式为: package com..

package必须发放在最上面(第一行)

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

为了能够使用某一个包的成员,我们需要再java程序中明确导入改包。


使用import语句可完成此功能;如:


import java.util.Date;


八、JAVADoc生成文档


javadoc命令是用来生成java文档的


  1. 首先编辑java代码
package basic;
/**
 1. @author Console__
 2. @version 1.0.0
 3. @ClassName Doc.java
 4. @Description 测试JavaDoc
 5. @createTime 2021年02月24日 16:32:00
 */
public class Doc {
    String name;
    /**
     * @author Console__
     * @param name
     * @return 返回某某
     */
    public String test(String name){
        name = "某某";
        return name;
    }
}

进入到程序的文件夹,在路径栏中直接输出cmd

3c66da2862e249fe8e4e5f73bcc42463.png

在命令行中输入 以下内容,注意Doc.java换成你的java文件名,然后回车

7cb5879c654942bca264f769ad0689ce.png

到源代码目录中会发现自动生成了很多html页面

7cb365f9f6e14be9b9c8c12de918d5ef.png

点击index.html进入文档页面

bc152cd7f4af4d769b325f58b8673776.png


九、


后记


本文下接:XXXX

Java全栈学习路线可参考:【Java全栈学习路线】最全的Java学习路线及知识清单,Java自学方向指引,内含最全Java全栈学习技术清单~

相关文章
|
7月前
|
Java 编译器
JavaSE基础精选-1基础语法
JavaSE基础精选-1基础语法
39 0
|
7月前
|
安全 Java 程序员
一文让你深入了解JavaSE的知识点(下)
一文让你深入了解JavaSE的知识点(下)
|
7月前
|
Java 编译器 数据安全/隐私保护
一文让你深入了解JavaSE的知识点(上)
一文让你深入了解JavaSE的知识点
|
7月前
|
安全 算法 Java
JavaSE 进阶-javase进阶(三)
JavaSE 进阶-javase进阶
60 0
|
7月前
|
安全 Java API
JavaSE 进阶-javase进阶(二)
JavaSE 进阶-javase进阶
52 0
|
7月前
|
存储 人工智能 算法
JavaSE 进阶-javase进阶(一)
JavaSE 进阶-javase进阶
64 0
|
7月前
|
存储 SQL Java
【JavaSE语法】类和对象(二)
本文主要介绍了面向对象的三大特点之一封装,并引入了包的概念;还介绍了static修饰类的成员(变量+方法),最突出的特点就是static修饰的属于类,而不属于某个对象;最后介绍了四种代码块
53 7
|
7月前
|
Java 编译器
JavaSE学习之--类和对象(三)
JavaSE学习之--类和对象(三)
47 0
|
7月前
|
存储 Java 编译器
JavaSE学习之--类和对象(一)
JavaSE学习之--类和对象(一)
55 0
|
7月前
|
存储 Java 编译器
JavaSE学习之--类和对象(二)
JavaSE学习之--类和对象(二)
47 0
下一篇
DataWorks